Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dIx32-00060W-HL for pgadmin-hackers@arkaria.postgresql.org; Thu, 08 Jun 2017 13:00:24 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1dIx32-0006zL-3Z for pgadmin-hackers@arkaria.postgresql.org; Thu, 08 Jun 2017 13:00:24 +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 1dIx2i-0005xQ-9F for pgadmin-hackers@postgresql.org; Thu, 08 Jun 2017 13:00:04 +0000 Received: from mail-io0-x22f.google.com ([2607:f8b0:4001:c06::22f]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1dIx2c-0007Lc-1k for pgadmin-hackers@postgresql.org; Thu, 08 Jun 2017 13:00:03 +0000 Received: by mail-io0-x22f.google.com with SMTP id y77so19682719ioe.3 for ; Thu, 08 Jun 2017 05:59:57 -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=xt0GV8mvWsLvm6CQ19k/jnSYaiqrdcDu9rW6sc/L9dY=; b=PdNBMagJhlAM9KAYmPkXYMrE84NQoVGaH8zp0i5P3IpqUCJmHBMrVBJQg1j2T4Irxs fhW6QTbBCouJvop5MivnCeVZP1fX0LwSk4zQTukvKOXTvCnj9dSQh8JWjcqFthrCpwT6 jRh+L552c8LqhSq8kqj1aI6XO+Gk1+CN5iT1aYhkneZI5NcdCZBoFr4dnYnl3sIrSwaa zPxKru38NZLpGz9QBCe7y80lGXFJa9nN6jpYnaUDz2v+sftYFWPAOj7yh4nP26UPu+cD xuP5Ng8bOkMUMRet07DSQtdgXLFsCw8mu3QpFpxSgIp5eFa37gpGVuSduCsu+mqLhYIJ dBcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=xt0GV8mvWsLvm6CQ19k/jnSYaiqrdcDu9rW6sc/L9dY=; b=FBM/s2qhLyMlWBnfFfs5OnKntZPoYPjC3DM3W7mwLiy9Qc3FFWcEElc2qOCOLz1EwE y3pYhUwyx+Il6j1yXSO3HRifOjixRu4HcknvL5quh9C4TIz/MGZL0WaGaq4/t/Az2NqA /f7cORi3jj55DC+PJZJn/vNmv7pxaedfe2YXH50bJQgfv2464jczJypybcc3Ijji8yq3 F7Z9ImH8QFjIAoQLdurkGx7v/ngQs3J3PMXZeCSIjDjrFptXi34h650ZDrpGw+FNxULT XnRIUjMU5P4JSOhi9R3a7JntNquC5j1U5Xx3MMgfJqC6I7c3Ag31g5ur7VU88iG7fXaS 0KkA== X-Gm-Message-State: AODbwcAmV3QxYIPl1uNwiuyF+q/cW5hmFoDeLF5xJG+hJBB/pbbtAH92 bDAyytfJcDzdgd0EwAzq/fy0MR4vOldK X-Received: by 10.107.190.194 with SMTP id o185mr35291704iof.228.1496926796176; Thu, 08 Jun 2017 05:59:56 -0700 (PDT) MIME-Version: 1.0 Received: by 10.79.81.1 with HTTP; Thu, 8 Jun 2017 05:59:55 -0700 (PDT) In-Reply-To: References: From: Harshal Dhumal Date: Thu, 8 Jun 2017 18:29:55 +0530 Message-ID: Subject: Re: Fix for RM2421 [pgAdmin4][patch] To: Dave Page Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary="001a114f157cf24b710551726de4" 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 --001a114f157cf24b710551726de4 Content-Type: multipart/alternative; boundary="001a114f157cf24b6b0551726de2" --001a114f157cf24b6b0551726de2 Content-Type: text/plain; charset="UTF-8" Please find attached rebased patch. -- *Harshal Dhumal* *Sr. Software Engineer* EnterpriseDB India: http://www.enterprisedb.com The Enterprise PostgreSQL Company On Wed, Jun 7, 2017 at 6:59 PM, Dave Page wrote: > Can you rebase this please? I think Ashesh broke it :-p > > On Tue, Jun 6, 2017 at 7:42 AM, Harshal Dhumal > wrote: > > Hi, > > > > On Mon, Jun 5, 2017 at 9:25 PM, Dave Page wrote: > >> > >> Hi > >> > >> With this patch applied, it uses the field names instead of the labels > >> in error messages - e.g. > >> > >> 'dirty_rate_limit' must be numeric > >> > >> instead of: > >> > >> 'Dirty Rate Limit (KB)' must be numeric. > > > > Fixed. Please find attached updated patch. > > > >> > >> > >> Thanks. > >> > >> On Tue, May 30, 2017 at 8:28 AM, Harshal Dhumal > >> wrote: > >> > Hi, > >> > > >> > Please find updated patch. > >> > > >> > -- > >> > Harshal Dhumal > >> > Sr. Software Engineer > >> > > >> > EnterpriseDB India: http://www.enterprisedb.com > >> > The Enterprise PostgreSQL Company > >> > > >> > On Tue, May 30, 2017 at 12:30 PM, Harshal Dhumal > >> > wrote: > >> >> > >> >> Hi, > >> >> > >> >> Please ignore this patch as I forgot to include few changes. I'll > send > >> >> updated one. > >> >> > >> >> -- > >> >> Harshal Dhumal > >> >> Sr. Software Engineer > >> >> > >> >> EnterpriseDB India: http://www.enterprisedb.com > >> >> The Enterprise PostgreSQL Company > >> >> > >> >> On Mon, May 29, 2017 at 3:18 PM, Harshal Dhumal > >> >> wrote: > >> >>> > >> >>> Hi, > >> >>> > >> >>> Here is updated patch for RM2421. > >> >>> > >> >>> Now I have moved all Numeric control level validations to datamodel. > >> >>> As > >> >>> existing implementation was causing > >> >>> issues with error messages in create/edit dialog when schema > contains > >> >>> two > >> >>> or more Numeric controls. > >> >>> > >> >>> This is generic issue and not related to resource group. Also I have > >> >>> updated all other nodes which uses Numeric controls > >> >>> > >> >>> > >> >>> > >> >>> -- > >> >>> Harshal Dhumal > >> >>> Sr. Software Engineer > >> >>> > >> >>> EnterpriseDB India: http://www.enterprisedb.com > >> >>> The Enterprise PostgreSQL Company > >> >>> > >> >>> On Fri, May 19, 2017 at 12:22 PM, Harshal Dhumal > >> >>> wrote: > >> >>>> > >> >>>> Hi, > >> >>>> > >> >>>> On Thu, May 18, 2017 at 7:57 PM, Joao Pedro De Almeida Pereira > >> >>>> wrote: > >> >>>>> > >> >>>>> Hello Harshal, > >> >>>>> > >> >>>>> We review the patch and have some questions: > >> >>>>> 1) Is there any particular reason to initialize variables and > >> >>>>> functions > >> >>>>> in the same place? We believe that it would be more readable there > >> >>>>> were no > >> >>>>> chaining of variable creation, specially if those variables are > >> >>>>> functions. > >> >>>>> Check line: > >> >>>> > >> >>>> That function is only going to be used in checkNumeric function (in > >> >>>> case > >> >>>> of Number control) and checkInt function (in case of Integer > control) > >> >>>> so > >> >>>> declared them locally. > >> >>>> Anyway I'm going to refactor both the controls as Number and > Integer > >> >>>> shares some common properties. > >> >>>> > >> >>>>> +++ b/web/pgadmin/static/js/backform.pgadmin.js > >> >>>>> @@ -1528,7 +1528,18 @@ > >> >>>>> max_value = field.max, > >> >>>>> isValid = true, > >> >>>>> intPattern = new RegExp("^-?[0-9]*$"), > >> >>>>> - isMatched = intPattern.test(value); > >> >>>>> + isMatched = intPattern.test(value), > >> >>>>> + trigger_invalid_event = function(msg) { > >> >>>>> > >> >>>>> 2) The functions added in both places look very similar, can they > be > >> >>>>> merged and extracted? We are talking about the > trigger_invalid_event > >> >>>>> function. > >> >>>> > >> >>>> Yes they can be merged. As of now both NumericControl and > >> >>>> IntegerControl > >> >>>> are derived from InputControl. Ideally > >> >>>> only NumericControl should be derived from InputControl and > >> >>>> IntegerControl should be derive from NumericControl. > >> >>>> > >> >>>> > >> >>>>> > >> >>>>> 3) The following change is very similar to the > >> >>>>> trigger_invalid_event, > >> >>>>> was there a reason not to use it? > >> >>>> > >> >>>> Below code triggers "model valid" event; opposite to "model > invalid" > >> >>>> event (trigger_invalid_event) > >> >>>>> > >> >>>>> +++ b/web/pgadmin/static/js/backform.pgadmin.js > >> >>>>> @@ -1573,25 +1584,23 @@ > >> >>>>> this.model.errorModel.unset(name); > >> >>>>> this.model.set(name, value); > >> >>>>> this.listenTo(this.model, "change:" + name, this.render); > >> >>>>> - if (this.model.collection || this.model.handler) { > >> >>>>> - (this.model.collection || this.model.handler).trigger( > >> >>>>> - 'pgadmin-session:model:valid', this.model, > >> >>>>> (this.model.collection || this.model.handler) > >> >>>>> - ); > >> >>>>> + // Check if other fields of same model are valid before > >> >>>>> + // triggering 'session:valid' event > >> >>>>> + if(_.size(this.model.errorModel.attributes) == 0) { > >> >>>>> + if (this.model.collection || this.model.handler) { > >> >>>>> + (this.model.collection || > this.model.handler).trigger( > >> >>>>> + 'pgadmin-session:model:valid', this.model, > >> >>>>> (this.model.collection || this.model.handler) > >> >>>>> + ); > >> >>>>> + } else { > >> >>>>> + (this.model).trigger( > >> >>>>> + 'pgadmin-session:valid', this.model.sessChanged(), > >> >>>>> this.model > >> >>>>> + ); > >> >>>>> + } > >> >>>>> > >> >>>>> 4) We also noticed that the following change sets look very > >> >>>>> similiar. > >> >>>>> Is there any reason to have this code duplicated? If not this > could > >> >>>>> be a > >> >>>>> good time to refactor it. > >> >>>> > >> >>>> As said earlier in response of point 2 code duplication is because > >> >>>> the > >> >>>> way controls are derived. > >> >>>> > >> >>>>> > >> >>>>> +++ b/web/pgadmin/static/js/backform.pgadmin.js > >> >>>>> @@ -1528,7 +1528,18 @@ > >> >>>>> > >> >>>>> @@ -1573,25 +1584,23 @@ > >> >>>>> > >> >>>>> @@ -1631,7 +1640,18 @@ > >> >>>>> > >> >>>>> @@ -1676,25 +1696,23 @@ > >> >>>>> > >> >>>>> > >> >>>>> Thanks > >> >>>>> Joao & Shruti > >> >>>>> > >> >>>>> On Thu, May 18, 2017 at 6:01 AM, Harshal Dhumal > >> >>>>> wrote: > >> >>>>>> > >> >>>>>> Hi, > >> >>>>>> > >> >>>>>> Please find attached patch for RM2421 > >> >>>>>> > >> >>>>>> Issue fixed: 1. Integer/numeric Validation is not working > properly. > >> >>>>>> 2. Wrong CPU rate unit > >> >>>>>> -- > >> >>>>>> Harshal Dhumal > >> >>>>>> Sr. Software Engineer > >> >>>>>> > >> >>>>>> EnterpriseDB India: http://www.enterprisedb.com > >> >>>>>> The Enterprise PostgreSQL Company > >> >>>>>> > >> >>>>>> > >> >>>>>> -- > >> >>>>>> Sent via pgadmin-hackers mailing list > >> >>>>>> (pgadmin-hackers@postgresql.org) > >> >>>>>> To make changes to your subscription: > >> >>>>>> http://www.postgresql.org/mailpref/pgadmin-hackers > >> >>>>>> > >> >>>>> > >> >>>> > >> >>> > >> >> > >> > > >> > > >> > > >> > -- > >> > Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org > ) > >> > To make changes to your subscription: > >> > http://www.postgresql.org/mailpref/pgadmin-hackers > >> > > >> > >> > >> > >> -- > >> Dave Page > >> Blog: http://pgsnake.blogspot.com > >> Twitter: @pgsnake > >> > >> EnterpriseDB UK: http://www.enterprisedb.com > >> The Enterprise PostgreSQL Company > > > > > > > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > --001a114f157cf24b6b0551726de2 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Please find attached rebased patch.

--=C2=A0
Harshal Dhumal
<= div>Sr. Software Engineer

EnterpriseDB India:=C2=A0http://www.enterprisedb.com
The Enterprise PostgreSQL Company

On Wed, Jun 7, 2017 at 6:59 PM, Dave Page <= dpage@pgadmin.org> wrote:
C= an you rebase this please? I think Ashesh broke it :-p

On Tue, Jun 6, 2017 at 7:42 AM, Harshal Dhumal
<harshal.dhumal@enterprisedb.com> wrote:
> Hi,
>
> On Mon, Jun 5, 2017 at 9:25 PM, Dave Page <dpage@pgadmin.org> wrote:
>>
>> Hi
>>
>> With this patch applied, it uses the field names instead of the la= bels
>> in error messages - e.g.
>>
>> 'dirty_rate_limit' must be numeric
>>
>> instead of:
>>
>> 'Dirty Rate Limit (KB)' must be numeric.
>
> Fixed. Please find attached updated patch.
>
>>
>>
>> Thanks.
>>
>> On Tue, May 30, 2017 at 8:28 AM, Harshal Dhumal
>> <harshal.dhu= mal@enterprisedb.com> wrote:
>> > Hi,
>> >
>> > Please find updated patch.
>> >
>> > --
>> > Harshal Dhumal
>> > Sr. Software Engineer
>> >
>> > EnterpriseDB India: http://www.enterprisedb.com
>> > The Enterprise PostgreSQL Company
>> >
>> > On Tue, May 30, 2017 at 12:30 PM, Harshal Dhumal
>> > <harsha= l.dhumal@enterprisedb.com> wrote:
>> >>
>> >> Hi,
>> >>
>> >> Please ignore this patch as I forgot to include few chang= es. I'll send
>> >> updated one.
>> >>
>> >> --
>> >> Harshal Dhumal
>> >> Sr. Software Engineer
>> >>
>> >> EnterpriseDB India: http://www.enterprisedb.com
>> >> The Enterprise PostgreSQL Company
>> >>
>> >> On Mon, May 29, 2017 at 3:18 PM, Harshal Dhumal
>> >> <ha= rshal.dhumal@enterprisedb.com> wrote:
>> >>>
>> >>> Hi,
>> >>>
>> >>> Here is updated patch for RM2421.
>> >>>
>> >>> Now I have moved all Numeric control level validation= s to datamodel.
>> >>> As
>> >>> existing implementation was causing
>> >>> issues with error messages in create/edit dialog when= schema contains
>> >>> two
>> >>> or more Numeric controls.
>> >>>
>> >>> This is generic issue and not related to resource gro= up. Also I have
>> >>> updated all other nodes which uses Numeric controls >> >>>
>> >>>
>> >>>
>> >>> --
>> >>> Harshal Dhumal
>> >>> Sr. Software Engineer
>> >>>
>> >>> EnterpriseDB India: http://www.enterprisedb.com=
>> >>> The Enterprise PostgreSQL Company
>> >>>
>> >>> On Fri, May 19, 2017 at 12:22 PM, Harshal Dhumal
>> >>> <harshal.dhumal@enterprisedb.com> wrote:
>> >>>>
>> >>>> Hi,
>> >>>>
>> >>>> On Thu, May 18, 2017 at 7:57 PM, Joao Pedro De Al= meida Pereira
>> >>>> <jdealmeidapereira@pivotal.io> wrote:
>> >>>>>
>> >>>>> Hello Harshal,
>> >>>>>
>> >>>>> We review the patch and have some questions:<= br> >> >>>>> 1) Is there any particular reason to initiali= ze variables and
>> >>>>> functions
>> >>>>> in the same place? We believe that it would b= e more readable there
>> >>>>> were no
>> >>>>> chaining of variable creation, specially if t= hose variables are
>> >>>>> functions.
>> >>>>> Check line:
>> >>>>
>> >>>> That function is only going to be used in checkNu= meric function (in
>> >>>> case
>> >>>> of Number control) and checkInt function (in case= of Integer control)
>> >>>> so
>> >>>> declared them locally.
>> >>>> Anyway I'm going to refactor both the control= s as Number and Integer
>> >>>> shares some common properties.
>> >>>>
>> >>>>> +++ b/web/pgadmin/static/js/backform.pga= dmin.js
>> >>>>> @@ -1528,7 +1528,18 @@
>> >>>>>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 max_= value =3D field.max,
>> >>>>>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 isVa= lid =3D true,
>> >>>>>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 intP= attern =3D new RegExp("^-?[0-9]*$"),
>> >>>>> -=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 isMatched= =3D intPattern.test(value);
>> >>>>> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 isMatched= =3D intPattern.test(value),
>> >>>>> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 trigger_i= nvalid_event =3D function(msg) {
>> >>>>>
>> >>>>> 2) The functions added in both places look ve= ry similar, can they be
>> >>>>> merged and extracted? We are talking about th= e trigger_invalid_event
>> >>>>> function.
>> >>>>
>> >>>> Yes they can be merged. As of now both NumericCon= trol and
>> >>>> IntegerControl
>> >>>> are derived from InputControl. Ideally
>> >>>> only NumericControl should be derived from InputC= ontrol and
>> >>>> IntegerControl should be derive from NumericContr= ol.
>> >>>>
>> >>>>
>> >>>>>
>> >>>>> 3) The following change is very similar to th= e
>> >>>>> trigger_invalid_event,
>> >>>>> was there a reason not to use it?
>> >>>>
>> >>>> Below code triggers "model valid" event= ; opposite to "model invalid"
>> >>>> event (trigger_invalid_event)
>> >>>>>
>> >>>>> +++ b/web/pgadmin/static/js/backform.pga= dmin.js
>> >>>>> @@ -1573,25 +1584,23 @@
>> >>>>>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 this.model.= errorModel.unset(name);
>> >>>>>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 this.model.= set(name, value);
>> >>>>>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 this.listen= To(this.model, "change:" + name, this.render);
>> >>>>> -=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (this.model.c= ollection || this.model.handler) {
>> >>>>> -=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (this.mod= el.collection || this.model.handler).trigger(
>> >>>>> -=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0'pgadmin-session:model:valid', this.model,
>> >>>>> (this.model.collection || this.model.handler)=
>> >>>>> -=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 );=
>> >>>>> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 // Check if othe= r fields of same model are valid before
>> >>>>> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 // triggering &#= 39;session:valid' event
>> >>>>> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 if(_.size(this.m= odel.errorModel.attributes) =3D=3D 0) {
>> >>>>> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if (this.= model.collection || this.model.handler) {
>> >>>>> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (t= his.model.collection || this.model.handler).trigger(
>> >>>>> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0'pgadmin-session:model:valid', this.model,
>> >>>>> (this.model.collection || this.model.handler)=
>> >>>>> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 );
>> >>>>> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 } else {<= br> >> >>>>> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (t= his.model).trigger(
>> >>>>> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0'pgadmin-session:valid', this.model.sessChanged(),
>> >>>>> this.model
>> >>>>> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 );
>> >>>>> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 }
>> >>>>>
>> >>>>> 4) We also noticed that the following change = sets look very
>> >>>>> similiar.
>> >>>>> Is there any reason to have this code duplica= ted? If not this could
>> >>>>> be a
>> >>>>> good time to refactor it.
>> >>>>
>> >>>> As said earlier in response of point 2 code dupli= cation is because
>> >>>> the
>> >>>> way controls are derived.
>> >>>>
>> >>>>>
>> >>>>> +++ b/web/pgadmin/static/js/backform.pga= dmin.js
>> >>>>> @@ -1528,7 +1528,18 @@
>> >>>>>
>> >>>>> @@ -1573,25 +1584,23 @@
>> >>>>>
>> >>>>> @@ -1631,7 +1640,18 @@
>> >>>>>
>> >>>>> @@ -1676,25 +1696,23 @@
>> >>>>>
>> >>>>>
>> >>>>> Thanks
>> >>>>> Joao & Shruti
>> >>>>>
>> >>>>> On Thu, May 18, 2017 at 6:01 AM, Harshal Dhum= al
>> >>>>> <harshal.dhumal@enterprisedb.com> wrote:
>> >>>>>>
>> >>>>>> Hi,
>> >>>>>>
>> >>>>>> Please find attached patch for RM2421
>> >>>>>>
>> >>>>>> Issue fixed: 1. Integer/numeric Validatio= n is not working properly.
>> >>>>>> 2. Wrong CPU rate unit
>> >>>>>> --
>> >>>>>> Harshal Dhumal
>> >>>>>> Sr. Software Engineer
>> >>>>>>
>> >>>>>> EnterpriseDB India: http://www.enterpri= sedb.com
>> >>>>>> The Enterprise PostgreSQL Company
>> >>>>>>
>> >>>>>>
>> >>>>>> --
>> >>>>>> Sent via pgadmin-hackers mailing list
>> >>>>>> (pgadmin-hackers@postgresql.org)
>> >>>>>> To make changes to your subscription:
>> >>>>>> http://www.postg= resql.org/mailpref/pgadmin-hackers
>> >>>>>>
>> >>>>>
>> >>>>
>> >>>
>> >>
>> >
>> >
>> >
>> > --
>> > Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org)
>> > To make changes to your subscription:
>> > http://www.postgresql.org/mailp= ref/pgadmin-hackers
>> >
>>
>>
>>
>> --
>> Dave Page
>> Blog: http://pgsnake.blogspot.com
>> Twitter: @pgsnake
>>
>> EnterpriseDB UK: http://www.enterprisedb.com
>> The Enterprise PostgreSQL Company
>
>



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

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

--001a114f157cf24b6b0551726de2-- --001a114f157cf24b710551726de4 Content-Type: text/x-patch; charset="US-ASCII"; name="RM2421_V5.patch" Content-Disposition: attachment; filename="RM2421_V5.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j3ofjs4d0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3Rl bXBsYXRlcy9mb3JlaWduX3RhYmxlcy9qcy9mb3JlaWduX3RhYmxlcy5qcyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3RlbXBsYXRlcy9mb3Jl aWduX3RhYmxlcy9qcy9mb3JlaWduX3RhYmxlcy5qcwppbmRleCBiMjM5OTcw Li4wZWExOTZhIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWdu X3RhYmxlcy90ZW1wbGF0ZXMvZm9yZWlnbl90YWJsZXMvanMvZm9yZWlnbl90 YWJsZXMuanMKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMv dGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVzL2pzL2ZvcmVpZ25fdGFibGVzLmpz CkBAIC0xMDIsMzQgKzEwMiw1NiBAQCBkZWZpbmUoWwogICAgICAgICBjZWxs OiAnc3RyaW5nJywgZ3JvdXA6IGdldHRleHQoJ0RlZmluaXRpb24nKSwKICAg ICAgICAgdHlwZTogJ2ludCcsIGRlcHM6IFsnZGF0YXR5cGUnXSwKICAgICAg ICAgZGlzYWJsZWQ6IGZ1bmN0aW9uKG0pIHsKLSAgICAgICAgLy8gV2Ugd2ls bCBzdG9yZSB0eXBlIGZyb20gc2VsZWN0ZWQgZnJvbSBjb21ib2JveAorICAg ICAgICAgIHZhciB2YWwgPSBtLmdldCgndHlwbGVuJyk7CisgICAgICAgICAg Ly8gV2Ugd2lsbCBzdG9yZSB0eXBlIGZyb20gc2VsZWN0ZWQgZnJvbSBjb21i b2JveAogICAgICAgICAgIGlmKCEoXy5pc1VuZGVmaW5lZChtLmdldCgnaW5o ZXJpdGVkaWQnKSkKICAgICAgICAgICAgIHx8IF8uaXNOdWxsKG0uZ2V0KCdp bmhlcml0ZWRpZCcpKQogICAgICAgICAgICAgfHwgXy5pc1VuZGVmaW5lZCht LmdldCgnaW5oZXJpdGVkZnJvbScpKQotICAgICAgICAgICAgfHwgXy5pc051 bGwobS5nZXQoJ2luaGVyaXRlZGZyb20nKSkpKSB7IHJldHVybiB0cnVlOyB9 CisgICAgICAgICAgICB8fCBfLmlzTnVsbChtLmdldCgnaW5oZXJpdGVkZnJv bScpKSkpIHsKIAotICAgICAgICB2YXIgb2ZfdHlwZSA9IG0uZ2V0KCdkYXRh dHlwZScpOwotICAgICAgICBpZihtLnR5cGVfb3B0aW9ucykgewotICAgICAg ICAgIG0uc2V0KCdpc190bGVuZ3RoJywgZmFsc2UsIHtzaWxlbnQ6IHRydWV9 KTsKKyAgICAgICAgICAgIGlmICghXy5pc1VuZGVmaW5lZCh2YWwpKSB7Cisg ICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAg ICAgICAgICAgbS5zZXQoJ3R5cGxlbicsIHVuZGVmaW5lZCk7CisgICAgICAg ICAgICAgIH0sIDEwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJl dHVybiB0cnVlOworICAgICAgICAgIH0KKworICAgICAgICAgIHZhciBvZl90 eXBlID0gbS5nZXQoJ2RhdGF0eXBlJyksCisgICAgICAgICAgICAgIGhhc19s ZW5ndGggPSBmYWxzZTsKKyAgICAgICAgICBpZihtLnR5cGVfb3B0aW9ucykg eworICAgICAgICAgICAgbS5zZXQoJ2lzX3RsZW5ndGgnLCBmYWxzZSwge3Np bGVudDogdHJ1ZX0pOwogCi0gICAgICAgICAgLy8gaXRlcmF0aW5nIG92ZXIg YWxsIHRoZSB0eXBlcwotICAgICAgICAgIF8uZWFjaChtLnR5cGVfb3B0aW9u cywgZnVuY3Rpb24obykgewotICAgICAgICAgICAgLy8gaWYgdHlwZSBmcm9t IHNlbGVjdGVkIGZyb20gY29tYm9ib3ggbWF0Y2hlcyBpbiBvcHRpb25zCi0g ICAgICAgICAgICBpZiAoIG9mX3R5cGUgPT0gby52YWx1ZSApIHsKLSAgICAg ICAgICAgICAgICAgbS5zZXQoJ3R5cGxlbicsIHVuZGVmaW5lZCk7CisgICAg ICAgICAgICAvLyBpdGVyYXRpbmcgb3ZlciBhbGwgdGhlIHR5cGVzCisgICAg ICAgICAgICBfLmVhY2gobS50eXBlX29wdGlvbnMsIGZ1bmN0aW9uKG8pIHsK KyAgICAgICAgICAgICAgLy8gaWYgdHlwZSBmcm9tIHNlbGVjdGVkIGZyb20g Y29tYm9ib3ggbWF0Y2hlcyBpbiBvcHRpb25zCisgICAgICAgICAgICAgIGlm ICggb2ZfdHlwZSA9PSBvLnZhbHVlICkgewogICAgICAgICAgICAgICAgIC8v IGlmIGxlbmd0aCBpcyBhbGxvd2VkIGZvciBzZWxlY3RlZCB0eXBlCiAgICAg ICAgICAgICAgICAgaWYoby5sZW5ndGgpCiAgICAgICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgICAgLy8gc2V0IHRoZSB2YWx1ZXMgaW4gbW9kZWwK KyAgICAgICAgICAgICAgICAgIGhhc19sZW5ndGggPSB0cnVlOwogICAgICAg ICAgICAgICAgICAgbS5zZXQoJ2lzX3RsZW5ndGgnLCB0cnVlLCB7c2lsZW50 OiB0cnVlfSk7CiAgICAgICAgICAgICAgICAgICBtLnNldCgnbWluX3ZhbCcs IG8ubWluX3ZhbCwge3NpbGVudDogdHJ1ZX0pOwogICAgICAgICAgICAgICAg ICAgbS5zZXQoJ21heF92YWwnLCBvLm1heF92YWwsIHtzaWxlbnQ6IHRydWV9 KTsKICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgIH0pOworCisgICAgICAgICAgICBpZiAoIWhhc19sZW5ndGggJiYg IV8uaXNVbmRlZmluZWQodmFsKSkgeworICAgICAgICAgICAgICBzZXRUaW1l b3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIG0uc2V0KCd0eXBs ZW4nLCB1bmRlZmluZWQpOworICAgICAgICAgICAgICB9LCAxMCk7CiAgICAg ICAgICAgICB9Ci0gICAgICAgICAgfSk7Ci0gICAgICAgICAgcmV0dXJuICEo bS5nZXQoJ2lzX3RsZW5ndGgnKSk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0 dXJuIHRydWU7CisKKyAgICAgICAgICAgIHJldHVybiAhKG0uZ2V0KCdpc190 bGVuZ3RoJykpOworICAgICAgICAgIH0KKyAgICAgICAgICBpZiAoIWhhc19s ZW5ndGggJiYgIV8uaXNVbmRlZmluZWQodmFsKSkgeworICAgICAgICAgICAg ICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIG0u c2V0KCd0eXBsZW4nLCB1bmRlZmluZWQpOworICAgICAgICAgICAgICB9LCAx MCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgcmV0dXJuIHRydWU7CiAg ICAgICAgIH0sCiAgICAgICAgIGNlbGxIZWFkZXJDbGFzc2VzOiAnd2lkdGhf cGVyY2VudF8xMCcKICAgICAgIH0sewpAQCAtMTM3LDMzICsxNTksNTQgQEAg ZGVmaW5lKFsKICAgICAgICAgdHlwZTogJ2ludCcsIGRlcHM6IFsnZGF0YXR5 cGUnXSwKICAgICAgICAgY2VsbDogJ3N0cmluZycsIGdyb3VwOiBnZXR0ZXh0 KCdEZWZpbml0aW9uJyksCiAgICAgICAgIGRpc2FibGVkOiBmdW5jdGlvbiht KSB7CisgICAgICAgICAgdmFyIHZhbCA9IG0uZ2V0KCdwcmVjaXNpb24nKTsK ICAgICAgICAgICBpZighKF8uaXNVbmRlZmluZWQobS5nZXQoJ2luaGVyaXRl ZGlkJykpCiAgICAgICAgICAgICB8fCBfLmlzTnVsbChtLmdldCgnaW5oZXJp dGVkaWQnKSkKICAgICAgICAgICAgIHx8IF8uaXNVbmRlZmluZWQobS5nZXQo J2luaGVyaXRlZGZyb20nKSkKLSAgICAgICAgICAgIHx8IF8uaXNOdWxsKG0u Z2V0KCdpbmhlcml0ZWRmcm9tJykpKSkgeyByZXR1cm4gdHJ1ZTsgfQorICAg ICAgICAgICAgfHwgXy5pc051bGwobS5nZXQoJ2luaGVyaXRlZGZyb20nKSkp KSB7CisKKyAgICAgICAgICAgIGlmICghXy5pc1VuZGVmaW5lZCh2YWwpKSB7 CisgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAg ICAgICAgICAgICAgbS5zZXQoJ3ByZWNpc2lvbicsIHVuZGVmaW5lZCk7Cisg ICAgICAgICAgICAgIH0sIDEwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg ICAgIHJldHVybiB0cnVlOworICAgICAgICAgIH0KKworICAgICAgICAgIHZh ciBvZl90eXBlID0gbS5nZXQoJ2RhdGF0eXBlJyksCisgICAgICAgICAgICAg IGhhc19wcmVjaXNpb24gPSBmYWxzZTsKIAotICAgICAgICAgIHZhciBvZl90 eXBlID0gbS5nZXQoJ2RhdGF0eXBlJyk7CiAgICAgICAgICAgaWYobS50eXBl X29wdGlvbnMpIHsKICAgICAgICAgICAgICBtLnNldCgnaXNfcHJlY2lzaW9u JywgZmFsc2UsIHtzaWxlbnQ6IHRydWV9KTsKICAgICAgICAgICAgIC8vIGl0 ZXJhdGluZyBvdmVyIGFsbCB0aGUgdHlwZXMKICAgICAgICAgICAgIF8uZWFj aChtLnR5cGVfb3B0aW9ucywgZnVuY3Rpb24obykgewogICAgICAgICAgICAg ICAvLyBpZiB0eXBlIGZyb20gc2VsZWN0ZWQgZnJvbSBjb21ib2JveCBtYXRj aGVzIGluIG9wdGlvbnMKICAgICAgICAgICAgICAgaWYgKCBvZl90eXBlID09 IG8udmFsdWUgKSB7Ci0gICAgICAgICAgICAgICAgbS5zZXQoJ3ByZWNpc2lv bicsIHVuZGVmaW5lZCk7CiAgICAgICAgICAgICAgICAgLy8gaWYgcHJlY2Vz c2lvbiBpcyBhbGxvd2VkIGZvciBzZWxlY3RlZCB0eXBlCiAgICAgICAgICAg ICAgICAgaWYoby5wcmVjaXNpb24pCiAgICAgICAgICAgICAgICAgeworICAg ICAgICAgICAgICAgICAgaGFzX3ByZWNpc2lvbiA9IHRydWU7CiAgICAgICAg ICAgICAgICAgICAvLyBzZXQgdGhlIHZhbHVlcyBpbiBtb2RlbAogICAgICAg ICAgICAgICAgICAgbS5zZXQoJ2lzX3ByZWNpc2lvbicsIHRydWUsIHtzaWxl bnQ6IHRydWV9KTsKICAgICAgICAgICAgICAgICAgIG0uc2V0KCdtaW5fdmFs Jywgby5taW5fdmFsLCB7c2lsZW50OiB0cnVlfSk7CiAgICAgICAgICAgICAg ICAgICBtLnNldCgnbWF4X3ZhbCcsIG8ubWF4X3ZhbCwge3NpbGVudDogdHJ1 ZX0pOwogICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgfQorICAg ICAgICAgICAgfSk7CisgICAgICAgICAgICBpZiAoIWhhc19wcmVjaXNpb24g JiYgIV8uaXNVbmRlZmluZWQodmFsKSkgeworICAgICAgICAgICAgICBzZXRU aW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIG0uc2V0KCdw cmVjaXNpb24nLCB1bmRlZmluZWQpOworICAgICAgICAgICAgICB9LCAxMCk7 CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgfSk7Ci0gICAgICAgICAgcmV0 dXJuICEobS5nZXQoJ2lzX3ByZWNpc2lvbicpKTsKLSAgICAgICAgfQotICAg ICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfSwgY2VsbEhlYWRlckNsYXNz ZXM6ICd3aWR0aF9wZXJjZW50XzEwJworICAgICAgICAgICAgcmV0dXJuICEo bS5nZXQoJ2lzX3ByZWNpc2lvbicpKTsKKyAgICAgICAgICB9CisgICAgICAg ICAgaWYgKCFoYXNfcHJlY2lzaW9uICYmICFfLmlzVW5kZWZpbmVkKHZhbCkp IHsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAg ICAgICAgICAgIG0uc2V0KCdwcmVjaXNpb24nLCB1bmRlZmluZWQpOworICAg ICAgICAgICAgfSwgMTApOworICAgICAgICAgIH0KKyAgICAgICAgICByZXR1 cm4gdHJ1ZTsKKyAgICAgIH0sIGNlbGxIZWFkZXJDbGFzc2VzOiAnd2lkdGhf cGVyY2VudF8xMCcKICAgICAgIH0sewogICAgICAgICBpZDogJ3R5cGRlZmF1 bHQnLCBsYWJlbDogZ2V0dGV4dCgnRGVmYXVsdCcpLCB0eXBlOiAndGV4dCcs CiAgICAgICAgIGNlbGw6ICdzdHJpbmcnLCBtaW5fdmVyc2lvbjogOTAzMDAs IGdyb3VwOiBnZXR0ZXh0KCdEZWZpbml0aW9uJyksCkBAIC0yMTcsMjIgKzI2 MCwyMyBAQCBkZWZpbmUoWwogICAgICAgICAgIG1pbl92ZXJzaW9uOiA5MDIw MAogICAgICAgfV0sCiAgICAgdmFsaWRhdGU6IGZ1bmN0aW9uKCkgewotICAg ICAgdmFyIGVyciA9IHt9LAotICAgICAgZXJybXNnOworICAgICAgdmFyIGVy cm1zZyA9IG51bGw7CiAKICAgICAgIGlmIChfLmlzVW5kZWZpbmVkKHRoaXMu Z2V0KCdhdHRuYW1lJykpIHx8IFN0cmluZyh0aGlzLmdldCgnYXR0bmFtZScp KS5yZXBsYWNlKC9eXHMrfFxzKyQvZywgJycpID09ICcnKSB7Ci0gICAgICAg IGVyclsnbmFtZSddID0gZ2V0dGV4dCgnQ29sdW1uIE5hbWUgY2Fubm90IGJl IGVtcHR5IScpOwotICAgICAgICBlcnJtc2cgPSBlcnJtc2cgfHwgZXJyWydh dHRuYW1lJ107CisgICAgICAgIGVycm1zZyA9IGdldHRleHQoJ0NvbHVtbiBO YW1lIGNhbm5vdCBiZSBlbXB0eSEnKTsKKyAgICAgICAgdGhpcy5lcnJvck1v ZGVsLnNldCgnYXR0bmFtZScsIGVycm1zZyk7CisgICAgICB9IGVsc2Ugewor ICAgICAgICB0aGlzLmVycm9yTW9kZWwudW5zZXQoJ2F0dG5hbWUnKTsKICAg ICAgIH0KIAogICAgICAgaWYgKF8uaXNVbmRlZmluZWQodGhpcy5nZXQoJ2Rh dGF0eXBlJykpIHx8IFN0cmluZyh0aGlzLmdldCgnZGF0YXR5cGUnKSkKICAg ICAgIC5yZXBsYWNlKC9eXHMrfFxzKyQvZywgJycpID09ICcnKSB7Ci0gICAg ICAgIGVyclsnYmFzZW5zcCddID0gZ2V0dGV4dCgnQ29sdW1uIERhdGF0eXBl IGNhbm5vdCBiZSBlbXB0eSEnKTsKLSAgICAgICAgZXJybXNnID0gZXJybXNn IHx8IGVyclsnZGF0YXR5cGUnXTsKKyAgICAgICAgZXJybXNnID0gZ2V0dGV4 dCgnQ29sdW1uIERhdGF0eXBlIGNhbm5vdCBiZSBlbXB0eSEnKTsKKyAgICAg ICAgdGhpcy5lcnJvck1vZGVsLnNldCgnZGF0YXR5cGUnLCBlcnJtc2cpOwor ICAgICAgfSBlbHNlIHsKKyAgICAgICAgdGhpcy5lcnJvck1vZGVsLnVuc2V0 KCdkYXRhdHlwZScpOwogICAgICAgfQogCi0gICAgICB0aGlzLmVycm9yTW9k ZWwuY2xlYXIoKS5zZXQoZXJyKTsKLQogICAgICAgcmV0dXJuIGVycm1zZzsK ICAgICB9LAogICAgIGlzX2VkaXRhYmxlX2NvbHVtbjogZnVuY3Rpb24obSkg ewpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvc2VxdWVuY2VzL3RlbXBs YXRlcy9zZXF1ZW5jZS9qcy9zZXF1ZW5jZS5qcyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3NlcXVlbmNlcy90ZW1wbGF0ZXMvc2VxdWVuY2UvanMvc2VxdWVuY2UuanMK aW5kZXggOWU2NzExZS4uZThkOWFjOSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvc2VxdWVuY2VzL3RlbXBsYXRlcy9zZXF1ZW5jZS9qcy9zZXF1ZW5j ZS5qcworKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9zZXF1ZW5jZXMvdGVtcGxhdGVz L3NlcXVlbmNlL2pzL3NlcXVlbmNlLmpzCkBAIC0xNTQsNyArMTU0LDEwIEBA IGRlZmluZShbCiAgICAgICAgICAgbWluOiAxCiAgICAgICAgIH0sewogICAg ICAgICAgIGlkOiAnc3RhcnQnLCBsYWJlbDogZ2V0dGV4dCgnU3RhcnQnKSwg dHlwZTogJ2ludCcsCi0gICAgICAgICAgbW9kZTogWydwcm9wZXJ0aWVzJywg J2NyZWF0ZSddLCBncm91cDogZ2V0dGV4dCgnRGVmaW5pdGlvbicpCisgICAg ICAgICAgbW9kZTogWydwcm9wZXJ0aWVzJywgJ2NyZWF0ZSddLCBncm91cDog Z2V0dGV4dCgnRGVmaW5pdGlvbicpLAorICAgICAgICAgIGRpc2FibGVkOiBm dW5jdGlvbihtKSB7CisgICAgICAgICAgICByZXR1cm4gIW0uaXNOZXcoKTsK KyAgICAgICAgICB9CiAgICAgICAgIH0sewogICAgICAgICAgIGlkOiAnbWlu aW11bScsIGxhYmVsOiBnZXR0ZXh0KCdNaW5pbXVtJyksIHR5cGU6ICdpbnQn LAogICAgICAgICAgIG1vZGU6IFsncHJvcGVydGllcycsICdjcmVhdGUnLCAn ZWRpdCddLCBncm91cDogZ2V0dGV4dCgnRGVmaW5pdGlvbicpCkBAIC0yMDAs MTQgKzIwMywxNCBAQCBkZWZpbmUoWwogICAgICAgICAgICAgICBtaW5pbXVt ID0gdGhpcy5nZXQoJ21pbmltdW0nKSwKICAgICAgICAgICAgICAgbWF4aW11 bSA9IHRoaXMuZ2V0KCdtYXhpbXVtJyk7CiAgICAgICAgICAgICAgIHN0YXJ0 ID0gdGhpcy5nZXQoJ3N0YXJ0Jyk7Ci0gICAgICAgICAgLy8gQ2xlYXIgYW55 IGV4aXN0aW5nIGVycm9yIG1zZy4KLSAgICAgICAgICB0aGlzLmVycm9yTW9k ZWwuY2xlYXIoKTsKIAogICAgICAgICAgIGlmIChfLmlzVW5kZWZpbmVkKHRo aXMuZ2V0KCduYW1lJykpCiAgICAgICAgICAgICAgIHx8IFN0cmluZyh0aGlz LmdldCgnbmFtZScpKS5yZXBsYWNlKC9eXHMrfFxzKyQvZywgJycpID09ICcn KSB7CiAgICAgICAgICAgICBtc2cgPSBnZXR0ZXh0KCdOYW1lIGNhbm5vdCBi ZSBlbXB0eS4nKTsKICAgICAgICAgICAgIHRoaXMuZXJyb3JNb2RlbC5zZXQo J25hbWUnLCBtc2cpOwogICAgICAgICAgICAgcmV0dXJuIG1zZzsKKyAgICAg ICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGhpcy5lcnJvck1vZGVsLnVu c2V0KCduYW1lJyk7CiAgICAgICAgICAgfQogCiAgICAgICAgICAgaWYgKF8u aXNVbmRlZmluZWQodGhpcy5nZXQoJ3NlcW93bmVyJykpCkBAIC0yMTUsNiAr MjE4LDggQEAgZGVmaW5lKFsKICAgICAgICAgICAgIG1zZyA9IGdldHRleHQo J093bmVyIGNhbm5vdCBiZSBlbXB0eS4nKTsKICAgICAgICAgICAgIHRoaXMu ZXJyb3JNb2RlbC5zZXQoJ3NlcW93bmVyJywgbXNnKTsKICAgICAgICAgICAg IHJldHVybiBtc2c7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg IHRoaXMuZXJyb3JNb2RlbC51bnNldCgnc2Vxb3duZXInKTsKICAgICAgICAg ICB9CiAKICAgICAgICAgICBpZiAoXy5pc1VuZGVmaW5lZCh0aGlzLmdldCgn c2NoZW1hJykpCkBAIC0yMjIsMjYgKzIyNyw4MCBAQCBkZWZpbmUoWwogICAg ICAgICAgICAgbXNnID0gZ2V0dGV4dCgnU2NoZW1hIGNhbm5vdCBiZSBlbXB0 eS4nKTsKICAgICAgICAgICAgIHRoaXMuZXJyb3JNb2RlbC5zZXQoJ3NjaGVt YScsIG1zZyk7CiAgICAgICAgICAgICByZXR1cm4gbXNnOworICAgICAgICAg IH0gZWxzZSB7CisgICAgICAgICAgICB0aGlzLmVycm9yTW9kZWwudW5zZXQo J3NjaGVtYScpOwogICAgICAgICAgIH0KIAorICAgICAgICAgIGlmICghdGhp cy5pc05ldygpKSB7CisgICAgICAgICAgICBpZiAoXy5pc1VuZGVmaW5lZCh0 aGlzLmdldCgnY3VycmVudF92YWx1ZScpKQorICAgICAgICAgICAgICB8fCBT dHJpbmcodGhpcy5nZXQoJ2N1cnJlbnRfdmFsdWUnKSkucmVwbGFjZSgvXlxz K3xccyskL2csICcnKSA9PSAnJykgeworICAgICAgICAgICAgICBtc2cgPSAn e3sgXygnQ3VycmVudCB2YWx1ZSBjYW5ub3QgYmUgZW1wdHkuJykgfX0nOwor ICAgICAgICAgICAgICB0aGlzLmVycm9yTW9kZWwuc2V0KCdjdXJyZW50X3Zh bHVlJywgbXNnKTsKKyAgICAgICAgICAgICAgcmV0dXJuIG1zZzsKKyAgICAg ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIHRoaXMuZXJyb3JNb2Rl bC51bnNldCgnY3VycmVudF92YWx1ZScpOworICAgICAgICAgICAgfQorCisg ICAgICAgICAgICBpZiAoXy5pc1VuZGVmaW5lZCh0aGlzLmdldCgnaW5jcmVt ZW50JykpCisgICAgICAgICAgICAgIHx8IFN0cmluZyh0aGlzLmdldCgnaW5j cmVtZW50JykpLnJlcGxhY2UoL15ccyt8XHMrJC9nLCAnJykgPT0gJycpIHsK KyAgICAgICAgICAgICAgbXNnID0gJ3t7IF8oJ0luY3JlbWVudCB2YWx1ZSBj YW5ub3QgYmUgZW1wdHkuJykgfX0nOworICAgICAgICAgICAgICB0aGlzLmVy cm9yTW9kZWwuc2V0KCdpbmNyZW1lbnQnLCBtc2cpOworICAgICAgICAgICAg ICByZXR1cm4gbXNnOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg ICAgICAgdGhpcy5lcnJvck1vZGVsLnVuc2V0KCdpbmNyZW1lbnQnKTsKKyAg ICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQo dGhpcy5nZXQoJ21pbmltdW0nKSkKKyAgICAgICAgICAgICAgfHwgU3RyaW5n KHRoaXMuZ2V0KCdtaW5pbXVtJykpLnJlcGxhY2UoL15ccyt8XHMrJC9nLCAn JykgPT0gJycpIHsKKyAgICAgICAgICAgICAgbXNnID0gJ3t7IF8oJ01pbmlt dW0gdmFsdWUgY2Fubm90IGJlIGVtcHR5LicpIH19JzsKKyAgICAgICAgICAg ICAgdGhpcy5lcnJvck1vZGVsLnNldCgnbWluaW11bScsIG1zZyk7CisgICAg ICAgICAgICAgIHJldHVybiBtc2c7CisgICAgICAgICAgICB9IGVsc2Ugewor ICAgICAgICAgICAgICB0aGlzLmVycm9yTW9kZWwudW5zZXQoJ21pbmltdW0n KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKF8uaXNVbmRl ZmluZWQodGhpcy5nZXQoJ21heGltdW0nKSkKKyAgICAgICAgICAgICAgfHwg U3RyaW5nKHRoaXMuZ2V0KCdtYXhpbXVtJykpLnJlcGxhY2UoL15ccyt8XHMr JC9nLCAnJykgPT0gJycpIHsKKyAgICAgICAgICAgICAgbXNnID0gJ3t7IF8o J01heGltdW0gdmFsdWUgY2Fubm90IGJlIGVtcHR5LicpIH19JzsKKyAgICAg ICAgICAgICAgdGhpcy5lcnJvck1vZGVsLnNldCgnbWF4aW11bScsIG1zZyk7 CisgICAgICAgICAgICAgIHJldHVybiBtc2c7CisgICAgICAgICAgICB9IGVs c2UgeworICAgICAgICAgICAgICB0aGlzLmVycm9yTW9kZWwudW5zZXQoJ21h eGltdW0nKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKF8u aXNVbmRlZmluZWQodGhpcy5nZXQoJ2NhY2hlJykpCisgICAgICAgICAgICAg IHx8IFN0cmluZyh0aGlzLmdldCgnY2FjaGUnKSkucmVwbGFjZSgvXlxzK3xc cyskL2csICcnKSA9PSAnJykgeworICAgICAgICAgICAgICBtc2cgPSAne3sg XygnQ2FjaGUgdmFsdWUgY2Fubm90IGJlIGVtcHR5LicpIH19JzsKKyAgICAg ICAgICAgICAgdGhpcy5lcnJvck1vZGVsLnNldCgnY2FjaGUnLCBtc2cpOwor ICAgICAgICAgICAgICByZXR1cm4gbXNnOworICAgICAgICAgICAgfSBlbHNl IHsKKyAgICAgICAgICAgICAgdGhpcy5lcnJvck1vZGVsLnVuc2V0KCdjYWNo ZScpOworICAgICAgICAgICAgfQorICAgICAgICAgIH0KICAgICAgICAgICB2 YXIgbWluX2x0ID0gZ2V0dGV4dCgnTWluaW11bSB2YWx1ZSBtdXN0IGJlIGxl c3MgdGhhbiBtYXhpbXVtIHZhbHVlLicpLAogICAgICAgICAgICAgICBzdGFy dF9sdCA9IGdldHRleHQoJ1N0YXJ0IHZhbHVlIGNhbm5vdCBiZSBsZXNzIHRo YW4gbWluaW11bSB2YWx1ZS4nKSwKICAgICAgICAgICAgICAgc3RhcnRfZ3Qg PSBnZXR0ZXh0KCdTdGFydCB2YWx1ZSBjYW5ub3QgYmUgZ3JlYXRlciB0aGFu IG1heGltdW0gdmFsdWUuJyk7CisKICAgICAgICAgICBpZiAoKG1pbmltdW0g PT0gMCAmJiBtYXhpbXVtID09IDApIHx8CiAgICAgICAgICAgICAgIChwYXJz ZUludChtaW5pbXVtLCAxMCkgPj0gcGFyc2VJbnQobWF4aW11bSwgMTApKSkg ewotICAgICAgICAgICAgbXNnID0gbWluX2x0Ci0gICAgICAgICAgICB0aGlz LmVycm9yTW9kZWwuc2V0KCdtaW5pbXVtJywgbXNnKTsKLSAgICAgICAgICAg IHJldHVybiBtc2c7CisgICAgICAgICAgICB0aGlzLmVycm9yTW9kZWwuc2V0 KCdtaW5pbXVtJywgbWluX2x0KTsKKyAgICAgICAgICAgIHJldHVybiBtaW5f bHQ7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRoaXMuZXJy b3JNb2RlbC51bnNldCgnbWluaW11bScpOwogICAgICAgICAgIH0KLSAgICAg ICAgICBlbHNlIGlmIChzdGFydCA8IG1pbmltdW0pIHsKLSAgICAgICAgICAg IG1zZyA9IHN0YXJ0X2x0Ci0gICAgICAgICAgICB0aGlzLmVycm9yTW9kZWwu c2V0KCdzdGFydCcsIG1zZyk7Ci0gICAgICAgICAgICByZXR1cm4gbXNnOwor CisgICAgICAgICAgaWYgKHN0YXJ0ICYmIG1pbmltdW0gJiYgcGFyc2VJbnQo c3RhcnQpIDwgcGFyc2VJbnQobWluaW11bSkpIHsKKyAgICAgICAgICAgIHRo aXMuZXJyb3JNb2RlbC5zZXQoJ3N0YXJ0Jywgc3RhcnRfbHQpOworICAgICAg ICAgICAgcmV0dXJuIHN0YXJ0X2x0OworICAgICAgICAgIH0gZWxzZSB7Cisg ICAgICAgICAgICB0aGlzLmVycm9yTW9kZWwudW5zZXQoJ3N0YXJ0Jyk7CiAg ICAgICAgICAgfQotICAgICAgICAgIGVsc2UgaWYgKHN0YXJ0ID4gbWF4aW11 bSkgewotICAgICAgICAgICAgbXNnID0gc3RhcnRfZ3QKLSAgICAgICAgICAg IHRoaXMuZXJyb3JNb2RlbC5zZXQoJ3N0YXJ0JywgbXNnKTsKLSAgICAgICAg ICAgIHJldHVybiBtc2c7CisKKyAgICAgICAgICBpZiAoc3RhcnQgJiYgbWF4 aW11bSAmJiBwYXJzZUludChzdGFydCkgPiBwYXJzZUludChtYXhpbXVtKSkg eworICAgICAgICAgICAgdGhpcy5lcnJvck1vZGVsLnNldCgnc3RhcnQnLCBz dGFydF9ndCk7CisgICAgICAgICAgICByZXR1cm4gc3RhcnRfZ3Q7CisgICAg ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRoaXMuZXJyb3JNb2RlbC51 bnNldCgnc3RhcnQnKTsKICAgICAgICAgICB9CiAgICAgICAgICAgcmV0dXJu IG51bGw7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Jlc291cmNlX2dyb3Vwcy90 ZW1wbGF0ZXMvcmVzb3VyY2VfZ3JvdXBzL2pzL3Jlc291cmNlX2dyb3Vwcy5q cyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L3Jlc291cmNlX2dyb3Vwcy90ZW1wbGF0ZXMvcmVzb3VyY2VfZ3JvdXBzL2pz L3Jlc291cmNlX2dyb3Vwcy5qcwppbmRleCBjZWMzOTE3Li4zODlhMmU2IDEw MDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9yZXNvdXJjZV9ncm91cHMvdGVtcGxhdGVzL3Jlc291cmNlX2dy b3Vwcy9qcy9yZXNvdXJjZV9ncm91cHMuanMKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcmVzb3VyY2VfZ3JvdXBz L3RlbXBsYXRlcy9yZXNvdXJjZV9ncm91cHMvanMvcmVzb3VyY2VfZ3JvdXBz LmpzCkBAIC04Niw1MyArODYsMzYgQEAgZGVmaW5lKFsKICAgICAgICAgICog dGhlIEdVSSBmb3IgdGhlIHJlc3BlY3RpdmUgY29udHJvbC4KICAgICAgICAg ICovCiAgICAgICAgIHZhbGlkYXRlOiBmdW5jdGlvbihrZXlzKSB7Ci0gICAg ICAgICAgdmFyIG1zZywgY3B1X3JhdGVfbGltaXQsIGRpcnR5X3JhdGVfbGlt aXQsIG5hbWU7Ci0KLSAgICAgICAgICAvKiBDaGVjayB3aGV0aGVyICduYW1l JyBpcyBwcmVzZW50IGluICdrZXlzJywgaWYgaXQgaXMgcHJlc2VudAotICAg ICAgICAgICAqIGl0IG1lYW5zIHRoZXJlIGlzIGEgY2hhbmdlIGluIHRoYXQg ZmllbGQgZnJvbSB0aGUgR1VJLCBzbyB3ZQotICAgICAgICAgICAqIG5lZWQg dG8gdmFsaWRhdGUgaXQuCi0gICAgICAgICAgICovCi0gICAgICAgICAgaWYg KF8uaW5kZXhPZihrZXlzLCAnbmFtZScpID49IDApIHsKLSAgICAgICAgICAg IG5hbWUgPSB0aGlzLmdldCgnbmFtZScpOwotICAgICAgICAgICAgaWYgKF8u aXNVbmRlZmluZWQobmFtZSkgfHwgXy5pc051bGwobmFtZSkgfHwKLSAgICAg ICAgICAgICAgICBTdHJpbmcobmFtZSkucmVwbGFjZSgvXlxzK3xccyskL2cs ICcnKSA9PT0gJycpIHsKLSAgICAgICAgICAgICAgbXNnID0gZ2V0dGV4dCgn TmFtZSBjYW5ub3QgYmUgZW1wdHkuJyk7Ci0gICAgICAgICAgICAgIHRoaXMu ZXJyb3JNb2RlbC5zZXQoJ25hbWUnLCBtc2cpOwotICAgICAgICAgICAgICBy ZXR1cm4gbXNnOwotICAgICAgICAgICAgfQorICAgICAgICAgIHZhciBtc2cs IGNwdV9yYXRlX2xpbWl0LCBkaXJ0eV9yYXRlX2xpbWl0LCBuYW1lLAorICAg ICAgICAgICAgICBuYW1lID0gdGhpcy5nZXQoJ25hbWUnKTsKKyAgICAgICAg ICBpZiAoXy5pc1VuZGVmaW5lZChuYW1lKSB8fCBfLmlzTnVsbChuYW1lKSB8 fAorICAgICAgICAgICAgICBTdHJpbmcobmFtZSkucmVwbGFjZSgvXlxzK3xc cyskL2csICcnKSA9PSAnJykgeworICAgICAgICAgICAgdmFyIG1zZyA9IGdl dHRleHQoJ05hbWUgY2Fubm90IGJlIGVtcHR5LicpOworICAgICAgICAgICAg dGhpcy5lcnJvck1vZGVsLnNldCgnbmFtZScsIG1zZyk7CisgICAgICAgICAg ICByZXR1cm4gbXNnOworICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg ICB0aGlzLmVycm9yTW9kZWwudW5zZXQoJ25hbWUnKTsKICAgICAgICAgICB9 CiAKLSAgICAgICAgICAvKiBDaGVjayB3aGV0aGVyICdjcHVfcmF0ZV9saW1p dCcgaXMgcHJlc2VudCBpbiAna2V5cycsIGlmIGl0IGlzIHByZXNlbnQKLSAg ICAgICAgICAgKiBpdCBtZWFucyB0aGVyZSBpcyBhIGNoYW5nZSBpbiB0aGF0 IGZpZWxkIGZyb20gdGhlIEdVSSwgc28gd2UKLSAgICAgICAgICAgKiBuZWVk IHRvIHZhbGlkYXRlIGl0LgotICAgICAgICAgICAqLwotICAgICAgICAgIGlm IChfLmluZGV4T2Yoa2V5cywgJ2NwdV9yYXRlX2xpbWl0JykgPj0gMCkgewot ICAgICAgICAgICAgY3B1X3JhdGVfbGltaXQgPSB0aGlzLmdldCgnY3B1X3Jh dGVfbGltaXQnKTsKLSAgICAgICAgICAgIGlmIChfLmlzVW5kZWZpbmVkKGNw dV9yYXRlX2xpbWl0KSB8fCBfLmlzTnVsbChjcHVfcmF0ZV9saW1pdCkgfHwK LSAgICAgICAgICAgICAgICBTdHJpbmcoY3B1X3JhdGVfbGltaXQpLnJlcGxh Y2UoL15ccyt8XHMrJC9nLCAnJykgPT09ICcnKSB7Ci0gICAgICAgICAgICAg IG1zZyA9IGdldHRleHQoJ0NQVSByYXRlIGxpbWl0IGNhbm5vdCBiZSBlbXB0 eS4nKTsKLSAgICAgICAgICAgICAgdGhpcy5lcnJvck1vZGVsLnNldCgnY3B1 X3JhdGVfbGltaXQnLCBtc2cpOwotICAgICAgICAgICAgICByZXR1cm4gbXNn OwotICAgICAgICAgICAgfQorICAgICAgICAgIHZhciBjcHVfcmF0ZV9saW1p dCA9IHRoaXMuZ2V0KCdjcHVfcmF0ZV9saW1pdCcpOworICAgICAgICAgIGlm IChfLmlzVW5kZWZpbmVkKGNwdV9yYXRlX2xpbWl0KSB8fCBfLmlzTnVsbChj cHVfcmF0ZV9saW1pdCkgfHwKKyAgICAgICAgICAgICAgU3RyaW5nKGNwdV9y YXRlX2xpbWl0KS5yZXBsYWNlKC9eXHMrfFxzKyQvZywgJycpID09ICcnKSB7 CisgICAgICAgICAgICB2YXIgbXNnID0gZ2V0dGV4dCgnQ1BVIHJhdGUgbGlt aXQgY2Fubm90IGJlIGVtcHR5LicpOworICAgICAgICAgICAgdGhpcy5lcnJv ck1vZGVsLnNldCgnY3B1X3JhdGVfbGltaXQnLCBtc2cpOworICAgICAgICAg ICAgcmV0dXJuIG1zZzsKKyAgICAgICAgICB9IGVsc2UgewogICAgICAgICAg ICAgdGhpcy5lcnJvck1vZGVsLnVuc2V0KCdjcHVfcmF0ZV9saW1pdCcpOwog ICAgICAgICAgIH0KIAotICAgICAgICAgIC8qIENoZWNrIHdoZXRoZXIgJ2Rp cnR5X3JhdGVfbGltaXQnIGlzIHByZXNlbnQgaW4gJ2tleXMnLCBpZiBpdCBp cyBwcmVzZW50Ci0gICAgICAgICAgICogaXQgbWVhbnMgdGhlcmUgaXMgYSBj aGFuZ2UgaW4gdGhhdCBmaWVsZCBmcm9tIHRoZSBHVUksIHNvIHdlCi0gICAg ICAgICAgICogbmVlZCB0byB2YWxpZGF0ZSBpdC4KLSAgICAgICAgICAgKi8K LSAgICAgICAgICBpZiAoXy5pbmRleE9mKGtleXMsICdkaXJ0eV9yYXRlX2xp bWl0JykgPj0gMCkgewotICAgICAgICAgICAgZGlydHlfcmF0ZV9saW1pdCA9 IHRoaXMuZ2V0KCdkaXJ0eV9yYXRlX2xpbWl0Jyk7Ci0gICAgICAgICAgICBp ZiAoXy5pc1VuZGVmaW5lZChkaXJ0eV9yYXRlX2xpbWl0KSB8fCBfLmlzTnVs bChkaXJ0eV9yYXRlX2xpbWl0KSB8fAotICAgICAgICAgICAgICBTdHJpbmco ZGlydHlfcmF0ZV9saW1pdCkucmVwbGFjZSgvXlxzK3xccyskL2csICcnKSA9 PT0gJycpIHsKLSAgICAgICAgICAgICAgbXNnID0gZ2V0dGV4dCgnRGlydHkg cmF0ZSBsaW1pdCBjYW5ub3QgYmUgZW1wdHkuJyk7Ci0gICAgICAgICAgICAg IHRoaXMuZXJyb3JNb2RlbC5zZXQoJ2RpcnR5X3JhdGVfbGltaXQnLCBtc2cp OwotICAgICAgICAgICAgICByZXR1cm4gbXNnOwotICAgICAgICAgICAgfQor ICAgICAgICAgIHZhciBkaXJ0eV9yYXRlX2xpbWl0ID0gdGhpcy5nZXQoJ2Rp cnR5X3JhdGVfbGltaXQnKTsKKyAgICAgICAgICBpZiAoXy5pc1VuZGVmaW5l ZChkaXJ0eV9yYXRlX2xpbWl0KSB8fCBfLmlzTnVsbChkaXJ0eV9yYXRlX2xp bWl0KSB8fAorICAgICAgICAgICAgU3RyaW5nKGRpcnR5X3JhdGVfbGltaXQp LnJlcGxhY2UoL15ccyt8XHMrJC9nLCAnJykgPT0gJycpIHsKKyAgICAgICAg ICAgIHZhciBtc2cgPSBnZXR0ZXh0KCdEaXJ0eSByYXRlIGxpbWl0IGNhbm5v dCBiZSBlbXB0eS4nKTsKKyAgICAgICAgICAgIHRoaXMuZXJyb3JNb2RlbC5z ZXQoJ2RpcnR5X3JhdGVfbGltaXQnLCBtc2cpOworICAgICAgICAgICAgcmV0 dXJuIG1zZzsKKyAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgdGhp cy5lcnJvck1vZGVsLnVuc2V0KCdkaXJ0eV9yYXRlX2xpbWl0Jyk7CiAgICAg ICAgICAgfQotCiAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgIH0K ICAgICAgIH0pCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9yb2xlcy90ZW1wbGF0ZXMvcm9sZS9qcy9y b2xlLmpzIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvcm9sZXMvdGVtcGxhdGVzL3JvbGUvanMvcm9sZS5qcwppbmRleCA5 N2YwNzM4Li5lNTU3NjFkIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9yb2xlcy90ZW1wbGF0ZXMvcm9s ZS9qcy9yb2xlLmpzCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL3JvbGVzL3RlbXBsYXRlcy9yb2xlL2pzL3JvbGUu anMKQEAgLTQyNiw3ICs0MjYsNyBAQCBkZWZpbmUoWwogICAgICAgICAgIGRl cHM6IFsncm9sY2FubG9naW4nXSwgb3B0aW9uczoge2Zvcm1hdDogJ1lZWVkt TU0tREQgSEg6bW06c3MgWid9CiAgICAgICAgIH0sewogICAgICAgICAgIGlk OiAncm9sY29ubmxpbWl0JywgIHR5cGU6ICdpbnQnLCBncm91cDogZ2V0dGV4 dCgnRGVmaW5pdGlvbicpLAotICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdD b25uZWN0aW9uIGxpbWl0JyksIGNlbGw6ICdudW1iZXInLAorICAgICAgICAg IGxhYmVsOiBnZXR0ZXh0KCdDb25uZWN0aW9uIGxpbWl0JyksIGNlbGw6ICdu dW1iZXInLCBtaW4gOiAtMSwKICAgICAgICAgICBtb2RlOiBbJ3Byb3BlcnRp ZXMnLCAnZWRpdCcsICdjcmVhdGUnXSwgZGlzYWJsZWQ6ICdyZWFkb25seScK ICAgICAgICAgfSx7CiAgICAgICAgICAgaWQ6ICdyb2xjYW5sb2dpbicsIGxh YmVsOiBnZXR0ZXh0KCdDYW4gbG9naW4/JyksIHR5cGU6ICdzd2l0Y2gnLApk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvdGVtcGxhdGVzL3NlcnZlcnMvc2VydmVycy5qcyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3RlbXBsYXRl cy9zZXJ2ZXJzL3NlcnZlcnMuanMKaW5kZXggNWZmOTExYi4uNmJiODI3ZSAx MDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvdGVtcGxhdGVzL3NlcnZlcnMvc2VydmVycy5qcworKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZW1w bGF0ZXMvc2VydmVycy9zZXJ2ZXJzLmpzCkBAIC03MjEsNiArNzIxLDkgQEAg ZGVmaW5lKFsKICAgICAgICAgICBjaGVja19mb3JfZW1wdHkoCiAgICAgICAg ICAgICAndXNlcm5hbWUnLCBnZXR0ZXh0KCdVc2VybmFtZSBtdXN0IGJlIHNw ZWNpZmllZC4nKQogICAgICAgICAgICk7CisgICAgICAgICAgY2hlY2tfZm9y X2VtcHR5KAorICAgICAgICAgICAgJ3BvcnQnLCAne3sgXygnUG9ydCBtdXN0 IGJlIHNwZWNpZmllZC4nKSB9fScKKyAgICAgICAgICApOwogICAgICAgICAg IHRoaXMuZXJyb3JNb2RlbC5zZXQoZXJyKTsKIAogICAgICAgICAgIGlmIChf LnNpemUoZXJyKSkgewpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zdGF0aWMvanMvZGF0YW1vZGVsLmpzIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zdGF0aWMvanMvZGF0YW1vZGVsLmpzCmluZGV4IDViMWMzYTcuLmFkOGY5 NWYgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc3RhdGljL2pz L2RhdGFtb2RlbC5qcworKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3N0YXRp Yy9qcy9kYXRhbW9kZWwuanMKQEAgLTEsNiArMSw2IEBACiBkZWZpbmUoCi0g ICBbJ3VuZGVyc2NvcmUnLCAncGdhZG1pbicsICdqcXVlcnknLCAnYmFja2Jv bmUnXSwKLWZ1bmN0aW9uKF8sIHBnQWRtaW4sICQsIEJhY2tib25lKSB7Cisg ICBbJ3VuZGVyc2NvcmUnLCAndW5kZXJzY29yZS5zdHJpbmcnLCAncGdhZG1p bicsICdqcXVlcnknLCAnYmFja2JvbmUnXSwKK2Z1bmN0aW9uKF8sIFMsIHBn QWRtaW4sICQsIEJhY2tib25lKSB7CiAgIHZhciBwZ0Jyb3dzZXIgPSBwZ0Fk bWluLkJyb3dzZXIgPSBwZ0FkbWluLkJyb3dzZXIgfHwge307CiAKICAgcGdC cm93c2VyLkRhdGFNb2RlbCA9IEJhY2tib25lLk1vZGVsLmV4dGVuZCh7CkBA IC0xMzYsNiArMTM2LDcgQEAgZnVuY3Rpb24oXywgcGdBZG1pbiwgJCwgQmFj a2JvbmUpIHsKICAgICAgICAgfQogCiAgICAgICAgIHNlbGYuc2Vzc0F0dHJz ID0ge307CisgICAgICAgIHNlbGYuZmllbGREYXRhID0ge307CiAgICAgICAg IHNlbGYub3JpZ1Nlc3NBdHRycyA9IHt9OwogICAgICAgICBzZWxmLm9iamVj dHMgPSBbXTsKICAgICAgICAgc2VsZi5hcnJheXMgPSBbXTsKQEAgLTE1Myw2 ICsxNTQsMjUgQEAgZnVuY3Rpb24oXywgcGdBZG1pbiwgJCwgQmFja2JvbmUp IHsKICAgICAgICAgICAgIF8uZWFjaChzY2hlbWEsIGZ1bmN0aW9uKHMpIHsK IAogICAgICAgICAgICAgICBzd2l0Y2gocy50eXBlKSB7CisgICAgICAgICAg ICAgICAgY2FzZSAnaW50JzoKKyAgICAgICAgICAgICAgICBjYXNlICdudW1l cmljJzoKKyAgICAgICAgICAgICAgICAgIHNlbGYuZmllbGREYXRhW3MuaWRd ID0geworICAgICAgICAgICAgICAgICAgICBpZDogcy5pZCwKKyAgICAgICAg ICAgICAgICAgICAgbGFiZWw6IHMubGFiZWwsCisgICAgICAgICAgICAgICAg ICAgIHR5cGU6IHMudHlwZSwKKyAgICAgICAgICAgICAgICAgICAgbWluOiBz Lm1pbiB8fCB1bmRlZmluZWQsCisgICAgICAgICAgICAgICAgICAgIG1heDog cy5tYXggfHwgdW5kZWZpbmVkCisgICAgICAgICAgICAgICAgICB9CisgICAg ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBkZWZhdWx0 OgorICAgICAgICAgICAgICAgICAgc2VsZi5maWVsZERhdGFbcy5pZF0gPSB7 CisgICAgICAgICAgICAgICAgICAgICAgaWQ6IHMuaWQsCisgICAgICAgICAg ICAgICAgICAgICAgbGFiZWw6IHMubGFiZWwsCisgICAgICAgICAgICAgICAg ICAgICAgdHlwZTogcy50eXBlCisgICAgICAgICAgICAgICAgICAgIH0KKyAg ICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIHN3aXRjaChzLnR5cGUp IHsKICAgICAgICAgICAgICAgICBjYXNlICdhcnJheSc6CiAgICAgICAgICAg ICAgICAgICBzZWxmLmFycmF5cy5wdXNoKHMuaWQpOwogCkBAIC0yODAsNiAr MzAwLDEyIEBAIGZ1bmN0aW9uKF8sIHBnQWRtaW4sICQsIEJhY2tib25lKSB7 CiAgICAgICB9LAogICAgICAgc2Vzc1ZhbGlkOiBmdW5jdGlvbigpIHsKICAg ICAgICAgdmFyIHNlbGYgPSB0aGlzOworICAgICAgICAvLyBQZXJmb3JtIGRl ZmF1bHQgdmFsaWRhdGlvbnMuCisgICAgICAgIGlmICgnZGVmYXVsdF92YWxp ZGF0ZScgaW4gc2VsZiAmJiB0eXBlb2Yoc2VsZi5kZWZhdWx0X3ZhbGlkYXRl KSA9PSAnZnVuY3Rpb24nICYmCisgICAgICAgICAgICBfLmlzU3RyaW5nKHNl bGYuZGVmYXVsdF92YWxpZGF0ZSgpKSkgeworICAgICAgICAgIHJldHVybiBm YWxzZTsKKyAgICAgICAgfQorCiAgICAgICAgIGlmICgndmFsaWRhdGUnIGlu IHNlbGYgJiYgXy5pc0Z1bmN0aW9uKHNlbGYudmFsaWRhdGUpICYmCiAgICAg ICAgICAgICBfLmlzU3RyaW5nKHNlbGYudmFsaWRhdGUuYXBwbHkoc2VsZikp KSB7CiAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzAxLDggKzMyNyw5 IEBAIGZ1bmN0aW9uKF8sIHBnQWRtaW4sICQsIEJhY2tib25lKSB7CiAgICAg ICAgIH0KIAogICAgICAgICBpZiAoa2V5ICE9IG51bGwgJiYgcmVzKSB7Ci0g ICAgICAgICAgdmFyIGF0dHJzID0ge307Ci0gICAgICAgICAgdmFyIHNlbGYg PSB0aGlzOworICAgICAgICAgIHZhciBhdHRycyA9IHt9LAorICAgICAgICAg ICAgICBzZWxmID0gdGhpcywKKyAgICAgICAgICAgICAgbXNnOwogCiAgICAg ICAgICAgYXR0ckNoYW5nZWQgPSBmdW5jdGlvbih2LCBrKSB7CiAgICAgICAg ICAgICBpZiAoayBpbiBzZWxmLm9iamVjdHMpIHsKQEAgLTMyNyw5ICszNTQs MTggQEAgZnVuY3Rpb24oXywgcGdBZG1pbiwgJCwgQmFja2JvbmUpIHsKICAg ICAgICAgICBpZiAoIW9wdGlvbnMgfHwgIW9wdGlvbnMuc2lsZW50KSB7CiAg ICAgICAgICAgICBzZWxmLnRyaWdnZXIoJ2NoYW5nZScsIHNlbGYsIG9wdGlv bnMpOwogICAgICAgICAgIH0KKworICAgICAgICAgIC8vIFBlcmZvcm0gZGVm YXVsdCB2YWxpZGF0aW9ucy4KKworICAgICAgICAgIGlmICgnZGVmYXVsdF92 YWxpZGF0ZScgaW4gc2VsZiAmJiB0eXBlb2Yoc2VsZi5kZWZhdWx0X3ZhbGlk YXRlKSA9PSAnZnVuY3Rpb24nKSB7CisgICAgICAgICAgICBtc2cgPSBzZWxm LmRlZmF1bHRfdmFsaWRhdGUoKTsKKyAgICAgICAgICB9CisKICAgICAgICAg ICBpZiAoJ3ZhbGlkYXRlJyBpbiBzZWxmICYmIHR5cGVvZihzZWxmWyd2YWxp ZGF0ZSddKSA9PT0gJ2Z1bmN0aW9uJykgewogCi0gICAgICAgICAgICB2YXIg bXNnID0gc2VsZi52YWxpZGF0ZShfLmtleXMoYXR0cnMpKTsKKyAgICAgICAg ICAgIGlmICghbXNnKSB7CisgICAgICAgICAgICAgIG1zZyA9IHNlbGYudmFs aWRhdGUoXy5rZXlzKGF0dHJzKSk7CisgICAgICAgICAgICB9CiAKICAgICAg ICAgICAgIC8qCiAgICAgICAgICAgICAgKiBJZiBhbnkgcGFyZW50IHByZXNl bnQsIHdlIHdpbGwgbmVlZCB0byBpbmZvcm0gdGhlIHBhcmVudCAtIHRoYXQK QEAgLTU2Miw2ICs1OTgsMTMgQEAgZnVuY3Rpb24oXywgcGdBZG1pbiwgJCwg QmFja2JvbmUpIHsKIAogICAgICAgICAgIHZhciBtc2cgPSBudWxsLAogICAg ICAgICAgICAgICB2YWxpZGF0ZSA9IGZ1bmN0aW9uKG0sIGF0dHJzKSB7Cisg ICAgICAgICAgICAgICAgaWYgKCdkZWZhdWx0X3ZhbGlkYXRlJyBpbiBtICYm IHR5cGVvZihtLmRlZmF1bHRfdmFsaWRhdGUpID09ICdmdW5jdGlvbicpIHsK KyAgICAgICAgICAgICAgICAgIG1zZyA9IG0uZGVmYXVsdF92YWxpZGF0ZSgp OworICAgICAgICAgICAgICAgICAgaWYgKF8uaXNTdHJpbmcobXNnKSkgewor ICAgICAgICAgICAgICAgICAgICByZXR1cm4gbXNnOworICAgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgICAg IGlmICgndmFsaWRhdGUnIGluIG0gJiYgdHlwZW9mKG0udmFsaWRhdGUpID09 ICdmdW5jdGlvbicpIHsKICAgICAgICAgICAgICAgICAgIG1zZyA9IG0udmFs aWRhdGUoYXR0cnMpOwogCkBAIC02NTUsNiArNjk4LDc5IEBAIGZ1bmN0aW9u KF8sIHBnQWRtaW4sICQsIEJhY2tib25lKSB7CiAgICAgICAgIH0pOwogCiAg ICAgICAgIHNlbGYudHJpZ2dlcigncGdhZG1pbi1zZXNzaW9uOnN0b3AnKTsK KyAgICAgIH0sCisgICAgICBkZWZhdWx0X3ZhbGlkYXRlOiBmdW5jdGlvbigp IHsKKyAgICAgICAgdmFyIG1zZywgZmllbGQsIHZhbHVlLCB0eXBlOworCisg ICAgICAgIGZvciAodmFyIGkgPSAwLCBrZXlzID0gXy5rZXlzKHRoaXMuYXR0 cmlidXRlcyksIGwgPSBrZXlzLmxlbmd0aDsKKyAgICAgICAgICAgICAgICAg aTxsOworICAgICAgICAgICAgICAgICBpKyspIHsKKworICAgICAgICAgIHZh bHVlID0gdGhpcy5hdHRyaWJ1dGVzW2tleXNbaV1dOworICAgICAgICAgIGZp ZWxkICA9IHRoaXMuZmllbGREYXRhW2tleXNbaV1dCisgICAgICAgICAgbXNn ID0gbnVsbDsKKworICAgICAgICAgIGlmICghKF8uaXNVbmRlZmluZWQodmFs dWUpIHx8IF8uaXNOdWxsKHZhbHVlKSB8fAorICAgICAgICAgICAgICAgIFN0 cmluZyh2YWx1ZSkucmVwbGFjZSgvXlxzK3xccyskL2csICcnKSA9PSAnJykp IHsKKworICAgICAgICAgICAgaWYgKCFmaWVsZCkgeworICAgICAgICAgICAg ICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdHlw ZSA9IGZpZWxkLnR5cGUgfHwgdW5kZWZpbmVkOworICAgICAgICAgICAgaWYg KCF0eXBlKSB7CisgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAg ICAgfQorCisgICAgICAgICAgICBzd2l0Y2godHlwZSkgeworICAgICAgICAg ICAgICBjYXNlICdpbnQnOgorICAgICAgICAgICAgICAgIG1zZyA9IHRoaXMu aW50ZWdlcl92YWxpZGF0ZSh2YWx1ZSwgZmllbGQpOworICAgICAgICAgICAg ICAgIGJyZWFrOworICAgICAgICAgICAgICBjYXNlICdudW1lcmljJzoKKyAg ICAgICAgICAgICAgICBtc2cgPSB0aGlzLm51bWJlcl92YWxpZGF0ZSh2YWx1 ZSwgZmllbGQpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg ICAgfQorCisgICAgICAgICAgICBpZiAobXNnKSB7CisgICAgICAgICAgICAg IHRoaXMuZXJyb3JNb2RlbC5zZXQoZmllbGQuaWQsIG1zZyk7CisgICAgICAg ICAgICAgIHJldHVybiBtc2c7CisgICAgICAgICAgICB9IGVsc2UgeworICAg ICAgICAgICAgICB0aGlzLmVycm9yTW9kZWwudW5zZXQoZmllbGQuaWQpOwor ICAgICAgICAgICAgfQorICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg ICBpZiAoZmllbGQpIHsKKyAgICAgICAgICAgICAgdGhpcy5lcnJvck1vZGVs LnVuc2V0KGZpZWxkLmlkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9 CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICB9LAor CisgICAgICBjaGVja19taW5fbWF4OiBmdW5jdGlvbiAodmFsdWUsIGZpZWxk KSB7CisgICAgICAgIHZhciBsYWJlbCA9IGZpZWxkLmxhYmVsLAorICAgICAg ICAgICAgbWluX3ZhbHVlID0gZmllbGQubWluLAorICAgICAgICAgICAgbWF4 X3ZhbHVlID0gIGZpZWxkLm1heDsKKworICAgICAgICBpZiAobWluX3ZhbHVl ICYmIHZhbHVlIDwgbWluX3ZhbHVlKSB7CisgICAgICAgICAgcmV0dXJuIFMo cGdBZG1pbi5Ccm93c2VyLm1lc3NhZ2VzLk1VU1RfR1JfRVEpLnNwcmludGYo bGFiZWwsIG1pbl92YWx1ZSkudmFsdWUoKTsKKyAgICAgICAgfSBlbHNlIGlm IChtYXhfdmFsdWUgJiYgdmFsdWUgPiBtYXhfdmFsdWUpIHsKKyAgICAgICAg ICByZXR1cm4gUyhwZ0FkbWluLkJyb3dzZXIubWVzc2FnZXMuTVVTVF9MRVNT X0VRKS5zcHJpbnRmKGxhYmVsLCBtYXhfdmFsdWUpLnZhbHVlKCk7CisgICAg ICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICB9LAorICAgICAg bnVtYmVyX3ZhbGlkYXRlOiBmdW5jdGlvbiAodmFsdWUsIGZpZWxkKSB7Cisg ICAgICAgIHZhciBwYXR0ZXJuID0gbmV3IFJlZ0V4cCgiXi0/WzAtOV0rKFwu P1swLTldKik/JCIpOworICAgICAgICBpZiAoIXBhdHRlcm4udGVzdCh2YWx1 ZSkpIHsKKyAgICAgICAgICByZXR1cm4gUyhwZ0FkbWluLkJyb3dzZXIubWVz c2FnZXMuTVVTVF9CRV9OVU0pLnNwcmludGYoZmllbGQubGFiZWwpLnZhbHVl KCkKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGhpcy5jaGVja19taW5f bWF4KHZhbHVlLCBmaWVsZCkKKyAgICAgIH0sCisgICAgICBpbnRlZ2VyX3Zh bGlkYXRlOiBmdW5jdGlvbih2YWx1ZSwgZmllbGQpIHsKKyAgICAgICAgdmFy IHBhdHRlcm4gPSBuZXcgUmVnRXhwKCJeLT9bMC05XSokIik7CisgICAgICAg IGlmICghcGF0dGVybi50ZXN0KHZhbHVlKSkgeworICAgICAgICAgIHJldHVy biBTKHBnQWRtaW4uQnJvd3Nlci5tZXNzYWdlcy5NVVNUX0JFX0lOVCkuc3By aW50ZihmaWVsZC5sYWJlbCkudmFsdWUoKQorICAgICAgICB9CisgICAgICAg IHJldHVybiB0aGlzLmNoZWNrX21pbl9tYXgodmFsdWUsIGZpZWxkKQogICAg ICAgfQogICAgIH0pOwogCkBAIC02OTYsNyArODEyLDggQEAgZnVuY3Rpb24o XywgcGdBZG1pbiwgJCwgQmFja2JvbmUpIHsKICAgICAgICAgcmV0dXJuIHNl bGY7CiAgICAgICB9LAogICAgICAgc3RhcnROZXdTZXNzaW9uOiBmdW5jdGlv bigpIHsKLSAgICAgICAgdmFyIHNlbGYgPSB0aGlzOworICAgICAgICB2YXIg c2VsZiA9IHRoaXMsCisgICAgICAgICAgICBtc2c7CiAKICAgICAgICAgaWYg KHNlbGYudHJhY2tDaGFuZ2VzKSB7CiAgICAgICAgICAgLy8gV2UncmUgc3Rv cHBpbmcgdGhlIGV4aXN0aW5nIHNlc3Npb24uCkBAIC03MTgsOCArODM1LDE1 IEBAIGZ1bmN0aW9uKF8sIHBnQWRtaW4sICQsIEJhY2tib25lKSB7CiAgICAg ICAgICAgaWYgKCdzdGFydE5ld1Nlc3Npb24nIGluIG0gJiYgXy5pc0Z1bmN0 aW9uKG0uc3RhcnROZXdTZXNzaW9uKSkgewogICAgICAgICAgICAgbS5zdGFy dE5ld1Nlc3Npb24oKTsKICAgICAgICAgICB9Ci0gICAgICAgICAgaWYgKCd2 YWxpZGF0ZScgaW4gbSAmJiB0eXBlb2YobS52YWxpZGF0ZSkgPT09ICdmdW5j dGlvbicpIHsKLSAgICAgICAgICAgIHZhciBtc2cgPSBtLnZhbGlkYXRlKCk7 CisKKyAgICAgICAgICBpZiAoJ2RlZmF1bHRfdmFsaWRhdGUnIGluIG0gJiYg dHlwZW9mKG0uZGVmYXVsdF92YWxpZGF0ZSkgPT0gJ2Z1bmN0aW9uJykgewor ICAgICAgICAgICAgbXNnID0gbS5kZWZhdWx0X3ZhbGlkYXRlKCk7CisgICAg ICAgICAgfQorCisgICAgICAgICAgaWYgKF8uaXNTdHJpbmcobXNnKSkgewor ICAgICAgICAgICAgc2VsZi5zZXNzQXR0cnNbJ2ludmFsaWQnXVttLmNpZF0g PSBtc2c7CisgICAgICAgICAgfSBlbHNlIGlmICgndmFsaWRhdGUnIGluIG0g JiYgdHlwZW9mKG0udmFsaWRhdGUpID09PSAnZnVuY3Rpb24nKSB7CisgICAg ICAgICAgICBtc2cgPSBtLnZhbGlkYXRlKCk7CiAKICAgICAgICAgICAgIGlm IChtc2cpIHsKICAgICAgICAgICAgICAgc2VsZi5zZXNzQXR0cnNbJ2ludmFs aWQnXVttLmNpZF0gPSBtc2c7CkBAIC05MDAsNyArMTAyNCwxNCBAQCBmdW5j dGlvbihfLCBwZ0FkbWluLCAkLCBCYWNrYm9uZSkgewogCiAgICAgICAgICAg KHNlbGYuaGFuZGxlciB8fCBzZWxmKS50cmlnZ2VyKCdwZ2FkbWluLXNlc3Np b246YWRkZWQnLCBzZWxmLCBvYmopOwogCi0gICAgICAgICAgaWYgKCd2YWxp ZGF0ZScgaW4gb2JqICYmIHR5cGVvZihvYmoudmFsaWRhdGUpID09PSAnZnVu Y3Rpb24nKSB7CisKKyAgICAgICAgICBpZiAoJ2RlZmF1bHRfdmFsaWRhdGUn IGluIG9iaiAmJiB0eXBlb2Yob2JqLmRlZmF1bHRfdmFsaWRhdGUpID09ICdm dW5jdGlvbicpIHsKKyAgICAgICAgICAgIG1zZyA9IG9iai5kZWZhdWx0X3Zh bGlkYXRlKCk7CisgICAgICAgICAgfQorCisgICAgICAgICAgaWYgKF8uaXNT dHJpbmcobXNnKSkgeworICAgICAgICAgICAgKHNlbGYuc2Vzc0F0dHJzWydp bnZhbGlkJ10pW29iai5jaWRdID0gbXNnOworICAgICAgICAgIH0gZWxzZSBp ZiAoJ3ZhbGlkYXRlJyBpbiBvYmogJiYgdHlwZW9mKG9iai52YWxpZGF0ZSkg PT09ICdmdW5jdGlvbicpIHsKICAgICAgICAgICAgIG1zZyA9IG9iai52YWxp ZGF0ZSgpOwogCiAgICAgICAgICAgICBpZiAobXNnKSB7CkBAIC05MDgsNyAr MTAzOSwxNCBAQCBmdW5jdGlvbihfLCBwZ0FkbWluLCAkLCBCYWNrYm9uZSkg ewogICAgICAgICAgICAgfQogICAgICAgICAgIH0KICAgICAgICAgfSBlbHNl IHsKLSAgICAgICAgICBpZiAoJ3ZhbGlkYXRlJyBpbiBvYmogJiYgdHlwZW9m KG9iai52YWxpZGF0ZSkgPT09ICdmdW5jdGlvbicpIHsKKworICAgICAgICAg IGlmICgnZGVmYXVsdF92YWxpZGF0ZScgaW4gb2JqICYmIHR5cGVvZihvYmou ZGVmYXVsdF92YWxpZGF0ZSkgPT0gJ2Z1bmN0aW9uJykgeworICAgICAgICAg ICAgbXNnID0gb2JqLmRlZmF1bHRfdmFsaWRhdGUoKTsKKyAgICAgICAgICB9 CisKKyAgICAgICAgICBpZiAoXy5pc1N0cmluZyhtc2cpKSB7CisgICAgICAg ICAgICAoc2VsZi5zZXNzQXR0cnNbJ2ludmFsaWQnXSlbb2JqLmNpZF0gPSBt c2c7CisgICAgICAgICAgfSBlbHNlIGlmICgndmFsaWRhdGUnIGluIG9iaiAm JiB0eXBlb2Yob2JqLnZhbGlkYXRlKSA9PT0gJ2Z1bmN0aW9uJykgewogICAg ICAgICAgICAgbXNnID0gb2JqLnZhbGlkYXRlKCk7CiAKICAgICAgICAgICAg IGlmIChtc2cpIHsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9q cy9iYWNrZm9ybS5wZ2FkbWluLmpzIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pz L2JhY2tmb3JtLnBnYWRtaW4uanMKaW5kZXggMGNjMWUyZi4uYTgyMjA1ZSAx MDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL2JhY2tmb3JtLnBn YWRtaW4uanMKKysrIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL2JhY2tmb3Jt LnBnYWRtaW4uanMKQEAgLTU4LDcgKzU4LDcgQEAKICAgICB9KTsKIAogICB2 YXIgY29udHJvbE1hcHBlciA9IEJhY2tmb3JtLmNvbnRyb2xNYXBwZXIgPSB7 Ci0gICAgJ2ludCc6IFsndW5lZGl0YWJsZS1pbnB1dCcsICdpbnRlZ2VyJywg J2ludGVnZXInXSwKKyAgICAnaW50JzogWyd1bmVkaXRhYmxlLWlucHV0Jywg J251bWVyaWMnLCAnbnVtZXJpYyddLAogICAgICd0ZXh0JzogWyd1bmVkaXRh YmxlLWlucHV0JywgJ2lucHV0JywgJ3N0cmluZyddLAogICAgICdudW1lcmlj JzogWyd1bmVkaXRhYmxlLWlucHV0JywgJ251bWVyaWMnLCAnbnVtZXJpYydd LAogICAgICdkYXRlJzogJ2RhdGVwaWNrZXInLApAQCAtMTQ5MywxMTAgKzE0 OTMsNiBAQAogICAgICAgQmFja2Zvcm0uQ29udHJvbC5fX3N1cGVyX18ucmVt b3ZlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICAgfQogfSk7Ci0KLSAg LyoKLSAgICogSW50ZWdlciBpbnB1dCBDb250cm9sIGZ1bmN0aW9uYWxpdHkg anVzdCBsaWtlIGJhY2tncmlkCi0gICAqLwotICB2YXIgSW50ZWdlckNvbnRy b2wgPSBCYWNrZm9ybS5JbnRlZ2VyQ29udHJvbCA9IEJhY2tmb3JtLklucHV0 Q29udHJvbC5leHRlbmQoewotICAgIGRlZmF1bHRzOiB7Ci0gICAgICB0eXBl OiAibnVtYmVyIiwKLSAgICAgIGxhYmVsOiAiIiwKLSAgICAgIG1pbjogdW5k ZWZpbmVkLAotICAgICAgbWF4OiB1bmRlZmluZWQsCi0gICAgICBtYXhsZW5n dGg6IDI1NSwKLSAgICAgIGV4dHJhQ2xhc3NlczogW10sCi0gICAgICBoZWxw TWVzc2FnZTogbnVsbAotICAgIH0sCi0gICAgdGVtcGxhdGU6IF8udGVtcGxh dGUoWwotICAgICAgJzxsYWJlbCBjbGFzcz0iPCU9QmFja2Zvcm0uY29udHJv bExhYmVsQ2xhc3NOYW1lJT4iPjwlPWxhYmVsJT48L2xhYmVsPicsCi0gICAg ICAnPGRpdiBjbGFzcz0iPCU9QmFja2Zvcm0uY29udHJvbHNDbGFzc05hbWUl PiI+JywKLSAgICAgICcgIDxpbnB1dCB0eXBlPSI8JT10eXBlJT4iIGNsYXNz PSI8JT1CYWNrZm9ybS5jb250cm9sQ2xhc3NOYW1lJT4gPCU9ZXh0cmFDbGFz c2VzLmpvaW4oXCcgXCcpJT4iIG5hbWU9IjwlPW5hbWUlPiIgbWluPSI8JT1t aW4lPiIgbWF4PSI8JT1tYXglPiJtYXhsZW5ndGg9IjwlPW1heGxlbmd0aCU+ IiB2YWx1ZT0iPCUtdmFsdWUlPiIgcGxhY2Vob2xkZXI9IjwlLXBsYWNlaG9s ZGVyJT4iIDwlPWRpc2FibGVkID8gImRpc2FibGVkIiA6ICIiJT4gPCU9cmVx dWlyZWQgPyAicmVxdWlyZWQiIDogIiIlPiAvPicsCi0gICAgICAnICA8JSBp ZiAoaGVscE1lc3NhZ2UgJiYgaGVscE1lc3NhZ2UubGVuZ3RoKSB7ICU+JywK LSAgICAgICcgICAgPHNwYW4gY2xhc3M9IjwlPUJhY2tmb3JtLmhlbHBNZXNz YWdlQ2xhc3NOYW1lJT4iPjwlPWhlbHBNZXNzYWdlJT48L3NwYW4+JywKLSAg ICAgICcgIDwlIH0gJT4nLAotICAgICAgJzwvZGl2PicKLSAgICBdLmpvaW4o IlxuIikpLAotICAgIGV2ZW50czogewotICAgICAgImNoYW5nZSBpbnB1dCI6 ICJjaGVja0ludCIsCi0gICAgICAiZm9jdXMgaW5wdXQiOiAiY2xlYXJJbnZh bGlkIgotICAgIH0sCi0gICAgY2hlY2tJbnQ6IGZ1bmN0aW9uKGUpIHsKLSAg ICAgIHZhciBmaWVsZCA9IF8uZGVmYXVsdHModGhpcy5maWVsZC50b0pTT04o KSwgdGhpcy5kZWZhdWx0cyksCi0gICAgICAgICAgYXR0ckFyciA9IHRoaXMu ZmllbGQuZ2V0KCJuYW1lIikuc3BsaXQoJy4nKSwKLSAgICAgICAgICBuYW1l ID0gYXR0ckFyci5zaGlmdCgpLAotICAgICAgICAgIHZhbHVlID0gdGhpcy5n ZXRWYWx1ZUZyb21ET00oKSwKLSAgICAgICAgICBtaW5fdmFsdWUgPSBmaWVs ZC5taW4sCi0gICAgICAgICAgbWF4X3ZhbHVlID0gZmllbGQubWF4LAotICAg ICAgICAgIGlzVmFsaWQgPSB0cnVlLAotICAgICAgICAgIGludFBhdHRlcm4g PSBuZXcgUmVnRXhwKCJeLT9bMC05XSokIiksCi0gICAgICAgICAgaXNNYXRj aGVkID0gaW50UGF0dGVybi50ZXN0KHZhbHVlKTsKLQotICAgICAgLy8gQmVs b3cgbG9naWMgd2lsbCB2YWxpZGF0ZSBpbnB1dAotICAgICAgaWYgKCFpc01h dGNoZWQpIHsKLSAgICAgICAgaXNWYWxpZCA9IGZhbHNlOwotICAgICAgICB0 aGlzLm1vZGVsLmVycm9yTW9kZWwudW5zZXQobmFtZSk7Ci0gICAgICAgIHRo aXMubW9kZWwuZXJyb3JNb2RlbC5zZXQoCi0gICAgICAgICAgICBuYW1lLAot ICAgICAgICAgICAgUyhnZXR0ZXh0KCInJXMnIG11c3QgYmUgYW4gaW50ZWdl ci4iKSkuc3ByaW50ZigKLSAgICAgICAgICAgICAgZmllbGQubGFiZWwKLSAg ICAgICAgICAgICAgKS52YWx1ZSgpCi0gICAgICAgICAgICApOwotICAgICAg fQotCi0gICAgICAvLyBCZWxvdyB3aWxsIGNoZWNrIGlmIGVudGVyZWQgdmFs dWUgaXMgaW4tYmV0d2VlbiBtaW4gJiBtYXggcmFuZ2UKLSAgICAgIGlmIChp c1ZhbGlkICYmICghXy5pc1VuZGVmaW5lZChtaW5fdmFsdWUpICYmIHZhbHVl IDwgbWluX3ZhbHVlKSkgewotICAgICAgICBpc1ZhbGlkID0gZmFsc2U7Ci0g ICAgICAgIHRoaXMubW9kZWwuZXJyb3JNb2RlbC51bnNldChuYW1lKTsKLSAg ICAgICAgdGhpcy5tb2RlbC5lcnJvck1vZGVsLnNldCgKLSAgICAgICAgICAg IG5hbWUsCi0gICAgICAgICAgICBTKGdldHRleHQoIiVzJyBtdXN0IGJlIGdy ZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlZC4iKSkuc3ByaW50ZigKLSAgICAg ICAgICAgICAgZmllbGQubGFiZWwsCi0gICAgICAgICAgICAgIG1pbl92YWx1 ZQotICAgICAgICAgICAgICApLnZhbHVlKCkKLSAgICAgICAgICAgICk7Ci0g ICAgICB9Ci0KLSAgICAgIGlmIChpc1ZhbGlkICYmICghXy5pc1VuZGVmaW5l ZChtYXhfdmFsdWUpICYmIHZhbHVlID4gbWF4X3ZhbHVlKSkgewotICAgICAg ICBpc1ZhbGlkID0gZmFsc2U7Ci0gICAgICAgIHRoaXMubW9kZWwuZXJyb3JN b2RlbC51bnNldChuYW1lKTsKLSAgICAgICAgdGhpcy5tb2RlbC5lcnJvck1v ZGVsLnNldCgKLSAgICAgICAgICAgIG5hbWUsCi0gICAgICAgICAgICBTKGdl dHRleHQoIiclcycgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJWQu IikpLnNwcmludGYoCi0gICAgICAgICAgICAgIGZpZWxkLmxhYmVsLAotICAg ICAgICAgICAgICBtYXhfdmFsdWUKLSAgICAgICAgICAgICAgKS52YWx1ZSgp Ci0gICAgICAgICAgICApOwotICAgICAgfQotCi0gICAgICAvLyBBZnRlciB2 YWxpZGF0aW9uIHdlIG5lZWQgdG8gc2V0IHRoYXQgdmFsdWUgaW50byBtb2Rl bCAob25seSBpZiBhbGwgZmxhZ3MgYXJlIHRydWUpCi0gICAgICBpZiAoaXNW YWxpZCkgewotICAgICAgICB0aGlzLnN0b3BMaXN0ZW5pbmcodGhpcy5tb2Rl bCwgImNoYW5nZToiICsgbmFtZSwgdGhpcy5yZW5kZXIpOwotICAgICAgICB0 aGlzLm1vZGVsLmVycm9yTW9kZWwudW5zZXQobmFtZSk7Ci0gICAgICAgIHRo aXMubW9kZWwuc2V0KG5hbWUsIHZhbHVlKTsKLSAgICAgICAgdGhpcy5saXN0 ZW5Ubyh0aGlzLm1vZGVsLCAiY2hhbmdlOiIgKyBuYW1lLCB0aGlzLnJlbmRl cik7Ci0gICAgICAgIGlmICh0aGlzLm1vZGVsLmNvbGxlY3Rpb24gfHwgdGhp cy5tb2RlbC5oYW5kbGVyKSB7Ci0gICAgICAgICAgKHRoaXMubW9kZWwuY29s bGVjdGlvbiB8fCB0aGlzLm1vZGVsLmhhbmRsZXIpLnRyaWdnZXIoCi0gICAg ICAgICAgICAgJ3BnYWRtaW4tc2Vzc2lvbjptb2RlbDp2YWxpZCcsIHRoaXMu bW9kZWwsICh0aGlzLm1vZGVsLmNvbGxlY3Rpb24gfHwgdGhpcy5tb2RlbC5o YW5kbGVyKQotICAgICAgICAgICAgKTsKLSAgICAgICAgfSBlbHNlIHsKLSAg ICAgICAgICAodGhpcy5tb2RlbCkudHJpZ2dlcigKLSAgICAgICAgICAgICAn cGdhZG1pbi1zZXNzaW9uOnZhbGlkJywgdGhpcy5tb2RlbC5zZXNzQ2hhbmdl ZCgpLCB0aGlzLm1vZGVsCi0gICAgICAgICAgICApOwotICAgICAgICB9Ci0g ICAgICB9IGVsc2UgewotICAgICAgICBpZiAodGhpcy5tb2RlbC5jb2xsZWN0 aW9uIHx8IHRoaXMubW9kZWwuaGFuZGxlcikgewotICAgICAgICAgICh0aGlz Lm1vZGVsLmNvbGxlY3Rpb24gfHwgdGhpcy5tb2RlbC5oYW5kbGVyKS50cmln Z2VyKAotICAgICAgICAgICAgICdwZ2FkbWluLXNlc3Npb246bW9kZWw6aW52 YWxpZCcsIHRoaXMubW9kZWwuZXJyb3JNb2RlbC5nZXQobmFtZSksIHRoaXMu bW9kZWwKLSAgICAgICAgICAgICk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAg ICAgICAgKHRoaXMubW9kZWwpLnRyaWdnZXIoCi0gICAgICAgICAgICAgJ3Bn YWRtaW4tc2Vzc2lvbjppbnZhbGlkJywgdGhpcy5tb2RlbC5lcnJvck1vZGVs LmdldChuYW1lKSwgdGhpcy5tb2RlbAotICAgICAgICAgICAgKTsKLSAgICAg ICAgfQotICAgICAgfQotICAgIH0KLSAgfSk7Ci0KICAgIC8qCiAgICAqIE51 bWVyaWMgaW5wdXQgQ29udHJvbCBmdW5jdGlvbmFsaXR5IGp1c3QgbGlrZSBi YWNrZ3JpZAogICAgKi8KQEAgLTE2MTgsODYgKzE1MTQsNyBAQAogICAgICAg JyAgICA8c3BhbiBjbGFzcz0iPCU9QmFja2Zvcm0uaGVscE1lc3NhZ2VDbGFz c05hbWUlPiI+PCU9aGVscE1lc3NhZ2UlPjwvc3Bhbj4nLAogICAgICAgJyAg PCUgfSAlPicsCiAgICAgICAnPC9kaXY+JwotICAgIF0uam9pbigiXG4iKSks Ci0gICAgZXZlbnRzOiB7Ci0gICAgICAiY2hhbmdlIGlucHV0IjogImNoZWNr TnVtZXJpYyIsCi0gICAgICAiZm9jdXMgaW5wdXQiOiAiY2xlYXJJbnZhbGlk IgotICAgIH0sCi0gICAgY2hlY2tOdW1lcmljOiBmdW5jdGlvbihlKSB7Ci0g ICAgICB2YXIgZmllbGQgPSBfLmRlZmF1bHRzKHRoaXMuZmllbGQudG9KU09O KCksIHRoaXMuZGVmYXVsdHMpLAotICAgICAgICAgIGF0dHJBcnIgPSB0aGlz LmZpZWxkLmdldCgibmFtZSIpLnNwbGl0KCcuJyksCi0gICAgICAgICAgbmFt ZSA9IGF0dHJBcnIuc2hpZnQoKSwKLSAgICAgICAgICB2YWx1ZSA9IHRoaXMu Z2V0VmFsdWVGcm9tRE9NKCksCi0gICAgICAgICAgbWluX3ZhbHVlID0gZmll bGQubWluLAotICAgICAgICAgIG1heF92YWx1ZSA9IGZpZWxkLm1heCwKLSAg ICAgICAgICBpc1ZhbGlkID0gdHJ1ZSwKLSAgICAgICAgICBpbnRQYXR0ZXJu ID0gbmV3IFJlZ0V4cCgiXi0/WzAtOV0rKFwuP1swLTldKik/JCIpLAotICAg ICAgICAgIGlzTWF0Y2hlZCA9IGludFBhdHRlcm4udGVzdCh2YWx1ZSk7Ci0K LSAgICAgIC8vIEJlbG93IGxvZ2ljIHdpbGwgdmFsaWRhdGUgaW5wdXQKLSAg ICAgIGlmICghaXNNYXRjaGVkKSB7Ci0gICAgICAgIGlzVmFsaWQgPSBmYWxz ZTsKLSAgICAgICAgdGhpcy5tb2RlbC5lcnJvck1vZGVsLnVuc2V0KG5hbWUp OwotICAgICAgICB0aGlzLm1vZGVsLmVycm9yTW9kZWwuc2V0KAotICAgICAg ICAgICAgbmFtZSwKLSAgICAgICAgICAgIFMoZ2V0dGV4dCgiJyVzJyBtdXN0 IGJlIGEgbnVtZXJpYy4iKSkuc3ByaW50ZigKLSAgICAgICAgICAgICAgZmll bGQubGFiZWwKLSAgICAgICAgICAgICAgKS52YWx1ZSgpCi0gICAgICAgICAg ICApOwotICAgICAgfQotCi0gICAgICAvLyBCZWxvdyB3aWxsIGNoZWNrIGlm IGVudGVyZWQgdmFsdWUgaXMgaW4tYmV0d2VlbiBtaW4gJiBtYXggcmFuZ2UK LSAgICAgIGlmIChpc1ZhbGlkICYmICghXy5pc1VuZGVmaW5lZChtaW5fdmFs dWUpICYmIHZhbHVlIDwgbWluX3ZhbHVlKSkgewotICAgICAgICBpc1ZhbGlk ID0gZmFsc2U7Ci0gICAgICAgIHRoaXMubW9kZWwuZXJyb3JNb2RlbC51bnNl dChuYW1lKTsKLSAgICAgICAgdGhpcy5tb2RlbC5lcnJvck1vZGVsLnNldCgK LSAgICAgICAgICAgIG5hbWUsCi0gICAgICAgICAgICBTKGdldHRleHQoIiVz JyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlZC4iKSkuc3By aW50ZigKLSAgICAgICAgICAgICAgZmllbGQubGFiZWwsCi0gICAgICAgICAg ICAgIG1pbl92YWx1ZQotICAgICAgICAgICAgICApLnZhbHVlKCkKLSAgICAg ICAgICAgICk7Ci0gICAgICB9Ci0KLSAgICAgIGlmIChpc1ZhbGlkICYmICgh Xy5pc1VuZGVmaW5lZChtYXhfdmFsdWUpICYmIHZhbHVlID4gbWF4X3ZhbHVl KSkgewotICAgICAgICBpc1ZhbGlkID0gZmFsc2U7Ci0gICAgICAgIHRoaXMu bW9kZWwuZXJyb3JNb2RlbC51bnNldChuYW1lKTsKLSAgICAgICAgdGhpcy5t b2RlbC5lcnJvck1vZGVsLnNldCgKLSAgICAgICAgICAgIG5hbWUsCi0gICAg ICAgICAgICBTKGdldHRleHQoIiclcycgbXVzdCBiZSBsZXNzIHRoYW4gb3Ig ZXF1YWwgdG8gJWQuIikpLnNwcmludGYoCi0gICAgICAgICAgICAgIGZpZWxk LmxhYmVsLAotICAgICAgICAgICAgICBtYXhfdmFsdWUKLSAgICAgICAgICAg ICAgKS52YWx1ZSgpCi0gICAgICAgICAgICApOwotICAgICAgfQotCi0gICAg ICAvLyBBZnRlciB2YWxpZGF0aW9uIHdlIG5lZWQgdG8gc2V0IHRoYXQgdmFs dWUgaW50byBtb2RlbCAob25seSBpZiBhbGwgZmxhZ3MgYXJlIHRydWUpCi0g ICAgICBpZiAoaXNWYWxpZCkgewotICAgICAgICB0aGlzLnN0b3BMaXN0ZW5p bmcodGhpcy5tb2RlbCwgImNoYW5nZToiICsgbmFtZSwgdGhpcy5yZW5kZXIp OwotICAgICAgICB0aGlzLm1vZGVsLmVycm9yTW9kZWwudW5zZXQobmFtZSk7 Ci0gICAgICAgIHRoaXMubW9kZWwuc2V0KG5hbWUsIHZhbHVlKTsKLSAgICAg ICAgdGhpcy5saXN0ZW5Ubyh0aGlzLm1vZGVsLCAiY2hhbmdlOiIgKyBuYW1l LCB0aGlzLnJlbmRlcik7Ci0gICAgICAgIGlmICh0aGlzLm1vZGVsLmNvbGxl Y3Rpb24gfHwgdGhpcy5tb2RlbC5oYW5kbGVyKSB7Ci0gICAgICAgICAgKHRo aXMubW9kZWwuY29sbGVjdGlvbiB8fCB0aGlzLm1vZGVsLmhhbmRsZXIpLnRy aWdnZXIoCi0gICAgICAgICAgICAgJ3BnYWRtaW4tc2Vzc2lvbjptb2RlbDp2 YWxpZCcsIHRoaXMubW9kZWwsICh0aGlzLm1vZGVsLmNvbGxlY3Rpb24gfHwg dGhpcy5tb2RlbC5oYW5kbGVyKQotICAgICAgICAgICAgKTsKLSAgICAgICAg fSBlbHNlIHsKLSAgICAgICAgICAodGhpcy5tb2RlbCkudHJpZ2dlcigKLSAg ICAgICAgICAgICAncGdhZG1pbi1zZXNzaW9uOnZhbGlkJywgdGhpcy5tb2Rl bC5zZXNzQ2hhbmdlZCgpLCB0aGlzLm1vZGVsCi0gICAgICAgICAgICApOwot ICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICBpZiAodGhpcy5t b2RlbC5jb2xsZWN0aW9uIHx8IHRoaXMubW9kZWwuaGFuZGxlcikgewotICAg ICAgICAgICh0aGlzLm1vZGVsLmNvbGxlY3Rpb24gfHwgdGhpcy5tb2RlbC5o YW5kbGVyKS50cmlnZ2VyKAotICAgICAgICAgICAgICdwZ2FkbWluLXNlc3Np b246bW9kZWw6aW52YWxpZCcsIHRoaXMubW9kZWwuZXJyb3JNb2RlbC5nZXQo bmFtZSksIHRoaXMubW9kZWwKLSAgICAgICAgICAgICk7Ci0gICAgICAgIH0g ZWxzZSB7Ci0gICAgICAgICAgKHRoaXMubW9kZWwpLnRyaWdnZXIoCi0gICAg ICAgICAgICAgJ3BnYWRtaW4tc2Vzc2lvbjppbnZhbGlkJywgdGhpcy5tb2Rl bC5lcnJvck1vZGVsLmdldChuYW1lKSwgdGhpcy5tb2RlbAotICAgICAgICAg ICAgKTsKLSAgICAgICAgfQotICAgICAgfQotICAgIH0KKyAgICBdLmpvaW4o IlxuIikpCiAgIH0pOwogCiAgIC8vLy8vLy8K --001a114f157cf24b710551726de4 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 --001a114f157cf24b710551726de4--