Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1aLA9R-0001g8-AE for pgadmin-hackers@arkaria.postgresql.org; Mon, 18 Jan 2016 13:47:21 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84) (envelope-from ) id 1aLA9Q-0003z9-T1 for pgadmin-hackers@arkaria.postgresql.org; Mon, 18 Jan 2016 13:47:20 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84) (envelope-from ) id 1aLA9B-0003kU-L2 for pgadmin-hackers@postgresql.org; Mon, 18 Jan 2016 13:47:06 +0000 Received: from mail-yk0-x229.google.com ([2607:f8b0:4002:c07::229]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84) (envelope-from ) id 1aLA93-0002zd-WA for pgadmin-hackers@postgresql.org; Mon, 18 Jan 2016 13:47:04 +0000 Received: by mail-yk0-x229.google.com with SMTP id x67so615124986ykd.2 for ; Mon, 18 Jan 2016 05:46:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:date:message-id:subject:from:to:content-type; bh=bOSf1qtieP1A7XRgpF8J6U9R4ALY9phnKJR7C9Y+5+0=; b=tfBQ9wwjZIaVXtYxbwJSgdM99EvuuWq3bdB/Plmyrwq5SQVa4+3l6h/bXxO5xxBjFt 04e20uvaqsK5sOTqgdITRxCTwuajHUXQGLmFu4h3HLK+589YckP5DIt8uC040XERTqqY 4fgwYn43omrPQoONaeWhW7EcNl+2cKOzyS2MAlZMGOAeuv+6Sn9RFXWZUvkLdg9uKwR2 4UDvEjPEeVBlGB39sLHRLoAKllTpb2PWP3bptRaxm/93lCNHF7v4KKEUlRomtp1m+s3V uvlPFAZNRXZjauAFHbPWze0V52vLB6mPH52MTXaiGwB2WTS3W2R6HU6ziM5GKyVA/MMC G07Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to :content-type; bh=bOSf1qtieP1A7XRgpF8J6U9R4ALY9phnKJR7C9Y+5+0=; b=Iq+EvjGVaJUEhEZlcWTwwHEvnC5VuKYePKw5/Z9Ar61/Vk0AH59bnoXNCBKa7Not/o w9LR1Nf6RmE9yGrFCF+P2aTrM3oOpH50JbhywQmildGoxU+VGoJjXncFzliG8q96q+fp owogD0vTxODIQ6OAWZ4avQnR9hphdkOLkLS0hCdYDv75D3vG1IA77owVqkaVnBV1ZN/o muc4AZmddphx/WJWv8W4lKNC5Eqw2LLsHOZL0XYhBL1ivzUZF5pd+daRg4XTBHujxXkU sZPcYQ81goLtTsOwsUzdziBZ9desQMz9/rW30OvwD0sxUvr+UIvzPez8TaA6/RC50yL5 c/LQ== X-Gm-Message-State: ALoCoQmQdZOpiRUi1g1TN3pgFZPxuSXnx/QgjDNWkjr76YMpgOb3bH34dpeveKZSaPzW89l/L+GLf/sMq2d7fM2FQ2ugR/nAskv3KA/mMU34gl+8wp9o2zk= MIME-Version: 1.0 X-Received: by 10.13.234.205 with SMTP id t196mr14986925ywe.110.1453124816765; Mon, 18 Jan 2016 05:46:56 -0800 (PST) Received: by 10.129.84.198 with HTTP; Mon, 18 Jan 2016 05:46:56 -0800 (PST) Date: Mon, 18 Jan 2016 19:16:56 +0530 Message-ID: Subject: patch for cast module From: Sanket Mehta To: pgadmin-hackers@postgresql.org Content-Type: multipart/mixed; boundary=94eb2c0878dc850a2905299bfc24 X-Pg-Spam-Score: 0.2 (/) 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 --94eb2c0878dc850a2905299bfc24 Content-Type: multipart/alternative; boundary=94eb2c0878dc850a2605299bfc22 --94eb2c0878dc850a2605299bfc22 Content-Type: text/plain; charset=UTF-8 Hi, PFA patch for cast module. Please do review it and let me know in case of any issue. Regards, Sanket Mehta Sr Software engineer Enterprisedb --94eb2c0878dc850a2605299bfc22 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi,

PFA patch for cast module.
Please do review it and let me know in case of any issue.

<= /div>

Regards,
Sanket Mehta
Sr Software engineer
En= terprisedb
--94eb2c0878dc850a2605299bfc22-- --94eb2c0878dc850a2905299bfc24 Content-Type: text/x-patch; charset=US-ASCII; name="cast.patch" Content-Disposition: attachment; filename="cast.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ijk0ztvq0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9jYXN0cy9fX2luaXRfXy5weSBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9jYXN0cy9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi5lZGI5MzdiCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L2Nhc3RzL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsNDcwIEBACisjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0 Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTUs IFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2Fy ZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisj CisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworaW1wb3J0IGpzb24K K2Zyb20gZmxhc2sgaW1wb3J0IHJlbmRlcl90ZW1wbGF0ZSwgbWFrZV9yZXNw b25zZSwgY3VycmVudF9hcHAsIHJlcXVlc3QsIGpzb25pZnkKK2Zyb20gZmxh c2suZXh0LmJhYmVsIGltcG9ydCBnZXR0ZXh0Citmcm9tIHBnYWRtaW4udXRp bHMuYWpheCBpbXBvcnQgbWFrZV9qc29uX3Jlc3BvbnNlLCBcCisgICAgbWFr ZV9yZXNwb25zZSBhcyBhamF4X3Jlc3BvbnNlLCBpbnRlcm5hbF9zZXJ2ZXJf ZXJyb3IKK2Zyb20gcGdhZG1pbi5icm93c2VyLnV0aWxzIGltcG9ydCBOb2Rl VmlldworZnJvbSBwZ2FkbWluLmJyb3dzZXIuY29sbGVjdGlvbiBpbXBvcnQg Q29sbGVjdGlvbk5vZGVNb2R1bGUKK2ltcG9ydCBwZ2FkbWluLmJyb3dzZXIu c2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcyBhcyBkYXRhYmFzZXMK K2Zyb20gcGdhZG1pbi51dGlscy5hamF4IGltcG9ydCBwcmVjb25kaXRpb25f cmVxdWlyZWQKK2Zyb20gcGdhZG1pbi51dGlscy5kcml2ZXIgaW1wb3J0IGdl dF9kcml2ZXIKK2Zyb20gY29uZmlnIGltcG9ydCBQR19ERUZBVUxUX0RSSVZF UgorZnJvbSBmdW5jdG9vbHMgaW1wb3J0IHdyYXBzCisKKworY2xhc3MgQ2Fz dE1vZHVsZShDb2xsZWN0aW9uTm9kZU1vZHVsZSk6CisgICAgTk9ERV9UWVBF ID0gJ2Nhc3QnCisgICAgQ09MTEVDVElPTl9MQUJFTCA9ICdDYXN0cycKKwor ICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAg ICAgICBzdXBlcihDYXN0TW9kdWxlLCBzZWxmKS5fX2luaXRfXygqYXJncywg Kiprd2FyZ3MpCisKKyAgICBkZWYgZ2V0X25vZGVzKHNlbGYsIGdpZCwgc2lk LCBkaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgR2VuZXJhdGUgdGhlIGNv bGxlY3Rpb24gbm9kZQorICAgICAgICAiIiIKKyAgICAgICAgeWllbGQgc2Vs Zi5nZW5lcmF0ZV9icm93c2VyX2NvbGxlY3Rpb25fbm9kZShkaWQpCisKKyAg ICBAcHJvcGVydHkKKyAgICBkZWYgc2NyaXB0X2xvYWQoc2VsZik6CisgICAg ICAgICIiIgorICAgICAgICBMb2FkIHRoZSBtb2R1bGUgc2NyaXB0IGZvciBz ZXJ2ZXIsIHdoZW4gYW55IG9mIHRoZSBzZXJ2ZXItZ3JvdXAgbm9kZSBpcwor ICAgICAgICBpbml0aWFsaXplZC4KKyAgICAgICAgIiIiCisgICAgICAgIHJl dHVybiBkYXRhYmFzZXMuRGF0YWJhc2VNb2R1bGUuTk9ERV9UWVBFCisKKwor Ymx1ZXByaW50ID0gQ2FzdE1vZHVsZShfX25hbWVfXykKKworCitjbGFzcyBD YXN0VmlldyhOb2RlVmlldyk6CisgICAgbm9kZV90eXBlID0gYmx1ZXByaW50 Lm5vZGVfdHlwZQorCisKKyAgICBwYXJlbnRfaWRzID0gWworICAgICAgICAg ICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdnaWQnfSwKKyAgICAgICAgICAg IHsndHlwZSc6ICdpbnQnLCAnaWQnOiAnc2lkJ30sCisgICAgICAgICAgICB7 J3R5cGUnOiAnaW50JywgJ2lkJzogJ2RpZCd9CisgICAgICAgICAgICBdCisg ICAgaWRzID0gWworICAgICAgICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6 ICdjaWQnfQorICAgICAgICAgICAgXQorCisgICAgb3BlcmF0aW9ucyA9IGRp Y3QoeworICAgICAgICAnb2JqJzogWworICAgICAgICAgICAgeydnZXQnOiAn cHJvcGVydGllcycsICdkZWxldGUnOiAnZGVsZXRlJywgJ3B1dCc6ICd1cGRh dGUnfSwKKyAgICAgICAgICAgIHsnZ2V0JzogJ2xpc3QnLCAncG9zdCc6ICdj cmVhdGUnfQorICAgICAgICBdLAorICAgICAgICAnY2hpbGRyZW4nOiBbewor ICAgICAgICAgICAgJ2dldCc6ICdjaGlsZHJlbicKKyAgICAgICAgfV0sCisg ICAgICAgICdub2Rlcyc6IFt7J2dldCc6ICdub2RlJ30sIHsnZ2V0JzogJ25v ZGVzJ31dLAorICAgICAgICAnc3FsJzogW3snZ2V0JzogJ3NxbCd9XSwKKyAg ICAgICAgJ21zcWwnOiBbeydnZXQnOiAnbXNxbCd9LCB7J2dldCc6ICdtc3Fs J31dLAorICAgICAgICAnc3RhdHMnOiBbeydnZXQnOiAnc3RhdGlzdGljcyd9 XSwKKyAgICAgICAgJ2RlcGVuZGVuY3knOiBbeydnZXQnOiAnZGVwZW5kZW5j aWVzJ31dLAorICAgICAgICAnZGVwZW5kZW50JzogW3snZ2V0JzogJ2RlcGVu ZGVudHMnfV0sCisgICAgICAgICdtb2R1bGUuanMnOiBbe30sIHt9LCB7J2dl dCc6ICdtb2R1bGVfanMnfV0sCisgICAgICAgICdjb25maWdzJzogW3snZ2V0 JzogJ2NvbmZpZ3MnfV0sCisgICAgICAgICdnZXRfdHlwZSc6IFt7J2dldCc6 ICdnZXRfc291cmNlVGFyZ2V0X3R5cGUnfSwgeydnZXQnOiAnZ2V0X3NvdXJj ZVRhcmdldF90eXBlJ31dLAorICAgICAgICAnZ2V0ZnVuY3Rpb25zJzogW3sn cG9zdCc6ICdnZXRfZnVuY3Rpb25zJ30sIHsncG9zdCc6ICdnZXRfZnVuY3Rp b25zJ31dCisgICAgfSkKKworICAgIGRlZiBtb2R1bGVfanMoc2VsZik6Cisg ICAgICAgICIiIgorICAgICAgICBUaGlzIHByb3BlcnR5IGRlZmluZXMgKGlm IGphdmFzY3JpcHQpIGV4aXN0cyBmb3IgdGhpcyBub2RlLgorICAgICAgICBP dmVycmlkZSB0aGlzIHByb3BlcnR5IGZvciB5b3VyIG93biBsb2dpYy4KKyAg ICAgICAgIiIiCisgICAgICAgIHJldHVybiBtYWtlX3Jlc3BvbnNlKAorICAg ICAgICAgICAgICAgIHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICAg ICAgICAgImNhc3QvanMvY2FzdHMuanMiLAorICAgICAgICAgICAgICAgICAg ICBfPWdldHRleHQKKyAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAg ICAgICAgICAyMDAsIHsnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gt amF2YXNjcmlwdCd9CisgICAgICAgICAgICAgICAgKQorCisgICAgZGVmIGNo ZWNrX3ByZWNvbmRpdGlvbihmKToKKyAgICAgICAgIiIiCisgICAgICAgIFRo aXMgZnVuY3Rpb24gd2lsbCBiZWhhdmUgYXMgYSBkZWNvcmF0b3Igd2hpY2gg d2lsbCBjaGVja3MKKyAgICAgICAgZGF0YWJhc2UgY29ubmVjdGlvbiBiZWZv cmUgcnVubmluZyB2aWV3LCBpdCB3aWxsIGFsc28gYXR0YWNoZXMKKyAgICAg ICAgbWFuYWdlcixjb25uICYgdGVtcGxhdGVfcGF0aCBwcm9wZXJ0aWVzIHRv IHNlbGYKKyAgICAgICAgIiIiCisgICAgICAgIEB3cmFwcyhmKQorICAgICAg ICBkZWYgd3JhcCgqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAgICAgIyBI ZXJlIGFyZ3NbMF0gd2lsbCBob2xkIHNlbGYgJiBrd2FyZ3Mgd2lsbCBob2xk IGdpZCxzaWQsZGlkCisgICAgICAgICAgICBzZWxmID0gYXJnc1swXQorICAg ICAgICAgICAgc2VsZi5tYW5hZ2VyID0gZ2V0X2RyaXZlcihQR19ERUZBVUxU X0RSSVZFUikuY29ubmVjdGlvbl9tYW5hZ2VyKGt3YXJnc1snc2lkJ10pCisg ICAgICAgICAgICBzZWxmLmNvbm4gPSBzZWxmLm1hbmFnZXIuY29ubmVjdGlv bihkaWQ9a3dhcmdzWydkaWQnXSkKKyAgICAgICAgICAgICMgSWYgREIgbm90 IGNvbm5lY3RlZCB0aGVuIHJldHVybiBlcnJvciB0byBicm93c2VyCisgICAg ICAgICAgICBpZiBub3Qgc2VsZi5jb25uLmNvbm5lY3RlZCgpOgorICAgICAg ICAgICAgICAgIHJldHVybiBwcmVjb25kaXRpb25fcmVxdWlyZWQoCisgICAg ICAgICAgICAgICAgICAgIGdldHRleHQoCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIkNvbm5lY3Rpb24gdG8gdGhlIHNlcnZlciBoYXMgYmVlbiBs b3N0ISIKKyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAg ICkKKyAgICAgICAgICAgIHZlciA9IHNlbGYubWFuYWdlci52ZXJzaW9uCisg ICAgICAgICAgICAjIHdlIHdpbGwgc2V0IHRlbXBsYXRlIHBhdGggZm9yIHNx bCBzY3JpcHRzCisgICAgICAgICAgICBpZiB2ZXIgPj0gOTAwMDA6CisgICAg ICAgICAgICAgICAgc2VsZi50ZW1wbGF0ZV9wYXRoID0gJ2Nhc3Qvc3FsLzku MF9wbHVzJworCisgICAgICAgICAgICByZXR1cm4gZigqYXJncywgKiprd2Fy Z3MpCisKKyAgICAgICAgcmV0dXJuIHdyYXAKKworCisgICAgQGNoZWNrX3By ZWNvbmRpdGlvbgorICAgIGRlZiBsaXN0KHNlbGYsIGdpZCwgc2lkLCBkaWQp OgorICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAg ICAiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAncHJvcGVydGllcy5z cWwnXSksCisgICAgICAgICAgICBkYXRsYXN0c3lzb2lkPXNlbGYubWFuYWdl ci5kYl9pbmZvW2RpZF1bJ2RhdGxhc3RzeXNvaWQnXQorICAgICAgICAgICAg KQorICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2Rp Y3QoU1FMKQorCisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAg ICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykK KyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAgICAgICAgICAg ICAgcmVzcG9uc2U9cmVzWydyb3dzJ10sCisgICAgICAgICAgICAgICAgc3Rh dHVzPTIwMAorICAgICAgICAgICAgICAgICkKKworICAgIEBjaGVja19wcmVj b25kaXRpb24KKyAgICBkZWYgbm9kZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCk6 CisgICAgICAgIHJlcyA9IFtdCisgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1w bGF0ZSgKKyAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3Bh dGgsICdwcm9wZXJ0aWVzLnNxbCddKSwKKyAgICAgICAgICAgIGRhdGxhc3Rz eXNvaWQ9c2VsZi5tYW5hZ2VyLmRiX2luZm9bZGlkXVsnZGF0bGFzdHN5c29p ZCddCisgICAgICAgICAgICApCisgICAgICAgIHN0YXR1cywgcnNldCA9IHNl bGYuY29ubi5leGVjdXRlXzJkYXJyYXkoU1FMKQorICAgICAgICBpZiBub3Qg c3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9l cnJvcihlcnJvcm1zZz1yc2V0KQorCisgICAgICAgIGZvciByb3cgaW4gcnNl dFsncm93cyddOgorICAgICAgICAgICAgcmVzLmFwcGVuZCgKKyAgICAgICAg ICAgICAgICAgICAgc2VsZi5ibHVlcHJpbnQuZ2VuZXJhdGVfYnJvd3Nlcl9u b2RlKAorICAgICAgICAgICAgICAgICAgICAgICAgcm93WydvaWQnXSwKKyAg ICAgICAgICAgICAgICAgICAgICAgIHJvd1snbmFtZSddLAorICAgICAgICAg ICAgICAgICAgICAgICAgaWNvbj0iaWNvbi1jYXN0IgorICAgICAgICAgICAg ICAgICAgICApKQorCisgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9u c2UoCisgICAgICAgICAgICAgICAgZGF0YT1yZXMsCisgICAgICAgICAgICAg ICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICkKKworICAgIEBjaGVj a19wcmVjb25kaXRpb24KKyAgICBkZWYgcHJvcGVydGllcyhzZWxmLCBnaWQs IHNpZCwgZGlkLCBjaWQpOgorICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxh dGUoCisgICAgICAgICAgICAiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRo LCAncHJvcGVydGllcy5zcWwnXSksCisgICAgICAgICAgICBjaWQ9Y2lkLAor ICAgICAgICAgICAgZGF0bGFzdHN5c29pZD1zZWxmLm1hbmFnZXIuZGJfaW5m b1tkaWRdWydkYXRsYXN0c3lzb2lkJ10KKyAgICAgICAgICAgICkKKyAgICAg ICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkK KworICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJu IGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAg ICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgcmVz cG9uc2U9cmVzWydyb3dzJ11bMF0sCisgICAgICAgICAgICAgICAgc3RhdHVz PTIwMAorICAgICAgICAgICAgICAgICkKKworICAgIEBjaGVja19wcmVjb25k aXRpb24KKyAgICBkZWYgY3JlYXRlKHNlbGYsIGdpZCwgc2lkLCBkaWQpOgor ICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGNyZWF0 ZXMgbmV3IHRoZSBjYXN0IG9iamVjdAorICAgICAgICAiIiIKKworICAgICAg ICByZXF1aXJlZF9hcmdzID0gWworICAgICAgICAgICAgJ3NyY3R5cCcsCisg ICAgICAgICAgICAndHJndHlwJworICAgICAgICBdCisKKyAgICAgICAgZGF0 YSA9IHJlcXVlc3QuZm9ybSBpZiByZXF1ZXN0LmZvcm0gZWxzZSBqc29uLmxv YWRzKHJlcXVlc3QuZGF0YS5kZWNvZGUoKSkKKyAgICAgICAgZm9yIGFyZyBp biByZXF1aXJlZF9hcmdzOgorICAgICAgICAgICAgaWYgYXJnIG5vdCBpbiBk YXRhOgorICAgICAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9u c2UoCisgICAgICAgICAgICAgICAgICAgIHN0YXR1cz00MTAsCisgICAgICAg ICAgICAgICAgICAgIHN1Y2Nlc3M9MCwKKyAgICAgICAgICAgICAgICAgICAg ZXJyb3Jtc2c9Z2V0dGV4dCgKKyAgICAgICAgICAgICAgICAgICAgICAgICJD b3VsZG4ndCBmaW5kIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgKCVzKS4iICUg YXJnCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICAp CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1w bGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnY3JlYXRlLnNx bCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRh PWRhdGEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorICAg ICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2Fs YXIoU1FMKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAg ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn PXJlcykKKworICAgICAgICAgICAgIyB3ZSBuZWVkIG9pZCB0byB0byBhZGQg b2JqZWN0IGluIHRyZWUgYXQgYnJvd3NlciwgYmVsb3cgc3FsIHdpbGwgZ2l2 ZXMgdGhlIHNhbWUKKyAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0 ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnZ3JhbnQuc3FsJ10p LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY3R5cD1k YXRhLnNyY3R5cCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0cmd0eXA9ZGF0YS50cmd0eXAsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZGF0bGFzdHN5c29pZD1zZWxmLm1hbmFnZXIuZGJfaW5m b1tkaWRdWydkYXRsYXN0c3lzb2lkJ10KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKQorICAgICAgICAgICAgc3RhdHVzLCBjaWQgPSBzZWxm LmNvbm4uZXhlY3V0ZV9zY2FsYXIoU1FMKQorICAgICAgICAgICAgaWYgbm90 IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2Vy dmVyX2Vycm9yKGVycm9ybXNnPWNpZCkKKworICAgICAgICAgICAgcmV0dXJu IGpzb25pZnkoCisgICAgICAgICAgICAgICAgbm9kZT1zZWxmLmJsdWVwcmlu dC5nZW5lcmF0ZV9icm93c2VyX25vZGUoCisgICAgICAgICAgICAgICAgICAg IGNpZCwKKyAgICAgICAgICAgICAgICAgICAgZGF0YVsnbmFtZSddLAorICAg ICAgICAgICAgICAgICAgICBpY29uPSJwZy1pY29uLWNhc3QiCisgICAgICAg ICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICBleGNlcHQgRXhj ZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2Vy dmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworCisgICAgQGNoZWNrX3By ZWNvbmRpdGlvbgorICAgIGRlZiB1cGRhdGUoc2VsZiwgZ2lkLCBzaWQsIGRp ZCwgY2lkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24g d2lsbCB1cGRhdGUgY2FzdCBvYmplY3QKKyAgICAgICAgIiIiCisgICAgICAg IGRhdGEgPSByZXF1ZXN0LmZvcm0gaWYgcmVxdWVzdC5mb3JtIGVsc2UganNv bi5sb2FkcyhyZXF1ZXN0LmRhdGEuZGVjb2RlKCkpCisgICAgICAgIFNRTCA9 IHNlbGYuZ2V0U1FMKGdpZCwgc2lkLCBkYXRhLCBjaWQpCisgICAgICAgIHRy eToKKyAgICAgICAgICAgIGlmIFNRTCBhbmQgU1FMLnN0cmlwKCdcbicpIGFu ZCBTUUwuc3RyaXAoJyAnKToKKyAgICAgICAgICAgICAgICBzdGF0dXMsIHJl cyA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihTUUwpCisgICAgICAgICAg ICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICAgICAgcmV0 dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAg ICAgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAg ICAgICAgICAgICAgICAgICBzdWNjZXNzPTEsCisgICAgICAgICAgICAgICAg ICAgIGluZm89IkNhc3QgdXBkYXRlZCIsCisgICAgICAgICAgICAgICAgICAg IGRhdGE9eworICAgICAgICAgICAgICAgICAgICAgICAgJ2lkJzogY2lkLAor ICAgICAgICAgICAgICAgICAgICAgICAgJ3NpZCc6IHNpZCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICdnaWQnOiBnaWQsCisgICAgICAgICAgICAgICAg ICAgICAgICAnZGlkJzogZGlkCisgICAgICAgICAgICAgICAgICAgIH0KKyAg ICAgICAgICAgICAgICApCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAg ICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAg ICAgICAgICAgIHN1Y2Nlc3M9MSwKKyAgICAgICAgICAgICAgICAgICAgaW5m bz0iTm90aGluZyB0byB1cGRhdGUiLAorICAgICAgICAgICAgICAgICAgICBk YXRhPXsKKyAgICAgICAgICAgICAgICAgICAgICAgICdpZCc6IGNpZCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICdzaWQnOiBzaWQsCisgICAgICAgICAg ICAgICAgICAgICAgICAnZ2lkJzogZ2lkLAorICAgICAgICAgICAgICAgICAg ICAgICAgJ2RpZCc6IGRpZAorICAgICAgICAgICAgICAgICAgICB9CisgICAg ICAgICAgICAgICAgKQorCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMg ZToKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3Io ZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgor ICAgIGRlZiBkZWxldGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgY2lkKToKKyAg ICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBkcm9wIHRo ZSBjYXN0IG9iamVjdAorICAgICAgICAiIiIKKyAgICAgICAgIyBCZWxvdyB3 aWxsIGRlY2lkZSBpZiBpdCdzIHNpbXBsZSBkcm9wIG9yIGRyb3Agd2l0aCBj YXNjYWRlIGNhbGwKKyAgICAgICAgaWYgc2VsZi5jbWQgPT0gJ2RlbGV0ZSc6 CisgICAgICAgICAgICAjIFRoaXMgaXMgYSBjYXNjYWRlIG9wZXJhdGlvbgor ICAgICAgICAgICAgY2FzY2FkZSA9IFRydWUKKyAgICAgICAgZWxzZToKKyAg ICAgICAgICAgIGNhc2NhZGUgPSBGYWxzZQorCisgICAgICAgIHRyeToKKyAg ICAgICAgICAgICMgR2V0IG5hbWUgZm9yIGNhc3QgZnJvbSBjaWQgYW5kIGRy b3AgaXQKKyAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIu am9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnZGVsZXRlLnNxbCddKSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaWQ9Y2lkLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2NhZGU9Y2FzY2Fk ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAg ICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihT UUwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAg ICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVz KQorCisgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAor ICAgICAgICAgICAgICAgIHN1Y2Nlc3M9MSwKKyAgICAgICAgICAgICAgICBp bmZvPWdldHRleHQoIkNhc3QgZHJvcHBlZCIpLAorICAgICAgICAgICAgICAg IGRhdGE9eworICAgICAgICAgICAgICAgICAgICAnaWQnOiBjaWQsCisgICAg ICAgICAgICAgICAgICAgICdzaWQnOiBzaWQsCisgICAgICAgICAgICAgICAg ICAgICdnaWQnOiBnaWQsCisgICAgICAgICAgICAgICAgICAgICdkaWQnOiBk aWQKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICApCisKKyAgICAg ICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgcmV0dXJu IGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1zdHIoZSkpCisKKyAg ICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIG1zcWwoc2VsZiwgZ2lk LCBzaWQsIGRpZCwgY2lkPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAg IFRoaXMgZnVuY3Rpb24gcmV0dXJucyBtb2RpZmllZCBTUUwKKyAgICAgICAg IiIiCisgICAgICAgIGRhdGEgPSByZXF1ZXN0LmFyZ3MKKyAgICAgICAgU1FM ID0gc2VsZi5nZXRTUUwoZ2lkLCBzaWQsIGRpZCwgZGF0YSwgY2lkKQorICAg ICAgICBpZiBpc2luc3RhbmNlKFNRTCwgc3RyKSBhbmQgU1FMIGFuZCBTUUwu c3RyaXAoJ1xuJykgYW5kIFNRTC5zdHJpcCgnICcpOgorICAgICAgICAgICAg cmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICAg ICAgZGF0YT1TUUwsCisgICAgICAgICAgICAgICAgICAgIHN0YXR1cz0yMDAK KyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICBlbHNlOgorICAgICAg ICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAg ICAgICAgICAgZGF0YT0iLS1tb2RpZmllZCBTUUwiLAorICAgICAgICAgICAg ICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICAgICAgICAgICAgICkKKwor ICAgIGRlZiBnZXRTUUwoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgZGF0YSwgY2lk PU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3 aWxsIHJldHVybiBTUUwgZm9yIG1vZGVsIGRhdGEKKyAgICAgICAgIiIiCisg ICAgICAgIHRyeToKKyAgICAgICAgICAgIGlmIGNpZCBpcyBub3QgTm9uZToK KyAgICAgICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpv aW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3Byb3BlcnRpZXMuc3FsJ10pLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaWQ9Y2lk LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRs YXN0c3lzb2lkPXNlbGYubWFuYWdlci5kYl9pbmZvW2RpZF1bJ2RhdGxhc3Rz eXNvaWQnXSkKKyAgICAgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYu Y29ubi5leGVjdXRlX2RpY3QoU1FMKQorCisgICAgICAgICAgICAgICAgaWYg bm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGludGVy bmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAg ICAgICBvbGRfZGF0YSA9IHJlc1sncm93cyddWzBdCisgICAgICAgICAgICAg ICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgICAgICAg ICAiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAndXBkYXRlLnNxbCdd KSwKKyAgICAgICAgICAgICAgICAgICAgZGF0YT1kYXRhLCBvX2RhdGE9b2xk X2RhdGEKKyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgZWxz ZToKKyAgICAgICAgICAgICAgICBpZiAnc3JjdHlwJyBpbiBkYXRhIGFuZCAn dHJndHlwJyBpbiBkYXRhOgorICAgICAgICAgICAgICAgICAgICBTUUwgPSBy ZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwg J2NyZWF0ZS5zcWwnXSksIGRhdGE9ZGF0YSkKKyAgICAgICAgICAgICAgICAg ICAgU1FMICs9ICJcbiIKKyAgICAgICAgICAgICAgICAgICAgU1FMICs9IHJl bmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAn Z3JhbnQuc3FsJ10pLCBkYXRhPWRhdGEpCisgICAgICAgICAgICAgICAgZWxz ZToKKyAgICAgICAgICAgICAgICAgICAgU1FMID0gIi0tIGluY29tcGxldGUg ZGVmaW5pdGlvbiIKKyAgICAgICAgICAgIHJldHVybiBTUUwKKworICAgICAg ICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4g aW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworICAg IEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZ2V0X2Z1bmN0aW9ucyhz ZWxmLCBnaWQsIHNpZCwgZGlkLCBjaWQ9Tm9uZSk6CisgICAgICAgIHJlcz1b XQorICAgICAgICBkYXRhID0gcmVxdWVzdC5mb3JtIGlmIHJlcXVlc3QuZm9y bSBlbHNlIGpzb24ubG9hZHMocmVxdWVzdC5kYXRhLmRlY29kZSgpKQorICAg ICAgICAjc3JjT2lkID0gZGF0YVsnc3JjdHlwJ10uc3BsaXQoIjoiKVswXQor ICAgICAgICAjdHJnT2lkID0gZGF0YVsndHJndHlwJ10uc3BsaXQoIjoiKVsw XQorICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3Nl bGYudGVtcGxhdGVfcGF0aCwgJ2Z1bmN0aW9ucy5zcWwnXSksCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY3R5cD1kYXRhWydz cmN0eXAnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdHJndHlwPWRhdGFbJ3RyZ3R5cCddKQorICAgICAgICBzdGF0dXMsIHJz ZXQgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKworICAgICAgICBp ZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3Nl cnZlcl9lcnJvcihlcnJvcm1zZz1yc2V0KQorCisgICAgICAgICMgVE9ETzog YWRkIHNjaGVtYXByZWZpeCB0byBwcm9uYW1lIGJlZm9yZSBhZGRpbmcgaXQg dG8gdmFsdWUgaW4gcmVzCisgICAgICAgIGZvciByb3cgaW4gcnNldFsncm93 cyddOgorICAgICAgICAgICAgcmVzLmFwcGVuZCh7J2xhYmVsJzogcm93Wydw cm9uYW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAgICd2YWx1ZSc6IHJv d1sncHJvbmFtZSddfSkKKyAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNw b25zZSgKKyAgICAgICAgICAgICAgICAgICAgZGF0YT1yZXMsCisgICAgICAg ICAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgICAgICAgICAgICAg KQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBnZXRfc291 cmNlVGFyZ2V0X3R5cGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgY2lkPU5vbmUp OgorICAgICAgICByZXMgPSBbXQorICAgICAgICBTUUwgPSByZW5kZXJfdGVt cGxhdGUoCisgICAgICAgICAgICAiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9w YXRoLCAnZ2V0c3JjYW5kdHJndHR5cGUuc3FsJ10pLAorICAgICAgICAgICAg Y2lkPWNpZAorICAgICAgICAgICAgKQorICAgICAgICBzdGF0dXMsIHJzZXQg PSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKworICAgICAgICBpZiBu b3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZl cl9lcnJvcihlcnJvcm1zZz1yc2V0KQorCisgICAgICAgIHJlcyA9IFt7J2xh YmVsJzogJycsICd2YWx1ZSc6ICcnfV0KKyAgICAgICAgZm9yIHJvdyBpbiBy c2V0Wydyb3dzJ106CisgICAgICAgICAgICAjIFRPRE86IEZvbGxvdyBkbGdU eXBlUHJvcGVydHk6OkZpbGxEYXRhVHlwZSgpIGZ1bmN0aW9uIGJlZm9yZSBh ZGRpbmcgdHlwZW5hbWUgdG8gcmVzCisgICAgICAgICAgICByZXMuYXBwZW5k KHsnbGFiZWwnOiByb3dbJ3R5cG5hbWUnXSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICd2YWx1ZSc6IHJvd1sndHlwbmFtZSddfSkKKworCisgICAgICAg IHByaW50KHJlcykKKyAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25z ZSgKKyAgICAgICAgICAgIGRhdGE9cmVzLAorICAgICAgICAgICAgc3RhdHVz PTIwMAorICAgICAgICAgICAgKQorCisKKyAgICAiIiJkZWYgZ2V0RGF0YVR5 cGUoc2VsZiwgcmVzdWx0Um93LCBudW1kaW1zPTAsIHR5cG1vZCA9IC0xKToK KworICAgICAgICBuc3BuYW1lID0gcmVzdWx0Um93Wyduc3BuYW1lJ10KKyAg ICAgICAgdHlwbmFtZSA9IHJlc3VsdFJvd1sndHlwbmFtZSddCisgICAgICAg IGlzZHVwID0gcmVzdWx0Um93Wydpc2R1cCddCisgICAgICAgIG5hbWUgPSAi IgorICAgICAgICBhcnJheSA9ICIiCisgICAgICAgIGxlbmd0aCA9ICIiCisg ICAgICAgIHByZWMgPSAwCisgICAgICAgIGxlbiA9IDAKKyAgICAgICAgaWYg c3RyKG5zcG5hbWUgKyAnXCIuJykgaW4gdHlwbmFtZToKKyAgICAgICAgICAg IG5hbWUgPSB0eXBuYW1lW25zcG5hbWUubGVuKCkgKyAzXSAgICAjICIrMiIg YmVjYXVzZSBvZiB0aGUgdHdvIGRvdWJsZSBxdW90ZXMKKyAgICAgICAgZWxp ZiBzdHIobnNwbmFtZSArICIuIikgaW4gdHlwbmFtZToKKyAgICAgICAgICAg IG5hbWUgPSB0eXBuYW1lW25zcG5hbWUubGVuKCkgKyAxXQorICAgICAgICBl bHNlOgorICAgICAgICAgICAgbmFtZSA9IHR5cG5hbWUKKworICAgICAgICBp ZiBuYW1lLnN0YXJ0c3dpdGgoIl8iKToKKyAgICAgICAgICAgIGlmIG5vdCBu dW1kaW1zOgorICAgICAgICAgICAgICAgIG51bWRpbXMgPSAxCisgICAgICAg ICAgICBuYW1lID0gbmFtZVsxXQorICAgICAgICBpZiBuYW1lWy0yOl0gPT0g c3RyKCJbXSIpOgorICAgICAgICAgICAgaWYgbm90IG51bWRpbXM6CisgICAg ICAgICAgICAgICAgbnVtZGltcyA9IDEKKyAgICAgICAgICAgIG5hbWUgPSBu YW1lW25hbWUubGVuKCkgLSAyXQorCisgICAgICAgIGlmIG5hbWUuc3RhcnRz d2l0aCgnXCInKSBhbmQgbmFtZS5lbmRzd2l0aCgnXCInKToKKyAgICAgICAg ICAgIG5hbWUgPSBuYW1lWzEsIG5hbWUubGVuKCkgLSAyXQorCisgICAgICAg IGlmIG51bWRpbXMgPiAwOgorICAgICAgICAgICAgd2hpbGUgbnVtZGltcy0t IDoKKyAgICAgICAgICAgICAgICBhcnJheSArPSBzdHIoIltdIikKKworICAg ICAgICBpZiB0eXBtb2QgIT0gLTE6CisgICAgICAgICAgICBsZW5ndGggPSBz dHIoIigiKQorICAgICAgICAgICAgaWYgbmFtZSA9PSBzdHIoIm51bWVyaWMi KToKKyAgICAgICAgICAgICAgICBsZW4gPSAodHlwbW9kIC0gNEwpID4+IDE2 TAorICAgICAgICAgICAgICAgIHByZWMgPSAodHlwbW9kIC0gNCkgJiAweGZm ZmYKKyAgICAgICAgICAgICAgICBsZW5ndGggKz0gc3RyKGxlbikKKyAgICAg ICAgICAgICAgICBpZiBwcmVjOgorICAgICAgICAgICAgICAgICAgICBsZW5n dGggKz0gc3RyKCIsIikgKyBzdHIocHJlYykKKworICAgICAgICAgICAgZWxp ZiBuYW1lID09IHN0cigidGltZSIpIG9yIG5hbWUgPT0gc3RyKCJ0aW1ldHoi KSBcCisgICAgICAgICAgICBvciBuYW1lID09IHN0cigidGltZSB3aXRob3V0 IHRpbWUgem9uZSIpIG9yIG5hbWUgPT0gc3RyKCJ0aW1lIHdpdGggdGltZSB6 b25lIikgXAorICAgICAgICAgICAgb3IgbmFtZSA9PSBzdHIoInRpbWVzdGFt cCIpIG9yIG5hbWUgPT0gc3RyKCJ0aW1lc3RhbXB0eiIpIFwKKyAgICAgICAg ICAgIG9yIG5hbWUgPT0gc3RyKCJ0aW1lc3RhbXAgd2l0aG91dCB0aW1lIHpv bmUiKSBvciBuYW1lID09IHN0cigidGltZXN0YW1wIHdpdGggdGltZSB6b25l IikgXAorICAgICAgICAgICAgb3IgbmFtZSA9PSBzdHIoImJpdCIpIG9yIG5h bWUgPT0gc3RyKCJiaXQgdmFyeWluZyIpIG9yIG5hbWUgPT0gc3RyKCJ2YXJi aXQiKToKKyAgICAgICAgICAgICAgICBwcmVjID0gMAorICAgICAgICAgICAg ICAgIGxlbiA9IHR5cG1vZAorICAgICAgICAgICAgICAgIGxlbmd0aCArPSBz dHIobGVuKQorCisgICAgICAgICAgICBlbGlmIG5hbWUgPT0gc3RyKCJpbnRl cnZhbCIpOgorICAgICAgICAgICAgICAgIHByZWMgPSAwCisgICAgICAgICAg ICAgICAgbGVuID0gKHR5cG1vZCAmIDB4ZmZmZikKKyAgICAgICAgICAgICAg ICBsZW5ndGggKz0gc3RyKGxlbikKKworICAgICAgICAgICAgZWxpZiBuYW1l ID09IHN0cigiZGF0ZSIpOgorICAgICAgICAgICAgICAgIGxlbiA9IHByZWMg PSAwCisgICAgICAgICAgICAgICAgbGVuZ3RoID0gc3RyKCIiKSAjQ2xlYXIg TGVuZ3RoCisKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAg cHJlYyA9IDAKKyAgICAgICAgICAgICAgICBsZW4gPSB0eXBtb2QgLSA0TAor ICAgICAgICAgICAgICAgIGxlbmd0aCArPSBzdHIobGVuKQorCisgICAgICAg ICAgICBpZiBsZW5ndGgubGVuKCkgPiAwOgorICAgICAgICAgICAgICAgIGxl bmd0aCArPSBzdHIoIikiKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAg bGVuID0gcHJlYyA9IDAiIiIKK0Nhc3RWaWV3LnJlZ2lzdGVyX25vZGVfdmll dyhibHVlcHJpbnQpClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL2Nhc3RzL3N0YXRpYy9pbWcvY2FzdC1zbS5wbmcg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvY2FzdHMvc3RhdGljL2ltZy9jYXN0LXNtLnBuZwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwLi41MmI3NzU1MzhkMGZhMjRlMjgwZDU5NWI4ZDA4 ZWNjYWQ4NjhmYzlmCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAzODUKemNt ZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF4wd0IhNjM/d3lsYEdiS31ZPUJSUUUw RXMzd3N2V3NPQDg5a05kSH1QCnpyKFpqPUpeayl8aVRiP2lyQXotRy0mSjwr ZiNSeEZ8TSN2YmM9JCt2PEhyOV9wNCN1KV81Yk1oZ3kkfjs0PEcqagp6PlEm MHd2O1dffEV4bVRffEErVCZfd1dEel5sOT81WGE3Jl8/V3JyNnl8cFNSM31e dmtOc3dQS2dUdTJNWCtSRVYKemZrJEw5a29FdiR4MEJnK0t0e0J1aShgbnk8 Kjl3QSNUKk8tb1ZEMiZVWVdoPmAyWUg0PiRhNUx4alQzQSQ8Q25yCno5dXZJ OEQqS3cydmFEWlZgbm4oXnAoanpnP24zMl8pNTRNckojJDxaI2hyPDxTOyhm bmM1N2tNO15MMSZaKjFhRAp6YF5EKTBLaEFyPWt2Vj9iWVgqQ3VITDR9OTVo Vz4hQzg8YClNWDVsRiFOfGJTSy1iVm4qVDY4dSRpVHxQKnZpQzIKeityWlN5 emAkYXJzdkxAai0yOVp4dmBVQnUxNTI8NWtaTE9mR2wrJiQoP2l6KUg4Nk8o YG5qeGdOQHhOQXhyZG4mCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvY2FzdHMvc3RhdGljL2ltZy9jYXN0LnBuZyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9jYXN0cy9zdGF0aWMvaW1nL2Nhc3QucG5nCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAuLjJiZTdmMzc0MmE3NjBmYWE3NzA5MDUyNjY5ZjQ0NGJhODk0 OWMzMzAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDQyNgp6Y21lQVNATj8o b2xIeWB1VkJxIWlhMHZwXjB3QiE2Mz93eWxgR2JLfWEpM3tXRTBBOD1YTElZ fmBiaHM+YkVqWHMKemR0Yyg8IylfVnteR2xjaEtlZX4jLVVHUTZFQkBicXNJ aEx7fEEmdV9IKmZ5YDxmOzl4VUhfandfYz9nKnxCSUpWCnpDcjxvLXtXe35x aDV2OGdtUmBIfHxOWi0+ZC13aS17TWheV0AmQ2BDcm9ETGFmNnc7RShReyhz Znp+alYxbztJcwp6STZTK04ySU8hU2N0alFoWCU4QFZKREZfPFdZbEBPSUVG fUUmT0x1eXNMNFFwYE5GWlF5d2pER0l5YHAlXyNkQm4KelEwKGBFTzdDVUhY UWUqTmA/KT10XlE3RDh3OH05VipNJk9YbVljU1FNVFR4WGE1ZVpec1lielZq b0h0bEFNNlg+Cnp3KVZ0NztYVWh1P2FDZzgtcSlUI2Rqc3A/MXZRbjAoI0ha eyZhdks+Rzs3TXxLZXppKjFKfDlAd01AQThHSXU1YQp6N2tAU3ZLQSVsTGZp NilrYWc4V1JOaTBkVk4tanpUUVZkMjBoNmNLWk0hRSl1QXd+dlBDZE83S0Nm V3czUnQ1JFoKc0dnYWtLSDAwKXxXVHNVQEcjRlRkSEdvdUc4Skl5ZG9TR2lH MkI/OS0pNzgmcW9sYDsrMDZ6QDNoeVZacAoKbGl0ZXJhbCAwCkhjbVY/ZDAw MDAxCgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2Nhc3RzL3N0YXRpYy9pbWcvY29s bC1jYXN0LnBuZyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9jYXN0cy9zdGF0aWMvaW1nL2NvbGwtY2Fz dC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDllYjY1YWYwMmM2NmJk NjRhYjM0MDVjNTkyZWZlNGQ5MGQ0MWM5OApHSVQgYmluYXJ5IHBhdGNoCmxp dGVyYWwgNDAyCnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEwdnBeMHdCITYzP3d5 bGBHYkt9UkRlJjJFMDh8NXdgWGFlTzxscTROZEh9UAp6cihlNSFVIXAjKmRn Oz50X1p9IXRaNEFwI29jaSNRez1TWG9Qb0NRRS0oPFVMKSZHcWZ8TEB4TXxM RkZGPVB2PmUKekFPOFIwZWNQKjdEUUQwQXxNWTN7K3FiM0h1S21BJXxOcGFS fDFaaFJqMGMqfFNRNndIJTs1MHNNakRYQVM+Tz5fCno0NVU1NCp6SUp0OWd2 YWw+RWFrN2FrPSNUWk42cCYwaFNBP3lHcCY1WDZRJWhlKjBlXlRvWlpXTlRz citiKXQpbAp6ajklNExxNHFaT3dmRkRjemN7T3E8NilybWtzRUombkVpT0Z3 QHkzRFZ6KlpPPTgrVEFaPUpRQyZDaD1JbEolcTAKem4jYSVkJE9uNX1lUSFf e2BPMDwxUGtXc15gZylPISFKQW0tdXs7WGc0enlhZSM1Sk5NQzl4I2NEIUN7 WE5IR3swCno3I2lwcjh0RURzaDhQKUduSFhEe219bmNBU3tXRXYldjY7XyhV Njs7bDleVHMoT19UKykmTnAlV25jITthQjZ6IQpROGxWT1NQZ2cmZWJ4c0xR MDlYZn5mZEJ2aQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL2Nhc3RzL3RlbXBsYXRlcy9jYXN0L2pzL2Nhc3RzLmpzIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL2Nhc3RzL3RlbXBsYXRlcy9jYXN0L2pzL2Nhc3RzLmpzCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUwMWI4NzgKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvY2FzdHMvdGVtcGxhdGVzL2Nhc3QvanMv Y2FzdHMuanMKQEAgLTAsMCArMSwxODMgQEAKK2RlZmluZSgKKyAgICAgICAg WydqcXVlcnknLCAndW5kZXJzY29yZScsICd1bmRlcnNjb3JlLnN0cmluZycs ICdwZ2FkbWluJywgJ3BnYWRtaW4uYnJvd3NlcicsICdhbGVydGlmeScsICdw Z2FkbWluLmJyb3dzZXIuY29sbGVjdGlvbiddLAorZnVuY3Rpb24oJCwgXywg UywgcGdBZG1pbiwgcGdCcm93c2VyLCBhbGVydGlmeSkgeworCisgICAgaWYg KCFwZ0Jyb3dzZXIuTm9kZXNbJ2NvbGwtY2FzdCddKSB7CisgICAgICAgIHZh ciBjYXN0cyA9IHBnQWRtaW4uQnJvd3Nlci5Ob2Rlc1snY29sbC1jYXN0J10g PQorICAgICAgICBwZ0FkbWluLkJyb3dzZXIuQ29sbGVjdGlvbi5leHRlbmQo eworICAgICAgICAgICAgbm9kZTogJ2Nhc3QnLAorICAgICAgICAgICAgbGFi ZWw6ICd7eyBfKCdDYXN0cycpIH19JywKKyAgICAgICAgICAgIHR5cGU6ICdj b2xsLWNhc3QnCisgICAgICAgIH0pOworICAgIH07CisKKyAgICBpZiAoIXBn QnJvd3Nlci5Ob2Rlc1snY2FzdCddKSB7CisgICAgcGdBZG1pbi5Ccm93c2Vy Lk5vZGVzWydjYXN0J10gPSBwZ0FkbWluLkJyb3dzZXIuTm9kZS5leHRlbmQo eworICAgICAgcGFyZW50X3R5cGU6ICdkYXRhYmFzZScsCisgICAgICB0eXBl OiAnY2FzdCcsCisgICAgICBsYWJlbDogJ3t7IF8oJ0Nhc3QnKSB9fScsCisg ICAgICBoYXNTUUw6IHRydWUsCisgICAgICBJbml0OiBmdW5jdGlvbigpIHsK KyAgICAgICAgLyogQXZvaWQgbXVsaXRwbGUgcmVnaXN0cmF0aW9uIG9mIG1l bnVzICovCisgICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKQorICAgICAg ICAgICAgcmV0dXJuOworCisgICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0 cnVlOworCisgICAgICAgIHBnQnJvd3Nlci5hZGRfbWVudXMoW3sKKyAgICAg ICAgICBuYW1lOiAnY3JlYXRlX2Nhc3Rfb25fZGF0YWJhc2UnLCBub2RlOiAn ZGF0YWJhc2UnLCBtb2R1bGU6IHRoaXMsCisgICAgICAgICAgYXBwbGllczog WydvYmplY3QnLCAnY29udGV4dCddLCBjYWxsYmFjazogJ3Nob3dfb2JqX3By b3BlcnRpZXMnLAorICAgICAgICAgIGNhdGVnb3J5OiAnY3JlYXRlJywgcHJp b3JpdHk6IDQsIGxhYmVsOiAne3sgXygnQ2FzdC4uLicpIH19JywKKyAgICAg ICAgICBpY29uOiAnd2NUYWJJY29uIGljb24tY2FzdCcsIGRhdGE6IHthY3Rp b246ICdjcmVhdGUnfQorICAgICAgICB9LHsKKyAgICAgICAgICBuYW1lOiAn Y3JlYXRlX2Nhc3Rfb25fY29sbCcsIG5vZGU6ICdjb2xsLWNhc3QnLCBtb2R1 bGU6IHRoaXMsCisgICAgICAgICAgYXBwbGllczogWydvYmplY3QnLCAnY29u dGV4dCddLCBjYWxsYmFjazogJ3Nob3dfb2JqX3Byb3BlcnRpZXMnLAorICAg ICAgICAgIGNhdGVnb3J5OiAnY3JlYXRlJywgcHJpb3JpdHk6IDQsIGxhYmVs OiAne3sgXygnQ2FzdC4uLicpIH19JywKKyAgICAgICAgICBpY29uOiAnd2NU YWJJY29uIGljb24tY2FzdCcsIGRhdGE6IHthY3Rpb246ICdjcmVhdGUnfQor ICAgICAgICB9LHsKKyAgICAgICAgICBuYW1lOiAnY3JlYXRlX2Nhc3QnLCBu b2RlOiAnY2FzdCcsIG1vZHVsZTogdGhpcywKKyAgICAgICAgICBhcHBsaWVz OiBbJ29iamVjdCcsICdjb250ZXh0J10sIGNhbGxiYWNrOiAnc2hvd19vYmpf cHJvcGVydGllcycsCisgICAgICAgICAgY2F0ZWdvcnk6ICdjcmVhdGUnLCBw cmlvcml0eTogNCwgbGFiZWw6ICd7eyBfKCdDYXN0Li4uJykgfX0nLAorICAg ICAgICAgIGljb246ICd3Y1RhYkljb24gaWNvbi1jYXN0JywgZGF0YToge2Fj dGlvbjogJ2NyZWF0ZSd9CisgICAgICAgIH0seworICAgICAgICAgIG5hbWU6 ICdkcm9wX2Nhc3QnLCBub2RlOiAnY2FzdCcsIG1vZHVsZTogdGhpcywKKyAg ICAgICAgICBhcHBsaWVzOiBbJ29iamVjdCcsICdjb250ZXh0J10sIGNhbGxi YWNrOiAnZGVsZXRlX29iaicsCisgICAgICAgICAgY2F0ZWdvcnk6ICdkcm9w JywgcHJpb3JpdHk6IDQsIGxhYmVsOiAne3sgXygnRGVsZXRlL0Ryb3AgQ2Fz dC4uLicpIH19JywKKyAgICAgICAgICBpY29uOiAnZmEgZmEtdGhyYXNoJwor ICAgICAgICB9LHsKKyAgICAgICAgICBuYW1lOiAnZHJvcF9jYXNjYWRlZF9j YXN0Jywgbm9kZTogJ2Nhc3QnLCBtb2R1bGU6IHRoaXMsCisgICAgICAgICAg YXBwbGllczogWydvYmplY3QnLCAnY29udGV4dCddLCBjYWxsYmFjazogJ2Rl bGV0ZV9vYmpfY2FzY2FkZScsCisgICAgICAgICAgY2F0ZWdvcnk6ICdkcm9w JywgcHJpb3JpdHk6IDQsIGxhYmVsOiAne3sgXygnRHJvcCBDYXNjYWRlZC4u LicpIH19JywKKyAgICAgICAgICBpY29uOiAnZmEgZmEtdGhyYXNoJworICAg ICAgICB9XSk7CisKKyAgICAgIH0sCisgICAgICBtb2RlbDogcGdBZG1pbi5C cm93c2VyLk5vZGUuTW9kZWwuZXh0ZW5kKHsKKyAgICAgICAgZGVmYXVsdHM6 IHsKKyAgICAgICAgICBuYW1lOiB1bmRlZmluZWQsCisgICAgICAgICAgY29t bWVudDogdW5kZWZpbmVkLAorICAgICAgICAgIGVuY29kaW5nOiAnVVRGOCcs CisgICAgICAgICAgc3JjdHlwOiB1bmRlZmluZWQsCisgICAgICAgICAgdHJn dHlwOiB1bmRlZmluZWQsCisgICAgICAgICAgcHJvbmFtZTogdW5kZWZpbmVk LAorICAgICAgICAgIGNhc3Rjb250ZXh0OiB1bmRlZmluZWQsCisgICAgICAg ICAgc3lzY2FzdDogdW5kZWZpbmVkLAorICAgICAgICAgIGRlc2NyaXB0aW9u OiB1bmRlZmluZWQKKyAgICAgICAgfSwKKyAgICAgICAgc2NoZW1hOiBbewor ICAgICAgICAgIGlkOiAnbmFtZScsIGxhYmVsOiAne3sgXygnTmFtZScpIH19 JywgY2VsbDogJ3N0cmluZycsIGdyb3VwOiAne3sgXygnRGVmaW5pdGlvbicp IH19JywKKyAgICAgICAgICBlZGl0YWJsZTogZmFsc2UsIHR5cGU6ICd0ZXh0 JywgZGlzYWJsZWQ6IHRydWUKKyAgICAgICAgIH0seworICAgICAgICAgIGlk OiAnb2lkJywgbGFiZWw6J3t7IF8oJ09pZCcpIH19JywgY2VsbDogJ3N0cmlu ZycsIGdyb3VwOiAne3sgXygnRGVmaW5pdGlvbicpIH19JywKKyAgICAgICAg ICBlZGl0YWJsZTogZmFsc2UsIHR5cGU6ICd0ZXh0JywgZGlzYWJsZWQ6IHRy dWUsCisgICAgICAgIH0seworICAgICAgICAgIGlkOiAnc3JjdHlwJywgbGFi ZWw6J3t7IF8oJ1NvdXJjZSB0eXBlJykgfX0nLCB1cmw6ICdnZXRfdHlwZScs CisgICAgICAgICAgdHlwZTogJ3RleHQnLCBncm91cDogJ0RlZmluaXRpb24n LCBkaXNhYmxlZDogZnVuY3Rpb24obSkgeworICAgICAgICAgICAgcmV0dXJu ICFtLmlzTmV3KCkKKyAgICAgICAgICB9LAorICAgICAgICAgIHRyYW5zZm9y bTogZnVuY3Rpb24ocm93cykgeworICAgICAgICAgICAgXy5lYWNoKHJvd3Ms IGZ1bmN0aW9uKHIpIHsKKyAgICAgICAgICAgICAgclsnaW1hZ2UnXSA9ICdp Y29uLWNhc3QnOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICByZXR1 cm4gcm93czsKKyAgICAgICAgICB9LAorICAgICAgICAgICAgY29udHJvbDog QmFja2Zvcm0uTm9kZUFqYXhPcHRpb25zQ29udHJvbC5leHRlbmQoeworICAg ICAgICAgICAgICAgIG9uQ2hhbmdlOiBmdW5jdGlvbigpIHsKKyAgICAgICAg ICAgICAgICBjb25zb2xlLmxvZyh0aGlzLiRlbC5maW5kKCJzZWxlY3QiKS52 YWwoKSk7CisgICAgICAgICAgICAgICAgQmFja2Zvcm0uTm9kZUFqYXhPcHRp b25zQ29udHJvbC5wcm90b3R5cGUub25DaGFuZ2UuYXBwbHkodGhpcywgYXJn dW1lbnRzKTsKKyAgICAgICAgICAgICAgICB2YXIgc3JjVHlwZSA9IHRoaXMu bW9kZWwuZ2V0KCdzcmN0eXAnKTsKKyAgICAgICAgICAgICAgICB2YXIgdHJn dHlwZSA9IHRoaXMubW9kZWwuZ2V0KCd0cmd0eXAnKTsKKyAgICAgICAgICAg ICAgICBpZihzcmNUeXBlICE9IHVuZGVmaW5lZCAmJiBzcmNUeXBlICE9ICcn ICYmIHRyZ3R5cGUgIT0gdW5kZWZpbmVkICYmIHRyZ3R5cGUgIT0gJycpCisg ICAgICAgICAgICAgICAgICAgdGhpcy5tb2RlbC5zZXQoIm5hbWUiLCBzcmNU eXBlKyItPiIrdHJndHlwZSk7CisgICAgICAgICAgICAgICAgZWxzZQorICAg ICAgICAgICAgICAgICAgIHRoaXMubW9kZWwudW5zZXQoIm5hbWUiKTsKKyAg ICAgICAgICAgIH0KKyAgICAgICAgICB9KQorICAgICAgICB9LHsKKyAgICAg ICAgICBpZDogJ3RyZ3R5cCcsIGxhYmVsOid7eyBfKCdUYXJnZXQgdHlwZScp IH19JywgdXJsOiAnZ2V0X3R5cGUnLAorICAgICAgICAgIHR5cGU6ICd0ZXh0 JywgZ3JvdXA6ICdEZWZpbml0aW9uJywgZGlzYWJsZWQ6IGZ1bmN0aW9uKG0p IHsKKyAgICAgICAgICAgIHJldHVybiAhbS5pc05ldygpCisgICAgICAgICAg ICB9LAorICAgICAgICAgIHRyYW5zZm9ybTogZnVuY3Rpb24ocm93cykgewor ICAgICAgICAgICAgXy5lYWNoKHJvd3MsIGZ1bmN0aW9uKHIpIHsKKyAgICAg ICAgICAgICAgclsnaW1hZ2UnXSA9ICdpY29uLWNhc3QnOworICAgICAgICAg ICAgfSk7CisgICAgICAgICAgICByZXR1cm4gcm93czsKKyAgICAgICAgICB9 LAorICAgICAgICAgIGNvbnRyb2w6IEJhY2tmb3JtLk5vZGVBamF4T3B0aW9u c0NvbnRyb2wuZXh0ZW5kKHsKKyAgICAgICAgICAgICAgb25DaGFuZ2U6IGZ1 bmN0aW9uKCkgeworICAgICAgICAgICAgICBCYWNrZm9ybS5Ob2RlQWpheE9w dGlvbnNDb250cm9sLnByb3RvdHlwZS5vbkNoYW5nZS5hcHBseSh0aGlzLCBh cmd1bWVudHMpOworICAgICAgICAgICAgICB2YXIgc3JjVHlwZSA9IHRoaXMu bW9kZWwuZ2V0KCdzcmN0eXAnKTsKKyAgICAgICAgICAgICAgdmFyIHRyZ3R5 cGUgPSB0aGlzLm1vZGVsLmdldCgndHJndHlwJyk7CisgICAgICAgICAgICAg IGlmKHNyY1R5cGUgIT0gdW5kZWZpbmVkICYmIHNyY1R5cGUgIT0gJycgJiYg dHJndHlwZSAhPSB1bmRlZmluZWQgJiYgdHJndHlwZSAhPSAnJykKKyAgICAg ICAgICAgICAgICAgIHRoaXMubW9kZWwuc2V0KCJuYW1lIiwgc3JjVHlwZSsi LT4iK3RyZ3R5cGUpOworICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAg ICAgICAgICB0aGlzLm1vZGVsLnVuc2V0KCJuYW1lIik7CisgICAgICAgICAg fQorICAgICAgICAgIH0pCisgICAgICAgIH0seworICAgICAgICAgIGlkOiAn cHJvbmFtZScsIGxhYmVsOid7eyBfKCdGdW5jdGlvbicpIH19JywgZGVwczpb J3NyY3R5cCcsICd0cmd0eXAnXSwKKyAgICAgICAgICBlZGl0YWJsZTogZmFs c2UsIHR5cGU6ICd0ZXh0JywgZGlzYWJsZWQ6IGZ1bmN0aW9uKG0pIHsgcmV0 dXJuICFtLmlzTmV3KCk7IH0sCisgICAgICAgICAgZ3JvdXA6ICdEZWZpbml0 aW9uJywKKyAgICAgICAgICBjb250cm9sOiAnc2VsZWN0Jywgb3B0aW9uczog ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICog VE9ETzo6CisgICAgICAgICAgICAgKiBNYWtlIGFqYXggY2FsbCBoZXJlIGFu ZCByZXR1cm4gaXQgYXMgYW4gYXJyYXkgb2Ygb2JqZWN0CisgICAgICAgICAg ICAgKiB7bGFiZWw6IDxMQUJFTD4sIHZhbHVlOiA8TEFCRUw+fQorICAgICAg ICAgICAgICovCisgICAgICAgICAgICAgdmFyIHNyY1R5cCA9IHRoaXMubW9k ZWwuZ2V0KCdzcmN0eXAnKTsKKyAgICAgICAgICAgICB2YXIgdHJndHlwID0g dGhpcy5tb2RlbC5nZXQoJ3RyZ3R5cCcpOworICAgICAgICAgICAgIHZhciBy ZXMgPSBbXTsKKworICAgICAgICAgICAgIGlmKHNyY1R5cCAhPSB1bmRlZmlu ZWQgJiYgc3JjVHlwICE9ICcnICYmIHRyZ3R5cCAhPSB1bmRlZmluZWQgJiYg dHJndHlwICE9ICcnKQorICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg ICAgICAgdmFyIG5vZGUgPSB0aGlzLmZpZWxkLmdldCgnc2NoZW1hX25vZGUn KSwKKyAgICAgICAgICAgICAgICAgICAgX3VybCA9IG5vZGUuZ2VuZXJhdGVf dXJsLmFwcGx5KAorICAgICAgICAgICAgICAgICAgICBub2RlLCBbCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwgJ2dldGZ1bmN0aW9ucycs IHRoaXMuZmllbGQuZ2V0KCdub2RlX2RhdGEnKSwgZmFsc2UsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWVsZC5nZXQoJ25vZGVfaW5m bycpCisgICAgICAgICAgICAgICAgICAgIF0pOworICAgICAgICAgICAgICAg ICAgJC5hamF4KHsKKyAgICAgICAgICAgICAgICAgIHR5cGU6ICdQT1NUJywK KyAgICAgICAgICAgICAgICAgIHRpbWVvdXQ6IDMwMDAwLAorICAgICAgICAg ICAgICAgICAgdXJsOiBfdXJsLAorICAgICAgICAgICAgICAgICAgY2FjaGU6 IGZhbHNlLAorICAgICAgICAgICAgICAgICAgLy9kYXRhOiB0aGlzLm1vZGVs LnRvSlNPTih0cnVlLCAwLCAnUE9TVCcpLAorICAgICAgICAgICAgICAgICAg ZGF0YTogeyJzcmN0eXAiIDogc3JjVHlwLCAidHJndHlwIiA6IHRyZ3R5cH0s CisgICAgICAgICAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbihyZXMpIHsK KyAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVzKTsKKyAgICAg ICAgICAgICAgICAgICAgLy8gYXBwZW5kIHRvIHJlcworICAgICAgICAgICAg ICAgICAgICByZXR1cm4gcmVzLmRhdGE7CisgICAgICAgICAgICAgICAgICAg IC8vdGhpcy5tb2RlbC5zZXQoJ3Byb25hbWUnLHJlcy5kYXRhKTsKKyAgICAg ICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICBlcnJvcjogZnVu Y3Rpb24oeGhyLCBzdGF0dXMsIGVycm9yKSB7CisgICAgICAgICAgICAgICAg ICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZh ciBlcnIgPSAkLnBhcnNlSlNPTih4aHIucmVzcG9uc2VUZXh0KTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyLnN1Y2Nlc3MgPT0gMCkg eworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cgPSBTKCd7 eyBfKCcgKyBlcnIuZXJyb3Jtc2cgKyAnKX19JykudmFsdWUoKTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnRpZnkuZXJyb3IoInt7 IF8oJyIgKyBlcnIuZXJyb3Jtc2cgKyAiJykgfX0iKTsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0gY2F0Y2ggKGUpIHt9CisgICAgICAgICAgICAgICAgICB9Cisg ICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgfQorICAgICAg ICAgICAgICByZXR1cm4gcmVzOworICAgICAgICAgIH0KKyAgICAgICAgfSx7 CisgICAgICAgICAgaWQ6ICdjYXN0Y29udGV4dCcsIGxhYmVsOid7eyBfKCdD b250ZXh0JykgfX0nLCBvcHRpb25zOnsnb25UZXh0JzonSW1wbGljaXQnLCdv ZmZUZXh0JzonRXhwbGljaXQnfSwKKyAgICAgICAgICBlZGl0YWJsZTogZmFs c2UsIHR5cGU6ICdzd2l0Y2gnLCBkaXNhYmxlZDogZnVuY3Rpb24obSkgeyBy ZXR1cm4gIW0uaXNOZXcoKTsgfSwKKyAgICAgICAgICBncm91cDogJ0RlZmlu aXRpb24nCisgICAgICAgIH0seworICAgICAgICAgIGlkOiAnc3lzY2FzdCcs IGxhYmVsOid7eyBfKCdTeXN0ZW0gQ2FzdD8nKSB9fScsIG1vZGU6IFsncHJv cGVydGllcyddLAorICAgICAgICAgIGVkaXRhYmxlOiBmYWxzZSwgdHlwZTog J3RleHQnCisgICAgICAgIH0seworICAgICAgICAgIGlkOiAnZGVzY3JpcHRp b24nLCBsYWJlbDone3sgXygnQ29tbWVudCcpIH19JywgZ3JvdXA6ICd7eyBf KCdEZWZpbml0aW9uJykgfX0nLAorICAgICAgICAgIHR5cGU6ICd0ZXh0Jywg Z3JvdXA6ICdQcm9wZXJ0aWVzJworICAgICAgICB9CisgICAgICAgIF0KKyAg ICAgIH0pCisgIH0pOworCisgIH0KKyAgICByZXR1cm4gcGdCcm93c2VyLk5v ZGVzWydjb2xsLWNhc3QnXTsKK30pOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m IGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9jYXN0cy90ZW1wbGF0ZXMvY2Fz dC9zcWwvOS4wX3BsdXMvY3JlYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9jYXN0cy90ZW1w bGF0ZXMvY2FzdC9zcWwvOS4wX3BsdXMvY3JlYXRlLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNjA2ODZhCi0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL2Nhc3RzL3RlbXBsYXRlcy9jYXN0L3NxbC85LjBf cGx1cy9jcmVhdGUuc3FsCkBAIC0wLDAgKzEsMTEgQEAKK3sjID09PT09PT09 PT0gQmVsb3cgU1FMIHdpbGwgY3JlYXRlIGNhc3QgPT09PT09PT09PT0gI30K K3slIGlmIGRhdGEgYW5kIGRhdGEuc3JjdHlwIGFuZCBkYXRhLnRyZ3R5cCAl fQorQ1JFQVRFIENBU1QgKHt7ZGF0YS5zcmN0eXB9fSBBUyB7e2RhdGEudHJn dHlwfX0pCit7JSBpZiBkYXRhLnByb25hbWUgJX0KK1dJVEggRlVOQ1RJT04g e3tkYXRhLnByb25hbWV9fQoreyUgZWxzZSAlfSBXSVRIT1VUIEZVTkNUSU9O Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5jYXN0Y29udGV4dCA9PSBUcnVl ICV9CitBUyBJTVBMSUNJVAoreyUgZW5kaWYgJX07Cit7JSBlbmRpZiAlfQpc IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9jYXN0cy90ZW1wbGF0ZXMvY2FzdC9zcWwvOS4wX3BsdXMvZGVsZXRlLnNx bCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9jYXN0cy90ZW1wbGF0ZXMvY2FzdC9zcWwvOS4wX3BsdXMv ZGVsZXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li5iYjE2MzVmCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2Nhc3RzL3Rl bXBsYXRlcy9jYXN0L3NxbC85LjBfcGx1cy9kZWxldGUuc3FsCkBAIC0wLDAg KzEsMTAgQEAKK3slIGlmIGNpZCAlfQorU0VMRUNUCisgICAgY2EuY2FzdHNv dXJjZSBpbiBjYXN0c291cmNlLAorICAgIGNhLmNhc3R0YXJnZXQgaW4gY2Fz dHRhcmdldAorRlJPTQorICAgIHBnX2Nhc3QgY2EKK1dIRVJFCisgICAgY2Eu b2lkID0ge3tjaWR9fTo6T0lECit7JSBlbmRpZiAlfQorRFJPUCBDQVNUIChj b25ufHF0SWRlbnQoY2FzdHNvdXJjZSkgQVMgY29ubnxxdElkZW50KGNhc3R0 YXJnZXQpKSB7JSBpZiBjYXNjYWRlICV9Q0FTQ0FERXslZW5kaWYlfTsKXCBO byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv Y2FzdHMvdGVtcGxhdGVzL2Nhc3Qvc3FsLzkuMF9wbHVzL2Z1bmN0aW9ucy5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvY2FzdHMvdGVtcGxhdGVzL2Nhc3Qvc3FsLzkuMF9wbHVz L2Z1bmN0aW9ucy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uODNhMmUzZAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9jYXN0 cy90ZW1wbGF0ZXMvY2FzdC9zcWwvOS4wX3BsdXMvZnVuY3Rpb25zLnNxbApA QCAtMCwwICsxLDExIEBACitTRUxFQ1QKKyAgICBwcm9uYW1lLAorICAgIG5z cG5hbWUsCisgICAgcHJvYXJndHlwZXMKK0ZST00KKyAgICBwZ19wcm9jIHAg Sk9JTiBwZ19uYW1lc3BhY2UgbiBPTiBuLm9pZD1wLnByb25hbWVzcGFjZQor V0hFUkUKKyAgICBwcm9hcmd0eXBlc1swXSA9IChTRUxFQ1QgdC5vaWQgRlJP TSBwZ190eXBlIHQgV0hFUkUgZm9ybWF0X3R5cGUodC5vaWQsIE5VTEwpID0g e3tzcmN0eXB8cXRMaXRlcmFsfX0pCisgICAgQU5EIENPQUxFU0NFKHAucHJv YXJndHlwZXNbMV0sIDApID0gMAorICAgIEFORCBwcm9yZXR0eXBlID0gKFNF TEVDVCB0Lm9pZCBGUk9NIHBnX3R5cGUgdCBXSEVSRSBmb3JtYXRfdHlwZSh0 Lm9pZCwgTlVMTCkgPSB7e3RyZ3R5cHxxdExpdGVyYWx9fSkKKwpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL2Nhc3RzL3RlbXBsYXRlcy9jYXN0L3NxbC85LjBfcGx1 cy9nZXRzcmNhbmR0cmd0dHlwZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvY2FzdHMvdGVtcGxh dGVzL2Nhc3Qvc3FsLzkuMF9wbHVzL2dldHNyY2FuZHRyZ3R0eXBlLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZDU2MDFjCi0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2Nhc3RzL3RlbXBsYXRlcy9jYXN0 L3NxbC85LjBfcGx1cy9nZXRzcmNhbmR0cmd0dHlwZS5zcWwKQEAgLTAsMCAr MSw0MSBAQAorU0VMRUNUCisgICAgKgorRlJPTSAoCisJICAgIFNFTEVDVCBm b3JtYXRfdHlwZSh0Lm9pZCxOVUxMKSBBUyB0eXBuYW1lLAorCQlDQVNFCisJ CQlXSEVOIHR5cGVsZW0gPiAwIFRIRU4gdHlwZWxlbQorCQkJRUxTRSB0Lm9p ZAorCQkJRU5EIGFzIGVsZW1vaWQsCisJCQl0eXBsZW4sCisJCQl0eXB0eXBl LAorCQkJdC5vaWQsCisJCQluc3BuYW1lLAorCQkgICAgKFNFTEVDVCBDT1VO VCgxKSBGUk9NIHBnX3R5cGUgdDIgV0hFUkUgdDIudHlwbmFtZSA9IHQudHlw bmFtZSkgPiAxIEFTIGlzZHVwCisJICAgIEZST00KKwkgICAgICAgIHBnX3R5 cGUgdAorCSAgICAgICAgSk9JTiBwZ19uYW1lc3BhY2UgbnNwIE9OIHR5cG5h bWVzcGFjZT1uc3Aub2lkCisJCVdIRVJFCisJCSAgICAoTk9UICh0eXBuYW1l ID0gJ3Vua25vd24nCisJCSAgICBBTkQgbnNwbmFtZSA9ICdwZ19jYXRhbG9n JykpCisJCSAgICBBTkQgdHlwaXNkZWZpbmVkCisJCSAgICBBTkQgdHlwdHlw ZSBJTiAoJ2InLCAnYycsICdlJywgJ3InKQorCQkgICAgQU5EIE5PVCBFWElT VFMgKFNFTEVDVAorCQkgICAgICAgICAgICAgICAgICAgICAgICAxCisJCSAg ICAgICAgICAgICAgICAgICAgRlJPTQorCQkgICAgICAgICAgICAgICAgICAg ICAgICBwZ19jbGFzcworCQkgICAgICAgICAgICAgICAgICAgIFdIRVJFCisJ CSAgICAgICAgICAgICAgICAgICAgICAgIHJlbG5hbWVzcGFjZSA9IHR5cG5h bWVzcGFjZQorCQkgICAgICAgICAgICAgICAgICAgIEFORCByZWxuYW1lID0g dHlwbmFtZQorCQkgICAgICAgICAgICAgICAgICAgIEFORCByZWxraW5kICE9 ICdjJykKKwkJICAgIEFORCAodHlwbmFtZSBOT1QgTElLRSAnXyUnCisJCSAg ICAgICAgIE9SIE5PVCBFWElTVFMgKFNFTEVDVAorCQkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMQorCQkgICAgICAgICAgICAgICAgICAgICAgICBG Uk9NCisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19jbGFzcwor CQkgICAgICAgICAgICAgICAgICAgICAgICBXSEVSRQorCQkgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmVsbmFtZXNwYWNlID0gdHlwbmFtZXNwYWNl CisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICBBTkQgcmVsbmFtZSA9 IFNVQlNUUklORyh0eXBuYW1lIEZST00gMik6Om5hbWUKKwkJICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEFORCByZWxraW5kICE9ICdjJykpCisJCSAg ICBBTkQgbnNwLm5zcG5hbWUgIT0gJ2luZm9ybWF0aW9uX3NjaGVtYScgKSBB UyBkdW1teQorT1JERVIgQlkKKyAgICBuc3BuYW1lIDw+ICdwZ19jYXRhbG9n JywgbnNwbmFtZSA8PiAncHVibGljJywgbnNwbmFtZSwgMQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL2Nhc3RzL3RlbXBsYXRlcy9jYXN0L3NxbC85LjBfcGx1cy9n cmFudC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvY2FzdHMvdGVtcGxhdGVzL2Nhc3Qvc3FsLzku MF9wbHVzL2dyYW50LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi42NGZjZTNkCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2Nh c3RzL3RlbXBsYXRlcy9jYXN0L3NxbC85LjBfcGx1cy9ncmFudC5zcWwKQEAg LTAsMCArMSwxNyBAQAoreyMgPT09PT09PT09PSBCZWxvdyBjcmVhdGVzIGRl c2NyaXB0aW9uIGZvciBjYXN0ID09PT09PT09PT09ICN9Cit7JSBpZiBkYXRh LmRlc2NyaXB0aW9uICV9CitDT01NRU5UIE9OIENBU1QgKHt7IGRhdGEuc3Jj dHlwIH19IEFTIHt7IGRhdGEudHJndHlwIH19KQorICBJUyB7eyBkYXRhLmRl c2NyaXB0aW9ufHF0TGl0ZXJhbCB9fTsKK3slIGVuZGlmICV9Cit7IyA9PT09 PT09PSBCZWxvdyBTUUwgd2lsbCBmZXRjaCBpZCBmb3IgZ2l2ZW4gY2FzdCA9 PT09PT09PSAjfQoreyUgaWYgc3JjdHlwIGFuZCB0cmd0eXAgJX0KK1NFTEVD VAorICAgIGNhLm9pZAorRlJPTSBwZ19jYXN0IGNhCitXSEVSRSBwZ19jYXN0 LmNhc3Rzb3VyY2UgPSAoU0VMRUNUIHQub2lkIEZST00gcGdfdHlwZSB0IFdI RVJFIGZvcm1hdF90eXBlKHQub2lkLCBOVUxMKSA9IHt7c3JjdHlwfHF0TGl0 ZXJhbH19KQorQU5EIHBnX2Nhc3QuY2FzdHRhcmdldCA9IChTRUxFQ1QgdC5v aWQgRlJPTSBwZ190eXBlIHQgV0hFUkUgZm9ybWF0X3R5cGUodC5vaWQsIE5V TEwpID0ge3t0cmd0eXB8cXRMaXRlcmFsfX0pCisgeyUgaWYgZGF0bGFzdHN5 c29pZCAlfQorIEFORCBjYS5vaWQgPiB7e2RhdGxhc3RzeXNvaWR9fTo6T0lE CisgeyUgZW5kaWYgJX0KK3slIGVuZGlmICV9CisKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9jYXN0cy90ZW1wbGF0ZXMvY2FzdC9zcWwvOS4wX3BsdXMvcHJvcGVy dGllcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvY2FzdHMvdGVtcGxhdGVzL2Nhc3Qvc3FsLzku MF9wbHVzL3Byb3BlcnRpZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLmVkY2EyNGYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvY2FzdHMvdGVtcGxhdGVzL2Nhc3Qvc3FsLzkuMF9wbHVzL3Byb3BlcnRp ZXMuc3FsCkBAIC0wLDAgKzEsNDUgQEAKK1NFTEVDVAorICAgIGNhLm9pZCwK K0NBU0UKKyAgICBXSEVOIHt7ZGF0bGFzdHN5c29pZH19OjpPSUQgPiBjYS5v aWQgdGhlbiAnWUVTJyBFTFNFICdOTycKK0VORCBBUyBzeXNjYXN0LAorQ0FT RQorICAgIFdIRU4gY2EuY2FzdGNvbnRleHQgPSAnYScgVEhFTiAnQVNTSUdO TUVOVCcKKyAgICBXSEVOIGNhLmNhc3Rjb250ZXh0ID0gJ2knIFRIRU4gJ0lN UExJQ0lUJworICAgIFdIRU4gY2EuY2FzdGNvbnRleHQgPSAnZScgVEhFTiAn RVhQTElDSVQnCitFTkQgQVMgY2FzdGNvbnRleHQsCitDQVNFCisgICAgV0hF TiBwcm9uYW1lIElTIE5VTEwgVEhFTiAnYmluYXJ5IGNvbXBhdGlibGUnCitF TkQgQVMgcHJvbmFtZSwKKyAgICBjYS5jYXN0ZnVuYywKKyAgICBmb3JtYXRf dHlwZShzdC5vaWQsTlVMTCkgQVMgc3JjdHlwLAorICAgIGZvcm1hdF90eXBl KHR0Lm9pZCx0dC50eXB0eXBtb2QpIEFTIHRyZ3R5cCwKKyAgICBucy5uc3Bu YW1lIEFTIHNyY25zcG5hbWUsCisgICAgbnQubnNwbmFtZSBBUyB0cmduc3Bu YW1lLAorICAgIG5wLm5zcG5hbWUgQVMgcHJvbnNwbmFtZSwKKyAgICBkZXNj cmlwdGlvbiwKKyAgICBjb25jYXQoZm9ybWF0X3R5cGUoc3Qub2lkLE5VTEwp LCctPicsZm9ybWF0X3R5cGUodHQub2lkLHR0LnR5cHR5cG1vZCkpIGFzIG5h bWUKK0ZST00gcGdfY2FzdCBjYQorSk9JTiBwZ190eXBlIHN0IE9OIHN0Lm9p ZD1jYXN0c291cmNlCitKT0lOIHBnX25hbWVzcGFjZSBucyBPTiBucy5vaWQ9 c3QudHlwbmFtZXNwYWNlCitKT0lOIHBnX3R5cGUgdHQgT04gdHQub2lkPWNh c3R0YXJnZXQKK0pPSU4gcGdfbmFtZXNwYWNlIG50IE9OIG50Lm9pZD10dC50 eXBuYW1lc3BhY2UKK0xFRlQgSk9JTiBwZ19wcm9jIHByIE9OIHByLm9pZD1j YXN0ZnVuYworTEVGVCBKT0lOIHBnX25hbWVzcGFjZSBucCBPTiBucC5vaWQ9 cHIucHJvbmFtZXNwYWNlCitMRUZUIE9VVEVSIEpPSU4gcGdfZGVzY3JpcHRp b24gZGVzIE9OIChkZXMub2Jqb2lkPWNhLm9pZCBBTkQgZGVzLm9ianN1Ymlk PTAgQU5EIGRlcy5jbGFzc29pZD0ncGdfY2FzdCc6OnJlZ2NsYXNzKQorCit7 JSBpZiBjaWQgJX0KK1dIRVJFIGNhLm9pZD17e2NpZH19OjppbnQKK3slIGVu ZGlmICV9CisKKy0tVE9ETzogYWRkIGNoZWNrIGZvciBzaG93U3lzdGVtT2Jq ZWN0KCkuIGN1cnJlbnRseSBhc3N1bWVkIGFzIGZhbHNlCit7JSBpZiBkYXRs YXN0c3lzb2lkICV9Cit7JSBpZiBjaWQgJX0KK0FORAoreyUgZWxzZSAlfQor V0hFUkUKK3slIGVuZGlmICV9CitjYS5vaWQgPiB7e2RhdGxhc3RzeXNvaWR9 fTo6T0lECit7JSBlbmRpZiAlfQorCitPUkRFUiBCWSBzdC50eXBuYW1lLCB0 dC50eXBuYW1lClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL2Nhc3RzL3RlbXBsYXRlcy9jYXN0L3NxbC85LjBfcGx1 cy91cGRhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL2Nhc3RzL3RlbXBsYXRlcy9jYXN0L3Nx bC85LjBfcGx1cy91cGRhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjFhMzQ2OTMKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvY2FzdHMvdGVtcGxhdGVzL2Nhc3Qvc3FsLzkuMF9wbHVzL3VwZGF0ZS5z cWwKQEAgLTAsMCArMSw2IEBACit7IyA9PT09PT09PT09PUJlbG93IFNRTCB3 aWxsIHVwZGF0ZSBjYXN0IGNvbW1lbnRzPT09PT09PT09PT09PT09PT09PSAj fQorCit7JSAgaWYgZGF0YSBhbmQgZGF0YS5kZXNjcmlwdGlvbiBhbmQgZGF0 YS5kZXNjcmlwdGlvbiAhPSBvX2RhdGEuZGVzY3JpcHRpb24gJX0KK0NPTU1F TlQgT04gQ0FTVCAoe3tvX2RhdGEuc3JjdHlwfX0gQVMge3tvX2RhdGEudHJn dHlwfX0pCisgIElTIHt7IGRhdGEuZGVzY3JpcHRpb24gfX07Cit7JSBlbmRp ZiAlfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK --94eb2c0878dc850a2905299bfc24 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 --94eb2c0878dc850a2905299bfc24--