Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1alxYi-0005Ba-0K for pgadmin-hackers@arkaria.postgresql.org; Fri, 01 Apr 2016 11:48:12 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1alxYg-0005fg-R9 for pgadmin-hackers@arkaria.postgresql.org; Fri, 01 Apr 2016 11:48:10 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1alxYS-0005R6-ED for pgadmin-hackers@postgresql.org; Fri, 01 Apr 2016 11:47:56 +0000 Received: from mail-oi0-x22a.google.com ([2607:f8b0:4003:c06::22a]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1alxYN-00016F-NZ for pgadmin-hackers@postgresql.org; Fri, 01 Apr 2016 11:47:55 +0000 Received: by mail-oi0-x22a.google.com with SMTP id o62so101443713oig.1 for ; Fri, 01 Apr 2016 04:47:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc; bh=ILH9qKTAD49ONQgbbIwqKMgb3B3yvKFb+KxLkWvx7yU=; b=zdLfAZotqpzUBzdN21KdbqwCEFcVBNPXJEgPnIAXZmlyQZqq3e6Xd13uSax2ypdRk2 XbqZXaPnKLlEpV05gKwcRqqs4Vm90KiiqiKnpJwRrUdRj8J7m5rkLMprofOH+5mvTI8I bkjrcKPK5/V633fXrkmpuh26SUNOi6K+iLTUfNG3NA7TpBPCTdABUp6po9w2NlT6vKGH AtCmU2uHtfvBOhppI5hYMUSe0u+NsNsHnfwoLpddjhtE0BHWtvic9ufkM4hf0OD9g2N+ JWm3i832YN4tQk5XNyBrsPZTgROSXuKYhWoslUUeXvUg4OmaBd7cXkoEz1Yl5xnRZqpR ohmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc; bh=ILH9qKTAD49ONQgbbIwqKMgb3B3yvKFb+KxLkWvx7yU=; b=LUSxkxQ5wxoWE8DMaXQVCwNYnGI/HMnmEI7a9vsQw5bkOS4vkafYF1ddChOSiJB6OK +9LjXQtm3zlqDbE0q9FxyiTf5KqXI5M8gvTnU5Xei/KF42VlxKfvEPTdvgEoh85/NKeX 8FIjl8jqcI/AdOfVcG9lnz5RZf0QeLyW/TP0YzmboBvk4+mOd2fuXMpJATtjO88OSgMJ OZ5gWikg3lIgSX2lr8XnSEk3srMU1qqziu/l7BHWZAvYwLQZSPCB9vSHvs7umWurqgFk O5zd55uS0CrOE3IpoHBHIBdVAclq/DmxI+rfvcyqcl7f/+FP9azgawywShDOWyVpjS5C QyEQ== X-Gm-Message-State: AD7BkJI1r4oOwi33DtGa6CPRsYwFZ1/pvJm9zqxwxIgCLEyIUZRRJWadoIBfw96y30zhmtTMDBFFSaU0TE47w2iZ MIME-Version: 1.0 X-Received: by 10.157.0.37 with SMTP id 34mr2144542ota.161.1459511269534; Fri, 01 Apr 2016 04:47:49 -0700 (PDT) Received: by 10.202.49.194 with HTTP; Fri, 1 Apr 2016 04:47:49 -0700 (PDT) In-Reply-To: References: Date: Fri, 1 Apr 2016 17:17:49 +0530 Message-ID: Subject: Re: [pgAdmin4][Patch] Add formatted error message support in psycopg2 From: Akshay Joshi To: Ashesh Vashi Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary=94eb2c032edac4d5fd052f6af226 X-Pg-Spam-Score: -2.6 (--) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgadmin-hackers Precedence: bulk Sender: pgadmin-hackers-owner@postgresql.org --94eb2c032edac4d5fd052f6af226 Content-Type: multipart/alternative; boundary=94eb2c032edac4d5f7052f6af224 --94eb2c032edac4d5f7052f6af224 Content-Type: text/plain; charset=UTF-8 Hi On Fri, Apr 1, 2016 at 3:53 PM, Ashesh Vashi wrote: > Hi Akshay, > > I've update the patch a little bit as discussed offline. > Also, renamed the variable 'is_cancel_transaction' to 'execution_aborted', > and enum value to 'ASYNC_EXECUTION_ABORTED'. > As per our discussion I have modified the logic and attached is the updated patch. Please review it. > > -- > > Thanks & Regards, > > Ashesh Vashi > EnterpriseDB INDIA: Enterprise PostgreSQL Company > > > > *http://www.linkedin.com/in/asheshvashi* > > > On Thu, Mar 31, 2016 at 4:55 PM, Akshay Joshi < > akshay.joshi@enterprisedb.com> wrote: > >> Hi >> >> Please ignore the last two patches, While implementing Query Tool I have >> found one more issue in poll function when run queries like "create table" >> , "insert table". I have added exception handling before fetching the row >> from the cursor directly. >> >> Attached is the modified patch. Please review it and if it looks good >> please commit it. >> >> On Thu, Mar 31, 2016 at 12:37 PM, Akshay Joshi < >> akshay.joshi@enterprisedb.com> wrote: >> >>> Hi >>> >>> On Tue, Mar 29, 2016 at 8:09 PM, Akshay Joshi >> .com> wrote: >>> >>>> Hi All >>>> >>>> While implementing Query Tool, I came to know we need error message's >>>> with some extra information and also I have faced one issue regarding >>>> asynchronous connection polling. I have added support for formatted error >>>> message and also fixed the issue. >>>> >>>> Attached is the patch file. Please review it and let me know the review >>>> comments if any. >>>> >>> >>> Apart from above, today I fixed one more issue. In case of user >>> cancel the running transaction, poll function of psycopg2 returns >>> psycopg2.extensions.POLL_OK, which is mislead by the caller of the >>> function, so I have added one flag which will be true if user purposely >>> cancel the transaction and from our poll function we return new status i.e. >>> ASYNC_CANCEL_TRANSACTION. >>> >>> Attached is the modified patch. Please review it and if it looks good >>> please commit it. >>> >>>> >>>> >>>> -- >>>> *Akshay Joshi* >>>> *Principal Software Engineer * >>>> >>>> >>>> >>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>> >>> >>> >>> >>> -- >>> *Akshay Joshi* >>> *Principal Software Engineer * >>> >>> >>> >>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>> >> >> >> >> -- >> *Akshay Joshi* >> *Principal Software Engineer * >> >> >> >> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >> >> >> -- >> Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) >> To make changes to your subscription: >> http://www.postgresql.org/mailpref/pgadmin-hackers >> >> > -- *Akshay Joshi* *Principal Software Engineer * *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* --94eb2c032edac4d5f7052f6af224 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi=C2=A0

On Fri, Apr 1, 2016 at 3:53 PM, Ashesh Va= shi <ash= esh.vashi@enterprisedb.com><= /span> wrote:
Hi Akshay,=

I've update the patch a little bit as discussed off= line.
Also, renamed the variable 'is_cancel_transaction' = to 'execution_aborted', and enum value to 'ASYNC_EXECUTION_ABOR= TED'.

=C2=A0 =C2=A0As per o= ur discussion I have modified the logic and attached is the updated patch.<= /div>
=C2=A0 Please review it.
=C2=A0

--

= Thanks & Regards,

Ashesh Vashi
Enterpr= iseDB INDIA: Enterprise PostgreSQL Company

<= br>

<= a href=3D"http://www.linkedin.com/in/asheshvashi" target=3D"_blank">http= ://www.linkedin.com/in/asheshvashi


On Thu, Mar 31, 2016 = at 4:55 PM, Akshay Joshi <akshay.joshi@enterprisedb.com>= ; wrote:
Hi=C2=A0

Please ignore the la= st two patches, While implementing Query Tool I have found one more issue i= n poll function when run queries like "create table" , "inse= rt table". I have added exception handling before fetching the row fro= m the cursor directly.=C2=A0

Attached is the modified patch. Please review it and if i= t looks good please commit it.=C2=A0



--
Akshay= Joshi
Principal Software Engineer=C2=A0


Phone: +91 20-3058-9517
Mobil= e: +91 976-788-8246


--
Sent via pgadmin-hackers mailing list (
pgadmin-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers=





--
Akshay= Joshi<= /b>
= Principal Software Engineer=C2=A0


<= b>Phone: +91 20-3058-9517
Mobile: +91 976-788= -8246
--94eb2c032edac4d5f7052f6af224-- --94eb2c032edac4d5fd052f6af226 Content-Type: application/octet-stream; name="Psycopg2_Formatted_Error_v3.patch" Content-Disposition: attachment; filename="Psycopg2_Formatted_Error_v3.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_imhnbfim1 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3V0aWxzL2RyaXZlci9hYnN0cmFj dC5weSBiL3dlYi9wZ2FkbWluL3V0aWxzL2RyaXZlci9hYnN0cmFjdC5weQpp bmRleCA4YTIzY2NiLi41MzY5MjUxIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1p bi91dGlscy9kcml2ZXIvYWJzdHJhY3QucHkKKysrIGIvd2ViL3BnYWRtaW4v dXRpbHMvZHJpdmVyL2Fic3RyYWN0LnB5CkBAIC04MSwyMSArODEsMjEgQEAg Y2xhc3MgQmFzZUNvbm5lY3Rpb24ob2JqZWN0KToKICAgICAgIC0gRGVmaW5l IHRoaXMgbWV0aG9kIHRvIGNvbm5lY3QgdGhlIHNlcnZlciB1c2luZyB0aGF0 IHBhcnRpY3VsYXIgZHJpdmVyCiAgICAgICAgIGltcGxlbWVudGF0aW9uLgog Ci0gICAgKiBleGVjdXRlX3NjYWxhcihxdWVyeSwgcGFyYW1zKQorICAgICog ZXhlY3V0ZV9zY2FsYXIocXVlcnksIHBhcmFtcywgZm9ybWF0dGVkX2V4Y2Vw dGlvbl9tc2cpCiAgICAgICAtIEltcGxlbWVudCB0aGlzIG1ldGhvZCB0byBl eGVjdXRlIHRoZSBnaXZlbiBxdWVyeSBhbmQgcmV0dXJucyBzaW5nbGUKICAg ICAgICAgZGF0dW0gcmVzdWx0LgogCi0gICAgKiBleGVjdXRlX2FzeW5jKHF1 ZXJ5LCBwYXJhbXMpCisgICAgKiBleGVjdXRlX2FzeW5jKHF1ZXJ5LCBwYXJh bXMsIGZvcm1hdHRlZF9leGNlcHRpb25fbXNnKQogICAgICAgLSBJbXBsZW1l bnQgdGhpcyBtZXRob2QgdG8gZXhlY3V0ZSB0aGUgZ2l2ZW4gcXVlcnkgYXN5 bmNocm9ub3VzbHkgYW5kIHJldHVybnMgcmVzdWx0LgogCi0gICAgKiBleGVj dXRlX3ZvaWQocXVlcnksIHBhcmFtcykKKyAgICAqIGV4ZWN1dGVfdm9pZChx dWVyeSwgcGFyYW1zLCBmb3JtYXR0ZWRfZXhjZXB0aW9uX21zZykKICAgICAg IC0gSW1wbGVtZW50IHRoaXMgbWV0aG9kIHRvIGV4ZWN1dGUgdGhlIGdpdmVu IHF1ZXJ5IHdpdGggbm8gcmVzdWx0LgogCi0gICAgKiBleGVjdXRlXzJkYXJy YXkocXVlcnksIHBhcmFtcykKKyAgICAqIGV4ZWN1dGVfMmRhcnJheShxdWVy eSwgcGFyYW1zLCBmb3JtYXR0ZWRfZXhjZXB0aW9uX21zZykKICAgICAgIC0g SW1wbGVtZW50IHRoaXMgbWV0aG9kIHRvIGV4ZWN1dGUgdGhlIGdpdmVuIHF1 ZXJ5IGFuZCByZXR1cm5zIHRoZSByZXN1bHQKICAgICAgICAgYXMgYSAyIGRp bWVuc2lvbmFsIGFycmF5LgogCi0gICAgKiBleGVjdXRlX2RpY3QocXVlcnks IHBhcmFtcykKKyAgICAqIGV4ZWN1dGVfZGljdChxdWVyeSwgcGFyYW1zLCBm b3JtYXR0ZWRfZXhjZXB0aW9uX21zZykKICAgICAgIC0gSW1wbGVtZW50IHRo aXMgbWV0aG9kIHRvIGV4ZWN1dGUgdGhlIGdpdmVuIHF1ZXJ5IGFuZCByZXR1 cm5zIHRoZSByZXN1bHQKICAgICAgICAgYXMgYW4gYXJyYXkgb2YgZGljdCAo Y29sdW1uIG5hbWUgLT4gdmFsdWUpIGZvcm1hdC4KIApAQCAtMTMxLDcgKzEz MSw3IEBAIGNsYXNzIEJhc2VDb25uZWN0aW9uKG9iamVjdCk6CiAgICAgICAt IEltcGxlbWVudCB0aGlzIG1ldGhvZCB0byB3YWl0IGZvciBhc3luY2hyb25v dXMgY29ubmVjdGlvbiB3aXRoIHRpbWVvdXQuCiAgICAgICAgIFRoaXMgbXVz dCBiZSBhIG5vbiBibG9ja2luZyBjYWxsLgogCi0gICAgKiBwb2xsKCkKKyAg ICAqIHBvbGwoZm9ybWF0dGVkX2V4Y2VwdGlvbl9tc2cpCiAgICAgICAtIElt cGxlbWVudCB0aGlzIG1ldGhvZCB0byBwb2xsIHRoZSBkYXRhIG9mIHF1ZXJ5 IHJ1bm5pbmcgb24gYXN5bmNocm9ub3VzCiAgICAgICAgIGNvbm5lY3Rpb24u CiAKQEAgLTE0NywyOSArMTQ3LDMwIEBAIGNsYXNzIEJhc2VDb25uZWN0aW9u KG9iamVjdCk6CiAgICAgQVNZTkNfUkVBRF9USU1FT1VUID0gMgogICAgIEFT WU5DX1dSSVRFX1RJTUVPVVQgPSAzCiAgICAgQVNZTkNfTk9UX0NPTk5FQ1RF RCA9IDQKKyAgICBBU1lOQ19FWEVDVVRJT05fQUJPUlRFRCA9IDUKIAogICAg IEBhYnN0cmFjdG1ldGhvZAogICAgIGRlZiBjb25uZWN0KHNlbGYsICoqa3dh cmdzKToKICAgICAgICAgcGFzcwogCiAgICAgQGFic3RyYWN0bWV0aG9kCi0g ICAgZGVmIGV4ZWN1dGVfc2NhbGFyKHNlbGYsIHF1ZXJ5LCBwYXJhbXM9Tm9u ZSk6CisgICAgZGVmIGV4ZWN1dGVfc2NhbGFyKHNlbGYsIHF1ZXJ5LCBwYXJh bXM9Tm9uZSwgZm9ybWF0dGVkX2V4Y2VwdGlvbl9tc2c9RmFsc2UpOgogICAg ICAgICBwYXNzCiAKICAgICBAYWJzdHJhY3RtZXRob2QKLSAgICBkZWYgZXhl Y3V0ZV9hc3luYyhzZWxmLCBxdWVyeSwgcGFyYW1zPU5vbmUpOgorICAgIGRl ZiBleGVjdXRlX2FzeW5jKHNlbGYsIHF1ZXJ5LCBwYXJhbXM9Tm9uZSwgZm9y bWF0dGVkX2V4Y2VwdGlvbl9tc2c9VHJ1ZSk6CiAgICAgICAgIHBhc3MKIAog ICAgIEBhYnN0cmFjdG1ldGhvZAotICAgIGRlZiBleGVjdXRlX3ZvaWQoc2Vs ZiwgcXVlcnksIHBhcmFtcz1Ob25lKToKKyAgICBkZWYgZXhlY3V0ZV92b2lk KHNlbGYsIHF1ZXJ5LCBwYXJhbXM9Tm9uZSwgZm9ybWF0dGVkX2V4Y2VwdGlv bl9tc2c9RmFsc2UpOgogICAgICAgICBwYXNzCiAKICAgICBAYWJzdHJhY3Rt ZXRob2QKLSAgICBkZWYgZXhlY3V0ZV8yZGFycmF5KHNlbGYsIHF1ZXJ5LCBw YXJhbXM9Tm9uZSk6CisgICAgZGVmIGV4ZWN1dGVfMmRhcnJheShzZWxmLCBx dWVyeSwgcGFyYW1zPU5vbmUsIGZvcm1hdHRlZF9leGNlcHRpb25fbXNnPUZh bHNlKToKICAgICAgICAgcGFzcwogCiAgICAgQGFic3RyYWN0bWV0aG9kCi0g ICAgZGVmIGV4ZWN1dGVfZGljdChzZWxmLCBxdWVyeSwgcGFyYW1zPU5vbmUp OgorICAgIGRlZiBleGVjdXRlX2RpY3Qoc2VsZiwgcXVlcnksIHBhcmFtcz1O b25lLCBmb3JtYXR0ZWRfZXhjZXB0aW9uX21zZz1GYWxzZSk6CiAgICAgICAg IHBhc3MKIAogICAgIEBhYnN0cmFjdG1ldGhvZApAQCAtMjAxLDcgKzIwMiw3 IEBAIGNsYXNzIEJhc2VDb25uZWN0aW9uKG9iamVjdCk6CiAgICAgICAgIHBh c3MKIAogICAgIEBhYnN0cmFjdG1ldGhvZAotICAgIGRlZiBwb2xsKHNlbGYp OgorICAgIGRlZiBwb2xsKHNlbGYsIGZvcm1hdHRlZF9leGNlcHRpb25fbXNn PVRydWUpOgogICAgICAgICBwYXNzCiAKICAgICBAYWJzdHJhY3RtZXRob2QK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3V0aWxzL2RyaXZlci9wc3ljb3Bn Mi9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL3V0aWxzL2RyaXZlci9wc3lj b3BnMi9fX2luaXRfXy5weQppbmRleCBkYjkzOGJjLi44N2I1ZjUzIDEwMDY0 NAotLS0gYS93ZWIvcGdhZG1pbi91dGlscy9kcml2ZXIvcHN5Y29wZzIvX19p bml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vdXRpbHMvZHJpdmVyL3BzeWNv cGcyL19faW5pdF9fLnB5CkBAIC0zNSw3ICszNSw3IEBAIGZyb20gLmtleXdv cmRzIGltcG9ydCBTY2FuS2V5d29yZAogCiBfID0gZ2V0dGV4dAogCi1BU1lO Q19XQUlUX1RJTUVPVVQgPSAwLjEgICMgaW4gc2Vjb25kcyBvciAxMDAgbWls bGlzZWNvbmRzCitBU1lOQ19XQUlUX1RJTUVPVVQgPSAwLjAxICAjIGluIHNl Y29uZHMgb3IgMTAgbWlsbGlzZWNvbmRzCiAKIAogY2xhc3MgQ29ubmVjdGlv bihCYXNlQ29ubmVjdGlvbik6CkBAIC01MCwyMCArNTAsMjAgQEAgY2xhc3Mg Q29ubmVjdGlvbihCYXNlQ29ubmVjdGlvbik6CiAgICAgKiBjb25uZWN0KCoq a3dhcmdzKQogICAgICAgLSBDb25uZWN0IHRoZSBQb3N0Z3JlU1FML1Bvc3Rn cmVzIFBsdXMgc2VydmVycyB1c2luZyB0aGUgcHN5Y29wZzIgZHJpdmVyCiAK LSAgICAqIGV4ZWN1dGVfc2NhbGFyKHF1ZXJ5LCBwYXJhbXMpCisgICAgKiBl eGVjdXRlX3NjYWxhcihxdWVyeSwgcGFyYW1zLCBmb3JtYXR0ZWRfZXhjZXB0 aW9uX21zZykKICAgICAgIC0gRXhlY3V0ZSB0aGUgZ2l2ZW4gcXVlcnkgYW5k IHJldHVybnMgc2luZ2xlIGRhdHVtIHJlc3VsdAogCi0gICAgKiBleGVjdXRl X2FzeW5jKHF1ZXJ5LCBwYXJhbXMpCisgICAgKiBleGVjdXRlX2FzeW5jKHF1 ZXJ5LCBwYXJhbXMsIGZvcm1hdHRlZF9leGNlcHRpb25fbXNnKQogICAgICAg LSBFeGVjdXRlIHRoZSBnaXZlbiBxdWVyeSBhc3luY2hyb25vdXNseSBhbmQg cmV0dXJucyByZXN1bHQuCiAKLSAgICAqIGV4ZWN1dGVfdm9pZChxdWVyeSwg cGFyYW1zKQorICAgICogZXhlY3V0ZV92b2lkKHF1ZXJ5LCBwYXJhbXMsIGZv cm1hdHRlZF9leGNlcHRpb25fbXNnKQogICAgICAgLSBFeGVjdXRlIHRoZSBn aXZlbiBxdWVyeSB3aXRoIG5vIHJlc3VsdC4KIAotICAgICogZXhlY3V0ZV8y ZGFycmF5KHF1ZXJ5LCBwYXJhbXMpCisgICAgKiBleGVjdXRlXzJkYXJyYXko cXVlcnksIHBhcmFtcywgZm9ybWF0dGVkX2V4Y2VwdGlvbl9tc2cpCiAgICAg ICAtIEV4ZWN1dGUgdGhlIGdpdmVuIHF1ZXJ5IGFuZCByZXR1cm5zIHRoZSBy ZXN1bHQgYXMgYSAyIGRpbWVuc2lvbmFsCiAgICAgICAgIGFycmF5LgogCi0g ICAgKiBleGVjdXRlX2RpY3QocXVlcnksIHBhcmFtcykKKyAgICAqIGV4ZWN1 dGVfZGljdChxdWVyeSwgcGFyYW1zLCBmb3JtYXR0ZWRfZXhjZXB0aW9uX21z ZykKICAgICAgIC0gRXhlY3V0ZSB0aGUgZ2l2ZW4gcXVlcnkgYW5kIHJldHVy bnMgdGhlIHJlc3VsdCBhcyBhbiBhcnJheSBvZiBkaWN0CiAgICAgICAgIChj b2x1bW4gbmFtZSAtPiB2YWx1ZSkgZm9ybWF0LgogCkBAIC05MSw3ICs5MSw3 IEBAIGNsYXNzIENvbm5lY3Rpb24oQmFzZUNvbm5lY3Rpb24pOgogICAgICAg LSBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIHdhaXQgZm9yIGFzeW5jaHJvbm91 cyBjb25uZWN0aW9uIHdpdGggdGltZW91dC4KICAgICAgICAgVGhpcyBpcyBh IG5vbiBibG9ja2luZyBjYWxsLgogCi0gICAgKiBwb2xsKCkKKyAgICAqIHBv bGwoZm9ybWF0dGVkX2V4Y2VwdGlvbl9tc2cpCiAgICAgICAtIFRoaXMgbWV0 aG9kIGlzIHVzZWQgdG8gcG9sbCB0aGUgZGF0YSBvZiBxdWVyeSBydW5uaW5n IG9uIGFzeW5jaHJvbm91cwogICAgICAgICBjb25uZWN0aW9uLgogCkBAIC0x MDIsNiArMTAyLDEyIEBAIGNsYXNzIENvbm5lY3Rpb24oQmFzZUNvbm5lY3Rp b24pOgogICAgICogbWVzc2FnZXMoKQogICAgICAgLSBSZXR1cm5zIHRoZSBs aXN0IG9mIG1lc3NhZ2VzL25vdGljZXMgc2VuZHMgZnJvbSB0aGUgUG9zdGdy ZVNRTCBkYXRhYmFzZQogICAgICAgICBzZXJ2ZXIuCisKKyAgICAqIF9mb3Jt YXR0ZWRfZXhjZXB0aW9uX21zZyhleGNlcHRpb25fb2JqLCBmb3JtYXR0ZWRf bXNnKQorICAgICAgLSBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIHBhcnNlIHRo ZSBwc3ljb3BnMi5FcnJvciBvYmplY3QgYW5kIHJldHVybnMgdGhlCisgICAg ICAgIGZvcm1hdHRlZCBlcnJvciBtZXNzYWdlIGlmIGZsYWcgaXMgc2V0IHRv IHRydWUgZWxzZSByZXR1cm4KKyAgICAgICAgbm9ybWFsIGVycm9yIG1lc3Nh Z2UuCisKICAgICAiIiIKICAgICBkZWYgX19pbml0X18oc2VsZiwgbWFuYWdl ciwgY29ubl9pZCwgZGIsIGF1dG9fcmVjb25uZWN0PVRydWUsIGFzeW5jPTAp OgogICAgICAgICBhc3NlcnQobWFuYWdlciBpcyBub3QgTm9uZSkKQEAgLTEx Niw2ICsxMjIsNyBAQCBjbGFzcyBDb25uZWN0aW9uKEJhc2VDb25uZWN0aW9u KToKICAgICAgICAgc2VsZi5fX2FzeW5jX2N1cnNvciA9IE5vbmUKICAgICAg ICAgc2VsZi5fX2FzeW5jX3F1ZXJ5X2lkID0gTm9uZQogICAgICAgICBzZWxm Ll9fYmFja2VuZF9waWQgPSBOb25lCisgICAgICAgIHNlbGYuZXhlY3V0aW9u X2Fib3J0ZWQgPSBGYWxzZQogCiAgICAgICAgIHN1cGVyKENvbm5lY3Rpb24s IHNlbGYpLl9faW5pdF9fKCkKIApAQCAtMjI0LDYgKzIzMSw3IEBAIEZhaWxl ZCB0byBjb25uZWN0IHRvIHRoZSBkYXRhYmFzZSBzZXJ2ZXIoI3tzZXJ2ZXJf aWR9KSBmb3IgY29ubmVjdGlvbiAoe2Nvbm5faWR9CiAKICAgICAgICAgc2Vs Zi5jb25uID0gcGdfY29ubgogICAgICAgICBzZWxmLl9fYmFja2VuZF9waWQg PSBwZ19jb25uLmdldF9iYWNrZW5kX3BpZCgpCisgICAgICAgIHNlbGYuZXhl Y3V0aW9uX2Fib3J0ZWQgPSBGYWxzZQogCiAgICAgICAgICMgYXV0b2NvbW1p dCBmbGFnIGRvZXMgbm90IHdvcmsgd2l0aCBhc3luY2hyb25vdXMgY29ubmVj dGlvbnMuCiAgICAgICAgICMgQnkgZGVmYXVsdCBhc3luY2hyb25vdXMgY29u bmVjdGlvbiBydW5zIGluIGF1dG9jb21taXQgbW9kZS4KQEAgLTQwOSw3ICs0 MTcsNyBAQCBBdHRlbXB0IHRvIHJlY29ubmVjdCBpdCBmYWlsZWQgd2l0aCB0 aGUgYmVsb3cgZXJyb3I6CiAgICAgICAgIGlmIHNlbGYuYXN5bmMgPT0gMToK ICAgICAgICAgICAgIHNlbGYuX3dhaXQoY3VyLmNvbm5lY3Rpb24pCiAKLSAg ICBkZWYgZXhlY3V0ZV9zY2FsYXIoc2VsZiwgcXVlcnksIHBhcmFtcz1Ob25l KToKKyAgICBkZWYgZXhlY3V0ZV9zY2FsYXIoc2VsZiwgcXVlcnksIHBhcmFt cz1Ob25lLCBmb3JtYXR0ZWRfZXhjZXB0aW9uX21zZz1GYWxzZSk6CiAgICAg ICAgIHN0YXR1cywgY3VyID0gc2VsZi5fX2N1cnNvcigpCiAKICAgICAgICAg aWYgbm90IHN0YXR1czoKQEAgLTQyOCw3ICs0MzYsNyBAQCBBdHRlbXB0IHRv IHJlY29ubmVjdCBpdCBmYWlsZWQgd2l0aCB0aGUgYmVsb3cgZXJyb3I6CiAg ICAgICAgICAgICBzZWxmLl9faW50ZXJuYWxfYmxvY2tpbmdfZXhlY3V0ZShj dXIsIHF1ZXJ5LCBwYXJhbXMpCiAgICAgICAgIGV4Y2VwdCBwc3ljb3BnMi5F cnJvciBhcyBwZToKICAgICAgICAgICAgIGN1ci5jbG9zZSgpCi0gICAgICAg ICAgICBlcnJtc2cgPSBzdHIocGUpCisgICAgICAgICAgICBlcnJtc2cgPSBz ZWxmLl9mb3JtYXR0ZWRfZXhjZXB0aW9uX21zZyhwZSwgZm9ybWF0dGVkX2V4 Y2VwdGlvbl9tc2cpCiAgICAgICAgICAgICBjdXJyZW50X2FwcC5sb2dnZXIu ZXJyb3IoCiAgICAgICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gZXhlY3V0 ZSBxdWVyeSAoZXhlY3V0ZV9zY2FsYXIpIGZvciB0aGUgc2VydmVyICN7c2Vy dmVyX2lkfSAtIHtjb25uX2lkfSAoUXVlcnktaWQ6IHtxdWVyeV9pZH0pOlxu RXJyb3IgTWVzc2FnZTp7ZXJybXNnfSIuZm9ybWF0KAogICAgICAgICAgICAg ICAgICAgICAgICAgc2VydmVyX2lkPXNlbGYubWFuYWdlci5zaWQsCkBAIC00 NDcsMTMgKzQ1NSwxNCBAQCBBdHRlbXB0IHRvIHJlY29ubmVjdCBpdCBmYWls ZWQgd2l0aCB0aGUgYmVsb3cgZXJyb3I6CiAKICAgICAgICAgcmV0dXJuIFRy dWUsIE5vbmUKIAotICAgIGRlZiBleGVjdXRlX2FzeW5jKHNlbGYsIHF1ZXJ5 LCBwYXJhbXM9Tm9uZSk6CisgICAgZGVmIGV4ZWN1dGVfYXN5bmMoc2VsZiwg cXVlcnksIHBhcmFtcz1Ob25lLCBmb3JtYXR0ZWRfZXhjZXB0aW9uX21zZz1U cnVlKToKICAgICAgICAgIiIiCiAgICAgICAgIFRoaXMgZnVuY3Rpb24gZXhl Y3V0ZXMgdGhlIGdpdmVuIHF1ZXJ5IGFzeW5jaHJvbm91c2x5IGFuZCByZXR1 cm5zIHJlc3VsdC4KIAogICAgICAgICBBcmdzOgogICAgICAgICAgICAgcXVl cnk6IFNRTCBxdWVyeSB0byBydW4uCiAgICAgICAgICAgICBwYXJhbXM6IGV4 dHJhIHBhcmFtZXRlcnMgdG8gdGhlIGZ1bmN0aW9uCisgICAgICAgICAgICBm b3JtYXR0ZWRfZXhjZXB0aW9uX21zZzogaWYgVHJ1ZSB0aGVuIGZ1bmN0aW9u IHJldHVybiB0aGUgZm9ybWF0dGVkIGV4Y2VwdGlvbiBtZXNzYWdlCiAgICAg ICAgICIiIgogICAgICAgICBzdGF0dXMsIGN1ciA9IHNlbGYuX19jdXJzb3Io KQogCkBAIC00NzIsMTAgKzQ4MSwxMSBAQCBFeGVjdXRlIChhc3luYykgZm9y IHNlcnZlciAje3NlcnZlcl9pZH0gLSB7Y29ubl9pZH0gKFF1ZXJ5LWlkOiB7 cXVlcnlfaWR9KTpcbntxdQogICAgICAgICApCiAKICAgICAgICAgdHJ5Ogor ICAgICAgICAgICAgc2VsZi5leGVjdXRpb25fYWJvcnRlZCA9IEZhbHNlCiAg ICAgICAgICAgICBjdXIuZXhlY3V0ZShxdWVyeSwgcGFyYW1zKQogICAgICAg ICAgICAgcmVzID0gc2VsZi5fd2FpdF90aW1lb3V0KGN1ci5jb25uZWN0aW9u LCBBU1lOQ19XQUlUX1RJTUVPVVQpCiAgICAgICAgIGV4Y2VwdCBwc3ljb3Bn Mi5FcnJvciBhcyBwZToKLSAgICAgICAgICAgIGVycm1zZyA9IHN0cihwZSkK KyAgICAgICAgICAgIGVycm1zZyA9IHNlbGYuX2Zvcm1hdHRlZF9leGNlcHRp b25fbXNnKHBlLCBmb3JtYXR0ZWRfZXhjZXB0aW9uX21zZykKICAgICAgICAg ICAgIGN1cnJlbnRfYXBwLmxvZ2dlci5lcnJvcigiIiIKIEZhaWxlZCB0byBl eGVjdXRlIHF1ZXJ5IChleGVjdXRlX2FzeW5jKSBmb3IgdGhlIHNlcnZlciAj e3NlcnZlcl9pZH0gLSB7Y29ubl9pZH0KIChRdWVyeS1pZDoge3F1ZXJ5X2lk fSk6XG5FcnJvciBNZXNzYWdlOntlcnJtc2d9CkBAIC00OTQsMTMgKzUwNCwx NCBAQCBGYWlsZWQgdG8gZXhlY3V0ZSBxdWVyeSAoZXhlY3V0ZV9hc3luYykg Zm9yIHRoZSBzZXJ2ZXIgI3tzZXJ2ZXJfaWR9IC0ge2Nvbm5faWR9CiAKICAg ICAgICAgcmV0dXJuIFRydWUsIHJlcwogCi0gICAgZGVmIGV4ZWN1dGVfdm9p ZChzZWxmLCBxdWVyeSwgcGFyYW1zPU5vbmUpOgorICAgIGRlZiBleGVjdXRl X3ZvaWQoc2VsZiwgcXVlcnksIHBhcmFtcz1Ob25lLCBmb3JtYXR0ZWRfZXhj ZXB0aW9uX21zZz1GYWxzZSk6CiAgICAgICAgICIiIgogICAgICAgICBUaGlz IGZ1bmN0aW9uIGV4ZWN1dGVzIHRoZSBnaXZlbiBxdWVyeSB3aXRoIG5vIHJl c3VsdC4KIAogICAgICAgICBBcmdzOgogICAgICAgICAgICAgcXVlcnk6IFNR TCBxdWVyeSB0byBydW4uCiAgICAgICAgICAgICBwYXJhbXM6IGV4dHJhIHBh cmFtZXRlcnMgdG8gdGhlIGZ1bmN0aW9uCisgICAgICAgICAgICBmb3JtYXR0 ZWRfZXhjZXB0aW9uX21zZzogaWYgVHJ1ZSB0aGVuIGZ1bmN0aW9uIHJldHVy biB0aGUgZm9ybWF0dGVkIGV4Y2VwdGlvbiBtZXNzYWdlCiAgICAgICAgICIi IgogICAgICAgICBzdGF0dXMsIGN1ciA9IHNlbGYuX19jdXJzb3IoKQogCkBA IC01MjIsNyArNTMzLDcgQEAgRXhlY3V0ZSAodm9pZCkgZm9yIHNlcnZlciAj e3NlcnZlcl9pZH0gLSB7Y29ubl9pZH0gKFF1ZXJ5LWlkOiB7cXVlcnlfaWR9 KTpcbntxdWUKICAgICAgICAgICAgIHNlbGYuX19pbnRlcm5hbF9ibG9ja2lu Z19leGVjdXRlKGN1ciwgcXVlcnksIHBhcmFtcykKICAgICAgICAgZXhjZXB0 IHBzeWNvcGcyLkVycm9yIGFzIHBlOgogICAgICAgICAgICAgY3VyLmNsb3Nl KCkKLSAgICAgICAgICAgIGVycm1zZyA9IHN0cihwZSkKKyAgICAgICAgICAg IGVycm1zZyA9IHNlbGYuX2Zvcm1hdHRlZF9leGNlcHRpb25fbXNnKHBlLCBm b3JtYXR0ZWRfZXhjZXB0aW9uX21zZykKICAgICAgICAgICAgIGN1cnJlbnRf YXBwLmxvZ2dlci5lcnJvcigiIiIKIEZhaWxlZCB0byBleGVjdXRlIHF1ZXJ5 IChleGVjdXRlX3ZvaWQpIGZvciB0aGUgc2VydmVyICN7c2VydmVyX2lkfSAt IHtjb25uX2lkfQogKFF1ZXJ5LWlkOiB7cXVlcnlfaWR9KTpcbkVycm9yIE1l c3NhZ2U6e2Vycm1zZ30KQEAgLTUzOCw3ICs1NDksNyBAQCBGYWlsZWQgdG8g ZXhlY3V0ZSBxdWVyeSAoZXhlY3V0ZV92b2lkKSBmb3IgdGhlIHNlcnZlciAj e3NlcnZlcl9pZH0gLSB7Y29ubl9pZH0KIAogICAgICAgICByZXR1cm4gVHJ1 ZSwgTm9uZQogCi0gICAgZGVmIGV4ZWN1dGVfMmRhcnJheShzZWxmLCBxdWVy eSwgcGFyYW1zPU5vbmUpOgorICAgIGRlZiBleGVjdXRlXzJkYXJyYXkoc2Vs ZiwgcXVlcnksIHBhcmFtcz1Ob25lLCBmb3JtYXR0ZWRfZXhjZXB0aW9uX21z Zz1GYWxzZSk6CiAgICAgICAgIHN0YXR1cywgY3VyID0gc2VsZi5fX2N1cnNv cigpCiAKICAgICAgICAgaWYgbm90IHN0YXR1czoKQEAgLTU1Nyw3ICs1Njgs NyBAQCBGYWlsZWQgdG8gZXhlY3V0ZSBxdWVyeSAoZXhlY3V0ZV92b2lkKSBm b3IgdGhlIHNlcnZlciAje3NlcnZlcl9pZH0gLSB7Y29ubl9pZH0KICAgICAg ICAgICAgIHNlbGYuX19pbnRlcm5hbF9ibG9ja2luZ19leGVjdXRlKGN1ciwg cXVlcnksIHBhcmFtcykKICAgICAgICAgZXhjZXB0IHBzeWNvcGcyLkVycm9y IGFzIHBlOgogICAgICAgICAgICAgY3VyLmNsb3NlKCkKLSAgICAgICAgICAg IGVycm1zZyA9IHN0cihwZSkKKyAgICAgICAgICAgIGVycm1zZyA9IHNlbGYu X2Zvcm1hdHRlZF9leGNlcHRpb25fbXNnKHBlLCBmb3JtYXR0ZWRfZXhjZXB0 aW9uX21zZykKICAgICAgICAgICAgIGN1cnJlbnRfYXBwLmxvZ2dlci5lcnJv cigKICAgICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byBleGVjdXRlIHF1 ZXJ5IChleGVjdXRlXzJkYXJyYXkpIGZvciB0aGUgc2VydmVyICN7c2VydmVy X2lkfSAtIHtjb25uX2lkfSAoUXVlcnktaWQ6IHtxdWVyeV9pZH0pOlxuRXJy b3IgTWVzc2FnZTp7ZXJybXNnfSIuZm9ybWF0KAogICAgICAgICAgICAgICAg ICAgICAgICAgc2VydmVyX2lkPXNlbGYubWFuYWdlci5zaWQsCkBAIC01ODIs NyArNTkzLDcgQEAgRmFpbGVkIHRvIGV4ZWN1dGUgcXVlcnkgKGV4ZWN1dGVf dm9pZCkgZm9yIHRoZSBzZXJ2ZXIgI3tzZXJ2ZXJfaWR9IC0ge2Nvbm5faWR9 CiAKICAgICAgICAgcmV0dXJuIFRydWUsIHsnY29sdW1ucyc6IGNvbHVtbnMs ICdyb3dzJzogcm93c30KIAotICAgIGRlZiBleGVjdXRlX2RpY3Qoc2VsZiwg cXVlcnksIHBhcmFtcz1Ob25lKToKKyAgICBkZWYgZXhlY3V0ZV9kaWN0KHNl bGYsIHF1ZXJ5LCBwYXJhbXM9Tm9uZSwgZm9ybWF0dGVkX2V4Y2VwdGlvbl9t c2c9RmFsc2UpOgogICAgICAgICBzdGF0dXMsIGN1ciA9IHNlbGYuX19jdXJz b3IoKQogCiAgICAgICAgIGlmIG5vdCBzdGF0dXM6CkBAIC02MDAsNyArNjEx LDcgQEAgRmFpbGVkIHRvIGV4ZWN1dGUgcXVlcnkgKGV4ZWN1dGVfdm9pZCkg Zm9yIHRoZSBzZXJ2ZXIgI3tzZXJ2ZXJfaWR9IC0ge2Nvbm5faWR9CiAgICAg ICAgICAgICBzZWxmLl9faW50ZXJuYWxfYmxvY2tpbmdfZXhlY3V0ZShjdXIs IHF1ZXJ5LCBwYXJhbXMpCiAgICAgICAgIGV4Y2VwdCBwc3ljb3BnMi5FcnJv ciBhcyBwZToKICAgICAgICAgICAgIGN1ci5jbG9zZSgpCi0gICAgICAgICAg ICBlcnJtc2cgPSBzdHIocGUpCisgICAgICAgICAgICBlcnJtc2cgPSBzZWxm Ll9mb3JtYXR0ZWRfZXhjZXB0aW9uX21zZyhwZSwgZm9ybWF0dGVkX2V4Y2Vw dGlvbl9tc2cpCiAgICAgICAgICAgICBjdXJyZW50X2FwcC5sb2dnZXIuZXJy b3IoCiAgICAgICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gZXhlY3V0ZSBx dWVyeSAoZXhlY3V0ZV9kaWN0KSBmb3IgdGhlIHNlcnZlciAje3NlcnZlcl9p ZH0tIHtjb25uX2lkfSAoUXVlcnktaWQ6IHtxdWVyeV9pZH0pOlxuRXJyb3Ig TWVzc2FnZTp7ZXJybXNnfSIuZm9ybWF0KAogICAgICAgICAgICAgICAgICAg ICAgICAgc2VydmVyX2lkPXNlbGYubWFuYWdlci5zaWQsCkBAIC03MjgsMjAg KzczOSwyNiBAQCBGYWlsZWQgdG8gcmVzZXQgdGhlIGNvbm5lY3Rpb24gb2Yg dGhlIHNlcnZlciBkdWUgdG8gZm9sbG93aW5nIGVycm9yOgogICAgICAgICBp ZiBzdGF0ZSA9PSBwc3ljb3BnMi5leHRlbnNpb25zLlBPTExfT0s6CiAgICAg ICAgICAgICByZXR1cm4gc2VsZi5BU1lOQ19PSwogICAgICAgICBlbGlmIHN0 YXRlID09IHBzeWNvcGcyLmV4dGVuc2lvbnMuUE9MTF9XUklURToKLSAgICAg ICAgICAgIHNlbGVjdC5zZWxlY3QoW10sIFtjb25uLmZpbGVubygpXSwgW10s IHRpbWUpCi0gICAgICAgICAgICByZXR1cm4gc2VsZi5BU1lOQ19XUklURV9U SU1FT1VUCisgICAgICAgICAgICBpZiBzZWxlY3Quc2VsZWN0KFtdLCBbY29u bi5maWxlbm8oKV0sIFtdLCB0aW1lKSA9PSAoW10sIFtdLCBbXSk6CisgICAg ICAgICAgICAgICAgcmV0dXJuIHNlbGYuQVNZTkNfV1JJVEVfVElNRU9VVAor ICAgICAgICAgICAgIyBDYWxsIHJlY3Vyc2l2ZWx5IGlmIG5vIHRpbWVvdXQK KyAgICAgICAgICAgIHNlbGYuX3dhaXRfdGltZW91dChjb25uLCB0aW1lKQog ICAgICAgICBlbGlmIHN0YXRlID09IHBzeWNvcGcyLmV4dGVuc2lvbnMuUE9M TF9SRUFEOgotICAgICAgICAgICAgc2VsZWN0LnNlbGVjdChbY29ubi5maWxl bm8oKV0sIFtdLCBbXSwgdGltZSkKLSAgICAgICAgICAgIHJldHVybiBzZWxm LkFTWU5DX1JFQURfVElNRU9VVAorICAgICAgICAgICAgaWYgc2VsZWN0LnNl bGVjdChbY29ubi5maWxlbm8oKV0sIFtdLCBbXSwgdGltZSkgPT0gKFtdLCBb XSwgW10pOgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLkFTWU5DX1JF QURfVElNRU9VVAorICAgICAgICAgICAgc2VsZi5fd2FpdF90aW1lb3V0KGNv bm4sIHRpbWUpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICByYWlzZSBw c3ljb3BnMi5PcGVyYXRpb25hbEVycm9yKCJwb2xsKCkgcmV0dXJuZWQgJXMg ZnJvbSBfd2FpdF90aW1lb3V0IGZ1bmN0aW9uIiAlIHN0YXRlKQogCi0gICAg ZGVmIHBvbGwoc2VsZik6CisgICAgZGVmIHBvbGwoc2VsZiwgZm9ybWF0dGVk X2V4Y2VwdGlvbl9tc2c9RmFsc2UpOgogICAgICAgICAiIiIKICAgICAgICAg VGhpcyBmdW5jdGlvbiBpcyBhIHdyYXBwZXIgYXJvdW5kIGNvbm5lY3Rpb24n cyBwb2xsIGZ1bmN0aW9uLgogICAgICAgICBJdCBpbnRlcm5hbGx5IHVzZXMg dGhlIF93YWl0X3RpbWVvdXQgbWV0aG9kIHRvIHBvbGwgdGhlCiAgICAgICAg IHJlc3VsdCBvbiB0aGUgY29ubmVjdGlvbiBvYmplY3QuIEluIGNhc2Ugb2Yg c3VjY2VzcyBpdAogICAgICAgICByZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhl IHF1ZXJ5LgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBmb3JtYXR0 ZWRfZXhjZXB0aW9uX21zZzogaWYgVHJ1ZSB0aGVuIGZ1bmN0aW9uIHJldHVy biB0aGUgZm9ybWF0dGVkIGV4Y2VwdGlvbiBtZXNzYWdlCiAgICAgICAgICIi IgogCiAgICAgICAgIGN1ciA9IHNlbGYuX19hc3luY19jdXJzb3IKQEAgLTc1 MSwxOSArNzY4LDM3IEBAIEZhaWxlZCB0byByZXNldCB0aGUgY29ubmVjdGlv biBvZiB0aGUgc2VydmVyIGR1ZSB0byBmb2xsb3dpbmcgZXJyb3I6CiAgICAg ICAgIGN1cnJlbnRfYXBwLmxvZ2dlci5sb2coMjUsICIiIgogUG9sbGluZyBy ZXN1bHQgZm9yIChRdWVyeS1pZDoge3F1ZXJ5X2lkfSkiIiIuZm9ybWF0KHF1 ZXJ5X2lkPXNlbGYuX19hc3luY19xdWVyeV9pZCkpCiAKLSAgICAgICAgc3Rh dHVzID0gc2VsZi5fd2FpdF90aW1lb3V0KHNlbGYuY29ubiwgQVNZTkNfV0FJ VF9USU1FT1VUKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzdGF0dXMg PSBzZWxmLl93YWl0X3RpbWVvdXQoc2VsZi5jb25uLCBBU1lOQ19XQUlUX1RJ TUVPVVQpCisgICAgICAgIGV4Y2VwdCBwc3ljb3BnMi5FcnJvciBhcyBwZToK KyAgICAgICAgICAgIGVycm1zZyA9IHNlbGYuX2Zvcm1hdHRlZF9leGNlcHRp b25fbXNnKHBlLCBmb3JtYXR0ZWRfZXhjZXB0aW9uX21zZykKKyAgICAgICAg ICAgIHJldHVybiBGYWxzZSwgZXJybXNnLCBOb25lCisKICAgICAgICAgY29s aW5mbyA9IE5vbmUKICAgICAgICAgaWYgc3RhdHVzID09IHNlbGYuQVNZTkNf T0s6CisKKyAgICAgICAgICAgICMgaWYgdXNlciBoYXMgY2FuY2VsbGVkIHRo ZSB0cmFuc2FjdGlvbiB0aGVuIGNoYW5nZWQgdGhlIHN0YXR1cworICAgICAg ICAgICAgaWYgc2VsZi5leGVjdXRpb25fYWJvcnRlZDoKKyAgICAgICAgICAg ICAgICBzdGF0dXMgPSBzZWxmLkFTWU5DX0VYRUNVVElPTl9BQk9SVEVECisg ICAgICAgICAgICAgICAgc2VsZi5leGVjdXRpb25fYWJvcnRlZCA9IEZhbHNl CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0YXR1cywgTm9uZSwgY29saW5m bworCiAgICAgICAgICAgICAjIEZldGNoIHRoZSBjb2x1bW4gaW5mb3JtYXRp b24KLSAgICAgICAgICAgIGNvbGluZm8gPSBbZGVzYyBmb3IgZGVzYyBpbiBj dXIuZGVzY3JpcHRpb25dCisgICAgICAgICAgICBpZiBjdXIuZGVzY3JpcHRp b24gaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgY29saW5mbyA9IFtk ZXNjIGZvciBkZXNjIGluIGN1ci5kZXNjcmlwdGlvbl0KIAorICAgICAgICAg ICAgcmVzdWx0ID0gY3VyLnN0YXR1c21lc3NhZ2UKICAgICAgICAgICAgIGlm IGN1ci5yb3djb3VudCA+IDA6CiAgICAgICAgICAgICAgICAgcmVzdWx0ID0g W10KLSAgICAgICAgICAgICAgICAjIEZldGNoIHRoZSBkYXRhIHJvd3MuCi0g ICAgICAgICAgICAgICAgZm9yIHJvdyBpbiBjdXI6Ci0gICAgICAgICAgICAg ICAgICAgIHJlc3VsdC5hcHBlbmQoZGljdChyb3cpKQotICAgICAgICAgICAg ICAgIHNlbGYuX19hc3luY19jdXJzb3IgPSBOb25lCi0gICAgICAgICAgICAg ICAgcmV0dXJuIHN0YXR1cywgcmVzdWx0LCBjb2xpbmZvCisKKyAgICAgICAg ICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIGZvciByb3cgaW4g Y3VyOgorICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChk aWN0KHJvdykpCisgICAgICAgICAgICAgICAgZXhjZXB0IHBzeWNvcGcyLlBy b2dyYW1taW5nRXJyb3IgYXMgZToKKyAgICAgICAgICAgICAgICAgICAgcmVz dWx0ID0gY3VyLnN0YXR1c21lc3NhZ2UKKyAgICAgICAgICAgIHNlbGYuX19h c3luY19jdXJzb3IgPSBOb25lCisgICAgICAgICAgICByZXR1cm4gc3RhdHVz LCByZXN1bHQsIGNvbGluZm8KKwogICAgICAgICByZXR1cm4gc3RhdHVzLCBO b25lLCBjb2xpbmZvCiAKICAgICBkZWYgY2FuY2VsX3RyYW5zYWN0aW9uKHNl bGYsIGNvbm5faWQsIGRpZD1Ob25lKToKQEAgLTgyMyw2ICs4NTgsOSBAQCBQ b2xsaW5nIHJlc3VsdCBmb3IgKFF1ZXJ5LWlkOiB7cXVlcnlfaWR9KSIiIi5m b3JtYXQocXVlcnlfaWQ9c2VsZi5fX2FzeW5jX3F1ZXJ5XwogICAgICAgICBl bHNlOgogICAgICAgICAgICAgaWYgc2VsZi5jb25uZWN0ZWQoKToKICAgICAg ICAgICAgICAgICBzdGF0dXMsIG1zZyA9IHNlbGYuZXhlY3V0ZV92b2lkKHF1 ZXJ5KQorCisgICAgICAgICAgICAgICAgaWYgc3RhdHVzOgorICAgICAgICAg ICAgICAgICAgICBjYW5jZWxfY29ubi5leGVjdXRpb25fYWJvcnRlZCA9IFRy dWUKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgc3RhdHVz ID0gRmFsc2UKICAgICAgICAgICAgICAgICBtc2cgPSBnZXR0ZXh0KCJOb3Qg Y29ubmVjdGVkIHRvIHRoZSBkYXRhYmFzZSBzZXJ2ZXIuIikKQEAgLTgzNSw2 ICs4NzMsNjkgQEAgUG9sbGluZyByZXN1bHQgZm9yIChRdWVyeS1pZDoge3F1 ZXJ5X2lkfSkiIiIuZm9ybWF0KHF1ZXJ5X2lkPXNlbGYuX19hc3luY19xdWVy eV8KICAgICAgICAgIiIiCiAgICAgICAgIHJldHVybiBzZWxmLmNvbm4ubm90 aWNlcyBpZiBzZWxmLmNvbm4gZWxzZSBbXQogCisgICAgZGVmIF9mb3JtYXR0 ZWRfZXhjZXB0aW9uX21zZyhzZWxmLCBleGNlcHRpb25fb2JqLCBmb3JtYXR0 ZWRfbXNnKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgbWV0aG9kIGlz IHVzZWQgdG8gcGFyc2UgdGhlIHBzeWNvcGcyLkVycm9yIG9iamVjdCBhbmQg cmV0dXJucyB0aGUKKyAgICAgICAgZm9ybWF0dGVkIGVycm9yIG1lc3NhZ2Ug aWYgZmxhZyBpcyBzZXQgdG8gdHJ1ZSBlbHNlIHJldHVybgorICAgICAgICBu b3JtYWwgZXJyb3IgbWVzc2FnZS4KKworICAgICAgICBBcmdzOgorICAgICAg ICAgICAgZXhjZXB0aW9uX29iajogZXhjZXB0aW9uIG9iamVjdAorICAgICAg ICAgICAgZm9ybWF0dGVkX21zZzogaWYgVHJ1ZSB0aGVuIGZ1bmN0aW9uIHJl dHVybiB0aGUgZm9ybWF0dGVkIGV4Y2VwdGlvbiBtZXNzYWdlCisKKyAgICAg ICAgIiIiCisKKyAgICAgICAgaWYgZXhjZXB0aW9uX29iai5wZ2Vycm9yOgor ICAgICAgICAgICAgZXJybXNnID0gZXhjZXB0aW9uX29iai5wZ2Vycm9yCisg ICAgICAgIGVsaWYgZXhjZXB0aW9uX29iai5kaWFnLm1lc3NhZ2VfZGV0YWls OgorICAgICAgICAgICAgZXJybXNnID0gZXhjZXB0aW9uX29iai5kaWFnLm1l c3NhZ2VfZGV0YWlsCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBlcnJt c2cgPSBzdHIoZXhjZXB0aW9uX29iaikKKworICAgICAgICAjIGlmIGZvcm1h dHRlZF9tc2cgaXMgZmFsc2UgdGhlbiByZXR1cm4gZnJvbSB0aGUgZnVuY3Rp b24KKyAgICAgICAgaWYgbm90IGZvcm1hdHRlZF9tc2c6CisgICAgICAgICAg ICByZXR1cm4gZXJybXNnCisKKyAgICAgICAgZXJybXNnICs9ICcqKioqKioq KioqIEVycm9yICoqKioqKioqKipcblxuJworCisgICAgICAgIGlmIGV4Y2Vw dGlvbl9vYmouZGlhZy5zZXZlcml0eSBpcyBub3QgTm9uZSBcCisgICAgICAg ICAgICAgICAgYW5kIGV4Y2VwdGlvbl9vYmouZGlhZy5tZXNzYWdlX3ByaW1h cnkgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBlcnJtc2cgKz0gZXhjZXB0 aW9uX29iai5kaWFnLnNldmVyaXR5ICsgIjogIiArIGV4Y2VwdGlvbl9vYmou ZGlhZy5tZXNzYWdlX3ByaW1hcnkKKyAgICAgICAgZWxpZiBleGNlcHRpb25f b2JqLmRpYWcubWVzc2FnZV9wcmltYXJ5IGlzIG5vdCBOb25lOgorICAgICAg ICAgICAgZXJybXNnICs9IGV4Y2VwdGlvbl9vYmouZGlhZy5tZXNzYWdlX3By aW1hcnkKKworICAgICAgICBpZiBleGNlcHRpb25fb2JqLmRpYWcuc3Fsc3Rh dGUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBpZiBub3QgZXJybXNnWzot MV0uZW5kc3dpdGgoJ1xuJyk6CisgICAgICAgICAgICAgICAgZXJybXNnICs9 ICdcbicKKyAgICAgICAgICAgIGVycm1zZyArPSBnZXR0ZXh0KCdTUUwgc3Rh dGU6ICcpCisgICAgICAgICAgICBlcnJtc2cgKz0gZXhjZXB0aW9uX29iai5k aWFnLnNxbHN0YXRlCisKKyAgICAgICAgaWYgZXhjZXB0aW9uX29iai5kaWFn Lm1lc3NhZ2VfZGV0YWlsIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgaWYg bm90IGVycm1zZ1s6LTFdLmVuZHN3aXRoKCdcbicpOgorICAgICAgICAgICAg ICAgIGVycm1zZyArPSAnXG4nCisgICAgICAgICAgICBlcnJtc2cgKz0gZ2V0 dGV4dCgnRGV0YWlsOiAnKQorICAgICAgICAgICAgZXJybXNnICs9IGV4Y2Vw dGlvbl9vYmouZGlhZy5tZXNzYWdlX2RldGFpbAorCisgICAgICAgIGlmIGV4 Y2VwdGlvbl9vYmouZGlhZy5tZXNzYWdlX2hpbnQgaXMgbm90IE5vbmU6Cisg ICAgICAgICAgICBpZiBub3QgZXJybXNnWzotMV0uZW5kc3dpdGgoJ1xuJyk6 CisgICAgICAgICAgICAgICAgZXJybXNnICs9ICdcbicKKyAgICAgICAgICAg IGVycm1zZyArPSBnZXR0ZXh0KCdIaW50OiAnKQorICAgICAgICAgICAgZXJy bXNnICs9IGV4Y2VwdGlvbl9vYmouZGlhZy5tZXNzYWdlX2hpbnQKKworICAg ICAgICBpZiBleGNlcHRpb25fb2JqLmRpYWcuc3RhdGVtZW50X3Bvc2l0aW9u IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgaWYgbm90IGVycm1zZ1s6LTFd LmVuZHN3aXRoKCdcbicpOgorICAgICAgICAgICAgICAgIGVycm1zZyArPSAn XG4nCisgICAgICAgICAgICBlcnJtc2cgKz0gZ2V0dGV4dCgnQ2hhcmFjdGVy OiAnKQorICAgICAgICAgICAgZXJybXNnICs9IGV4Y2VwdGlvbl9vYmouZGlh Zy5zdGF0ZW1lbnRfcG9zaXRpb24KKworICAgICAgICBpZiBleGNlcHRpb25f b2JqLmRpYWcuY29udGV4dCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGlm IG5vdCBlcnJtc2dbOi0xXS5lbmRzd2l0aCgnXG4nKToKKyAgICAgICAgICAg ICAgICBlcnJtc2cgKz0gJ1xuJworICAgICAgICAgICAgZXJybXNnICs9IGdl dHRleHQoJ0NvbnRleHQ6ICcpCisgICAgICAgICAgICBlcnJtc2cgKz0gZXhj ZXB0aW9uX29iai5kaWFnLmNvbnRleHQKKworICAgICAgICByZXR1cm4gZXJy bXNnCisKIAogY2xhc3MgU2VydmVyTWFuYWdlcihvYmplY3QpOgogICAgICIi Igo= --94eb2c032edac4d5fd052f6af226 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 --94eb2c032edac4d5fd052f6af226--