Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ao7Ve-0000N5-3C for pgadmin-hackers@arkaria.postgresql.org; Thu, 07 Apr 2016 10:49:58 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1ao7Vd-0002Ox-J5 for pgadmin-hackers@arkaria.postgresql.org; Thu, 07 Apr 2016 10:49:57 +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 1ao7Vc-0002Or-B1 for pgadmin-hackers@postgresql.org; Thu, 07 Apr 2016 10:49:56 +0000 Received: from mail-qg0-x22d.google.com ([2607:f8b0:400d:c04::22d]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1ao7VZ-0007F0-61 for pgadmin-hackers@postgresql.org; Thu, 07 Apr 2016 10:49:55 +0000 Received: by mail-qg0-x22d.google.com with SMTP id c6so59212091qga.1 for ; Thu, 07 Apr 2016 03:49:52 -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=TfNtj7aPi8044S0YNr18pjbQs5MrjnkTmzD7EPDfUDI=; b=wjpv1QrNSPWtVvBzrSy0bLQDvMS0nzalK4oOk8ajOORXHeLp4LaXHFuy5mbbsZpzkD YouSFJEn06s0Ll1yTaOKuxbJeIy6WyGGmyN8Cv2IWg9eQs4VwohL+kWlDwopF5sMIXM8 xOHoDO56fRdgisiclDtqtLUjGUNtny4ZThwBGvx7ycgwih7kRolCtHeJ2p+v5xw4d+CB WqWNBBT/QktX00XHt24h0EY9agXf3dECK3avpvgFOuQj0SxB5woO35lhoV4GjvUwOkf+ jGHDOYnWFbtu/S/TrE/pBqW16W0OHfTZt8iFLhT6F+x1h3AoHmtzt9emtScYMntzThdT UuIw== 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=TfNtj7aPi8044S0YNr18pjbQs5MrjnkTmzD7EPDfUDI=; b=Q2oFF4EOAxWJmqXZ6kBd8w70MnSO9Gnird4i60zjmryJgk4I0Y2w2fMegk70WEbxd2 wlfvS51nxyKouswOrCvlB1j5LEVWW4e3aEBRjq34SaBYXs66JbXShwaEgC0lpYjRY2kv HECakdP3YdfzZ7gsBnIuXFA11llmYVn7ycXsL3k5YkJ1HR/u/MCS8wNbXeWbTIaF4zGL TEsRFG8S26ZrEmATIX119iPTaxGU4UAFrKjdj5Km0MDA/7zUA4Q2qZVzVMYrK3fy4bHQ hiC0cQCoa9Rdc7ChMUb99R5i2VJNCrO+Ze30xdwKd1JcJfEKCxJF/8MptNyFifgPtICN KRlA== X-Gm-Message-State: AD7BkJJcaw9CEol6Cde98suGsLxtpqTFfgpR6W+agszpO/w8ckIcEPBQM88/sJsND94L5U8sBRjooNtMn88Px93h X-Received: by 10.140.250.5 with SMTP id v5mr288211qhc.9.1460026192214; Thu, 07 Apr 2016 03:49:52 -0700 (PDT) MIME-Version: 1.0 Received: by 10.55.128.132 with HTTP; Thu, 7 Apr 2016 03:49:32 -0700 (PDT) In-Reply-To: References: From: Murtuza Zabuawala Date: Thu, 7 Apr 2016 16:19:32 +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=001a113ac03e8d3bcc052fe2d633 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 --001a113ac03e8d3bcc052fe2d633 Content-Type: multipart/alternative; boundary=001a113ac03e8d3bc6052fe2d631 --001a113ac03e8d3bc6052fe2d631 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hi, Rebase patch and sent again. Regrds, Murtuza -- Regards, Murtuza Zabuawala EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company On Thu, Apr 7, 2016 at 4:07 PM, Murtuza Zabuawala < murtuza.zabuawala@enterprisedb.com> wrote: > 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 >>> >> >> >> > --001a113ac03e8d3bc6052fe2d631 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi,

Rebase patch and sent again.
<= div>

Regrds,
Murtuza

--
Regards,
Murtuza Zabuawala
EnterpriseDB:=C2=A0http://www.enterprisedb.com
The Enterprise PostgreSQL Com= pany


On Thu, Apr 7, 2016 at 4:07 PM, Murtuza Zabu= awala <murtuza.zabuawala@enterprisedb.com> = wrote:
Hi,

Please find updated patch, I have moved everything at schema level an= d tweak some code as well, so that we can use it in Table/View node.
<= div>

Regards,
Murtuza

--
Regards,
Murtuza Zabuawala
EnterpriseDB:=C2=A0http://ww= w.enterprisedb.com
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

<= /span>



--001a113ac03e8d3bc6052fe2d631-- --001a113ac03e8d3bcc052fe2d633 Content-Type: application/octet-stream; name="Updated_VaccumSettings_Control_v1.patch" Content-Disposition: attachment; filename="Updated_VaccumSettings_Control_v1.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_imq5vt611 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 CmluZGV4IDEyOWMxOWUuLjkyZWZlMDMgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3V0aWxzLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3V0aWxzLnB5 CkBAIC0xMyw2ICsxMyw3IEBAIGZyb20gcGdhZG1pbi5icm93c2VyLmNvbGxl Y3Rpb24gaW1wb3J0IENvbGxlY3Rpb25Ob2RlTW9kdWxlCiBmcm9tIHBnYWRt aW4uYnJvd3Nlci51dGlscyBpbXBvcnQgUEdDaGlsZE5vZGVWaWV3CiBmcm9t IGZsYXNrIGltcG9ydCByZW5kZXJfdGVtcGxhdGUKIGZyb20gcGdhZG1pbi51 dGlscy5hamF4IGltcG9ydCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IKK2ltcG9y dCBqc29uCiAKIGNsYXNzIFNjaGVtYUNoaWxkTW9kdWxlKENvbGxlY3Rpb25O b2RlTW9kdWxlKToKICAgICAiIiIKQEAgLTI0NywzICsyNDgsMTQzIEBAIGRl ZiBwYXJzZV9ydWxlX2RlZmluaXRpb24ocmVzKToKICAgICBleGNlcHQgRXhj ZXB0aW9uIGFzIGU6CiAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJf ZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQogICAgIHJldHVybiByZXNfZGF0YQor CitjbGFzcyBWYWN1dW1TZXR0aW5nczoKKyAgICAiIiIKKyAgICBWYWN1dW1T ZXR0aW5ncyBDbGFzcy4KKworICAgIFRoaXMgY2xhc3MgaW5jbHVkZXMgY29t bW9uIHV0aWxpdGllcyB0byBmZXRjaCBhbmQgcGFyc2UKKyAgICB2YWN1dW0g ZGVmYXVsdHMgc2V0dGluZ3MuCisKKyAgICBNZXRob2RzOgorICAgIC0tLS0t LS0KKyAgICAqIGdldF92YWN1dW1fdGFibGVfc2V0dGluZ3MoY29ubik6Cisg ICAgICAtIFJldHVybnMgdmFjdXVtIHRhYmxlIGRlZmF1bHRzIHNldHRpbmdz LgorCisgICAgKiBnZXRfdmFjdXVtX3RvYXN0X3NldHRpbmdzKGNvbm4pOgor ICAgICAgLSBSZXR1cm5zIHZhY3V1bSB0b2FzdCBkZWZhdWx0cyBzZXR0aW5n cy4KKworICAgICogcGFyc2VfdmFjdXVtX2RhdGEoY29ubiwgcmVzdWx0LCB0 eXBlKToKKyAgICAgIC0gUmV0dXJucyByZXN1bHQgb2YgYW4gYXNzb2NpYXRl ZCBhcnJheQorICAgICAgICBvZiBmaWVsZHMgbmFtZSwgbGFiZWwsIHZhbHVl IGFuZCBjb2x1bW5fdHlwZS4KKyAgICAgICAgSXQgYWRkcyBuYW1lLCBsYWJl bCwgY29sdW1uX3R5cGUgcHJvcGVydGllcyBvZiB0YWJsZS90b2FzdAorICAg ICAgICB2YWN1dW0gaW50byB0aGUgYXJyYXkgYW5kIHJldHVybnMgaXQuCisg ICAgICAgIGFyZ3M6CisgICAgICAgICogY29ubiAtIEl0IGlzIGRiIGNvbm5l Y3Rpb24gb2JqZWN0CisgICAgICAgICogcmVzdWx0IC0gUmVzdWx0c2V0IG9m IHZhY3V1bSBkYXRhCisgICAgICAgICogdHlwZSAtIHRhYmxlL3RvYXN0IHZh Y3V1bSB0eXBlCisKKyAgICAiIiIKKyAgICBkZWYgZ2V0X3ZhY3V1bV90YWJs ZV9zZXR0aW5ncyhzZWxmLCBjb25uKToKKyAgICAgICAgIiIiCisgICAgICAg IEZldGNoIHRoZSBkZWZhdWx0IHZhbHVlcyBmb3IgYXV0b3ZhY3V1bQorICAg ICAgICBmaWVsZHMsIHJldHVybiBhbiBhcnJheSBvZgorICAgICAgICAgIC0g bGFiZWwKKyAgICAgICAgICAtIG5hbWUKKyAgICAgICAgICAtIHNldHRpbmcK KyAgICAgICAgdmFsdWVzCisgICAgICAgICIiIgorCisgICAgICAgICMgcmV0 dXJucyBhbiBhcnJheSBvZiBuYW1lICYgbGFiZWwgdmFsdWVzCisgICAgICAg IHZhY3V1bV9maWVsZHMgPSByZW5kZXJfdGVtcGxhdGUoInZhY3V1bV9zZXR0 aW5ncy92YWN1dW1fZmllbGRzLmpzb24iKQorCisgICAgICAgIHZhY3V1bV9m aWVsZHMgPSBqc29uLmxvYWRzKHZhY3V1bV9maWVsZHMpCisKKyAgICAgICAg IyByZXR1cm5zIGFuIGFycmF5IG9mIHNldHRpbmcgJiBuYW1lIHZhbHVlcwor ICAgICAgICB2YWN1dW1fZmllbGRzX2tleXMgPSAiJyIrIicsJyIuam9pbigK KyAgICAgICAgICAgIHZhY3V1bV9maWVsZHNbJ3RhYmxlJ10ua2V5cygpKSsi JyIKKyAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCd2YWN1dW1fc2V0 dGluZ3Mvc3FsL3ZhY3V1bV9kZWZhdWx0cy5zcWwnLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29sdW1ucz12YWN1dW1fZmllbGRzX2tleXMp CisgICAgICAgIHN0YXR1cywgcmVzID0gY29ubi5leGVjdXRlX2RpY3QoU1FM KQorCisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1 cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAg ICAgICBmb3Igcm93IGluIHJlc1sncm93cyddOgorICAgICAgICAgICAgcm93 X25hbWUgPSByb3dbJ25hbWUnXQorICAgICAgICAgICAgcm93WyduYW1lJ10g PSB2YWN1dW1fZmllbGRzWyd0YWJsZSddW3Jvd19uYW1lXVswXQorICAgICAg ICAgICAgcm93WydsYWJlbCddID0gdmFjdXVtX2ZpZWxkc1sndGFibGUnXVty b3dfbmFtZV1bMV0KKyAgICAgICAgICAgIHJvd1snY29sdW1uX3R5cGUnXSA9 IHZhY3V1bV9maWVsZHNbJ3RhYmxlJ11bcm93X25hbWVdWzJdCisKKyAgICAg ICAgcmV0dXJuIHJlcworCisgICAgZGVmIGdldF92YWN1dW1fdG9hc3Rfc2V0 dGluZ3Moc2VsZiwgY29ubik6CisgICAgICAgICIiIgorICAgICAgICBGZXRj aCB0aGUgZGVmYXVsdCB2YWx1ZXMgZm9yIGF1dG92YWN1dW0KKyAgICAgICAg ZmllbGRzLCByZXR1cm4gYW4gYXJyYXkgb2YKKyAgICAgICAgICAtIGxhYmVs CisgICAgICAgICAgLSBuYW1lCisgICAgICAgICAgLSBzZXR0aW5nCisgICAg ICAgIHZhbHVlcworICAgICAgICAiIiIKKworICAgICAgICAjIHJldHVybnMg YW4gYXJyYXkgb2YgbmFtZSAmIGxhYmVsIHZhbHVlcworICAgICAgICB2YWN1 dW1fZmllbGRzID0gcmVuZGVyX3RlbXBsYXRlKCJ2YWN1dW1fc2V0dGluZ3Mv dmFjdXVtX2ZpZWxkcy5qc29uIikKKworICAgICAgICB2YWN1dW1fZmllbGRz ID0ganNvbi5sb2Fkcyh2YWN1dW1fZmllbGRzKQorCisgICAgICAgICMgcmV0 dXJucyBhbiBhcnJheSBvZiBzZXR0aW5nICYgbmFtZSB2YWx1ZXMKKyAgICAg ICAgdmFjdXVtX2ZpZWxkc19rZXlzID0gIiciKyInLCciLmpvaW4oCisgICAg ICAgICAgICB2YWN1dW1fZmllbGRzWyd0b2FzdCddLmtleXMoKSkrIiciCisg ICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgndmFjdXVtX3NldHRpbmdz L3NxbC92YWN1dW1fZGVmYXVsdHMuc3FsJywKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbHVtbnM9dmFjdXVtX2ZpZWxkc19rZXlzKQorICAg ICAgICBzdGF0dXMsIHJlcyA9IGNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKwor ICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGlu dGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAg Zm9yIHJvdyBpbiByZXNbJ3Jvd3MnXToKKyAgICAgICAgICAgIHJvd19uYW1l ID0gcm93WyduYW1lJ10KKyAgICAgICAgICAgIHJvd1snbmFtZSddID0gdmFj dXVtX2ZpZWxkc1sndG9hc3QnXVtyb3dfbmFtZV1bMF0KKyAgICAgICAgICAg IHJvd1snbGFiZWwnXSA9IHZhY3V1bV9maWVsZHNbJ3RvYXN0J11bcm93X25h bWVdWzFdCisgICAgICAgICAgICByb3dbJ2NvbHVtbl90eXBlJ10gPSB2YWN1 dW1fZmllbGRzWyd0YWJsZSddW3Jvd19uYW1lXVsyXQorCisgICAgICAgIHJl dHVybiByZXMKKworICAgIGRlZiBwYXJzZV92YWN1dW1fZGF0YShzZWxmLCBj b25uLCByZXN1bHQsIHR5cGUpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhp cyBmdW5jdGlvbiByZXR1cm5zIHJlc3VsdCBvZiBhbiBhc3NvY2lhdGVkIGFy cmF5CisgICAgICAgIG9mIGZpZWxkcyBuYW1lLCBsYWJlbCwgdmFsdWUgYW5k IGNvbHVtbl90eXBlLgorICAgICAgICBJdCBhZGRzIG5hbWUsIGxhYmVsLCBj b2x1bW5fdHlwZSBwcm9wZXJ0aWVzIG9mIHRhYmxlL3RvYXN0CisgICAgICAg IHZhY3V1bSBpbnRvIHRoZSBhcnJheSBhbmQgcmV0dXJucyBpdC4KKyAgICAg ICAgYXJnczoKKyAgICAgICAgKiBjb25uIC0gSXQgaXMgZGIgY29ubmVjdGlv biBvYmplY3QKKyAgICAgICAgKiByZXN1bHQgLSBSZXN1bHRzZXQgb2YgdmFj dXVtIGRhdGEKKyAgICAgICAgKiB0eXBlIC0gdGFibGUvdG9hc3QgdmFjdXVt IHR5cGUKKyAgICAgICAgIiIiCisKKyAgICAgICAgIyByZXR1cm5zIGFuIGFy cmF5IG9mIG5hbWUgJiBsYWJlbCB2YWx1ZXMKKyAgICAgICAgdmFjdXVtX2Zp ZWxkcyA9IHJlbmRlcl90ZW1wbGF0ZSgidmFjdXVtX3NldHRpbmdzL3ZhY3V1 bV9maWVsZHMuanNvbiIpCisKKyAgICAgICAgdmFjdXVtX2ZpZWxkcyA9IGpz b24ubG9hZHModmFjdXVtX2ZpZWxkcykKKworICAgICAgICAjIHJldHVybnMg YW4gYXJyYXkgb2Ygc2V0dGluZyAmIG5hbWUgdmFsdWVzCisgICAgICAgIHZh Y3V1bV9maWVsZHNfa2V5cyA9ICInIisiJywnIi5qb2luKAorICAgICAgICAg ICAgdmFjdXVtX2ZpZWxkc1t0eXBlXS5rZXlzKCkpICsgIiciCisgICAgICAg IFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgndmFjdXVtX3NldHRpbmdzL3NxbC92 YWN1dW1fZGVmYXVsdHMuc3FsJywKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbHVtbnM9dmFjdXVtX2ZpZWxkc19rZXlzKQorICAgICAgICBz dGF0dXMsIHJlcyA9IGNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKworICAgICAg ICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFs X3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgaWYgdHlw ZSBpcyAndGFibGUnOgorICAgICAgICAgICAgZm9yIHJvdyBpbiByZXNbJ3Jv d3MnXToKKyAgICAgICAgICAgICAgICByb3dfbmFtZSA9IHJvd1snbmFtZSdd CisgICAgICAgICAgICAgICAgcm93WyduYW1lJ10gPSB2YWN1dW1fZmllbGRz W3R5cGVdW3Jvd19uYW1lXVswXQorICAgICAgICAgICAgICAgIHJvd1snbGFi ZWwnXSA9IHZhY3V1bV9maWVsZHNbdHlwZV1bcm93X25hbWVdWzFdCisgICAg ICAgICAgICAgICAgcm93Wydjb2x1bW5fdHlwZSddID0gdmFjdXVtX2ZpZWxk c1t0eXBlXVtyb3dfbmFtZV1bMl0KKyAgICAgICAgICAgICAgICBpZiByZXN1 bHRbcm93WyduYW1lJ11dIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAg ICAgICByb3dbJ3ZhbHVlJ10gPSByb3dbJ3NldHRpbmcnXSA9IGZsb2F0KHJl c3VsdFtyb3dbJ25hbWUnXV0pCisKKyAgICAgICAgZWxpZiB0eXBlIGlzICd0 b2FzdCc6CisgICAgICAgICAgICBmb3Igcm93IGluIHJlc1sncm93cyddOgor ICAgICAgICAgICAgICAgIHJvd19vbGRfbmFtZSA9IHJvd1snbmFtZSddCisg ICAgICAgICAgICAgICAgcm93X25hbWUgPSAndG9hc3RfezB9Jy5mb3JtYXQo dmFjdXVtX2ZpZWxkc1t0eXBlXVtyb3dfb2xkX25hbWVdWzBdKQorICAgICAg ICAgICAgICAgIHJvd1snbmFtZSddID0gdmFjdXVtX2ZpZWxkc1t0eXBlXVty b3dfb2xkX25hbWVdWzBdCisgICAgICAgICAgICAgICAgcm93WydsYWJlbCdd ID0gdmFjdXVtX2ZpZWxkc1t0eXBlXVtyb3dfb2xkX25hbWVdWzFdCisgICAg ICAgICAgICAgICAgcm93Wydjb2x1bW5fdHlwZSddID0gdmFjdXVtX2ZpZWxk c1t0eXBlXVtyb3dfb2xkX25hbWVdWzJdCisgICAgICAgICAgICAgICAgaWYg cmVzdWx0W3Jvd19uYW1lXSBhbmQgcmVzdWx0W3Jvd19uYW1lXSBpcyBub3Qg Tm9uZToKKyAgICAgICAgICAgICAgICAgICAgcm93Wyd2YWx1ZSddID0gcm93 WydzZXR0aW5nJ10gPSBmbG9hdChyZXN1bHRbcm93X25hbWVdKQorCisgICAg ICAgIHJldHVybiByZXNbJ3Jvd3MnXQo= --001a113ac03e8d3bcc052fe2d633 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 --001a113ac03e8d3bcc052fe2d633--