Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ao7Jq-0008Lh-Oe for pgadmin-hackers@arkaria.postgresql.org; Thu, 07 Apr 2016 10:37:46 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1ao7Jq-0004Px-1z for pgadmin-hackers@arkaria.postgresql.org; Thu, 07 Apr 2016 10:37:46 +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_2) (envelope-from ) id 1ao7Jo-0004On-Lt for pgadmin-hackers@postgresql.org; Thu, 07 Apr 2016 10:37:44 +0000 Received: from mail-qg0-x231.google.com ([2607:f8b0:400d:c04::231]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1ao7Jg-00070j-OU for pgadmin-hackers@postgresql.org; Thu, 07 Apr 2016 10:37:43 +0000 Received: by mail-qg0-x231.google.com with SMTP id c6so59021134qga.1 for ; Thu, 07 Apr 2016 03:37:36 -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:from:date:message-id:subject:to :cc; bh=/7BOSog1IP8fDLWfcZMZHWtZSPGaFXlFz/ZOBGSXu70=; b=1P24HRCM1A16+dPQhN6x4Xt2mLtdKrTgvaRwcexWz9X/klg016rwhDubHPOVwBgIyB 72v79dz27zwB5shsBPyrX3pd7jnUMWuBUHbcrWQ848ESZJf+jVks4qtGM7f+ixuD1VSA fm+9qpvR2cWd3e7e8qUSWQw/07VU+YrGQ19nFVdKTpYL/c+aY71j0GzxzTTM9rKA5v4t b7v5ukP/wZmLgm6jZ1FyXdTqFHHWuy5L6jPhgg7HWhSSeTZIxZKzlSwrCy1Wquja5Zpg eEcCPV4yd8TD7VQq8XoZ6hvihz706tZn8uqJnV+wCHdhPtxazf0kHyRumZ1m4P5Qa3kt nuMA== 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:from:date :message-id:subject:to:cc; bh=/7BOSog1IP8fDLWfcZMZHWtZSPGaFXlFz/ZOBGSXu70=; b=GctwODPwc0nZNKNHxc8fh6FwuCAE+4Y8hER0TtULGeVoR0o96QHn7HGZkAxGrsdIK6 +fva+1wp8BVYkEKjezteOPvFb4csdWL1SAzVwj1ukGh8eYKQnDKnY7oG3RpLuqk+wjxm mVuCnOnHbSl4Q3y9k1wg5BOusFj6bXXRhF+iIeVCvjDA+szOOIF0PjkawSPr+x41h0oP 4P7Q9zT6L2RFrfQtdxj4tki8QuBrj+9MF3tx/m+1Mzdrceq6epSmYeq7/bCynhCq1dl9 HSf1Flhz/2uOhu/ENKSfoxUVd3YU0dx5LDM5IhMV595GffugD2FwUp6jSh42X+JQjEVT WKlA== X-Gm-Message-State: AD7BkJJD/8qnBQYCgQ/YNCZK/TmraHPD7vnZbI+97yzyyoYEPEuFexZ9/Vut3zb/VmRRoyJULiunFZrVZrYQO6/O X-Received: by 10.140.92.247 with SMTP id b110mr2437142qge.88.1460025455317; Thu, 07 Apr 2016 03:37:35 -0700 (PDT) MIME-Version: 1.0 Received: by 10.55.128.132 with HTTP; Thu, 7 Apr 2016 03:37:15 -0700 (PDT) In-Reply-To: References: From: Murtuza Zabuawala Date: Thu, 7 Apr 2016 16:07:15 +0530 Message-ID: Subject: Re: Control for displaying "auto vacuum" fields into grid To: Surinder Kumar Cc: Dave Page , pgadmin-hackers Content-Type: multipart/mixed; boundary=001a1139bebca0caf3052fe2aa1a 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 --001a1139bebca0caf3052fe2aa1a Content-Type: multipart/alternative; boundary=001a1139bebca0caef052fe2aa18 --001a1139bebca0caef052fe2aa18 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hi, Please find updated patch, I have moved everything at schema level and tweak some code as well, so that we can use it in Table/View node. Regards, Murtuza -- Regards, Murtuza Zabuawala EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company On Fri, Mar 25, 2016 at 4:50 PM, Murtuza Zabuawala < murtuza.zabuawala@enterprisedb.com> wrote: > Hi Surinder, > > Can you please move all genereic logic & sql at schema level so that we > can use it in table node as well? > Currently it=E2=80=99s materialized view node centric only. > > > Regards, > Murtuza > > > On 23-Mar-2016, at 9:34 pm, Surinder Kumar < > surinder.kumar@enterprisedb.com> wrote: > > Hi, > > > On Fri, Mar 18, 2016 at 8:58 PM, Dave Page wrote: > >> On Fri, Mar 18, 2016 at 10:37 AM, Surinder Kumar >> wrote: >> > Hi, >> > >> > PFA control for displaying auto vacuum fields into grid. This control = is >> > common for >> > Materialized View Node and Table Node. >> > >> > Usage: >> > >> > { >> > id: 'vacuum_table', label: '{{ _("Vacuum Table") }}', >> > model: VacuumTableModel, editable: false, type: 'collection', >> > canEdit: true, group: '{{ _("Table") }}', >> > mode: ['edit', 'create'], url: 'get_vacuum_defaults', >> > control: Backform.VacuumCollectionControl.extend({ >> > grid_columns :[ >> > { >> > name: 'label', label: '{{ _("Label") }}', >> > cell: 'string', editable: false >> > }, >> > { >> > name: 'value', label: '{{ _("Value") }}', >> > cellFunction: cellFunction, editable: function(m) { >> > if(m.handler.has('autovacuum_enabled')) { >> > return m.handler.get('autovacuum_enabled'); >> > } >> > return !m.handler.isNew(); >> > } >> > }, >> > { >> > name: 'setting', label: '{{ _("Default value") }}', >> > cellFunction: cellFunction, editable: false >> > } >> > ] >> > }), >> > >> > >> > When using this control, provide following parameters in schema: >> > 1. model >> > 2. url - to fetch default values for auto vacuum fields. >> > 3. grid columns - Name of the columns to display in the grid. >> > >> > >> > Please review the patch. >> >> It's hard to review this without being able to test. Do you have a >> simple test case? >> > > I have submitted patch for materialized view which is using this control. > so you can test it in materialized view. > >> >> -- >> Dave Page >> Blog: http://pgsnake.blogspot.com >> Twitter: @pgsnake >> >> EnterpriseDB UK: http://www.enterprisedb.com >> The Enterprise PostgreSQL Company >> > > > --001a1139bebca0caef052fe2aa18 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi,

Please find updated patch, I have m= oved everything at schema level and tweak some code as well, so that we can= use it in Table/View node.


Regards= ,
Murtuza

--
Regards,
Murtuza Zabuawala
EnterpriseD= B:=C2=A0http://www.enterprisedb.co= m
The Enterprise PostgreSQL Company


On Fri, Mar 25, 2016 at 4:50 PM, Murtuza Zab= uawala <murtuza.zabuawala@enterprisedb.com>= wrote:
Hi Surinder,

Can you please move all gener= eic logic & sql at schema level so that we can use it in table node as = well?
Currently it=E2=80=99s materialized view node centric only.=


Regards,
Murtuza


On 23-Mar-2016, at 9:3= 4 pm, Surinder Kumar <surinder.kumar@enterprisedb.com> wrote:

=
Hi,

On Fri, Mar 18, 2016 at 8:58 PM, Dave Page <dp= age@pgadmin.org> wrote:
On Fri,= Mar 18, 2016 at 10:37 AM, Surinder Kumar
<su= rinder.kumar@enterprisedb.com> wrote:
> Hi,
>
> PFA control for displaying auto vacuum fields into grid. This control = is
> common for
> Materialized View Node and Table Node.
>
> Usage:
>
> {
>=C2=A0 =C2=A0id: 'vacuum_table', label: '{{ _("Vacuum = Table") }}',
>=C2=A0 =C2=A0model: VacuumTableModel, editable: false, type: 'colle= ction',
>=C2=A0 =C2=A0canEdit: true, group: '{{ _("Table") }}'= ,
>=C2=A0 =C2=A0mode: ['edit', 'create'], url: 'get_va= cuum_defaults',
>=C2=A0 =C2=A0control: Backform.VacuumCollectionControl.extend({
>=C2=A0 =C2=A0 =C2=A0grid_columns :[
>=C2=A0 =C2=A0 =C2=A0 =C2=A0{
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0name: 'label', label: '{{= _("Label") }}',
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cell: 'string', editable: fal= se
>=C2=A0 =C2=A0 =C2=A0 =C2=A0},
>=C2=A0 =C2=A0 =C2=A0 =C2=A0{
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0name: 'value', label: '{{= _("Value") }}',
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cellFunction: cellFunction, editable:= function(m) {
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if(m.handler.has('autovacu= um_enabled')) {
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return m.handler.get(&#= 39;autovacuum_enabled');
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return !m.handler.isNew();
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}
>=C2=A0 =C2=A0 =C2=A0 =C2=A0},
>=C2=A0 =C2=A0 =C2=A0 =C2=A0{
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0name: 'setting', label: '= {{ _("Default value") }}',
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0cellFunction: cellFunction, editable:= false
>=C2=A0 =C2=A0 =C2=A0 =C2=A0}
>=C2=A0 =C2=A0 =C2=A0]
>=C2=A0 =C2=A0}),
>
>
> When using this control, provide following parameters in schema:
> 1. model
> 2. url - to fetch default values for auto vacuum fields.
> 3. grid columns - Name of the columns to display in the grid.
>
>
> Please review the patch.

It's hard to review this without being able to test. Do you= have a
simple test case?

I have submitted patc= h for materialized view which is using this control. so you can test it in = materialized view.

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



--001a1139bebca0caef052fe2aa18-- --001a1139bebca0caf3052fe2aa1a Content-Type: application/octet-stream; name="Updated_VaccumSettings_Control.patch" Content-Disposition: attachment; filename="Updated_VaccumSettings_Control.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_imq5e72s0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RlbXBsYXRlcy9zY2hlbWEv anMvc2NoZW1hLmpzIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGVtcGxhdGVzL3NjaGVt YS9qcy9zY2hlbWEuanMKaW5kZXggZDQ2NTkyMi4uYmQ4ODI0YyAxMDA2NDQK LS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGVtcGxhdGVzL3NjaGVtYS9qcy9zY2hl bWEuanMKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGVtcGxhdGVzL3NjaGVtYS9q cy9zY2hlbWEuanMKQEAgLTQsNiArNCwyNDcgQEAgZGVmaW5lKAogICAgICAg ICAncGdhZG1pbi5icm93c2VyLmNvbGxlY3Rpb24nLAogICAgICAgICAncGdh ZG1pbi5icm93c2VyLnNlcnZlci5wcml2aWxlZ2UnXSwKIGZ1bmN0aW9uKCQs IF8sIFMsIHBnQWRtaW4sIHBnQnJvd3NlciwgQmFja2Zvcm0sIGFsZXJ0aWZ5 KSB7CisKKyAgICAvLyBWYWNjdW1TZXR0aW5ncyBDb2xsZWN0aW9uIHRvIGRp c3BsYXkgYWxsIHNldHRpbmdzIHBhcmFtZXRlcnMgYXMgR3JpZAorICAgIHZh ciBWYWN1dW1Db2xsZWN0aW9uQ29udHJvbCA9IEJhY2tmb3JtLlZhY3V1bUNv bGxlY3Rpb25Db250cm9sID0KKyAgICAgIEJhY2tmb3JtLkNvbnRyb2wuZXh0 ZW5kKHsKKworICAgICAgZ3JpZF9jb2x1bW5zOnVuZGVmaW5lZCwKKworICAg ICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oKSB7CisgICAgICAgIEJhY2tmb3Jt LkNvbnRyb2wucHJvdG90eXBlLmluaXRpYWxpemUuYXBwbHkodGhpcywgYXJn dW1lbnRzKTsKKyAgICAgICAgdmFyIHNlbGYgPSB0aGlzLAorICAgICAgICAg ICAgbSA9IHRoaXMubW9kZWw7CisgICAgICAgICAgICB1cmwgPSBzZWxmLmZp ZWxkLmdldCgndXJsJyk7CisKKyAgICAgICAgaWYgKHVybCAmJiBtLmlzTmV3 KCkpIHsKKyAgICAgICAgICB2YXIgbm9kZSA9IHNlbGYuZmllbGQuZ2V0KCdu b2RlJyksCisgICAgICAgICAgICAgIG5vZGVfZGF0YSA9IHNlbGYuZmllbGQu Z2V0KCdub2RlX2RhdGEnKSwKKyAgICAgICAgICAgICAgbm9kZV9pbmZvID0g c2VsZi5maWVsZC5nZXQoJ25vZGVfaW5mbycpLAorICAgICAgICAgICAgICBm dWxsX3VybCA9IG5vZGUuZ2VuZXJhdGVfdXJsLmFwcGx5KAorICAgICAgICAg ICAgICAgIG5vZGUsIFsKKyAgICAgICAgICAgICAgICAgIG51bGwsIHVybCwg bm9kZV9kYXRhLCBmYWxzZSwgbm9kZV9pbmZvCisgICAgICAgICAgICAgICAg XSksCisgICAgICAgICAgICAgIGRhdGE7CisgICAgICAgICAgbS50cmlnZ2Vy KCdwZ2FkbWluLXZpZXc6ZmV0Y2hpbmcnLCBtLCBzZWxmLmZpZWxkKTsKKwor ICAgICAgICAgIC8vIGZldGNoIGRlZmF1bHQgdmFsdWVzIGZvciBhdXRvdmFj dXVtIGZpZWxkcworICAgICAgICAgICQuYWpheCh7CisgICAgICAgICAgICBh c3luYzogZmFsc2UsCisgICAgICAgICAgICB1cmw6IGZ1bGxfdXJsLAorICAg ICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24gKHJlcykgeworICAgICAgICAg ICAgICBkYXRhID0gcmVzOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAg IGVycm9yOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgbS50cmlnZ2Vy KCdwZ2FkbWluLXZpZXc6ZmV0Y2g6ZXJyb3InLCBtLCBzZWxmLmZpZWxkKTsK KyAgICAgICAgICAgIH0KKyAgICAgICAgICB9KTsKKyAgICAgICAgICBtLnRy aWdnZXIoJ3BnYWRtaW4tdmlldzpmZXRjaGVkJywgbSwgc2VsZi5maWVsZCk7 CisKKyAgICAgICAgICAvLyBBZGQgZmV0Y2hlZCBtb2RlbHMgaW50byBjb2xs ZWN0aW9uCisgICAgICAgICAgaWYgKGRhdGEgJiYgXy5pc0FycmF5KGRhdGEp KSB7CisgICAgICAgICAgICBtLmdldChzZWxmLmZpZWxkLmdldCgnbmFtZScp KS5yZXNldChkYXRhLCB7c2lsZW50OiB0cnVlfSk7CisgICAgICAgICAgfQor ICAgICAgICB9CisgICAgICB9LAorCisgICAgICByZW5kZXI6IGZ1bmN0aW9u KCkgeworICAgICAgICB2YXIgc2VsZiA9IHRoaXMsCisgICAgICAgICAgICBt ID0gdGhpcy5tb2RlbCwKKyAgICAgICAgICAgIGF0dHJpYnV0ZXMgPSBzZWxm LmZpZWxkLmF0dHJpYnV0ZXM7CisKKyAgICAgICAgLy8gcmVtb3ZlIGdyaWQK KyAgICAgICAgaWYoc2VsZi5ncmlkKSB7CisgICAgICAgICAgc2VsZi5ncmlk LnJlbW92ZSgpOworICAgICAgICAgIGRlbGV0ZSBzZWxmLmdyaWQ7CisgICAg ICAgICAgc2VsZi5ncmlkID0gdW5kZWZpbmVkOworICAgICAgICB9CisKKyAg ICAgICAgc2VsZi4kZWwuZW1wdHkoKTsKKworICAgICAgICB2YXIgZ3JpZEhl YWRlciA9IF8udGVtcGxhdGUoWworICAgICAgICAgICAgJzxkaXYgY2xhc3M9 InN1Ym5vZGUtaGVhZGVyIj4nLAorICAgICAgICAgICAgJyAgPGxhYmVsIGNs YXNzPSJjb250cm9sLWxhYmVsIGNvbC1zbS00Ij48JS1sYWJlbCU+PC9sYWJl bD4nLAorICAgICAgICAgICAgJzwvZGl2PiddLmpvaW4oIlxuIikpLAorICAg ICAgICAgICAgZ3JpZEJvZHkgPSAkKCc8ZGl2IGNsYXNzPSJwZ2FkbWluLWNv bnRyb2wtZ3JvdXAgYmFja2dyaWQgZm9ybS1ncm91cCBjb2wteHMtMTIgb2Jq ZWN0IHN1Ym5vZGUiPjwvZGl2PicpLmFwcGVuZCgKKyAgICAgICAgICAgICAg ICBncmlkSGVhZGVyKGF0dHJpYnV0ZXMpCisgICAgICAgICAgICAgICAgKTsK KworICAgICAgICAvLyBJbml0aWFsaXplIGEgbmV3IEdyaWQgaW5zdGFuY2UK KyAgICAgICAgdmFyIGdyaWQgPSBzZWxmLmdyaWQgPSBuZXcgQmFja2dyaWQu R3JpZCh7CisgICAgICAgICAgY29sdW1uczogc2VsZi5ncmlkX2NvbHVtbnMs CisgICAgICAgICAgY29sbGVjdGlvbjogc2VsZi5tb2RlbC5nZXQoc2VsZi5m aWVsZC5nZXQoJ25hbWUnKSksCisgICAgICAgICAgY2xhc3NOYW1lOiAiYmFj a2dyaWQgdGFibGUtYm9yZGVyZWQiCisgICAgICAgIH0pOworCisgICAgICAg IC8vIHJlbmRlciBncmlkCisgICAgICAgIHNlbGYuJGVsLmFwcGVuZCgkKGdy aWRCb2R5KS5hcHBlbmQoZ3JpZC5yZW5kZXIoKS4kZWwpKTsKKworICAgICAg ICByZXR1cm4gc2VsZjsKKyAgICAgIH0KKyAgICB9KTsKKworICAvLyBXZSB3 aWxsIHVzZSB0aGlzIGZ1bmN0aW9uIGluIFZhY3V1bVNldHRpbmdzIENvbnRy b2wKKyAgLy8gdG8gY29udmVydCBkYXRhIHR5cGUgb24gdGhlIGZseQorICB2 YXIgY2VsbEZ1bmN0aW9uID0gQmFja2Zvcm0uY2VsbEZ1bmN0aW9uID0gZnVu Y3Rpb24obW9kZWwpIHsKKyAgICB2YXIgc2VsZiA9IHRoaXMsCisgICAgICAg IG0gPSBtb2RlbCwKKyAgICAgICAgdmFydHlwZSA9IG1vZGVsLmdldCgnY29s dW1uX3R5cGUnKTsKKworICAgIHN3aXRjaCh2YXJ0eXBlKSB7CisgICAgICBj YXNlICJpbnRlZ2VyIjoKKyAgICAgICAgcmV0dXJuIEJhY2tncmlkLkludGVn ZXJDZWxsOworICAgICAgYnJlYWs7CisgICAgICBjYXNlICJudW1iZXIiOgor ICAgICAgICByZXR1cm4gQmFja2dyaWQuTnVtYmVyQ2VsbDsKKyAgICAgIGJy ZWFrOworICAgICAgY2FzZSAic3RyaW5nIjoKKyAgICAgICAgcmV0dXJuIEJh Y2tncmlkLlN0cmluZ0NlbGw7CisgICAgICBicmVhazsKKyAgICAgIGRlZmF1 bHQ6CisgICAgICAgIHJldHVybiBCYWNrZ3JpZC5DZWxsOworICAgICAgYnJl YWs7CisgICAgfQorICB9OworCisgIC8vIERlZmluZSBTZWN1cml0eSBNb2Rl bCB3aXRoIGZpZWxkcyBhbmQgdmFsaWRhdGlvbiBmb3IgVmFjdXVtU2V0dGlu Z3MgQ29udHJvbAorICB2YXIgVmFjdXVtVGFibGVNb2RlbCA9ICBCYWNrZm9y bS5WYWN1dW1UYWJsZU1vZGVsID0gcGdBZG1pbi5Ccm93c2VyLk5vZGUuTW9k ZWwuZXh0ZW5kKHsKKyAgICBkZWZhdWx0czogeworICAgICAgbmFtZTogdW5k ZWZpbmVkLAorICAgICAgc2V0dGluZzogdW5kZWZpbmVkLAorICAgICAgbGFi ZWw6dW5kZWZpbmVkLAorICAgICAgdmFsdWU6IHVuZGVmaW5lZCwKKyAgICAg IGNvbHVtbl90eXBlOiB1bmRlZmluZWQKKyAgICB9LAorCisgICAgdG9KU09O OiBmdW5jdGlvbigpeworICAgICAgdmFyIGQgPSBwZ0FkbWluLkJyb3dzZXIu Tm9kZS5Nb2RlbC5wcm90b3R5cGUudG9KU09OLmFwcGx5KHRoaXMpOworICAg ICAgZGVsZXRlIGQubGFiZWw7CisgICAgICBkZWxldGUgZC5zZXR0aW5nOwor ICAgICAgZGVsZXRlIGQuY29sdW1uX3R5cGU7CisgICAgICByZXR1cm4gZDsK KyAgICB9CisgIH0pOworCisgICAvLyBFeHRlbmQgdGhlIGJyb3dzZXIncyBj b2xsZWN0aW9uIGNsYXNzIGZvciBWYWN1dW1TZXR0aW5nc01vZGVsCisgICAg dmFyIFZhY3V1bVNldHRpbmdzU2NoZW1hID0gQmFja2Zvcm0uVmFjdXVtU2V0 dGluZ3NTY2hlbWEgPQorICAgICBbeworICAgICAgICAgICAgaWQ6ICdhdXRv dmFjdXVtX2N1c3RvbScsIGxhYmVsOiAne3sgXygiQ3VzdG9tIGF1dG8tdmFj dXVtPyIpIH19JywKKyAgICAgICAgICAgICAgZ3JvdXA6ICd7eyBfKCJUYWJs ZSIpIH19JywgbW9kZTogWydlZGl0JywgJ2NyZWF0ZSddLAorICAgICAgICAg ICAgICB0eXBlOiAnc3dpdGNoJywKKyAgICAgICAgICAgICAgZGlzYWJsZWQ6 IGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgICAgICAgICBpZighbS50b3AuaW5T Y2hlbWEuYXBwbHkodGhpcywgW21dKSkgeworICAgICAgICAgICAgICAgICAg cmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAg IH0seworICAgICAgICAgICAgICBpZDogJ2F1dG92YWN1dW1fZW5hYmxlZCcs IGxhYmVsOiAne3sgXygiRW5hYmxlZD8iKSB9fScsCisgICAgICAgICAgICAg IGdyb3VwOiAne3sgXygiVGFibGUiKSB9fScsIG1vZGU6IFsnZWRpdCcsICdj cmVhdGUnXSwKKyAgICAgICAgICAgICAgdHlwZTogJ3N3aXRjaCcsCisgICAg ICAgICAgICAgIGRlcHM6IFsnYXV0b3ZhY3V1bV9jdXN0b20nXSwKKyAgICAg ICAgICAgICAgZGlzYWJsZWQ6IGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgICAg ICAgIGlmKCFtLnRvcC5pblNjaGVtYS5hcHBseSh0aGlzLCBbbV0pICYmCisg ICAgICAgICAgICAgICAgICBtLmdldCgnYXV0b3ZhY3V1bV9jdXN0b20nKSA9 PSB0cnVlKSB7CisgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg ICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gV2UgYWxz byBuZWVkIHRvIHVuc2V0IHJlc3Qgb2YgYWxsCisgICAgICAgICAgICAgICAg c2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgIG0u c2V0KCdhdXRvdmFjdXVtX2VuYWJsZWQnLCBmYWxzZSk7CisgICAgICAgICAg ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9LCAxMCk7 CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAg IH0KKyAgICAgICAgICB9LHsKKyAgICAgICAgICAgICAgaWQ6ICd2YWN1dW1f dGFibGUnLCBsYWJlbDogJ3t7IF8oIlZhY3V1bSBUYWJsZSIpIH19JywKKyAg ICAgICAgICAgICAgbW9kZWw6IEJhY2tmb3JtLlZhY3V1bVRhYmxlTW9kZWws IGVkaXRhYmxlOiBmYWxzZSwgdHlwZTogJ2NvbGxlY3Rpb24nLAorICAgICAg ICAgICAgICBjYW5FZGl0OiB0cnVlLCBncm91cDogJ3t7IF8oIlRhYmxlIikg fX0nLAorICAgICAgICAgICAgICBtb2RlOiBbJ2VkaXQnLCAnY3JlYXRlJ10s IHVybDogJ2dldF90YWJsZV92YWN1bXVtJywKKyAgICAgICAgICAgICAgY29u dHJvbDogQmFja2Zvcm0uVmFjdXVtQ29sbGVjdGlvbkNvbnRyb2wuZXh0ZW5k KHsKKyAgICAgICAgICAgICAgICBncmlkX2NvbHVtbnMgOlsKKyAgICAgICAg ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2xhYmVs JywgbGFiZWw6ICd7eyBfKCJMYWJlbCIpIH19JywKKyAgICAgICAgICAgICAg ICAgICAgY2VsbDogJ3N0cmluZycsIGVkaXRhYmxlOiBmYWxzZQorICAgICAg ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAg ICAgICAgICAgICAgbmFtZTogJ3ZhbHVlJywgbGFiZWw6ICd7eyBfKCJWYWx1 ZSIpIH19JywKKyAgICAgICAgICAgICAgICAgICAgY2VsbEZ1bmN0aW9uOiBC YWNrZm9ybS5jZWxsRnVuY3Rpb24sIGVkaXRhYmxlOiBmdW5jdGlvbihtKSB7 CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbS5oYW5kbGVyLmdl dCgnYXV0b3ZhY3V1bV9lbmFibGVkJyk7CisgICAgICAgICAgICAgICAgICAg IH0KKyAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICB7 CisgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdzZXR0aW5nJywgbGFiZWw6 ICd7eyBfKCJEZWZhdWx0IHZhbHVlIikgfX0nLAorICAgICAgICAgICAgICAg ICAgICBjZWxsRnVuY3Rpb246IEJhY2tmb3JtLmNlbGxGdW5jdGlvbiwgZWRp dGFibGU6IGZhbHNlCisgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg ICAgICAgXQorICAgICAgICAgICAgICB9KSwKKyAgICAgICAgICAgICAgZGVw czogWydhdXRvdmFjdXVtX2VuYWJsZWQnXQorICAgICAgICAgIH0seworICAg ICAgICAgICAgICBpZDogJ3RvYXN0X2F1dG92YWNjdW0nLCBsYWJlbDogJ3t7 IF8oIkN1c3RvbSBhdXRvLXZhY2N1bT8iKSB9fScsCisgICAgICAgICAgICAg IGdyb3VwOiAne3sgXygiVG9hc3QgVGFibGUiKSB9fScsIG1vZGU6IFsnZWRp dCcsICdjcmVhdGUnXSwKKyAgICAgICAgICAgICAgdHlwZTogJ3N3aXRjaCcs CisgICAgICAgICAgICAgIGRpc2FibGVkOiBmdW5jdGlvbihtKSB7CisgICAg ICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBjaGVjayBhZGRpdGlvbmFsIGNv bmRpdGlvbiB0byB0b2dnbGUgZW5hYmxlL2Rpc2FibGUKKyAgICAgICAgICAg ICAgICAvLyBmb3IgdGFibGUgYXV0by12YWN1dW0KKyAgICAgICAgICAgICAg aWYoIW0udG9wLmluU2NoZW1hLmFwcGx5KHRoaXMsIFttXSkgJiYgbS5pc05l dygpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg ICAgICAgICB9IGVsc2UgaWYoIW0udG9wLmluU2NoZW1hLmFwcGx5KHRoaXMs IFttXSkgJiYKKyAgICAgICAgICAgICAgICAgICAgbS5nZXQoJ3RvYXN0X2F1 dG92YWN1dW1fZW5hYmxlZCcpID09PSB0cnVlKSB7CisgICAgICAgICAgICAg ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgfQorICAgICAg ICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICB9CisgICAg ICAgICAgfSx7CisgICAgICAgICAgICAgIGlkOiAndG9hc3RfYXV0b3ZhY3V1 bV9lbmFibGVkJywgbGFiZWw6ICd7eyBfKCJFbmFibGVkPyIpIH19JywKKyAg ICAgICAgICAgICAgZ3JvdXA6ICd7eyBfKCJUb2FzdCBUYWJsZSIpIH19Jywg bW9kZTogWydlZGl0JywgJ2NyZWF0ZSddLAorICAgICAgICAgICAgICB0eXBl OiAnc3dpdGNoJywKKyAgICAgICAgICAgICAgZGVwczpbJ3RvYXN0X2F1dG92 YWNjdW0nXSwKKyAgICAgICAgICAgICAgZGlzYWJsZWQ6IGZ1bmN0aW9uKG0p IHsKKyAgICAgICAgICAgICAgLy8gSWYgaW4gc2NoZW1hICYgaW4gY3JlYXRl IG1vZGUgdGhlbiBlbmFibGUgaXQKKyAgICAgICAgICAgICAgaWYoIW0udG9w LmluU2NoZW1hLmFwcGx5KHRoaXMsIFttXSkgJiYKKyAgICAgICAgICAgICAg ICAgIG0uZ2V0KCd0b2FzdF9hdXRvdmFjY3VtJykgPT09IHRydWUgJiYKKyAg ICAgICAgICAgICAgICAgIG0udG9wLmdldCgnaGFzdG9hc3R0YWJsZScpID09 PSB0cnVlICkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg ICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIC8vIHdlIGFsc28gbmVl ZCB0byB1bnNldCByZXN0IG9mIGFsbAorICAgICAgICAgICAgICBzZXRUaW1l b3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIG0uc2V0KCd0b2Fz dF9hdXRvdmFjdXVtX2VuYWJsZWQnLCBmYWxzZSk7CisgICAgICAgICAgICAg ICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgIH0sIDEwKTsKKworICAg ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICAgICAgICB9Cisg ICAgICAgICAgfSx7CisgICAgICAgICAgICAgIGlkOiAndmFjdXVtX3RvYXN0 JywgbGFiZWw6ICd7eyBfKCJWYWN1dW0gVG9hc3QgVGFibGUiKSB9fScsCisg ICAgICAgICAgICAgIG1vZGVsOiBCYWNrZm9ybS5WYWN1dW1UYWJsZU1vZGVs LCB0eXBlOiAnY29sbGVjdGlvbicsIGVkaXRhYmxlOiBmdW5jdGlvbihtKSB7 CisgICAgICAgICAgICAgICAgcmV0dXJuIG0uaXNOZXcoKTsKKyAgICAgICAg ICAgICAgfSwKKyAgICAgICAgICAgICAgY2FuRWRpdDogdHJ1ZSwgZ3JvdXA6 ICd7eyBfKCJUb2FzdCBUYWJsZSIpIH19JywKKyAgICAgICAgICAgICAgbW9k ZTogWydlZGl0JywgJ2NyZWF0ZSddLCB1cmw6ICdnZXRfdG9hc3RfdGFibGVf dmFjdW11bScsCisgICAgICAgICAgICAgIGNvbnRyb2w6IEJhY2tmb3JtLlZh Y3V1bUNvbGxlY3Rpb25Db250cm9sLmV4dGVuZCh7CisgICAgICAgICAgICAg ICAgZ3JpZF9jb2x1bW5zIDpbCisgICAgICAgICAgICAgICAgICB7CisgICAg ICAgICAgICAgICAgICAgIG5hbWU6ICdsYWJlbCcsIGxhYmVsOiAne3sgXygi TGFiZWwiKSB9fScsCisgICAgICAgICAgICAgICAgICAgIGNlbGw6ICdzdHJp bmcnLCBlZGl0YWJsZTogZmFsc2UKKyAgICAgICAgICAgICAgICAgIH0sCisg ICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIG5hbWU6 ICd2YWx1ZScsIGxhYmVsOiAne3sgXygiVmFsdWUiKSB9fScsCisgICAgICAg ICAgICAgICAgICAgIGNlbGxGdW5jdGlvbjogQmFja2Zvcm0uY2VsbEZ1bmN0 aW9uLCBlZGl0YWJsZTogZnVuY3Rpb24obSkgeworICAgICAgICAgICAgICAg ICAgICAgICAgcmV0dXJuIG0uaGFuZGxlci5nZXQoJ3RvYXN0X2F1dG92YWN1 dW1fZW5hYmxlZCcpOworICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICB7CisgICAgICAg ICAgICAgICAgICAgIG5hbWU6ICdzZXR0aW5nJywgbGFiZWw6ICd7eyBfKCJE ZWZhdWx0IHZhbHVlIikgfX0nLAorICAgICAgICAgICAgICAgICAgICBjZWxs RnVuY3Rpb246IEJhY2tmb3JtLmNlbGxGdW5jdGlvbiwgZWRpdGFibGU6IGZh bHNlCisgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgXQor ICAgICAgICAgICAgICB9KSwKKyAgICAgICAgICAgICAgZGVwczogWyd0b2Fz dF9hdXRvdmFjdXVtX2VuYWJsZWQnXQorICAgIH1dOworCiAgICAvLyBFeHRl bmQgdGhlIGJyb3dzZXIncyBjb2xsZWN0aW9uIGNsYXNzIGZvciBTZWN1cml0 eUxhYmVsIGNvbnRyb2wKICAgICB2YXIgU2VjdXJpdHlNb2RlbCA9IEJhY2tm b3JtLlNlY3VyaXR5TW9kZWwgPSBwZ0FkbWluLkJyb3dzZXIuTm9kZS5Nb2Rl bC5leHRlbmQoewogICAgIGRlZmF1bHRzOiB7CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy91dGlscy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3V0aWxzLnB5 CmluZGV4IDEyOWMxOWUuLjM2NzJlMTAgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3V0aWxzLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3V0aWxzLnB5 CkBAIC0yNDcsMyArMjQ3LDE0MyBAQCBkZWYgcGFyc2VfcnVsZV9kZWZpbml0 aW9uKHJlcyk6CiAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAg ICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihl KSkKICAgICByZXR1cm4gcmVzX2RhdGEKKworY2xhc3MgVmFjdXVtU2V0dGlu Z3M6CisgICAgIiIiCisgICAgVmFjdXVtU2V0dGluZ3MgQ2xhc3MuCisKKyAg ICBUaGlzIGNsYXNzIGluY2x1ZGVzIGNvbW1vbiB1dGlsaXRpZXMgdG8gZmV0 Y2ggYW5kIHBhcnNlCisgICAgdmFjdXVtIGRlZmF1bHRzIHNldHRpbmdzLgor CisgICAgTWV0aG9kczoKKyAgICAtLS0tLS0tCisgICAgKiBnZXRfdmFjdXVt X3RhYmxlX3NldHRpbmdzKGNvbm4pOgorICAgICAgLSBSZXR1cm5zIHZhY3V1 bSB0YWJsZSBkZWZhdWx0cyBzZXR0aW5ncy4KKworICAgICogZ2V0X3ZhY3V1 bV90b2FzdF9zZXR0aW5ncyhjb25uKToKKyAgICAgIC0gUmV0dXJucyB2YWN1 dW0gdG9hc3QgZGVmYXVsdHMgc2V0dGluZ3MuCisKKyAgICAqIHBhcnNlX3Zh Y3V1bV9kYXRhKGNvbm4sIHJlc3VsdCwgdHlwZSk6CisgICAgICAtIFJldHVy bnMgcmVzdWx0IG9mIGFuIGFzc29jaWF0ZWQgYXJyYXkKKyAgICAgICAgb2Yg ZmllbGRzIG5hbWUsIGxhYmVsLCB2YWx1ZSBhbmQgY29sdW1uX3R5cGUuCisg ICAgICAgIEl0IGFkZHMgbmFtZSwgbGFiZWwsIGNvbHVtbl90eXBlIHByb3Bl cnRpZXMgb2YgdGFibGUvdG9hc3QKKyAgICAgICAgdmFjdXVtIGludG8gdGhl IGFycmF5IGFuZCByZXR1cm5zIGl0LgorICAgICAgICBhcmdzOgorICAgICAg ICAqIGNvbm4gLSBJdCBpcyBkYiBjb25uZWN0aW9uIG9iamVjdAorICAgICAg ICAqIHJlc3VsdCAtIFJlc3VsdHNldCBvZiB2YWN1dW0gZGF0YQorICAgICAg ICAqIHR5cGUgLSB0YWJsZS90b2FzdCB2YWN1dW0gdHlwZQorCisgICAgIiIi CisgICAgZGVmIGdldF92YWN1dW1fdGFibGVfc2V0dGluZ3Moc2VsZiwgY29u bik6CisgICAgICAgICIiIgorICAgICAgICBGZXRjaCB0aGUgZGVmYXVsdCB2 YWx1ZXMgZm9yIGF1dG92YWN1dW0KKyAgICAgICAgZmllbGRzLCByZXR1cm4g YW4gYXJyYXkgb2YKKyAgICAgICAgICAtIGxhYmVsCisgICAgICAgICAgLSBu YW1lCisgICAgICAgICAgLSBzZXR0aW5nCisgICAgICAgIHZhbHVlcworICAg ICAgICAiIiIKKworICAgICAgICAjIHJldHVybnMgYW4gYXJyYXkgb2YgbmFt ZSAmIGxhYmVsIHZhbHVlcworICAgICAgICB2YWN1dW1fZmllbGRzID0gcmVu ZGVyX3RlbXBsYXRlKCJ2YWN1dW1fc2V0dGluZ3MvdmFjdXVtX2ZpZWxkcy5q c29uIikKKworICAgICAgICB2YWN1dW1fZmllbGRzID0ganNvbi5sb2Fkcyh2 YWN1dW1fZmllbGRzKQorCisgICAgICAgICMgcmV0dXJucyBhbiBhcnJheSBv ZiBzZXR0aW5nICYgbmFtZSB2YWx1ZXMKKyAgICAgICAgdmFjdXVtX2ZpZWxk c19rZXlzID0gIiciKyInLCciLmpvaW4oCisgICAgICAgICAgICB2YWN1dW1f ZmllbGRzWyd0YWJsZSddLmtleXMoKSkrIiciCisgICAgICAgIFNRTCA9IHJl bmRlcl90ZW1wbGF0ZSgndmFjdXVtX3NldHRpbmdzL3NxbC92YWN1dW1fZGVm YXVsdHMuc3FsJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bHVtbnM9dmFjdXVtX2ZpZWxkc19rZXlzKQorICAgICAgICBzdGF0dXMsIHJl cyA9IGNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKworICAgICAgICBpZiBub3Qg c3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9l cnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgZm9yIHJvdyBpbiByZXNb J3Jvd3MnXToKKyAgICAgICAgICAgIHJvd19uYW1lID0gcm93WyduYW1lJ10K KyAgICAgICAgICAgIHJvd1snbmFtZSddID0gdmFjdXVtX2ZpZWxkc1sndGFi bGUnXVtyb3dfbmFtZV1bMF0KKyAgICAgICAgICAgIHJvd1snbGFiZWwnXSA9 IHZhY3V1bV9maWVsZHNbJ3RhYmxlJ11bcm93X25hbWVdWzFdCisgICAgICAg ICAgICByb3dbJ2NvbHVtbl90eXBlJ10gPSB2YWN1dW1fZmllbGRzWyd0YWJs ZSddW3Jvd19uYW1lXVsyXQorCisgICAgICAgIHJldHVybiByZXMKKworICAg IGRlZiBnZXRfdmFjdXVtX3RvYXN0X3NldHRpbmdzKHNlbGYsIGNvbm4pOgor ICAgICAgICAiIiIKKyAgICAgICAgRmV0Y2ggdGhlIGRlZmF1bHQgdmFsdWVz IGZvciBhdXRvdmFjdXVtCisgICAgICAgIGZpZWxkcywgcmV0dXJuIGFuIGFy cmF5IG9mCisgICAgICAgICAgLSBsYWJlbAorICAgICAgICAgIC0gbmFtZQor ICAgICAgICAgIC0gc2V0dGluZworICAgICAgICB2YWx1ZXMKKyAgICAgICAg IiIiCisKKyAgICAgICAgIyByZXR1cm5zIGFuIGFycmF5IG9mIG5hbWUgJiBs YWJlbCB2YWx1ZXMKKyAgICAgICAgdmFjdXVtX2ZpZWxkcyA9IHJlbmRlcl90 ZW1wbGF0ZSgidmFjdXVtX3NldHRpbmdzL3ZhY3V1bV9maWVsZHMuanNvbiIp CisKKyAgICAgICAgdmFjdXVtX2ZpZWxkcyA9IGpzb24ubG9hZHModmFjdXVt X2ZpZWxkcykKKworICAgICAgICAjIHJldHVybnMgYW4gYXJyYXkgb2Ygc2V0 dGluZyAmIG5hbWUgdmFsdWVzCisgICAgICAgIHZhY3V1bV9maWVsZHNfa2V5 cyA9ICInIisiJywnIi5qb2luKAorICAgICAgICAgICAgdmFjdXVtX2ZpZWxk c1sndG9hc3QnXS5rZXlzKCkpKyInIgorICAgICAgICBTUUwgPSByZW5kZXJf dGVtcGxhdGUoJ3ZhY3V1bV9zZXR0aW5ncy9zcWwvdmFjdXVtX2RlZmF1bHRz LnNxbCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5z PXZhY3V1bV9maWVsZHNfa2V5cykKKyAgICAgICAgc3RhdHVzLCByZXMgPSBj b25uLmV4ZWN1dGVfZGljdChTUUwpCisKKyAgICAgICAgaWYgbm90IHN0YXR1 czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3Io ZXJyb3Jtc2c9cmVzKQorCisgICAgICAgIGZvciByb3cgaW4gcmVzWydyb3dz J106CisgICAgICAgICAgICByb3dfbmFtZSA9IHJvd1snbmFtZSddCisgICAg ICAgICAgICByb3dbJ25hbWUnXSA9IHZhY3V1bV9maWVsZHNbJ3RvYXN0J11b cm93X25hbWVdWzBdCisgICAgICAgICAgICByb3dbJ2xhYmVsJ10gPSB2YWN1 dW1fZmllbGRzWyd0b2FzdCddW3Jvd19uYW1lXVsxXQorICAgICAgICAgICAg cm93Wydjb2x1bW5fdHlwZSddID0gdmFjdXVtX2ZpZWxkc1sndGFibGUnXVty b3dfbmFtZV1bMl0KKworICAgICAgICByZXR1cm4gcmVzCisKKyAgICBkZWYg cGFyc2VfdmFjdXVtX2RhdGEoc2VsZiwgY29ubiwgcmVzdWx0LCB0eXBlKToK KyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gcmV0dXJucyBy ZXN1bHQgb2YgYW4gYXNzb2NpYXRlZCBhcnJheQorICAgICAgICBvZiBmaWVs ZHMgbmFtZSwgbGFiZWwsIHZhbHVlIGFuZCBjb2x1bW5fdHlwZS4KKyAgICAg ICAgSXQgYWRkcyBuYW1lLCBsYWJlbCwgY29sdW1uX3R5cGUgcHJvcGVydGll cyBvZiB0YWJsZS90b2FzdAorICAgICAgICB2YWN1dW0gaW50byB0aGUgYXJy YXkgYW5kIHJldHVybnMgaXQuCisgICAgICAgIGFyZ3M6CisgICAgICAgICog Y29ubiAtIEl0IGlzIGRiIGNvbm5lY3Rpb24gb2JqZWN0CisgICAgICAgICog cmVzdWx0IC0gUmVzdWx0c2V0IG9mIHZhY3V1bSBkYXRhCisgICAgICAgICog dHlwZSAtIHRhYmxlL3RvYXN0IHZhY3V1bSB0eXBlCisgICAgICAgICIiIgor CisgICAgICAgICMgcmV0dXJucyBhbiBhcnJheSBvZiBuYW1lICYgbGFiZWwg dmFsdWVzCisgICAgICAgIHZhY3V1bV9maWVsZHMgPSByZW5kZXJfdGVtcGxh dGUoInZhY3V1bV9zZXR0aW5ncy92YWN1dW1fZmllbGRzLmpzb24iKQorCisg ICAgICAgIHZhY3V1bV9maWVsZHMgPSBqc29uLmxvYWRzKHZhY3V1bV9maWVs ZHMpCisKKyAgICAgICAgIyByZXR1cm5zIGFuIGFycmF5IG9mIHNldHRpbmcg JiBuYW1lIHZhbHVlcworICAgICAgICB2YWN1dW1fZmllbGRzX2tleXMgPSAi JyIrIicsJyIuam9pbigKKyAgICAgICAgICAgIHZhY3V1bV9maWVsZHNbdHlw ZV0ua2V5cygpKSArICInIgorICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxh dGUoJ3ZhY3V1bV9zZXR0aW5ncy9zcWwvdmFjdXVtX2RlZmF1bHRzLnNxbCcs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5zPXZhY3V1 bV9maWVsZHNfa2V5cykKKyAgICAgICAgc3RhdHVzLCByZXMgPSBjb25uLmV4 ZWN1dGVfZGljdChTUUwpCisKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAg ICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jt c2c9cmVzKQorCisgICAgICAgIGlmIHR5cGUgaXMgJ3RhYmxlJzoKKyAgICAg ICAgICAgIGZvciByb3cgaW4gcmVzWydyb3dzJ106CisgICAgICAgICAgICAg ICAgcm93X25hbWUgPSByb3dbJ25hbWUnXQorICAgICAgICAgICAgICAgIHJv d1snbmFtZSddID0gdmFjdXVtX2ZpZWxkc1t0eXBlXVtyb3dfbmFtZV1bMF0K KyAgICAgICAgICAgICAgICByb3dbJ2xhYmVsJ10gPSB2YWN1dW1fZmllbGRz W3R5cGVdW3Jvd19uYW1lXVsxXQorICAgICAgICAgICAgICAgIHJvd1snY29s dW1uX3R5cGUnXSA9IHZhY3V1bV9maWVsZHNbdHlwZV1bcm93X25hbWVdWzJd CisgICAgICAgICAgICAgICAgaWYgcmVzdWx0W3Jvd1snbmFtZSddXSBpcyBu b3QgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgcm93Wyd2YWx1ZSddID0g cm93WydzZXR0aW5nJ10gPSBmbG9hdChyZXN1bHRbcm93WyduYW1lJ11dKQor CisgICAgICAgIGVsaWYgdHlwZSBpcyAndG9hc3QnOgorICAgICAgICAgICAg Zm9yIHJvdyBpbiByZXNbJ3Jvd3MnXToKKyAgICAgICAgICAgICAgICByb3df b2xkX25hbWUgPSByb3dbJ25hbWUnXQorICAgICAgICAgICAgICAgIHJvd19u YW1lID0gJ3RvYXN0X3swfScuZm9ybWF0KHZhY3V1bV9maWVsZHNbdHlwZV1b cm93X29sZF9uYW1lXVswXSkKKyAgICAgICAgICAgICAgICByb3dbJ25hbWUn XSA9IHZhY3V1bV9maWVsZHNbdHlwZV1bcm93X29sZF9uYW1lXVswXQorICAg ICAgICAgICAgICAgIHJvd1snbGFiZWwnXSA9IHZhY3V1bV9maWVsZHNbdHlw ZV1bcm93X29sZF9uYW1lXVsxXQorICAgICAgICAgICAgICAgIHJvd1snY29s dW1uX3R5cGUnXSA9IHZhY3V1bV9maWVsZHNbdHlwZV1bcm93X29sZF9uYW1l XVsyXQorICAgICAgICAgICAgICAgIGlmIHJlc3VsdFtyb3dfbmFtZV0gYW5k IHJlc3VsdFtyb3dfbmFtZV0gaXMgbm90IE5vbmU6CisgICAgICAgICAgICAg ICAgICAgIHJvd1sndmFsdWUnXSA9IHJvd1snc2V0dGluZyddID0gZmxvYXQo cmVzdWx0W3Jvd19uYW1lXSkKKworICAgICAgICByZXR1cm4gcmVzWydyb3dz J10K --001a1139bebca0caf3052fe2aa1a 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 --001a1139bebca0caf3052fe2aa1a--