Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1aOmzA-0005A4-Is for pgadmin-hackers@arkaria.postgresql.org; Thu, 28 Jan 2016 13:51:44 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84) (envelope-from ) id 1aOmzA-0002hV-5e for pgadmin-hackers@arkaria.postgresql.org; Thu, 28 Jan 2016 13:51:44 +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 1aOmz8-0002dy-1M for pgadmin-hackers@postgresql.org; Thu, 28 Jan 2016 13:51:42 +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 1aOmz4-0006oP-H1 for pgadmin-hackers@postgresql.org; Thu, 28 Jan 2016 13:51:40 +0000 Received: by mail-yk0-x229.google.com with SMTP id y137so30726263yka.2 for ; Thu, 28 Jan 2016 05:51:38 -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=5W0RdtSCBNAsG7vWjm0R7/hseMNywzAJ6RTf5PvI04o=; b=UGInmXmIQSYwCRIoHts+EsntqbZ3d3XYVW099LjVlT05BIp1rb7FzumzKKKJ9P3oJr jACeWSE+M1lrohJ9UqBltN5poxNRxf5DSFgd9M8OIt/aNjBC0FYFjaSNNFkm8q+P6+nX QCRFVePH0o9ilmPIYciWPkJGrPsifel46YJO6hLNlSQoxQj6a30JdVva77Ak6Yr2dUs5 6Z235syOMtwIH1MmBh4NEqE5KKB9BTf7ZKVYMZZqmQDgKpSLvxXruImeKk4p3cXgM0zp hnj2ZdnV9PA8sYzYkV89qIYwnup2ccOSCe3nwk/oc4v4Pa1dLlZESg0B01b10aLXSgyw vtyg== 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=5W0RdtSCBNAsG7vWjm0R7/hseMNywzAJ6RTf5PvI04o=; b=P0PvQD4VhF9/Feh22U64YSy8kJeRCSykxnxWzP0BdLgdomhPchiQJ1CCUjpdRKB6Mo NfRjUdDk+QgaPs3IJplysduGh+vVNqeaYkkHoeyIiPVn4FRgPul5jfi4Pws8Bjvij/nQ rnPTHz4pKFap0rLej6n831tUOiwm9VS0ISutVujramGi5M4my3IrjO9J8g+NzCeTIA4P oSyzE/lAQsISreAtvaGF51KctyTZ8ejY9iU/ldyb+Bc7qeSvQRrXidXGvW4K8Osgwyiq 1UWMnZZAQHd7RgTQL1MCdsPFGWc8f2VR6VgbN2hoaipicYGiMkXMUVGWZzeyBEJcUl3Q Hk7w== X-Gm-Message-State: AG10YOSvL0fJKbEkHBQM0y+vPwJpXsuL+VawCnDS3/4qSsYQnDwEjJZ4PrnaqHcCvQFG8TTdKGKmX29hZJ9HoqI/ MIME-Version: 1.0 X-Received: by 10.37.44.129 with SMTP id s123mr1570713ybs.55.1453989097694; Thu, 28 Jan 2016 05:51:37 -0800 (PST) Received: by 10.129.84.198 with HTTP; Thu, 28 Jan 2016 05:51:37 -0800 (PST) Date: Thu, 28 Jan 2016 19:21:37 +0530 Message-ID: Subject: PATCH: PGADMIN 4 - FTS templates node From: Sanket Mehta To: pgadmin-hackers Content-Type: multipart/mixed; boundary=001a11431b4ead6e2f052a6537fb X-Pg-Spam-Score: -1.9 (-) 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 --001a11431b4ead6e2f052a6537fb Content-Type: multipart/alternative; boundary=001a11431b4ead6e28052a6537f9 --001a11431b4ead6e28052a6537f9 Content-Type: text/plain; charset=UTF-8 Hi, I have created patch for "FTS Template" node in pgadmin4. Please do review it and let me know in case anything is missing. Regards, Sanket Mehta Sr Software engineer Enterprisedb --001a11431b4ead6e28052a6537f9 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi,

I have created patch for "= FTS Template" node in pgadmin4.
Please do review it and let m= e know in case anything is missing.

Regards,
Sanket Mehta=
Sr Software engineer
Enterprisedb
--001a11431b4ead6e28052a6537f9-- --001a11431b4ead6e2f052a6537fb Content-Type: text/x-patch; charset=US-ASCII; name="fts_templatev1.patch" Content-Disposition: attachment; filename="fts_templatev1.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ijybkasn0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvX19p bml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL19faW5p dF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE1 NzE0NzAKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNf dGVtcGxhdGVzL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsNDMwIEBACisjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQ b3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxNiwgVGhl IHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlz IHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitpbXBvcnQganNvbgorZnJv bSBmbGFzayBpbXBvcnQgcmVuZGVyX3RlbXBsYXRlLCBtYWtlX3Jlc3BvbnNl LCBjdXJyZW50X2FwcCwgcmVxdWVzdCwganNvbmlmeQorZnJvbSBmbGFzay5l eHQuYmFiZWwgaW1wb3J0IGdldHRleHQKK2Zyb20gcGdhZG1pbi51dGlscy5h amF4IGltcG9ydCBtYWtlX2pzb25fcmVzcG9uc2UsIFwKKyAgICBtYWtlX3Jl c3BvbnNlIGFzIGFqYXhfcmVzcG9uc2UsIGludGVybmFsX3NlcnZlcl9lcnJv cgorZnJvbSBwZ2FkbWluLmJyb3dzZXIudXRpbHMgaW1wb3J0IE5vZGVWaWV3 Citmcm9tIHBnYWRtaW4uYnJvd3Nlci5jb2xsZWN0aW9uIGltcG9ydCBDb2xs ZWN0aW9uTm9kZU1vZHVsZQoraW1wb3J0IHBnYWRtaW4uYnJvd3Nlci5zZXJ2 ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMgYXMgc2NoZW1h cworZnJvbSBwZ2FkbWluLnV0aWxzLmFqYXggaW1wb3J0IHByZWNvbmRpdGlv bl9yZXF1aXJlZAorZnJvbSBwZ2FkbWluLnV0aWxzLmRyaXZlciBpbXBvcnQg Z2V0X2RyaXZlcgorZnJvbSBjb25maWcgaW1wb3J0IFBHX0RFRkFVTFRfRFJJ VkVSCitmcm9tIGZ1bmN0b29scyBpbXBvcnQgd3JhcHMKK2Zyb20gaHRtbCBp bXBvcnQgZXNjYXBlCisKKworY2xhc3MgRnRzVGVtcGxhdGVNb2R1bGUoQ29s bGVjdGlvbk5vZGVNb2R1bGUpOgorICAgIE5PREVfVFlQRSA9ICdmdHNfdGVt cGxhdGUnCisgICAgQ09MTEVDVElPTl9MQUJFTCA9IGdldHRleHQoJ0Z0cyBU ZW1wbGF0ZXMnKQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAq Kmt3YXJncyk6CisgICAgICAgIHNlbGYubWluX3ZlciA9IE5vbmUKKyAgICAg ICAgc2VsZi5tYXhfdmVyID0gTm9uZQorICAgICAgICBzdXBlcihGdHNUZW1w bGF0ZU1vZHVsZSwgc2VsZikuX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQor CisgICAgZGVmIGdldF9ub2RlcyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lk KToKKyAgICAgICAgIiIiCisgICAgICAgIEdlbmVyYXRlIHRoZSBjb2xsZWN0 aW9uIG5vZGUKKyAgICAgICAgIiIiCisgICAgICAgIHlpZWxkIHNlbGYuZ2Vu ZXJhdGVfYnJvd3Nlcl9jb2xsZWN0aW9uX25vZGUoc2NpZCkKKworICAgIEBw cm9wZXJ0eQorICAgIGRlZiBzY3JpcHRfbG9hZChzZWxmKToKKyAgICAgICAg IiIiCisgICAgICAgIExvYWQgdGhlIG1vZHVsZSBzY3JpcHQgZm9yIGZ0cyB0 ZW1wbGF0ZSwgd2hlbiBhbnkgb2YgdGhlIHNjaGVtYSBub2RlIGlzCisgICAg ICAgIGluaXRpYWxpemVkLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJu IHNjaGVtYXMuU2NoZW1hTW9kdWxlLk5PREVfVFlQRQorCisKK2JsdWVwcmlu dCA9IEZ0c1RlbXBsYXRlTW9kdWxlKF9fbmFtZV9fKQorCisKK2NsYXNzIEZ0 c1RlbXBsYXRlVmlldyhOb2RlVmlldyk6CisgICAgbm9kZV90eXBlID0gYmx1 ZXByaW50Lm5vZGVfdHlwZQorCisgICAgcGFyZW50X2lkcyA9IFsKKyAgICAg ICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAnZ2lkJ30sCisgICAgICAg ICAgICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ3NpZCd9LAorICAgICAgICAg ICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdkaWQnfSwKKyAgICAgICAgICAg IHsndHlwZSc6ICdpbnQnLCAnaWQnOiAnc2NpZCd9CisgICAgICAgICAgICBd CisgICAgaWRzID0gWworICAgICAgICAgICAgeyd0eXBlJzogJ2ludCcsICdp ZCc6ICd0aWQnfQorICAgICAgICAgICAgXQorCisgICAgb3BlcmF0aW9ucyA9 IGRpY3QoeworICAgICAgICAnb2JqJzogWworICAgICAgICAgICAgeydnZXQn OiAncHJvcGVydGllcycsICdkZWxldGUnOiAnZGVsZXRlJywgJ3B1dCc6ICd1 cGRhdGUnfSwKKyAgICAgICAgICAgIHsnZ2V0JzogJ2xpc3QnLCAncG9zdCc6 ICdjcmVhdGUnfQorICAgICAgICBdLAorICAgICAgICAnY2hpbGRyZW4nOiBb eworICAgICAgICAgICAgJ2dldCc6ICdjaGlsZHJlbicKKyAgICAgICAgfV0s CisgICAgICAgICdkZWxldGUnOiBbeydkZWxldGUnOiAnZGVsZXRlJ31dLAor ICAgICAgICAnbm9kZXMnOiBbeydnZXQnOiAnbm9kZSd9LCB7J2dldCc6ICdu b2Rlcyd9XSwKKyAgICAgICAgJ3NxbCc6IFt7J2dldCc6ICdzcWwnfV0sCisg ICAgICAgICdtc3FsJzogW3snZ2V0JzogJ21zcWwnfSwgeydnZXQnOiAnbXNx bCd9XSwKKyAgICAgICAgJ3N0YXRzJzogW3snZ2V0JzogJ3N0YXRpc3RpY3Mn fV0sCisgICAgICAgICdkZXBlbmRlbmN5JzogW3snZ2V0JzogJ2RlcGVuZGVu Y2llcyd9XSwKKyAgICAgICAgJ2RlcGVuZGVudCc6IFt7J2dldCc6ICdkZXBl bmRlbnRzJ31dLAorICAgICAgICAnbW9kdWxlLmpzJzogW3t9LCB7fSwgeydn ZXQnOiAnbW9kdWxlX2pzJ31dLAorICAgICAgICAnZ2V0bGV4aXplJzogW3sn Z2V0JzogJ2dldGxleGl6ZSd9LCB7J2dldCc6ICdnZXRsZXhpemUnfV0sCisg ICAgICAgICdnZXRpbml0JzogW3snZ2V0JzogJ2dldGluaXQnfSwgeydnZXQn OiAnZ2V0aW5pdCd9XSwKKyAgICB9KQorCisgICAgZGVmIG1vZHVsZV9qcyhz ZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgcHJvcGVydHkgZGVm aW5lcyAoaWYgamF2YXNjcmlwdCkgZXhpc3RzIGZvciB0aGlzIG5vZGUuCisg ICAgICAgIE92ZXJyaWRlIHRoaXMgcHJvcGVydHkgZm9yIHlvdXIgb3duIGxv Z2ljLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIG1ha2VfcmVzcG9u c2UoCisgICAgICAgICAgICAgICAgcmVuZGVyX3RlbXBsYXRlKAorICAgICAg ICAgICAgICAgICAgICAiZnRzX3RlbXBsYXRlL2pzL2Z0c190ZW1wbGF0ZXMu anMiLAorICAgICAgICAgICAgICAgICAgICBfPWdldHRleHQKKyAgICAgICAg ICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICAyMDAsIHsnQ29udGVu dC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCd9CisgICAgICAg ICAgICAgICAgKQorCisgICAgZGVmIGNoZWNrX3ByZWNvbmRpdGlvbihmKToK KyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBiZWhh dmUgYXMgYSBkZWNvcmF0b3Igd2hpY2ggd2lsbCBjaGVja3MKKyAgICAgICAg ZGF0YWJhc2UgY29ubmVjdGlvbiBiZWZvcmUgcnVubmluZyB2aWV3LCBpdCB3 aWxsIGFsc28gYXR0YWNoZXMKKyAgICAgICAgbWFuYWdlcixjb25uICYgdGVt cGxhdGVfcGF0aCBwcm9wZXJ0aWVzIHRvIHNlbGYKKyAgICAgICAgIiIiCisg ICAgICAgIEB3cmFwcyhmKQorICAgICAgICBkZWYgd3JhcCgqYXJncywgKipr d2FyZ3MpOgorICAgICAgICAgICAgIyBIZXJlIGFyZ3NbMF0gd2lsbCBob2xk IHNlbGYgJiBrd2FyZ3Mgd2lsbCBob2xkIGdpZCxzaWQsZGlkCisgICAgICAg ICAgICBzZWxmID0gYXJnc1swXQorICAgICAgICAgICAgc2VsZi5tYW5hZ2Vy ID0gZ2V0X2RyaXZlcihQR19ERUZBVUxUX0RSSVZFUikuY29ubmVjdGlvbl9t YW5hZ2VyKGt3YXJnc1snc2lkJ10pCisgICAgICAgICAgICBzZWxmLmNvbm4g PSBzZWxmLm1hbmFnZXIuY29ubmVjdGlvbihkaWQ9a3dhcmdzWydkaWQnXSkK KyAgICAgICAgICAgICMgSWYgREIgbm90IGNvbm5lY3RlZCB0aGVuIHJldHVy biBlcnJvciB0byBicm93c2VyCisgICAgICAgICAgICBpZiBub3Qgc2VsZi5j b25uLmNvbm5lY3RlZCgpOgorICAgICAgICAgICAgICAgIHJldHVybiBwcmVj b25kaXRpb25fcmVxdWlyZWQoCisgICAgICAgICAgICAgICAgICAgIGdldHRl eHQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNvbm5lY3Rpb24g dG8gdGhlIHNlcnZlciBoYXMgYmVlbiBsb3N0ISIKKyAgICAgICAgICAgICAg ICAgICAgKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgIHNlbGYu dGVtcGxhdGVfcGF0aCA9ICdmdHNfdGVtcGxhdGUvc3FsLycKKyAgICAgICAg ICAgIHJldHVybiBmKCphcmdzLCAqKmt3YXJncykKKworICAgICAgICByZXR1 cm4gd3JhcAorCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVm IGxpc3Qoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCk6CisgICAgICAgIFNR TCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICIvIi5qb2luKFtz ZWxmLnRlbXBsYXRlX3BhdGgsICdwcm9wZXJ0aWVzLnNxbCddKSwKKyAgICAg ICAgICAgIHNjaWQ9c2NpZAorICAgICAgICAgICAgKQorICAgICAgICBzdGF0 dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQorCisgICAg ICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJu YWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICByZXR1 cm4gYWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICByZXNwb25zZT1y ZXNbJ3Jvd3MnXSwKKyAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAg ICAgICAgICAgICAgKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAg IGRlZiBub2RlcyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkKToKKyAgICAg ICAgcmVzID0gW10KKyAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKAor ICAgICAgICAgICAgIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3By b3BlcnRpZXMuc3FsJ10pLAorICAgICAgICAgICAgc2NpZD1zY2lkCisgICAg ICAgICAgICApCisgICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYuY29ubi5l eGVjdXRlXzJkYXJyYXkoU1FMKQorICAgICAgICBpZiBub3Qgc3RhdHVzOgor ICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJv cm1zZz1yc2V0KQorCisgICAgICAgIGZvciByb3cgaW4gcnNldFsncm93cydd OgorICAgICAgICAgICAgcmVzLmFwcGVuZCgKKyAgICAgICAgICAgICAgICAg ICAgc2VsZi5ibHVlcHJpbnQuZ2VuZXJhdGVfYnJvd3Nlcl9ub2RlKAorICAg ICAgICAgICAgICAgICAgICAgICAgcm93WydvaWQnXSwKKyAgICAgICAgICAg ICAgICAgICAgICAgIHJvd1sndG1wbG5hbWUnXSwKKyAgICAgICAgICAgICAg ICAgICAgICAgIGljb249Imljb24tZnRzX3RlbXBsYXRlIgorICAgICAgICAg ICAgICAgICAgICApKQorCisgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVz cG9uc2UoCisgICAgICAgICAgICAgICAgZGF0YT1yZXMsCisgICAgICAgICAg ICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICkKKworICAgIEBj aGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgcHJvcGVydGllcyhzZWxmLCBn aWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQpOgorICAgICAgICBTUUwgPSByZW5k ZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAiLyIuam9pbihbc2VsZi50ZW1w bGF0ZV9wYXRoLCAncHJvcGVydGllcy5zcWwnXSksCisgICAgICAgICAgICBz Y2lkPXNjaWQsCisgICAgICAgICAgICB0aWQ9dGlkCisgICAgICAgICAgICAp CisgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGlj dChTUUwpCisKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAg IHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQor CisgICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKAorICAgICAgICAgICAg ICAgIHJlc3BvbnNlPXJlc1sncm93cyddWzBdLAorICAgICAgICAgICAgICAg IHN0YXR1cz0yMDAKKyAgICAgICAgICAgICAgICApCisKKyAgICBAY2hlY2tf cHJlY29uZGl0aW9uCisgICAgZGVmIGNyZWF0ZShzZWxmLCBnaWQsIHNpZCwg ZGlkLCBzY2lkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rp b24gd2lsbCBjcmVhdGVzIG5ldyB0aGUgZnRzX3RlbXBsYXRlIG9iamVjdAor ICAgICAgICAiIiIKKworICAgICAgICByZXF1aXJlZF9hcmdzID0gWworICAg ICAgICAgICAgJ3RtcGxsZXhpemUnLAorICAgICAgICAgICAgJ3NjaGVtYScs CisgICAgICAgICAgICAndG1wbG5hbWUnCisgICAgICAgIF0KKworICAgICAg ICBkYXRhID0gcmVxdWVzdC5mb3JtIGlmIHJlcXVlc3QuZm9ybSBlbHNlIGpz b24ubG9hZHMocmVxdWVzdC5kYXRhLmRlY29kZSgpKQorICAgICAgICBmb3Ig YXJnIGluIHJlcXVpcmVkX2FyZ3M6CisgICAgICAgICAgICBpZiBhcmcgbm90 IGluIGRhdGE6CisgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9y ZXNwb25zZSgKKyAgICAgICAgICAgICAgICAgICAgc3RhdHVzPTQxMCwKKyAg ICAgICAgICAgICAgICAgICAgc3VjY2Vzcz0wLAorICAgICAgICAgICAgICAg ICAgICBlcnJvcm1zZz1nZXR0ZXh0KAorICAgICAgICAgICAgICAgICAgICAg ICAgIkNvdWxkbid0IGZpbmQgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAoJXMp LiIgJSBhcmcKKyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAg ICAgICkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgU1FMID0gcmVuZGVy X3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdjcmVh dGUuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRhdGE9ZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25uPXNlbGYuY29ubiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKQorICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4u ZXhlY3V0ZV9zY2FsYXIoU1FMKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1 czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vy cm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAgIyB3ZSBuZWVkIG9p ZCB0byB0byBhZGQgb2JqZWN0IGluIHRyZWUgYXQgYnJvd3NlciwgYmVsb3cg c3FsIHdpbGwgZ2l2ZXMgdGhlIHNhbWUKKyAgICAgICAgICAgIFNRTCA9IHJl bmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAn cHJvcGVydGllcy5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbmFtZT1kYXRhWyd0bXBsbmFtZSddCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgIHN0YXR1cywgdGlk ID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkKKyAgICAgICAgICAg IGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJuIGludGVy bmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz10aWQpCisKKyAgICAgICAgICAg IHJldHVybiBqc29uaWZ5KAorICAgICAgICAgICAgICAgIG5vZGU9c2VsZi5i bHVlcHJpbnQuZ2VuZXJhdGVfYnJvd3Nlcl9ub2RlKAorICAgICAgICAgICAg ICAgICAgICB0aWQsCisgICAgICAgICAgICAgICAgICAgIGRhdGFbJ3RtcGxu YW1lJ10sCisgICAgICAgICAgICAgICAgICAgIGljb249Imljb24tZnRzX3Rl bXBsYXRlIgorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAg ICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgcmV0 dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1zdHIoZSkpCisK KworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgdXBkYXRlKHNl bGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCk6CisgICAgICAgICIiIgor ICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRlIHRleHQgc2VhcmNo IHRlbXBsYXRlIG9iamVjdAorICAgICAgICAiIiIKKyAgICAgICAgZGF0YSA9 IHJlcXVlc3QuZm9ybSBpZiByZXF1ZXN0LmZvcm0gZWxzZSBqc29uLmxvYWRz KHJlcXVlc3QuZGF0YS5kZWNvZGUoKSkKKyAgICAgICAgU1FMID0gc2VsZi5n ZXRTUUwoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZGF0YSwgdGlkKQorICAgICAg ICB0cnk6CisgICAgICAgICAgICBpZiBTUUwgYW5kIFNRTC5zdHJpcCgnXG4n KSBhbmQgU1FMLnN0cmlwKCcgJyk6CisgICAgICAgICAgICAgICAgc3RhdHVz LCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoU1FMKQorICAgICAg ICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgICAg IHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQor CisgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgK KyAgICAgICAgICAgICAgICAgICAgc3VjY2Vzcz0xLAorICAgICAgICAgICAg ICAgICAgICBpbmZvPSJDYXN0IHVwZGF0ZWQiLAorICAgICAgICAgICAgICAg ICAgICBkYXRhPXsKKyAgICAgICAgICAgICAgICAgICAgICAgICdpZCc6IHRp ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdzaWQnOiBzaWQsCisgICAg ICAgICAgICAgICAgICAgICAgICAnZ2lkJzogZ2lkLAorICAgICAgICAgICAg ICAgICAgICAgICAgJ2RpZCc6IGRpZCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICdzY2lkJzogc2NpZAorICAgICAgICAgICAgICAgICAgICB9CisgICAg ICAgICAgICAgICAgKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAg ICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAg ICAgICAgICBzdWNjZXNzPTEsCisgICAgICAgICAgICAgICAgICAgIGluZm89 Ik5vdGhpbmcgdG8gdXBkYXRlIiwKKyAgICAgICAgICAgICAgICAgICAgZGF0 YT17CisgICAgICAgICAgICAgICAgICAgICAgICAnaWQnOiB0aWQsCisgICAg ICAgICAgICAgICAgICAgICAgICAnc2lkJzogc2lkLAorICAgICAgICAgICAg ICAgICAgICAgICAgJ2dpZCc6IGdpZCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICdkaWQnOiBkaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAnc2Np ZCc6IHNjaWQKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg ICAgICkKKworICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAg ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn PXN0cihlKSkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYg ZGVsZXRlKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCk6CisgICAg ICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgZHJvcCB0aGUg ZnRzX3RlbXBsYXRlIG9iamVjdAorICAgICAgICAiIiIKKyAgICAgICAgIyBC ZWxvdyB3aWxsIGRlY2lkZSBpZiBpdCdzIHNpbXBsZSBkcm9wIG9yIGRyb3Ag d2l0aCBjYXNjYWRlIGNhbGwKKyAgICAgICAgaWYgc2VsZi5jbWQgPT0gJ2Rl bGV0ZSc6CisgICAgICAgICAgICAjIFRoaXMgaXMgYSBjYXNjYWRlIG9wZXJh dGlvbgorICAgICAgICAgICAgY2FzY2FkZSA9IFRydWUKKyAgICAgICAgZWxz ZToKKyAgICAgICAgICAgIGNhc2NhZGUgPSBGYWxzZQorCisgICAgICAgIHRy eToKKyAgICAgICAgICAgICMgR2V0IG5hbWUgZm9yIHRlbXBsYXRlIGZyb20g dGlkCisgICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpv aW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ2RlbGV0ZS5zcWwnXSksCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGlkPXRpZCkKKyAgICAg ICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChT UUwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAg ICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVz KQorCisgICAgICAgICAgICAjIERyb3AgZnRzIHRlbXBsYXRlCisgICAgICAg ICAgICByZXN1bHQgPSByZXNbJ3Jvd3MnXVswXQorICAgICAgICAgICAgU1FM ID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3Bh dGgsICdkZWxldGUuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG5hbWU9cmVzdWx0WyduYW1lJ10sCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2NoZW1hPXJlc3VsdFsnc2NoZW1hJ10s CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzY2FkZT1j YXNjYWRlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQor ICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9z Y2FsYXIoU1FMKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAg ICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9y bXNnPXJlcykKKworICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNw b25zZSgKKyAgICAgICAgICAgICAgICBzdWNjZXNzPTEsCisgICAgICAgICAg ICAgICAgaW5mbz1nZXR0ZXh0KCJGdHMgdGVtcGxhdGUgZHJvcHBlZCIpLAor ICAgICAgICAgICAgICAgIGRhdGE9eworICAgICAgICAgICAgICAgICAgICAn aWQnOiB0aWQsCisgICAgICAgICAgICAgICAgICAgICdzaWQnOiBzaWQsCisg ICAgICAgICAgICAgICAgICAgICdnaWQnOiBnaWQsCisgICAgICAgICAgICAg ICAgICAgICdkaWQnOiBkaWQsCisgICAgICAgICAgICAgICAgICAgICdzY2lk Jzogc2NpZAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICkKKwor ICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICBy ZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkK KworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgbXNxbChzZWxm LCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQ9Tm9uZSk6CisgICAgICAgICIi IgorICAgICAgICAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIG1vZGlmaWVkIFNR TAorICAgICAgICAiIiIKKyAgICAgICAgZGF0YSA9IHJlcXVlc3QuYXJncwor ICAgICAgICBTUUwgPSBzZWxmLmdldFNRTChnaWQsIHNpZCwgZGlkLCBzY2lk LCBkYXRhLCB0aWQpCisgICAgICAgIGlmIGlzaW5zdGFuY2UoU1FMLCBzdHIp IGFuZCBTUUwgYW5kIFNRTC5zdHJpcCgnXG4nKSBhbmQgU1FMLnN0cmlwKCcg Jyk6CisgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAor ICAgICAgICAgICAgICAgICAgICBkYXRhPVNRTCwKKyAgICAgICAgICAgICAg ICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICAgICApCisgICAg ICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3Bv bnNlKAorICAgICAgICAgICAgICAgICAgICBkYXRhPSItLW1vZGlmaWVkIFNR TCIsCisgICAgICAgICAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAg ICAgICAgICAgICAgKQorCisgICAgZGVmIGdldFNRTChzZWxmLCBnaWQsIHNp ZCwgZGlkLCBzY2lkLCBkYXRhLCB0aWQ9Tm9uZSk6CisgICAgICAgICIiIgor ICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIFNRTCBmb3IgbW9k ZWwgZGF0YQorICAgICAgICAiIiIKKyAgICAgICAgdHJ5OgorICAgICAgICAg ICAgaWYgdGlkIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIFNRTCA9 IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRo LCAncHJvcGVydGllcy5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHRpZD10aWQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNjaWQ9c2NpZAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgc3Rh dHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKworICAg ICAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAg ICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVz KQorCisgICAgICAgICAgICAgICAgb2xkX2RhdGEgPSByZXNbJ3Jvd3MnXVsw XQorICAgICAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAg ICAgICAgICAgICAgICAgICAgIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0 aCwgJ3VwZGF0ZS5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgIGRhdGE9 ZGF0YSwgb19kYXRhPW9sZF9kYXRhCisgICAgICAgICAgICAgICAgICAgICkK KyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgaWYgJ3RtcGxs ZXhpemUnIGluIGRhdGEgYW5kICd0bXBsbmFtZScgaW4gZGF0YSBhbmQgJ3Nj aGVtYScgaW4gZGF0YToKKyAgICAgICAgICAgICAgICAgICAgU1FMID0gcmVu ZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdj cmVhdGUuc3FsJ10pLCBkYXRhPWRhdGEsIGNvbm49c2VsZi5jb25uKQorICAg ICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIFNRTCA9 ICItLSBpbmNvbXBsZXRlIGRlZmluaXRpb24iCisgICAgICAgICAgICByZXR1 cm4gU1FMCisKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAg ICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1z Zz1zdHIoZSkpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVm IGdldGxleGl6ZShzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCBjaWQ9Tm9u ZSk6CisgICAgICAgIGRhdGEgPSByZXF1ZXN0LmFyZ3MKKyAgICAgICAgU1FM ID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3Bh dGgsICdmdW5jdGlvbnMuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGV4aXplPVRydWUpCisgICAgICAgIHN0YXR1cywgcnNldCA9 IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQorCisgICAgICAgIGlmIG5v dCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVy X2Vycm9yKGVycm9ybXNnPXJzZXQpCisKKyAgICAgICAgcmVzID0gW3snbGFi ZWwnOiAnJywgJ3ZhbHVlJzogJyd9XQorICAgICAgICAjIFRPRE86IGFkZCBz Y2hlbWFwcmVmaXggdG8gcHJvbmFtZSBiZWZvcmUgYWRkaW5nIGl0IHRvIHZh bHVlIGluIHJlcworICAgICAgICBmb3Igcm93IGluIHJzZXRbJ3Jvd3MnXToK KyAgICAgICAgICAgIHJlcy5hcHBlbmQoeydsYWJlbCc6IHJvd1sncHJvbmFt ZSddLAorICAgICAgICAgICAgICAgICAgICAgICAndmFsdWUnOiByb3dbJ3By b25hbWUnXX0pCisgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2Uo CisgICAgICAgICAgICAgICAgICAgIGRhdGE9cmVzLAorICAgICAgICAgICAg ICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICAgICAgICAgICAgICkKKwor ICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZ2V0aW5pdChzZWxm LCBnaWQsIHNpZCwgZGlkLCBzY2lkLCBjaWQ9Tm9uZSk6CisgICAgICAgIGRh dGEgPSByZXF1ZXN0LmFyZ3MKKyAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBs YXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdmdW5jdGlvbnMu c3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdD1U cnVlKQorICAgICAgICBzdGF0dXMsIHJzZXQgPSBzZWxmLmNvbm4uZXhlY3V0 ZV9kaWN0KFNRTCkKKworICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAg ICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1y c2V0KQorCisgICAgICAgICMgV2UgaGF2ZSBhZGRlZCB0aGlzIHRvIG1hcCBh Z2FpbnN0ICctJyB3aGljaCBpcyBjb21pbmcgZnJvbSBwcm9wZXJ0aWVzCisg ICAgICAgIHJlcyA9IFt7J2xhYmVsJzogJycsICd2YWx1ZSc6ICctJ31dCisg ICAgICAgICMgVE9ETzogYWRkIHNjaGVtYXByZWZpeCB0byBwcm9uYW1lIGJl Zm9yZSBhZGRpbmcgaXQgdG8gdmFsdWUgaW4gcmVzCisgICAgICAgIGZvciBy b3cgaW4gcnNldFsncm93cyddOgorICAgICAgICAgICAgcmVzLmFwcGVuZCh7 J2xhYmVsJzogcm93Wydwcm9uYW1lJ10sCisgICAgICAgICAgICAgICAgICAg ICAgICd2YWx1ZSc6IHJvd1sncHJvbmFtZSddfSkKKyAgICAgICAgcmV0dXJu IG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICAgICAgZGF0 YT1yZXMsCisgICAgICAgICAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAg ICAgICAgICAgICAgICAgKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgor ICAgIGRlZiBzcWwoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlkKToK KyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBnZW5l cmF0ZSBzcWwgZm9yIHNxbCBwYW5lbAorICAgICAgICAiIiIKKyAgICAgICAg dHJ5OgorICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKAorICAg ICAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdw cm9wZXJ0aWVzLnNxbCddKSwKKyAgICAgICAgICAgICAgICB0aWQ9dGlkLAor ICAgICAgICAgICAgICAgIHNjaWQ9c2NpZAorICAgICAgICAgICAgICAgICkK KyAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVf ZGljdChTUUwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAg ICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jt c2c9cmVzKQorCisgICAgICAgICAgICByZXN1bHQgPSByZXNbJ3Jvd3MnXVsw XQorICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2lu KFtzZWxmLnRlbXBsYXRlX3BhdGgsICdjcmVhdGUuc3FsJ10pLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE9cmVzdWx0LAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm49c2VsZi5jb25u LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzX3NxbD1U cnVlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorICAg ICAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UocmVzcG9uc2U9U1FMKQor CisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAg IHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUp KQorCitGdHNUZW1wbGF0ZVZpZXcucmVnaXN0ZXJfbm9kZV92aWV3KGJsdWVw cmludCkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3N0YXRpYy9pbWcvY29s bC1mdHNfdGVtcGxhdGUucG5nIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBs YXRlcy9zdGF0aWMvaW1nL2NvbGwtZnRzX3RlbXBsYXRlLnBuZwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwLi5mYWJkNDdkYTdhZTI3YjA0YjBiZmQzOGE3YjFl ZTlmNmMxYTc0ZDJjCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA2MDEKemNt WSs5WWUtVzg2dnl1aiEhNT83ekRTPTdmP1FuSkVadjhpd1hJRVoqbWpFdyVI Nz11SUxwaXBMODdiJG1PYW9ZCnpHXjU5SUNPUzsqS3wmOGh2fXFFe0EmIXVj R0JBcDhjbFdqWFVOYDtKaHlWR1YxTHBfbHZ7a3pnPXlqV1EwMDhKKwp6UE1i JCU7bEM4RFF8bVVQIUs7Rj1KX3ktV0NhMFBjQDUqenpSNHpCQ0Q2QCs0TnRV TjJYO1BCaj1XX0dXWmt3VmMKeldjaDxBelVLTC1JMVZZd1hCPEJ5JVRwTlVt WlVLaHRyVWI4OTJiJTA4Q2l9Pyh6cXpUNn4kM09jK1ReSzlNe0xQCnp3PXR8 cjZ5SiNBRD91M0hgNTRETktAY207Y0dHbUxBaU5aV1ZWKW8weE0oKX1mTXZU RjxgJT07SysqamkqT1NmTwp6WFczNE0+N2VPcmV0IylOd1Bkc1JTb1JMWHc5 fEFPTU9+KC0zbmJaYCQlT3A9R01jXnUhKUEmKTU1cig0NlpIOXQKejM4SWRv RXxLSXBsNUVPazhWUkRGQU9oKCRvPSYzK0xRT3pAVUs4QFR5P31OMzMkNn5A MklzTSRPNk9gRUFNNXQwCnpPXyQ0NzBUczw1Sn5YVXh0T3RGNTlMSGV7YFN9 ZUU+bCk1UldBSVhpY1ZoQi1VdSZEOE8yMjhaXlhBMSEkSD4rRwp6eUpiI21V YSFNYmRFOVp0ZU53WH1RczlhOTQpKDxRaDh9QS0mZ0tteVFfMTxjLUptJjcy YnxEQiRTSHBTdVpMXiUKenBCNDRUN3ZpYko7JkBWOTQwd00wU15CLWFeOEh0 U2FJQUIqZWZVdn0pbUkxczZJMFV3S3JiMzFVbFNYZSlEeVJjCno+XzxaPTlL dEx9QmM9aXtmaEN9XiNBRjBaQVFOYVlAM2ZkcHd9WWg/NVBaMEBCbGUkZ2BW M2wmSD9JamBgS3E5OQpZbj1SbjNIRFJYZkBTckxIRjF5PHt3OWdtKjMjYzc1 ZGpKM2MKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvc3RhdGljL2ltZy9mdHNfdGVt cGxhdGUucG5nIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy9zdGF0 aWMvaW1nL2Z0c190ZW1wbGF0ZS5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MC4uZWI3ODBiZjBiYjBmNWQ3NzdlOGE3MjcyMGI1ZWQwZTJhZDQ4YmM0NQpH SVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNjk2CnpjbVkrQ1M0PmpANm96a2Nx PndRNSFHTGsjQ0x6VTNTKW9RIVlyJGVGVTwtdCRjSEtxLWgoYmReUTJ+aC1N SWpNbwp6Qk8pUkoxVD0wJT5XR1hlVk0lPF5fKyZJdWRpVEQhVWc2MXl8TlE0 cSZpQ0A/KVRBVUdAYnl7bTB8MDw7cUUyZyYKekptODw/RTJKNXNASFlhMD5g O242SEN+RHtWYFduI3VeIUtZJDFeWEF2IVhhSGlrfTJ3UVZfOz97PU1Ddj1K Q3dnCno/TTZ8WWZ9cTJLRmIrWTxKcFRyUV5jP3A+NmxYOzdxYWFLTyFVdnZ6 JWshZmdfbWJuRHZneys0OXA/RldKbiFQVAp6Un4rfEBXZ29OYjFCU1Y4dnVT QyVvOTlQMz9tNWRvVmNDWmFHc3JNfkc8fXoqWiZPcXxOakJTVEkraChgbjB9 aD4KenEzSkcpPlklNj1sRHVpTHMwaVhKIXdmTFlKKHw4bFFNVnxubF9WUVVA O1g2VyF8fV5GZWk2Zn1YdTh2Q2pVJms+CnpsNThNfEkpYj1APENrIyEwKXx6 WCV9Tnc0Q0NNOEVRQk0lSElQUyNwWTdERXl1KEsjeWhOMn0xUWo4I2xJOV9B MQp6TTR7K3V2bCVwKjZmaigxR0tJcU1hU1NfO3FHdTRxZmdxPDQ8T0JAbyFF bW5JWkZqcUVabnQkK3h3bDN0Uk9UPXcKejgzRlo9RkxvKC1wVlZhKk9SaWZ8 IWJEITJ2fihxRV9vVzhUU3hxaldSeGZ3UypQMU09ejFGMmltLXI9eD9Re1kk Cnp7PH1BaVImPkA2JWVDcjtXUE9ndGE0OygmLUVYVUZPVU9gWFp9Jmh+VXl0 OUtmWjZIISpAYzxVYjFgN0dkXnw5eQp6d1cqfiFKMG1NfHxIfU9RS2ZnQ19Y bTJ9YF5FS0ZPYVp8XzlaKml+QmlMJU9vJUZnZmcpNUVaSHkhVTZJUT1RK0kK enR1RUklRVFUVDxaRSV6VitgQkN6YmtEQXNJYDk1dGF2NHppRGA7V0J4YyVQ Oz9RcTBySUJhR0lxX1AlNGteeEZFCno5OGBvVzY8fk8oNT4hUC1zM04wNiE2 KzM3Yn1XWVZ7UmIyaitIJm4+JUsjWD0xVzREQkRsbUUobX4yY05rTl9ZdApM SzFuO01GOylFcTA0OHlOCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3RlbXBsYXRl cy9mdHNfdGVtcGxhdGUvanMvZnRzX3RlbXBsYXRlcy5qcyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z0c190ZW1wbGF0ZXMvdGVtcGxhdGVzL2Z0c190ZW1wbGF0ZS9q cy9mdHNfdGVtcGxhdGVzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjdjYzZlYzUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdHNfdGVtcGxhdGVzL3RlbXBsYXRlcy9mdHNfdGVtcGxhdGUv anMvZnRzX3RlbXBsYXRlcy5qcwpAQCAtMCwwICsxLDEwOSBAQAorZGVmaW5l KAorICAgICAgICBbJ2pxdWVyeScsICd1bmRlcnNjb3JlJywgJ3VuZGVyc2Nv cmUuc3RyaW5nJywgJ3BnYWRtaW4nLCAncGdhZG1pbi5icm93c2VyJywgJ2Fs ZXJ0aWZ5JywgJ3BnYWRtaW4uYnJvd3Nlci5jb2xsZWN0aW9uJ10sCitmdW5j dGlvbigkLCBfLCBTLCBwZ0FkbWluLCBwZ0Jyb3dzZXIsIGFsZXJ0aWZ5KSB7 CisKKyAgaWYgKCFwZ0Jyb3dzZXIuTm9kZXNbJ2NvbGwtZnRzX3RlbXBsYXRl J10pIHsKKyAgICB2YXIgZnRzX3RlbXBsYXRlcyA9IHBnQWRtaW4uQnJvd3Nl ci5Ob2Rlc1snY29sbC1mdHNfdGVtcGxhdGUnXSA9CisgICAgICBwZ0FkbWlu LkJyb3dzZXIuQ29sbGVjdGlvbi5leHRlbmQoeworICAgICAgICBub2RlOiAn ZnRzX3RlbXBsYXRlJywKKyAgICAgICAgbGFiZWw6ICd7eyBfKCdGVFMgVGVt cGxhdGVzJykgfX0nLAorICAgICAgICB0eXBlOiAnY29sbC1mdHNfdGVtcGxh dGUnCisgICAgICB9KTsKKyAgfTsKKworICBpZiAoIXBnQnJvd3Nlci5Ob2Rl c1snZnRzX3RlbXBsYXRlJ10pIHsKKyAgICBwZ0FkbWluLkJyb3dzZXIuTm9k ZXNbJ2Z0c190ZW1wbGF0ZSddID0gcGdBZG1pbi5Ccm93c2VyLk5vZGUuZXh0 ZW5kKHsKKyAgICAgIHBhcmVudF90eXBlOiAnc2NoZW1hJywKKyAgICAgIHR5 cGU6ICdmdHNfdGVtcGxhdGUnLAorICAgICAgY2FuRHJvcDogdHJ1ZSwKKyAg ICAgIGNhbkRyb3BDYXNjYWRlOiB0cnVlLAorICAgICAgbGFiZWw6ICd7eyBf KCdGVFMgVGVtcGxhdGVzJykgfX0nLAorICAgICAgaGFzU1FMOiB0cnVlLAor ICAgICAgSW5pdDogZnVuY3Rpb24oKSB7CisgICAgICAgIC8qIEF2b2lkIG11 bGl0cGxlIHJlZ2lzdHJhdGlvbiBvZiBtZW51cyAqLworICAgICAgICBpZiAo dGhpcy5pbml0aWFsaXplZCkKKyAgICAgICAgICByZXR1cm47CisKKyAgICAg ICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7CisKKyAgICAgICAgcGdCcm93 c2VyLmFkZF9tZW51cyhbeworICAgICAgICAgIG5hbWU6ICdjcmVhdGVfZnRz X3RlbXBsYXRlX29uX3NjaGVtYScsIG5vZGU6ICdzY2hlbWEnLCBtb2R1bGU6 IHRoaXMsCisgICAgICAgICAgYXBwbGllczogWydvYmplY3QnLCAnY29udGV4 dCddLCBjYWxsYmFjazogJ3Nob3dfb2JqX3Byb3BlcnRpZXMnLAorICAgICAg ICAgIGNhdGVnb3J5OiAnY3JlYXRlJywgcHJpb3JpdHk6IDQsIGxhYmVsOiAn e3sgXygnRlRTIFRlbXBsYXRlLi4uJykgfX0nLAorICAgICAgICAgIGljb246 ICd3Y1RhYkljb24gaWNvbi1mdHNfdGVtcGxhdGUnLCBkYXRhOiB7YWN0aW9u OiAnY3JlYXRlJ30KKyAgICAgICAgICB9LHsKKyAgICAgICAgICBuYW1lOiAn Y3JlYXRlX2Z0c190ZW1wbGF0ZV9vbl9jb2xsJywgbm9kZTogJ2NvbGwtZnRz X3RlbXBsYXRlJywgbW9kdWxlOiB0aGlzLAorICAgICAgICAgIGFwcGxpZXM6 IFsnb2JqZWN0JywgJ2NvbnRleHQnXSwgY2FsbGJhY2s6ICdzaG93X29ial9w cm9wZXJ0aWVzJywKKyAgICAgICAgICBjYXRlZ29yeTogJ2NyZWF0ZScsIHBy aW9yaXR5OiA0LCBsYWJlbDogJ3t7IF8oJ0ZUUyBUZW1wbGF0ZS4uLicpIH19 JywKKyAgICAgICAgICBpY29uOiAnd2NUYWJJY29uIGljb24tZnRzX3RlbXBs YXRlJywgZGF0YToge2FjdGlvbjogJ2NyZWF0ZSd9CisgICAgICAgICAgfSx7 CisgICAgICAgICAgbmFtZTogJ2NyZWF0ZV9mdHNfdGVtcGxhdGUnLCBub2Rl OiAnZnRzX3RlbXBsYXRlJywgbW9kdWxlOiB0aGlzLAorICAgICAgICAgIGFw cGxpZXM6IFsnb2JqZWN0JywgJ2NvbnRleHQnXSwgY2FsbGJhY2s6ICdzaG93 X29ial9wcm9wZXJ0aWVzJywKKyAgICAgICAgICBjYXRlZ29yeTogJ2NyZWF0 ZScsIHByaW9yaXR5OiA0LCBsYWJlbDogJ3t7IF8oJ0ZUUyBUZW1wbGF0ZS4u LicpIH19JywKKyAgICAgICAgICBpY29uOiAnd2NUYWJJY29uIGljb24tZnRz X3RlbXBsYXRlJywgZGF0YToge2FjdGlvbjogJ2NyZWF0ZSd9CisgICAgICAg ICAgfV0pOworCisgICAgICB9LAorICAgICAgbW9kZWw6IHBnQWRtaW4uQnJv d3Nlci5Ob2RlLk1vZGVsLmV4dGVuZCh7CisgICAgICAgIGRlZmF1bHRzOiB7 CisgICAgICAgICAgdG1wbG5hbWU6IHVuZGVmaW5lZCwKKyAgICAgICAgICBk ZXNjcnB0aW9uOiB1bmRlZmluZWQsCisgICAgICAgICAgc2NoZW1hOiB1bmRl ZmluZWQsCisgICAgICAgICAgdG1wbGluaXQ6IHVuZGVmaW5lZCwKKyAgICAg ICAgICB0bXBsbGV4aXplOiB1bmRlZmluZWQKKyAgICAgICAgfSwKKyAgICAg ICAgc2NoZW1hOiBbeworICAgICAgICAgIGlkOiAndG1wbG5hbWUnLCBsYWJl bDogJ3t7IF8oJ05hbWUnKSB9fScsIGNlbGw6ICdzdHJpbmcnLCBncm91cDog J0RlZmluaXRpb24nLAorICAgICAgICAgIHR5cGU6ICd0ZXh0JywKKyAgICAg ICAgfSx7CisgICAgICAgICAgaWQ6ICdvaWQnLCBsYWJlbDone3sgXygnT2lk JykgfX0nLCBjZWxsOiAnc3RyaW5nJywgZ3JvdXA6ICdEZWZpbml0aW9uJywK KyAgICAgICAgICBlZGl0YWJsZTogZmFsc2UsIHR5cGU6ICd0ZXh0JywgZGlz YWJsZWQ6IHRydWUKKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdkZXNj cmlwdGlvbicsIGxhYmVsOid7eyBfKCdDb21tZW50JykgfX0nLCBjZWxsOiAn c3RyaW5nJywgZ3JvdXA6ICdQcm9wZXJ0aWVzJywKKyAgICAgICAgICB0eXBl OiAnbXVsdGlsaW5lJworICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ3Rt cGxpbml0JywgbGFiZWw6ICd7eyBfKCdJbml0Jyl9fScsIGdyb3VwOiAnRGVm aW5pdGlvbicsCisgICAgICAgICAgdHlwZTogJ3RleHQnLCBkaXNhYmxlZDog ZnVuY3Rpb24obSkgeyByZXR1cm4gIW0uaXNOZXcoKTsgfSwKKyAgICAgICAg ICBjb250cm9sOiAnbm9kZS1hamF4LW9wdGlvbnMnLCB1cmw6ICdnZXRpbml0 JworICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ3RtcGxsZXhpemUnLCBs YWJlbDogJ3t7IF8oJ0xleGl6ZScpfX0nLCBncm91cDogJ0RlZmluaXRpb24n LAorICAgICAgICAgIHR5cGU6ICd0ZXh0JywgZGlzYWJsZWQ6IGZ1bmN0aW9u KG0pIHsgcmV0dXJuICFtLmlzTmV3KCk7IH0sCisgICAgICAgICAgY29udHJv bDogJ25vZGUtYWpheC1vcHRpb25zJywgdXJsOiAnZ2V0bGV4aXplJworICAg ICAgICB9LHsKKyAgICAgICAgICBpZDogJ3NjaGVtYScsIGxhYmVsOiAne3sg XygnU2NoZW1hJyl9fScsIGNlbGw6ICdzdHJpbmcnLCBncm91cDogJ0RlZmlu aXRpb24nLAorICAgICAgICAgIHR5cGU6ICd0ZXh0JywgbW9kZTogWydjcmVh dGUnLCdlZGl0J10sIG5vZGU6ICdzY2hlbWEnLAorICAgICAgICAgIGNvbnRy b2w6ICdub2RlLWxpc3QtYnktbmFtZScKKyAgICAgICAgfV0sCisgICAgICAg IHZhbGlkYXRlOiBmdW5jdGlvbihrZXlzKXsKKyAgICAgICAgICB2YXIgbmFt ZSA9IHRoaXMuZ2V0KCd0bXBsbmFtZScpOworICAgICAgICAgIHZhciBsZXhp emUgPSB0aGlzLmdldCgndG1wbGxleGl6ZScpOworICAgICAgICAgIHZhciBz Y2hlbWEgPSB0aGlzLmdldCgnc2NoZW1hJyk7CisgICAgICAgICAgaWYgKF8u aXNVbmRlZmluZWQobmFtZSkgfHwgXy5pc051bGwobmFtZSkgfHwgU3RyaW5n KG5hbWUpLnJlcGxhY2UoL15ccyt8XHMrJC9nLCAnJykgPT0gJycpIHsKKyAg ICAgICAgICAgIHZhciBtc2cgPSAne3sgXygnTmFtZSBtdXN0IGJlIHNwZWNp ZmllZCEnKSB9fSc7CisgICAgICAgICAgICB0aGlzLmVycm9yTW9kZWwuc2V0 KCduYW1lJywgbXNnKTsKKyAgICAgICAgICAgIHJldHVybiBtc2c7CisgICAg ICAgICAgfQorICAgICAgICAgIGVsc2UgaWYgKF8uaXNVbmRlZmluZWQobGV4 aXplKSB8fCBfLmlzTnVsbChsZXhpemUpIHx8IFN0cmluZyhsZXhpemUpLnJl cGxhY2UoL15ccyt8XHMrJC9nLCAnJykgPT0gJycpIHsKKyAgICAgICAgICAg IHZhciBtc2cgPSAne3sgXygnTGV4aXplIGZ1bmN0aW9uIG11c3QgYmUgc2Vs ZWN0ZWQhJykgfX0nOworICAgICAgICAgICAgdGhpcy5lcnJvck1vZGVsLnNl dCgndG1wbGxleGl6ZScsIG1zZyk7CisgICAgICAgICAgICByZXR1cm4gbXNn OworICAgICAgICAgIH0KKyAgICAgICAgICBlbHNlIGlmIChfLmlzVW5kZWZp bmVkKHNjaGVtYSkgfHwgXy5pc051bGwoc2NoZW1hKSB8fCBTdHJpbmcoc2No ZW1hKS5yZXBsYWNlKC9eXHMrfFxzKyQvZywgJycpID09ICcnKSB7CisgICAg ICAgICAgICB2YXIgbXNnID0gJ3t7IF8oJ1NjaGVtYSBtdXN0IGJlIHNlbGVj dGVkIScpIH19JzsKKyAgICAgICAgICAgIHRoaXMuZXJyb3JNb2RlbC5zZXQo J3NjaGVtYScsIG1zZyk7CisgICAgICAgICAgICByZXR1cm4gbXNnOworICAg ICAgICAgIH0KKyAgICAgICAgICBlbHNlCisgICAgICAgICAgeworICAgICAg ICAgICAgdGhpcy5lcnJvck1vZGVsLnVuc2V0KCd0bXBsbGV4aXplJyk7Cisg ICAgICAgICAgICB0aGlzLmVycm9yTW9kZWwudW5zZXQoJ3NjaGVtYScpOwor ICAgICAgICAgIH0KKyAgICAgICAgICB0aGlzLnRyaWdnZXIoJ29uLXN0YXR1 cy1jbGVhcicpOworICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9 CisgICAgICB9KQorICAgIH0pOworICB9CisKK3JldHVybiBwZ0Jyb3dzZXIu Tm9kZXNbJ2NvbGwtZnRzX3RlbXBsYXRlJ107Cit9KTsKXCBObyBuZXdsaW5l IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dHNfdGVtcGxhdGVzL3RlbXBsYXRlcy9mdHNfdGVtcGxhdGUvc3FsL2NyZWF0 ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3RlbXBsYXRl cy9mdHNfdGVtcGxhdGUvc3FsL2NyZWF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uNDYyZDVmOAotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvdGVtcGxhdGVzL2Z0 c190ZW1wbGF0ZS9zcWwvY3JlYXRlLnNxbApAQCAtMCwwICsxLDE5IEBACisK KworeyMgQ1JFQVRFIFRFWFQgU0VBUkNIIFRFTVBMQVRFIFN0YXRlbWVudCAj fQoreyUgaWYgZGF0YSBhbmQgZGF0YS5zY2hlbWEgYW5kIGRhdGEudG1wbG5h bWUgYW5kIGRhdGEudG1wbGxleGl6ZSAlfQoreyUgaWYgaXNfc3FsICV9Cist LSBUZXh0IFNlYXJjaCBUZW1wbGF0ZToge3tjb25ufHF0SWRlbnQoZGF0YS5z Y2hlbWEpfX0ue3tjb25ufHF0SWRlbnQoZGF0YS50bXBsbmFtZSl9fQorCist LSBEUk9QIFRFWFQgU0VBUkNIIFRFTVBMQVRFIHt7Y29ubnxxdElkZW50KGRh dGEuc2NoZW1hKX19Lnt7Y29ubnxxdElkZW50KGRhdGEudG1wbG5hbWUpfX0K K3slIGVuZGlmICV9CisKK0NSRUFURSBURVhUIFNFQVJDSCBURU1QTEFURSB7 eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEpIH19Lnt7IGNvbm58cXRJZGVu dChkYXRhLnRtcGxuYW1lKSB9fSAoCit7JSBpZiBkYXRhLnRtcGxpbml0IGFu ZCBkYXRhLnRtcGxpbml0ICE9ICctJyV9ICBJTklUID0ge3tkYXRhLnRtcGxp bml0fX17JSBlbmRpZiAlfSwKKyAgTEVYSVpFID0ge3tkYXRhLnRtcGxsZXhp emV9fQorKTsKK3sjIERlc2NyaXB0aW9uIGZvciBURVhUIFNFQVJDSCBURU1Q TEFURSAjfQoreyUgaWYgZGF0YS5kZXNjcmlwdGlvbiAlfQorQ09NTUVOVCBP TiBURVhUIFNFQVJDSCBURU1QTEFURSB7eyBjb25ufHF0SWRlbnQoZGF0YS5z Y2hlbWEpIH19Lnt7IGNvbm58cXRJZGVudChkYXRhLnRtcGxuYW1lKSB9fQor ICAgICAgSVMge3sgZGF0YS5kZXNjcmlwdGlvbnxxdExpdGVyYWwgfX07Cit7 JSBlbmRpZiAlfXslIGVuZGlmICV9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg ZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRl cy90ZW1wbGF0ZXMvZnRzX3RlbXBsYXRlL3NxbC9kZWxldGUuc3FsIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy90ZW1wbGF0ZXMvZnRzX3RlbXBs YXRlL3NxbC9kZWxldGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLmFjMTFhYzkKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdHNfdGVtcGxhdGVzL3RlbXBsYXRlcy9mdHNfdGVtcGxhdGUv c3FsL2RlbGV0ZS5zcWwKQEAgLTAsMCArMSwyMCBAQAoreyMgRkVUQ0ggVEVY VCBTRUFSQ0ggVEVNUExBVEUgTkFNRSBTdGF0ZW1lbnQgI30KK3slIGlmIHRp ZCAlfQorICBTRUxFQ1QKKyAgICB0LnRtcGxuYW1lIEFTIG5hbWUsCisgICAg KFNFTEVDVAorICAgICAgICBuc3BuYW1lCisgICAgIEZST00KKyAgICAgICAg cGdfbmFtZXNwYWNlCisgICAgIFdIRVJFCisgICAgICAgIG9pZCA9IHQudG1w bG5hbWVzcGFjZSkgYXMgc2NoZW1hCisgIEZST00KKyAgICBwZ190c190ZW1w bGF0ZSB0IExFRlQgSk9JTiBwZ19kZXNjcmlwdGlvbiBkCisgIE9OIGQub2Jq b2lkPXQub2lkIEFORCBkLmNsYXNzb2lkPSdwZ190c190ZW1wbGF0ZSc6OnJl Z2NsYXNzCisgIFdIRVJFCisgICAgdC5vaWQgPSB7e3RpZH19OjpPSUQ7Cit7 JSBlbmRpZiAlfQoreyMgRFJPUCBURVhUIFNFQVJDSCBURU1QTEFURSBTdGF0 ZW1lbnQgI30KK3slIGlmIHNjaGVtYSBhbmQgbmFtZSAlfQorRFJPUCBURVhU IFNFQVJDSCBURU1QTEFURSB7e2Nvbm58cXRJZGVudChzY2hlbWEpfX0ue3tj b25ufHF0SWRlbnQobmFtZSl9fSB7JSBpZiBjYXNjYWRlICV9Q0FTQ0FERXsl ZW5kaWYlfTsKK3slIGVuZGlmICV9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg ZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRl cy90ZW1wbGF0ZXMvZnRzX3RlbXBsYXRlL3NxbC9mdW5jdGlvbnMuc3FsIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy90ZW1wbGF0ZXMvZnRzX3Rl bXBsYXRlL3NxbC9mdW5jdGlvbnMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjczY2U5ZTIKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3RlbXBsYXRlcy9mdHNfdGVt cGxhdGUvc3FsL2Z1bmN0aW9ucy5zcWwKQEAgLTAsMCArMSwyMiBAQAoreyMg RkVUQ0ggbGV4aXplIGZ1bmN0aW9ucyBmb3IgVEVYVCBTRUFSQ0ggVEVNUExB VEUgI30KK3slIGlmIGxleGl6ZSAlfQorU0VMRUNUCisgICAgcHJvbmFtZSwg bnNwbmFtZQorRlJPTQorICAgIHBnX3Byb2MgSk9JTiBwZ19uYW1lc3BhY2Ug biBPTiBuLm9pZD1wcm9uYW1lc3BhY2UKK1dIRVJFCisgICAgcHJvcmV0dHlw ZT0yMjgxCisgICAgQU5EIHByb2FyZ3R5cGVzPScyMjgxIDIyODEgMjI4MSAy MjgxJworT1JERVIgQlkgcHJvbmFtZTsKK3slIGVuZGlmICV9CisKK3sjIEZF VENIIGluaXQgZnVuY3Rpb25zIGZvciBURVhUIFNFQVJDSCBURU1QTEFURSAj fQoreyUgaWYgaW5pdCAlfQorU0VMRUNUCisgICAgcHJvbmFtZSwgbnNwbmFt ZQorRlJPTQorICAgIHBnX3Byb2MgSk9JTiBwZ19uYW1lc3BhY2UgbiBPTiBu Lm9pZD1wcm9uYW1lc3BhY2UKK1dIRVJFCisgICAgcHJvcmV0dHlwZT0yMjgx IGFuZCBwcm9hcmd0eXBlcz0nMjI4MScKK09SREVSIEJZIHByb25hbWU7Cit7 JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3Rl bXBsYXRlcy90ZW1wbGF0ZXMvZnRzX3RlbXBsYXRlL3NxbC9wcm9wZXJ0aWVz LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvdGVtcGxhdGVz L2Z0c190ZW1wbGF0ZS9zcWwvcHJvcGVydGllcy5zcWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmNjMTFmMAotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvdGVtcGxhdGVz L2Z0c190ZW1wbGF0ZS9zcWwvcHJvcGVydGllcy5zcWwKQEAgLTAsMCArMSwz NyBAQAoreyMgR2V0IE9JRCBmb3IgRlRTIFRFTVBMQVRFICN9Cit7JSBpZiBu YW1lICV9CitTRUxFQ1QKKyAgICB0bXBsLm9pZAorRlJPTQorICAgIHBnX3Rz X3RlbXBsYXRlIHRtcGwKK1dIRVJFCisgICAgdG1wbC50bXBsbmFtZSA9IHt7 bmFtZXxxdExpdGVyYWx9fQoreyMgRkVUQ0ggcHJvcGVydGllcyBmb3IgRlRT IFRFTVBMQVRFICN9Cit7JSBlbHNlICV9CisKK1NFTEVDVAorICAgIHRtcGwu b2lkLAorICAgIHRtcGwudG1wbG5hbWUsCisgICAgdG1wbC50bXBsaW5pdCwK KyAgICB0bXBsLnRtcGxsZXhpemUsCisgICAgZGVzY3JpcHRpb24sCisgICAg KFNFTEVDVAorICAgICAgICBuc3BuYW1lCisgICAgIEZST00KKyAgICAgICAg cGdfbmFtZXNwYWNlCisgICAgIFdIRVJFCisgICAgICAgIG9pZCA9IHRtcGwu dG1wbG5hbWVzcGFjZQorICAgICkgQVMgc2NoZW1hCitGUk9NCisgICAgcGdf dHNfdGVtcGxhdGUgdG1wbCBMRUZUIE9VVEVSIEpPSU4gcGdfZGVzY3JpcHRp b24gZGVzCitPTgorICAgIChkZXMub2Jqb2lkPXRtcGwub2lkIEFORCBkZXMu Y2xhc3NvaWQ9J3BnX3RzX3RlbXBsYXRlJzo6cmVnY2xhc3MpCitXSEVSRQor ICAgIHRtcGwudG1wbG5hbWVzcGFjZSA9IHt7c2NpZH19OjpPSUQKK3slIGlm IHRpZCAlfQorICAgIEFORCB0bXBsLm9pZD17e3RpZH19OjpPSUQKK3slIGVu ZGlmICV9CitPUkRFUiBCWQordG1wbC50bXBsbmFtZQorCit7JSBlbmRpZiAl fQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvdGVtcGxhdGVzL2Z0c190ZW1w bGF0ZS9zcWwvdXBkYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1w bGF0ZXMvdGVtcGxhdGVzL2Z0c190ZW1wbGF0ZS9zcWwvdXBkYXRlLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMmZkYzQ1Ci0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRl cy90ZW1wbGF0ZXMvZnRzX3RlbXBsYXRlL3NxbC91cGRhdGUuc3FsCkBAIC0w LDAgKzEsMTUgQEAKK3sjIFVQREFURSBOQU1FIGZvciBURVhUIFNFQVJDSCBU RU1QTEFURSBzdGF0ZW1lbnQgI30KK3slIGlmIGRhdGEgJX0KK3slIGlmIGRh dGEudG1wbG5hbWUgYW5kIGRhdGEudG1wbG5hbWUgIT0gb19kYXRhLnRtcGxu YW1lICV9CisgIEFMVEVSIFRFWFQgU0VBUkNIIFRFTVBMQVRFIHt7Y29ubnxx dElkZW50KG9fZGF0YS5zY2hlbWEpfX0ue3tjb25ufHF0SWRlbnQob19kYXRh LnRtcGxuYW1lKX19CisgICAgUkVOQU1FIFRPIHt7ZGF0YS50bXBsbmFtZX19 OworeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuc2NoZW1hIGFuZCBkYXRhLnNj aGVtYSAhPSBvX2RhdGEuc2NoZW1hICV9CisgIEFMVEVSIFRFWFQgU0VBUkNI IFRFTVBMQVRFIHt7Y29ubnxxdElkZW50KG9fZGF0YS5zY2hlbWEpfX0ue3tj b25ufHF0SWRlbnQob19kYXRhLnRtcGxuYW1lKX19CisgICAgU0VUIFNDSEVN QSB7e2RhdGEuc2NoZW1hfX07Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5k ZXNjcmlwdGlvbiBhbmQgZGF0YS5kZXNjcmlwdGlvbiAhPSBvX2RhdGEuZGVz Y3JpcHRpb24gJX0KKyAgQ09NTUVOVCBPTiBURVhUIFNFQVJDSCBURU1QTEFU RSB7e2Nvbm58cXRJZGVudChvX2RhdGEuc2NoZW1hKX19Lnt7Y29ubnxxdElk ZW50KG9fZGF0YS50bXBsbmFtZSl9fQorICAgIElTIHt7IGRhdGEuZGVzY3Jp cHRpb258cXRMaXRlcmFsIH19OworeyUgZW5kaWYgJX0KK3slIGVuZGlmICV9 ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo= --001a11431b4ead6e2f052a6537fb 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 --001a11431b4ead6e2f052a6537fb--