Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d6Ceg-00068J-QG for pgadmin-hackers@arkaria.postgresql.org; Thu, 04 May 2017 09:02:35 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1d6Ceg-00083O-7Y for pgadmin-hackers@arkaria.postgresql.org; Thu, 04 May 2017 09:02:34 +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 1d6CeN-0007es-Fa for pgadmin-hackers@postgresql.org; Thu, 04 May 2017 09:02:15 +0000 Received: from mail-it0-x22b.google.com ([2607:f8b0:4001:c0b::22b]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1d6CeG-0005lm-B7 for pgadmin-hackers@postgresql.org; Thu, 04 May 2017 09:02:14 +0000 Received: by mail-it0-x22b.google.com with SMTP id x188so4910637itb.0 for ; Thu, 04 May 2017 02:02:07 -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=ANB/YykaZJ0zzyTE03uXGgO6xzLOzq5Vw8LjuXgVllo=; b=RKPd2dmlvCja7bkueB/5F3lEiX5EZXfkBAaYDTwltohHrDxXW8FLut1YAbXrq7zJVB YAcAtTnWRF/Ik6AsiC0Y9yN9+mPHVBnr4IKcjoZM8nMHimr+X9RgxvS0pJIMA6yEqHeZ aOKkhfGDT+MEEWvozdm3QpUziWZHcnAd+XyHf5vbv0u5qrzsQF+tLgVyQtVXiyzwvtWn XIzqx8zsFLeIM78s8YhhHlsZx8iT7t/HWeawjDXPT27U/lJUK4T/USKWcNCv9zdOq+ca whzOs0bx71JShDJ5QSkvAkiUqHjq6xW+V/pzxX22iDGJGrjck1Nwo/uugB3/ETmRXt// VUFQ== 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=ANB/YykaZJ0zzyTE03uXGgO6xzLOzq5Vw8LjuXgVllo=; b=qc8sEE9DRsNq+Oy/L2MYmS8MgCY1d3i+GDw/hyb2JFXYmeQXL/52ro1h7Ivsdk7d4t K/aEkMDNO+9bVjRgf2TjJn5MOev8odtP4Dp9p38DtJeJy/0cugvUEEWn4vdwagNkY8Cv QnRWFsmgZnDuZauJdXrVkkTRsvdd7XKHuZa6EhivyDPOk53lxFqTyVv100kF/mqWYDgy OnLH/fcwDmEEHdtJauATxXnAPlFJk0vECEQoogskfTxQGCb28c7S0v9XO02II2jdN9Vu kyTD82agC+t77pL9NPLnzUIsQT5F+ftR/alG22N+H7ZH87MLPH3Dnrp3rUIvZKd/vfg4 +xuQ== X-Gm-Message-State: AN3rC/5qNKqljI8Rcarsca6MWhi4rBezUKXBgeWAvvWxiaITQ70Lndxz DDJmHBNRP8SQX8FCPFW9ril0AsL63ljK X-Received: by 10.202.80.139 with SMTP id e133mr15502758oib.136.1493888526455; Thu, 04 May 2017 02:02:06 -0700 (PDT) MIME-Version: 1.0 Received: by 10.74.138.13 with HTTP; Thu, 4 May 2017 02:02:05 -0700 (PDT) In-Reply-To: References: From: Khushboo Vashi Date: Thu, 4 May 2017 14:32:05 +0530 Message-ID: Subject: Re: [pgAdmin4][Patch]: Fixed RM #2315 : Sorting by size is broken To: Matthew Kleiman Cc: Sarah McAlear , Dave Page , pgadmin-hackers , Ashesh Vashi Content-Type: multipart/mixed; boundary=001a113b02a0f450c2054eaf061c X-Pg-Spam-Score: -1.9 (-) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgadmin-hackers Precedence: bulk Sender: pgadmin-hackers-owner@postgresql.org --001a113b02a0f450c2054eaf061c Content-Type: multipart/alternative; boundary=001a113b02a0f450bc054eaf061a --001a113b02a0f450bc054eaf061a Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hi, Please find the attached updated patch. Thanks, Khushboo On Fri, Apr 28, 2017 at 7:58 PM, Matthew Kleiman wrote: > Hi Khushboo, > > That sounds good. Sorry if we weren't clear at first. > > Have a good holiday weekend! > > Sarah & Matt > > > On Fri, Apr 28, 2017 at 4:35 AM, Khushboo Vashi < > khushboo.vashi@enterprisedb.com> wrote: > >> Hi Sarah, >> >> On Thu, Apr 27, 2017 at 7:38 PM, Sarah McAlear >> wrote: >> >>> Hi Kushboo! >>> >>> We understand your point, but we believe that relying on 2 independent >>> functions to deliver the same formatting can become a problem if the PG >>> function changes. Our suggestion is to use a single function in our >>> javascript code to do this formatting. >>> >>> It seems reasonable to me and I am going to use a single javascript >> function which will support PB also (as per Dave we should add support t= ill >> PB) . >> >>> If the community believes we can live with this risk, let's move forwar= d. >>> >>> Thanks! >>> Sarah & Joao >>> >>> On Thu, Apr 27, 2017 at 1:50 AM, Khushboo Vashi < >>> khushboo.vashi@enterprisedb.com> wrote: >>> >>>> Hi Joao & Sarah, >>>> >>>> On Wed, Apr 26, 2017 at 8:46 PM, Joao Pedro De Almeida Pereira < >>>> jdealmeidapereira@pivotal.io> wrote: >>>> >>>>> Hi Khushboo! >>>>> >>>>> Thanks for your reply! >>>>> >>>>> >>>>>> *SQL Files:* >>>>>>> >>>>>>> - Is there a way to avoid conditionals here? >>>>>>> >>>>>>> >>>>>>> - Maybe we can use the same javascript function to prettify all >>>>>>> the sizes >>>>>>> >>>>>>> >>>>>>> In case of collection node (ex: Databases), I have implemented this >>>>>>> functionality via putting a formatter for a back-grid column. So, i= t is >>>>>>> applicable for the entire column not for the individual cell. To ap= ply the >>>>>>> javascript function on a single cell for the column (string column)= , first >>>>>>> we need to identify that cell and then apply the function, I think = this is >>>>>>> overhead. Just to avoid conditional sql template I would not prefer= this >>>>>>> approach. >>>>>> >>>>>> >>>>> We are not totally sure we understood what you meant on the previous >>>>> statement. Are you saying that the conditionals in SQL are used to en= sure >>>>> that we can apply a javascript function at column level instead of ce= ll >>>>> level? >>>>> >>>>> Correct. >>>> >>>>> Our concern is that the templates are being made more complex and >>>>> inconsistencies are introduced in the code and the UI. >>>>> >>>> >>>> Inconsistencies in the UI can be avoided through making the >>>> size_formatter same as pg_size_pretty function which I will implement. >>>> I have checked the pg_size_pretty function code and it supports till TB >>>> format, so I think we should keep till TB only. >>>> >>>> In this particular example, we are allowing the backend to respond >>>>> sometimes with prettified data and sometimes without it, so at UI lev= el we >>>>> will have inconsistencies between screens or more complex Javascript = code >>>>> to support sometimes prettifying and sometimes not prettify the same >>>>> fields. >>>>> >>>>> We have separate logic for collection and single node in statistics.js >>>> and we are using javascript code for prettifying only for collection n= ode. >>>> >>>> >>>>> What we were thinking was to maybe not specify on the SQL level and >>>>> have the same format for "Size" everywhere in the UI. >>>>> >>>>> >>>> Here our main concern is inconsistency in "Size" format in the UI that >>>> can be avoided as I said earlier. >>>> We are using pg_size_pretty function for different fields like Size, >>>> Index Size, Table space size, Tuple length, Size of Temporary files in >>>> different modules and some of them are cell level and we don't require= to >>>> put overhead on cell level fields as sorting is not required for indiv= idual >>>> node statistics. >>>> >>>> >>>> >>>>> Thanks >>>>> Joao & Sarah >>>>> >>>>> On Tue, Apr 25, 2017 at 11:48 PM, Khushboo Vashi < >>>>> khushboo.vashi@enterprisedb.com> wrote: >>>>> >>>>>> Hi Joao & Sarah, >>>>>> >>>>>> Thanks for reviewing the patch. >>>>>> >>>>>> On Tue, Apr 25, 2017 at 8:34 PM, Joao Pedro De Almeida Pereira < >>>>>> jdealmeidapereira@pivotal.io> wrote: >>>>>> >>>>>>> Hello Khushboo, >>>>>>> >>>>>>> We reviewed the this patch and have some suggestions: >>>>>>> >>>>>>> *Python:* >>>>>>> =E2=80=8B >>>>>>> The functionality for adding the "can_prettify" is repeated in >>>>>>> multiple places. Maybe this could be extracted into a function. >>>>>>> >>>>>>> When I have implemented this, my first thought is exactly same as >>>>>> you suggested but while looking at the code I felt its not a good i= dea to >>>>>> have a function. In case of a function, we need to pass the whole >>>>>> result-set as well as the list of fields which we need to be prettif= ied. >>>>>> So, only for 2 lines, I didn't find any reason to make a function. >>>>>> >>>>>>> *Javascript:* >>>>>>> =E2=80=8B >>>>>>> >>>>>>> - The class Backgrid.SizeFormatter doesn't seem to have any >>>>>>> tests. >>>>>>> >>>>>>> >>>>>>> Sure, will do. >>>>>> >>>>>>> >>>>>>> - The function pg_size_pretty displays bytes and Kilobytes >>>>>>> differently. >>>>>>> - Is it possible to add PB as well? >>>>>>> >>>>>>> Will check and add PB. >>>>>> >>>>>>> >>>>>>> - >>>>>>> - The function is a little bit hard to read, is it possible to >>>>>>> refactor using private functions like: >>>>>>> >>>>>>> Will make it more readable. >>>>>> >>>>>>> fromRaw: function (rawData, model) { >>>>>>> var unitIdx =3D findDataUnitIndex(rawData); >>>>>>> if (unitIdx =3D=3D 0) { >>>>>>> return rawData + ' ' + this.dataUnits[i]; >>>>>>> } >>>>>>> return formatOutput(rawData, unitIdx); >>>>>>> }, >>>>>>> >>>>>>> =E2=80=8B >>>>>>> >>>>>>> >>>>>>> - In statistics.js:326 we believe it would make the code more >>>>>>> readable if we change the variable "c" to "rawColumn" and "col" = to "column". >>>>>>> >>>>>>> >>>>>>> I will change the variable name from "c" to "rawColumn" but I >>>>>> think "col" is appropriate as we already have columns variable and a= nyone >>>>>> can confuse while reading the code (for columns and column). >>>>>> >>>>>>> >>>>>>> *SQL Files:* >>>>>>> =E2=80=8B >>>>>>> >>>>>>> - Is there a way to avoid conditionals here? >>>>>>> - Maybe we can use the same javascript function to prettify all >>>>>>> the sizes >>>>>>> >>>>>>> >>>>>>> In case of collection node (ex: Databases), I have implemented this >>>>>> functionality via putting a formatter for a back-grid column. So, it= is >>>>>> applicable for the entire column not for the individual cell. To app= ly the >>>>>> javascript function on a single cell for the column (string column),= first >>>>>> we need to identify that cell and then apply the function, I think t= his is >>>>>> overhead. Just to avoid conditional sql template I would not prefer = this >>>>>> approach. >>>>>> >>>>>>> >>>>>>> Visually we saw a difference between "Databases" statistics and a >>>>>>> specific database statistics. In "Databases" statistics the "Size" = is "7.4 >>>>>>> MB" but when you are in the specific database the "Size" is "7420 k= B". >>>>>>> Is this the intended behavior? >>>>>>> >>>>>>> Only for the Databases (collection node), the client side >>>>>> functionality is implemented not for individual node , so this behav= iour is >>>>>> different. For the individual node still, we are using pg_size_pretty >>>>>> function >>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>>> Thanks >>>>>>> Joao & Sarah >>>>>>> >>>>>>> On Tue, Apr 25, 2017 at 7:58 AM, Dave Page >>>>>>> wrote: >>>>>>> >>>>>>>> Ashesh, can you review/commit this please? >>>>>>>> >>>>>>>> Thanks. >>>>>>>> >>>>>>>> On Tue, Apr 25, 2017 at 10:18 AM, Khushboo Vashi < >>>>>>>> khushboo.vashi@enterprisedb.com> wrote: >>>>>>>> >>>>>>>>> Hi, >>>>>>>>> >>>>>>>>> Fixed RM #2315 : Sorting by size is broken. >>>>>>>>> >>>>>>>>> Removed the pg_size_pretty function from query for the collection >>>>>>>>> and introduced the client side function to convert size into huma= n readable >>>>>>>>> format. So, the sorting issue is fixed as the algorithm will get = the actual >>>>>>>>> value of size instead of formatted value. >>>>>>>>> >>>>>>>>> >>>>>>>>> Thanks, >>>>>>>>> Khushboo >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> 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 >>>>>>>> >>>>>>> >>>>>>> >>>>>> Thanks, >>>>>> Khushboo >>>>>> >>>>> >>>>> >>>> Thanks, >>>> Khushboo >>>> >>> >>> >> Thanks, >> Khushboo >> > > --001a113b02a0f450bc054eaf061a Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi,

Please find the attached updated pa= tch.

Thanks,
Khushboo

On Fri, Apr 28, 2017 at = 7:58 PM, Matthew Kleiman <mkleiman@pivotal.io> wrote:
<= blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px= #ccc solid;padding-left:1ex">
Hi Khushboo,

<= div>That sounds good. Sorry if we weren't clear at first.=C2=A0

Have a good holiday weekend!

Sar= ah & Matt


On Fri, Apr 2= 8, 2017 at 4:35 AM, Khushboo Vashi <khushboo.vashi@enterpris= edb.com> wrote:
Hi Sarah,

On Thu, Apr 27, 2017 at 7:38 PM, Sarah McAlear <smcalear@pi= votal.io> wrote:
Hi Kushboo!

We understand your point, but we be= lieve that relying on 2 independent functions to deliver the same formattin= g can become a problem if the PG function changes. Our suggestion is to use= a single function in our javascript code to do this formatting.=C2=A0

It seems reasonable to me an= d I am going to use a single javascript function which will support PB also= (as per Dave we should add support till PB) .
=
If the community believes we can live with this risk, let's = move forward.

Thanks!
Sarah & Joao

On Thu, Apr 27, 2017 at 1:5= 0 AM, Khushboo Vashi <khushboo.vashi@enterprisedb.com> wrote:
Hi Joao & Sarah,

On Wed, Apr 26, 2017 at 8:46 PM, Joa= o Pedro De Almeida Pereira <jdealmeidapereira@pivotal.io>= ; wrote:
Hi Khushboo!

Thanks for your reply!<= /div>
=C2=A0
SQL Files:
  • Is= there a way to avoid conditionals here?=C2=A0
  • Maybe we can use the same javascript function to prettify a= ll the sizes

In case of collection node (ex: Databases), I hav= e implemented this functionality via putting a formatter for a back-grid co= lumn. So, it is applicable for the entire column not for the individual cel= l. To apply the javascript function on a single cell for the column (string= column), first we need to identify that cell and then apply the function, = I think this is overhead. Just to avoid conditional sql template I would no= t prefer this approach.
We are not totally sure we understood what you meant on = the previous statement. Are you saying that the conditionals in SQL are use= d to ensure that we can apply a javascript function at column level instead= of cell level?=C2=A0

=
Correct.=C2=A0
Our concern is that = the templates are being made more complex and inconsistencies are introduce= d in the code and the UI.
=C2=A0
<= /span>
Inconsistencies in the UI can be avoided through making the size= _formatter same as pg_size_pretty function which I will implement.
I have checked the pg_size_pretty function code and it supports till = TB format, so I think we should keep till TB only.

In this particular example, we are allowing the backend to r= espond sometimes with prettified data and sometimes without it, so at UI le= vel we will have inconsistencies between screens or more complex Javascript= code to support sometimes prettifying and sometimes not prettify the same = fields.=C2=A0

We = have separate logic for collection and single node in statistics.js and we = are using javascript code for prettifying only for collection node.
=C2=A0
What we were thinking was to m= aybe not specify on the SQL level and have the same format for "Size&q= uot; everywhere in the UI.=C2=A0
=C2=A0
Here our main concern is inconsistency in "Size"= ; format in the UI that can be avoided as I said earlier.
We are = using pg_size_pretty function for different fields like Size, Index Size, T= able space size, Tuple length, Size of Temporary files in different modules= and some of them are cell level and we don't require to put overhead o= n cell level fields as sorting is not required for individual node statisti= cs.
=C2=A0
=C2=A0
Than= ks
Joao & Sarah

On Tue, Apr 25, 2017 at 11:48 PM, Khushboo = Vashi <khushboo.vashi@enterprisedb.com> w= rote:
Hi Joao & Sarah,

Thanks for reviewing the patch.

On Tue, = Apr 25, 2017 at 8:34 PM, Joao Pedro De Almeida Pereira &l= t;jdealme= idapereira@pivotal.io> wrote:
Hello Khushboo,

W= e reviewed the this patch and have some suggestions:

Python:

=E2=80=8B
The functionality for adding the "can= _prettify" is repeated in multiple places. Maybe this could be extract= ed into a function.=C2=A0

When I have implemented this, my first thought is exactly same as you sug= gested but =C2=A0while looking at the code I felt its not a good idea to ha= ve a function. In case of a function, we need to pass the whole result-set = as well as the list of fields which we need to be prettified. So, only for = 2 lines, I didn't find any reason to make a function.

Javascript:

=E2=80=8B
  • The class=C2=A0Backgrid.SizeForm= atter doesn't seem to have any tests.=C2=A0
    =

Sure, will do= .=C2=A0
  • The function pg_size_pretty displays byt= es and Kilobytes differently.=C2=A0
  • Is it possible to add PB as= well?
Will check and add= PB.=C2=A0
  • The function is a little bit hard to re= ad, is it possible to refactor using private functions like:
Will make it more readable.
fromRaw: function (rawData, m=
odel) {
   var unitIdx =3D findDataUnitIndex(rawData);
   if (unitIdx =3D=3D 0) {
      return rawData + ' ' + this.dataUnits[i];
   }
   return formatOutput(rawData, unitIdx);
},
=E2=80=8B=

  • In statistics.js:326 we believe it would= make the code more readable if we change the variable "c" to &qu= ot;rawColumn" and "col" to "column".
=

I will change the varia= ble name from =C2=A0"c" to =C2=A0"rawColumn" but I thin= k "col" is appropriate as we already have columns variable and an= yone can confuse while reading the code (for columns and column).
<= /div>

=

SQL Files:

=E2=80=8B
  • Is there a way to avoid condit= ionals here?=C2=A0
  • Maybe we can use the same javascript function to= prettify all the sizes

In case of collection node (ex: Databases), I have implemented th= is functionality via putting a formatter for a back-grid column. So, it is = applicable for the entire column not for the individual cell. To apply the = javascript function on a single cell for the column (string column), first = we need to identify that cell and then apply the function, I think this is = overhead. Just to avoid conditional sql template I would not prefer this ap= proach.

Visually we saw a difference= between "Databases" statistics and a specific database statistic= s. In "Databases" statistics the "Size" is "7.4 MB= " but when you are in the specific database the "Size" is &q= uot;7420 kB".
Is this the intended behavior?

Only for the Databases (collectio= n node), the client side functionality is implemented not for individual no= de , so this behaviour is different. For the individual node still, we are = using pg_size_pretty function
=C2=A0

Thanks
Joao & Sarah

On Tue, Apr 25, 2017 at 7:58 AM, Dave Page <dpage@pgadmin.org&g= t; wrote:
Ashesh, can you review/commit this please?

T= hanks.

On Tue, Apr 25, 2017 at 10:18 AM, Khus= hboo Vashi <khushboo.vashi@enterprisedb.com> wrote:
Hi,

Fixed RM #2315 : Sorting by size is broken.

Remo= ved the pg_size_pretty function from query for the collection and introduce= d the client side function to convert size into human readable format. So, = the sorting issue is fixed as the algorithm will get the actual value of si= ze instead of formatted value.=C2=A0
=C2=A0

Thanks,
Khushboo




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




--
Dave Page
Blog: = http://pgsnake.bl= ogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com<= br>The Enterprise PostgreSQL Company


= Thanks,
Khushboo


Thanks,
Khushboo


Thanks,
Khushboo


--001a113b02a0f450bc054eaf061a-- --001a113b02a0f450c2054eaf061c Content-Type: text/x-patch; charset=US-ASCII; name="RM_2315_ver1.patch" Content-Disposition: attachment; filename="RM_2315_ver1.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j2a6mjtx0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50 cy9leGNsdXNpb25fY29uc3RyYWludC90ZW1wbGF0ZXMvZXhjbHVzaW9uX2Nv bnN0cmFpbnQvanMvZXhjbHVzaW9uX2NvbnN0cmFpbnQuanMgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvZXhjbHVzaW9uX2NvbnN0cmFp bnQvdGVtcGxhdGVzL2V4Y2x1c2lvbl9jb25zdHJhaW50L2pzL2V4Y2x1c2lv bl9jb25zdHJhaW50LmpzCmluZGV4IDAyYjc3ZTEuLmVlZTlhZDIgMTAwNjQ0 Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9leGNs dXNpb25fY29uc3RyYWludC90ZW1wbGF0ZXMvZXhjbHVzaW9uX2NvbnN0cmFp bnQvanMvZXhjbHVzaW9uX2NvbnN0cmFpbnQuanMKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2V4Y2x1c2lvbl9jb25zdHJhaW50 L3RlbXBsYXRlcy9leGNsdXNpb25fY29uc3RyYWludC9qcy9leGNsdXNpb25f Y29uc3RyYWludC5qcwpAQCAtNjI3LDYgKzYyNyw3IEBAIGZ1bmN0aW9uKCQs IF8sIFMsIHBnQWRtaW4sIHBnQnJvd3NlciwgQWxlcnRpZnkpIHsKICAgICAg IGNhbkRyb3BDYXNjYWRlOiB0cnVlLAogICAgICAgaGFzRGVwZW5kczogdHJ1 ZSwKICAgICAgIGhhc1N0YXRpc3RpY3M6IHRydWUsCisgICAgICBzdGF0c1By ZXR0aWZ5RmllbGRzOiBbJ0luZGV4IHNpemUnXSwKICAgICAgIEluaXQ6IGZ1 bmN0aW9uKCkgewogICAgICAgICAvKiBBdm9pZCBtdWx0aXBsZSByZWdpc3Ry YXRpb24gb2YgbWVudXMgKi8KICAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6 ZWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3Ry YWludHMvaW5kZXhfY29uc3RyYWludC90ZW1wbGF0ZXMvaW5kZXhfY29uc3Ry YWludC9qcy9pbmRleF9jb25zdHJhaW50LmpzIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dGFibGVzL2NvbnN0cmFpbnRzL2luZGV4X2NvbnN0cmFpbnQvdGVtcGxhdGVz L2luZGV4X2NvbnN0cmFpbnQvanMvaW5kZXhfY29uc3RyYWludC5qcwppbmRl eCA2NDM5Y2FmLi5hNzkyZTMxIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvY29uc3RyYWludHMvaW5kZXhfY29uc3RyYWludC90ZW1wbGF0 ZXMvaW5kZXhfY29uc3RyYWludC9qcy9pbmRleF9jb25zdHJhaW50LmpzCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9pbmRleF9j b25zdHJhaW50L3RlbXBsYXRlcy9pbmRleF9jb25zdHJhaW50L2pzL2luZGV4 X2NvbnN0cmFpbnQuanMKQEAgLTE5LDYgKzE5LDcgQEAgZnVuY3Rpb24oJCwg XywgUywgcGdBZG1pbiwgcGdCcm93c2VyLCBhbGVydGlmeSkgewogICAgICAg aGFzU1FMOiB0cnVlLAogICAgICAgaGFzRGVwZW5kczogdHJ1ZSwKICAgICAg IGhhc1N0YXRpc3RpY3M6IHRydWUsCisgICAgICBzdGF0c1ByZXR0aWZ5Rmll bGRzOiBbJ0luZGV4IHNpemUnXSwKICAgICAgIHBhcmVudF90eXBlOiAndGFi bGUnLAogICAgICAgY2FuRHJvcDogdHJ1ZSwKICAgICAgIGNhbkRyb3BDYXNj YWRlOiB0cnVlLApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L2luZGV4ZXMvdGVtcGxhdGVzL2luZGV4L2pzL2luZGV4LmpzIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL2luZGV4ZXMvdGVtcGxhdGVzL2luZGV4L2pzL2lu ZGV4LmpzCmluZGV4IDg3MzkzMjIuLjI0OWZiYWYgMTAwNjQ0Ci0tLSBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3RhYmxlcy9pbmRleGVzL3RlbXBsYXRlcy9pbmRleC9q cy9pbmRleC5qcworKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvaW5kZXhl cy90ZW1wbGF0ZXMvaW5kZXgvanMvaW5kZXguanMKQEAgLTEyLDcgKzEyLDgg QEAgZnVuY3Rpb24oJCwgXywgUywgcGdBZG1pbiwgcGdCcm93c2VyLCBCYWNr Zm9ybSwgYWxlcnRpZnkpIHsKICAgICAgICAgc3FsQWx0ZXJIZWxwOiAnc3Fs LWFsdGVyaW5kZXguaHRtbCcsCiAgICAgICAgIHNxbENyZWF0ZUhlbHA6ICdz cWwtY3JlYXRlaW5kZXguaHRtbCcsCiAgICAgICAgIGNvbHVtbnM6IFsnbmFt ZScsICdkZXNjcmlwdGlvbiddLAotICAgICAgICBoYXNTdGF0aXN0aWNzOiB0 cnVlCisgICAgICAgIGhhc1N0YXRpc3RpY3M6IHRydWUsCisgICAgICAgIHN0 YXRzUHJldHRpZnlGaWVsZHM6IFsnU2l6ZScsICdJbmRleCBzaXplJ10KICAg ICAgIH0pOwogICB9OwogCkBAIC0yMTUsNiArMjE2LDcgQEAgZnVuY3Rpb24o JCwgXywgUywgcGdBZG1pbiwgcGdCcm93c2VyLCBCYWNrZm9ybSwgYWxlcnRp ZnkpIHsKICAgICAgIGhhc1NRTDogIHRydWUsCiAgICAgICBoYXNEZXBlbmRz OiB0cnVlLAogICAgICAgaGFzU3RhdGlzdGljczogdHJ1ZSwKKyAgICAgIHN0 YXRzUHJldHRpZnlGaWVsZHM6IFsnU2l6ZScsICdJbmRleCBzaXplJ10sCiAg ICAgICBJbml0OiBmdW5jdGlvbigpIHsKICAgICAgICAgLyogQXZvaWQgbXVs aXRwbGUgcmVnaXN0cmF0aW9uIG9mIG1lbnVzICovCiAgICAgICAgIGlmICh0 aGlzLmluaXRpYWxpemVkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dGFibGVzL3RlbXBsYXRlcy9leGNsdXNpb25fY29uc3RyYWludC9zcWwvZGVm YXVsdC9zdGF0cy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxh dGVzL2V4Y2x1c2lvbl9jb25zdHJhaW50L3NxbC9kZWZhdWx0L3N0YXRzLnNx bAppbmRleCBiNzc5ZTYyLi42ZTE3MGI5IDEwMDY0NAotLS0gYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL2V4Y2x1c2lvbl9jb25zdHJhaW50 L3NxbC9kZWZhdWx0L3N0YXRzLnNxbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 YWJsZXMvdGVtcGxhdGVzL2V4Y2x1c2lvbl9jb25zdHJhaW50L3NxbC9kZWZh dWx0L3N0YXRzLnNxbApAQCAtNCwxMiArNCwxMiBAQCBTRUxFQ1QKICAgICBp ZHhfdHVwX2ZldGNoIEFTIHt7IGNvbm58cXRJZGVudChfKCdJbmRleCB0dXBs ZXMgZmV0Y2hlZCcpKSB9fSwKICAgICBpZHhfYmxrc19yZWFkIEFTIHt7IGNv bm58cXRJZGVudChfKCdJbmRleCBibG9ja3MgcmVhZCcpKSB9fSwKICAgICBp ZHhfYmxrc19oaXQgQVMge3sgY29ubnxxdElkZW50KF8oJ0luZGV4IGJsb2Nr cyBoaXQnKSkgfX0sCi0gICAgcGdfc2l6ZV9wcmV0dHkocGdfcmVsYXRpb25f c2l6ZSh7eyBleGlkIH19OjpPSUQpKSBBUyB7eyBjb25ufHF0SWRlbnQoXygn SW5kZXggc2l6ZScpKSB9fQorICAgIHBnX3JlbGF0aW9uX3NpemUoe3sgZXhp ZCB9fTo6T0lEKSBBUyB7eyBjb25ufHF0SWRlbnQoXygnSW5kZXggc2l6ZScp KSB9fQogeyM9PT0gRXh0ZW5kZWQgc3RhdHMgPT09I30KIHslIGlmIGlzX3Bn c3RhdHR1cGxlICV9CiAgICAgLHZlcnNpb24gQVMge3sgY29ubnxxdElkZW50 KF8oJ1ZlcnNpb24nKSkgfX0sCiAgICAgdHJlZV9sZXZlbCBBUyB7eyBjb25u fHF0SWRlbnQoXygnVHJlZSBsZXZlbCcpKSB9fSwKLSAgICBwZ19zaXplX3By ZXR0eShpbmRleF9zaXplKSBBUyB7eyBjb25ufHF0SWRlbnQoXygnSW5kZXgg c2l6ZScpKSB9fSwKKyAgICBpbmRleF9zaXplIEFTIHt7IGNvbm58cXRJZGVu dChfKCdJbmRleCBzaXplJykpIH19LAogICAgIHJvb3RfYmxvY2tfbm8gQVMg e3sgY29ubnxxdElkZW50KF8oJ1Jvb3QgYmxvY2sgbm8nKSkgfX0sCiAgICAg aW50ZXJuYWxfcGFnZXMgQVMge3sgY29ubnxxdElkZW50KF8oJ0ludGVybmFs IHBhZ2VzJykpIH19LAogICAgIGxlYWZfcGFnZXMgQVMge3sgY29ubnxxdElk ZW50KF8oJ0xlYWYgcGFnZXMnKSkgfX0sCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL2luZGV4L3NxbC9kZWZhdWx0L2Nv bGxfc3RhdHMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRl cy9pbmRleC9zcWwvZGVmYXVsdC9jb2xsX3N0YXRzLnNxbAppbmRleCBiY2Ey ZDA5Li42Y2FkZTZmIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJs ZXMvdGVtcGxhdGVzL2luZGV4L3NxbC9kZWZhdWx0L2NvbGxfc3RhdHMuc3Fs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvaW5kZXgv c3FsL2RlZmF1bHQvY29sbF9zdGF0cy5zcWwKQEAgLTMsNyArMyw3IEBAIFNF TEVDVAogICAgIGlkeF9zY2FuIEFTIHt7IGNvbm58cXRJZGVudChfKCdJbmRl eCBzY2FucycpKSB9fSwKICAgICBpZHhfdHVwX3JlYWQgQVMge3sgY29ubnxx dElkZW50KF8oJ0luZGV4IHR1cGxlcyByZWFkJykpIH19LAogICAgIGlkeF90 dXBfZmV0Y2ggQVMge3sgY29ubnxxdElkZW50KF8oJ0luZGV4IHR1cGxlcyBm ZXRjaGVkJykpIH19LAotICAgIHBnX3NpemVfcHJldHR5KHBnX3JlbGF0aW9u X3NpemUoaW5kZXhyZWxpZCkpIEFTIHt7IGNvbm58cXRJZGVudChfKCdTaXpl JykpIH19CisgICAgcGdfcmVsYXRpb25fc2l6ZShpbmRleHJlbGlkKSBBUyB7 eyBjb25ufHF0SWRlbnQoXygnU2l6ZScpKSB9fQogRlJPTQogICAgIHBnX3N0 YXRfYWxsX2luZGV4ZXMgc3RhdAogICAgIEpPSU4gcGdfY2xhc3MgY2xzIE9O IGNscy5vaWQ9aW5kZXhyZWxpZApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL3RlbXBsYXRlcy9pbmRleC9zcWwvZGVmYXVsdC9zdGF0cy5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL2luZGV4L3Nx bC9kZWZhdWx0L3N0YXRzLnNxbAppbmRleCA0NDU3MWU2Li40NTlhN2FhIDEw MDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL2lu ZGV4L3NxbC9kZWZhdWx0L3N0YXRzLnNxbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvdGVtcGxhdGVzL2luZGV4L3NxbC9kZWZhdWx0L3N0YXRzLnNx bApAQCAtNCwxMiArNCwxMiBAQCBTRUxFQ1QKICAgICBpZHhfdHVwX2ZldGNo IEFTIHt7IGNvbm58cXRJZGVudChfKCdJbmRleCB0dXBsZXMgZmV0Y2hlZCcp KSB9fSwKICAgICBpZHhfYmxrc19yZWFkIEFTIHt7IGNvbm58cXRJZGVudChf KCdJbmRleCBibG9ja3MgcmVhZCcpKSB9fSwKICAgICBpZHhfYmxrc19oaXQg QVMge3sgY29ubnxxdElkZW50KF8oJ0luZGV4IGJsb2NrcyBoaXQnKSkgfX0s Ci0gICAgcGdfc2l6ZV9wcmV0dHkocGdfcmVsYXRpb25fc2l6ZSh7eyBpZHgg fX06Ok9JRCkpIEFTIHt7IGNvbm58cXRJZGVudChfKCdJbmRleCBzaXplJykp IH19CisgICAgcGdfcmVsYXRpb25fc2l6ZSh7eyBpZHggfX06Ok9JRCkgQVMg e3sgY29ubnxxdElkZW50KF8oJ0luZGV4IHNpemUnKSkgfX0KIHsjPT09IEV4 dGVuZGVkIHN0YXRzID09PSN9CiB7JSBpZiBpc19wZ3N0YXR0dXBsZSAlfQog ICAgICx2ZXJzaW9uIEFTIHt7IGNvbm58cXRJZGVudChfKCdWZXJzaW9uJykp IH19LAogICAgIHRyZWVfbGV2ZWwgQVMge3sgY29ubnxxdElkZW50KF8oJ1Ry ZWUgbGV2ZWwnKSkgfX0sCi0gICAgcGdfc2l6ZV9wcmV0dHkoaW5kZXhfc2l6 ZSkgQVMge3sgY29ubnxxdElkZW50KF8oJ0luZGV4IHNpemUnKSkgfX0sCisg ICAgaW5kZXhfc2l6ZSBBUyB7eyBjb25ufHF0SWRlbnQoXygnSW5kZXggc2l6 ZScpKSB9fSwKICAgICByb290X2Jsb2NrX25vIEFTIHt7IGNvbm58cXRJZGVu dChfKCdSb290IGJsb2NrIG5vJykpIH19LAogICAgIGludGVybmFsX3BhZ2Vz IEFTIHt7IGNvbm58cXRJZGVudChfKCdJbnRlcm5hbCBwYWdlcycpKSB9fSwK ICAgICBsZWFmX3BhZ2VzIEFTIHt7IGNvbm58cXRJZGVudChfKCdMZWFmIHBh Z2VzJykpIH19LApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L3RlbXBsYXRlcy9pbmRleF9jb25zdHJhaW50L3NxbC9zdGF0cy5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL2luZGV4X2NvbnN0cmFp bnQvc3FsL3N0YXRzLnNxbAppbmRleCBjMTExYTgzLi43OTNkNzgwIDEwMDY0 NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL2luZGV4 X2NvbnN0cmFpbnQvc3FsL3N0YXRzLnNxbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvdGVtcGxhdGVzL2luZGV4X2NvbnN0cmFpbnQvc3FsL3N0YXRz LnNxbApAQCAtNCwxMiArNCwxMiBAQCBTRUxFQ1QKICAgICBpZHhfdHVwX2Zl dGNoIEFTIHt7IGNvbm58cXRJZGVudChfKCdJbmRleCB0dXBsZXMgZmV0Y2hl ZCcpKSB9fSwKICAgICBpZHhfYmxrc19yZWFkIEFTIHt7IGNvbm58cXRJZGVu dChfKCdJbmRleCBibG9ja3MgcmVhZCcpKSB9fSwKICAgICBpZHhfYmxrc19o aXQgQVMge3sgY29ubnxxdElkZW50KF8oJ0luZGV4IGJsb2NrcyBoaXQnKSkg fX0sCi0gICAgcGdfc2l6ZV9wcmV0dHkocGdfcmVsYXRpb25fc2l6ZSh7eyBj aWQgfX06Ok9JRCkpIEFTIHt7IGNvbm58cXRJZGVudChfKCdJbmRleCBzaXpl JykpIH19CisgICAgcGdfcmVsYXRpb25fc2l6ZSh7eyBjaWQgfX06Ok9JRCkg QVMge3sgY29ubnxxdElkZW50KF8oJ0luZGV4IHNpemUnKSkgfX0KIHsjPT09 IEV4dGVuZGVkIHN0YXRzID09PSN9CiB7JSBpZiBpc19wZ3N0YXR0dXBsZSAl fQogICAgICx2ZXJzaW9uIEFTIHt7IGNvbm58cXRJZGVudChfKCdWZXJzaW9u JykpIH19LAogICAgIHRyZWVfbGV2ZWwgQVMge3sgY29ubnxxdElkZW50KF8o J1RyZWUgbGV2ZWwnKSkgfX0sCi0gICAgcGdfc2l6ZV9wcmV0dHkoaW5kZXhf c2l6ZSkgQVMge3sgY29ubnxxdElkZW50KF8oJ0luZGV4IHNpemUnKSkgfX0s CisgICAgaW5kZXhfc2l6ZSBBUyB7eyBjb25ufHF0SWRlbnQoXygnSW5kZXgg c2l6ZScpKSB9fSwKICAgICByb290X2Jsb2NrX25vIEFTIHt7IGNvbm58cXRJ ZGVudChfKCdSb290IGJsb2NrIG5vJykpIH19LAogICAgIGludGVybmFsX3Bh Z2VzIEFTIHt7IGNvbm58cXRJZGVudChfKCdJbnRlcm5hbCBwYWdlcycpKSB9 fSwKICAgICBsZWFmX3BhZ2VzIEFTIHt7IGNvbm58cXRJZGVudChfKCdMZWFm IHBhZ2VzJykpIH19LApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFi bGVzL3RlbXBsYXRlcy90YWJsZS9qcy90YWJsZS5qcyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFibGUvanMvdGFibGUuanMKaW5kZXgg MzQ4N2U3ZS4uYmY2Yjc2ZiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dGFibGVzL3RlbXBsYXRlcy90YWJsZS9qcy90YWJsZS5qcworKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL3RhYmxlL2pzL3RhYmxlLmpz CkBAIC0xMyw3ICsxMywxMCBAQCBmdW5jdGlvbigkLCBfLCBTLCBwZ0FkbWlu LCBwZ0Jyb3dzZXIsIGFsZXJ0aWZ5KSB7CiAgICAgICAgIGxhYmVsOiAne3sg XygnVGFibGVzJykgfX0nLAogICAgICAgICB0eXBlOiAnY29sbC10YWJsZScs CiAgICAgICAgIGNvbHVtbnM6IFsnbmFtZScsICdyZWxvd25lcicsICdkZXNj cmlwdGlvbiddLAotICAgICAgICBoYXNTdGF0aXN0aWNzOiB0cnVlCisgICAg ICAgIGhhc1N0YXRpc3RpY3M6IHRydWUsCisgICAgICAgIHN0YXRzUHJldHRp ZnlGaWVsZHM6IFsnU2l6ZScsICdJbmRleGVzIHNpemUnLCAnVGFibGUgc2l6 ZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVG9hc3QgdGFi bGUgc2l6ZScsICdUdXBsZSBsZW5ndGgnLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJ0RlYWQgdHVwbGUgbGVuZ3RoJywgJ0ZyZWUgc3BhY2Un XQogICAgICAgfSk7CiAgIH07CiAKQEAgLTI1LDYgKzI4LDkgQEAgZnVuY3Rp b24oJCwgXywgUywgcGdBZG1pbiwgcGdCcm93c2VyLCBhbGVydGlmeSkgewog ICAgICAgaGFzU1FMOiB0cnVlLAogICAgICAgaGFzRGVwZW5kczogdHJ1ZSwK ICAgICAgIGhhc1N0YXRpc3RpY3M6IHRydWUsCisgICAgICBzdGF0c1ByZXR0 aWZ5RmllbGRzOiBbJ1NpemUnLCAnSW5kZXhlcyBzaXplJywgJ1RhYmxlIHNp emUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdUb2FzdCB0YWJs ZSBzaXplJywgJ1R1cGxlIGxlbmd0aCcsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJ0RlYWQgdHVwbGUgbGVuZ3RoJywgJ0ZyZWUgc3BhY2UnXSwK ICAgICAgIHNxbEFsdGVySGVscDogJ3NxbC1hbHRlcnRhYmxlLmh0bWwnLAog ICAgICAgc3FsQ3JlYXRlSGVscDogJ3NxbC1jcmVhdGV0YWJsZS5odG1sJywK ICAgICAgIGRpYWxvZ0hlbHA6ICd7eyB1cmxfZm9yKCdoZWxwLnN0YXRpYycs IGZpbGVuYW1lPSd0YWJsZV9kaWFsb2cuaHRtbCcpIH19JywKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFibGUvc3Fs L2RlZmF1bHQvY29sbF90YWJsZV9zdGF0cy5zcWwgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvdGVtcGxhdGVzL3RhYmxlL3NxbC9kZWZhdWx0L2NvbGxfdGFi bGVfc3RhdHMuc3FsCmluZGV4IGVlM2ZmYTMuLjYzYTY4MjYgMTAwNjQ0Ci0t LSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFibGUvc3Fs L2RlZmF1bHQvY29sbF90YWJsZV9zdGF0cy5zcWwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdGFibGVzL3RlbXBsYXRlcy90YWJsZS9zcWwvZGVmYXVsdC9jb2xs X3RhYmxlX3N0YXRzLnNxbApAQCAtMTQsMTIgKzE0LDEyIEBAIFNFTEVDVAog ICAgIGF1dG92YWN1dW1fY291bnQgQVMge3sgY29ubnxxdElkZW50KF8oJ0F1 dG92YWN1dW0gY291bnRlcicpKSB9fSwKICAgICBhbmFseXplX2NvdW50IEFT IHt7IGNvbm58cXRJZGVudChfKCdBbmFseXplIGNvdW50ZXInKSkgfX0sCiAg ICAgYXV0b2FuYWx5emVfY291bnQgQVMge3sgY29ubnxxdElkZW50KF8oJ0F1 dG9hbmFseXplIGNvdW50ZXInKSkgfX0sCi0gICAgcGdfc2l6ZV9wcmV0dHko cGdfcmVsYXRpb25fc2l6ZShzdC5yZWxpZCkKKyAgICBwZ19yZWxhdGlvbl9z aXplKHN0LnJlbGlkKQogICAgICAgICArIENBU0UgV0hFTiBjbC5yZWx0b2Fz dHJlbGlkID0gMCBUSEVOIDAgRUxTRSBwZ19yZWxhdGlvbl9zaXplKGNsLnJl bHRvYXN0cmVsaWQpCiAgICAgICAgICsgQ09BTEVTQ0UoKFNFTEVDVCBTVU0o cGdfcmVsYXRpb25fc2l6ZShpbmRleHJlbGlkKSkKICAgICAgICAgICAgICAg ICAgICAgICAgIEZST00gcGdfaW5kZXggV0hFUkUgaW5kcmVsaWQ9Y2wucmVs dG9hc3RyZWxpZCk6OmludDgsIDApIEVORAogICAgICAgICArIENPQUxFU0NF KChTRUxFQ1QgU1VNKHBnX3JlbGF0aW9uX3NpemUoaW5kZXhyZWxpZCkpCi0g ICAgICAgICAgICAgICAgICAgICAgICBGUk9NIHBnX2luZGV4IFdIRVJFIGlu ZHJlbGlkPXN0LnJlbGlkKTo6aW50OCwgMCkpIEFTIHt7IGNvbm58cXRJZGVu dChfKCdTaXplJykpIH19CisgICAgICAgICAgICAgICAgICAgICAgICBGUk9N IHBnX2luZGV4IFdIRVJFIGluZHJlbGlkPXN0LnJlbGlkKTo6aW50OCwgMCkg QVMge3sgY29ubnxxdElkZW50KF8oJ1NpemUnKSkgfX0KIEZST00KICAgICBw Z19zdGF0X2FsbF90YWJsZXMgc3QKIEpPSU4KZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFibGUvc3FsL2RlZmF1bHQv c3RhdHMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90 YWJsZS9zcWwvZGVmYXVsdC9zdGF0cy5zcWwKaW5kZXggNmE3M2U1My4uMzAx MzdhOCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBs YXRlcy90YWJsZS9zcWwvZGVmYXVsdC9zdGF0cy5zcWwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90YWJsZS9zcWwvZGVmYXVsdC9z dGF0cy5zcWwKQEAgLTI1LDIzICsyNSwyMyBAQCBTRUxFQ1QKICAgICBhdXRv dmFjdXVtX2NvdW50IEFTIHt7IGNvbm58cXRJZGVudChfKCdBdXRvdmFjdXVt IGNvdW50ZXInKSkgfX0sCiAgICAgYW5hbHl6ZV9jb3VudCBBUyB7eyBjb25u fHF0SWRlbnQoXygnQW5hbHl6ZSBjb3VudGVyJykpIH19LAogICAgIGF1dG9h bmFseXplX2NvdW50IEFTIHt7IGNvbm58cXRJZGVudChfKCdBdXRvYW5hbHl6 ZSBjb3VudGVyJykpIH19LAotICAgIHBnX3NpemVfcHJldHR5KHBnX3JlbGF0 aW9uX3NpemUoc3RhdC5yZWxpZCkpIEFTIHt7IGNvbm58cXRJZGVudChfKCdU YWJsZSBzaXplJykpIH19LAotICAgIENBU0UgV0hFTiBjbC5yZWx0b2FzdHJl bGlkID0gMCBUSEVOIE5VTEwgRUxTRSBwZ19zaXplX3ByZXR0eShwZ19yZWxh dGlvbl9zaXplKGNsLnJlbHRvYXN0cmVsaWQpCisgICAgcGdfcmVsYXRpb25f c2l6ZShzdGF0LnJlbGlkKSBBUyB7eyBjb25ufHF0SWRlbnQoXygnVGFibGUg c2l6ZScpKSB9fSwKKyAgICBDQVNFIFdIRU4gY2wucmVsdG9hc3RyZWxpZCA9 IDAgVEhFTiBOVUxMIEVMU0UgcGdfcmVsYXRpb25fc2l6ZShjbC5yZWx0b2Fz dHJlbGlkKQogICAgICAgICArIENPQUxFU0NFKChTRUxFQ1QgU1VNKHBnX3Jl bGF0aW9uX3NpemUoaW5kZXhyZWxpZCkpCi0gICAgICAgICAgICAgICAgICAg ICAgICBGUk9NIHBnX2luZGV4IFdIRVJFIGluZHJlbGlkPWNsLnJlbHRvYXN0 cmVsaWQpOjppbnQ4LCAwKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIEZS T00gcGdfaW5kZXggV0hFUkUgaW5kcmVsaWQ9Y2wucmVsdG9hc3RyZWxpZCk6 OmludDgsIDApCiAgICAgICAgIEVORCBBUyB7eyBjb25ufHF0SWRlbnQoXygn VG9hc3QgdGFibGUgc2l6ZScpKSB9fSwKLSAgICBwZ19zaXplX3ByZXR0eShD T0FMRVNDRSgoU0VMRUNUIFNVTShwZ19yZWxhdGlvbl9zaXplKGluZGV4cmVs aWQpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGUk9NIHBn X2luZGV4IFdIRVJFIGluZHJlbGlkPXN0YXQucmVsaWQpOjppbnQ4LCAwKSkK KyAgICBDT0FMRVNDRSgoU0VMRUNUIFNVTShwZ19yZWxhdGlvbl9zaXplKGlu ZGV4cmVsaWQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBG Uk9NIHBnX2luZGV4IFdIRVJFIGluZHJlbGlkPXN0YXQucmVsaWQpOjppbnQ4 LCAwKQogICAgICAgICBBUyB7eyBjb25ufHF0SWRlbnQoXygnSW5kZXhlcyBz aXplJykpIH19CiB7JSBpZiBpc19wZ3N0YXR0dXBsZSAlfQogeyM9PSBFWFRF TkRFRCBTVEFUUyA9PSN9CiAgICAgLHR1cGxlX2NvdW50IEFTIHt7IGNvbm58 cXRJZGVudChfKCdUdXBsZSBjb3VudCcpKSB9fSwKLSAgICBwZ19zaXplX3By ZXR0eSh0dXBsZV9sZW4pIEFTIHt7IGNvbm58cXRJZGVudChfKCdUdXBsZSBs ZW5ndGgnKSkgfX0sCisgICAgdHVwbGVfbGVuIEFTIHt7IGNvbm58cXRJZGVu dChfKCdUdXBsZSBsZW5ndGgnKSkgfX0sCiAgICAgdHVwbGVfcGVyY2VudCBB UyB7eyBjb25ufHF0SWRlbnQoXygnVHVwbGUgcGVyY2VudCcpKSB9fSwKICAg ICBkZWFkX3R1cGxlX2NvdW50IEFTIHt7IGNvbm58cXRJZGVudChfKCdEZWFk IHR1cGxlIGNvdW50JykpIH19LAotICAgIHBnX3NpemVfcHJldHR5KGRlYWRf dHVwbGVfbGVuKSBBUyB7eyBjb25ufHF0SWRlbnQoXygnRGVhZCB0dXBsZSBs ZW5ndGgnKSkgfX0sCisgICAgZGVhZF90dXBsZV9sZW4gQVMge3sgY29ubnxx dElkZW50KF8oJ0RlYWQgdHVwbGUgbGVuZ3RoJykpIH19LAogICAgIGRlYWRf dHVwbGVfcGVyY2VudCBBUyB7eyBjb25ufHF0SWRlbnQoXygnRGVhZCB0dXBs ZSBwZXJjZW50JykpIH19LAotICAgIHBnX3NpemVfcHJldHR5KGZyZWVfc3Bh Y2UpIEFTIHt7IGNvbm58cXRJZGVudChfKCdGcmVlIHNwYWNlJykpIH19LAor ICAgIGZyZWVfc3BhY2UgQVMge3sgY29ubnxxdElkZW50KF8oJ0ZyZWUgc3Bh Y2UnKSkgfX0sCiAgICAgZnJlZV9wZXJjZW50IEFTIHt7IGNvbm58cXRJZGVu dChfKCdGcmVlIHBlcmNlbnQnKSkgfX0KIEZST00KICAgICBwZ3N0YXR0dXBs ZSgne3tzY2hlbWFfbmFtZX19Lnt7dGFibGVfbmFtZX19JyksIHBnX3N0YXRf YWxsX3RhYmxlcyBzdGF0CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvdGVtcGxhdGVz L2RhdGFiYXNlcy9qcy9kYXRhYmFzZXMuanMgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvdGVtcGxhdGVz L2RhdGFiYXNlcy9qcy9kYXRhYmFzZXMuanMKaW5kZXggYzU2N2ZiNy4uYmJl NzNmZSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3RlbXBsYXRlcy9kYXRhYmFzZXMv anMvZGF0YWJhc2VzLmpzCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZW1wbGF0ZXMvZGF0YWJh c2VzL2pzL2RhdGFiYXNlcy5qcwpAQCAtMTIsNyArMTIsOCBAQCBmdW5jdGlv bigkLCBfLCBTLCBwZ0FkbWluLCBwZ0Jyb3dzZXIsIEFsZXJ0aWZ5KSB7CiAg ICAgICAgIGxhYmVsOiAne3sgXygnRGF0YWJhc2VzJykgfX0nLAogICAgICAg ICB0eXBlOiAnY29sbC1kYXRhYmFzZScsCiAgICAgICAgIGNvbHVtbnM6IFsn bmFtZScsICdkYXRvd25lcicsICdjb21tZW50cyddLAotICAgICAgICBoYXNT dGF0aXN0aWNzOiB0cnVlCisgICAgICAgIGhhc1N0YXRpc3RpY3M6IHRydWUs CisgICAgICAgIHN0YXRzUHJldHRpZnlGaWVsZHM6IFsnU2l6ZScsICdTaXpl IG9mIHRlbXBvcmFyeSBmaWxlcyddCiAgICAgICB9KTsKICAgfTsKIApAQCAt MjYsNiArMjcsNyBAQCBmdW5jdGlvbigkLCBfLCBTLCBwZ0FkbWluLCBwZ0Jy b3dzZXIsIEFsZXJ0aWZ5KSB7CiAgICAgICBoYXNTUUw6IHRydWUsCiAgICAg ICBoYXNEZXBlbmRzOiB0cnVlLAogICAgICAgaGFzU3RhdGlzdGljczogdHJ1 ZSwKKyAgICAgIHN0YXRzUHJldHRpZnlGaWVsZHM6IFsnU2l6ZScsICdTaXpl IG9mIHRlbXBvcmFyeSBmaWxlcyddLAogICAgICAgY2FuRHJvcDogZnVuY3Rp b24obm9kZSkgewogICAgICAgICByZXR1cm4gbm9kZS5jYW5Ecm9wOwogICAg ICAgfSwKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZW1wbGF0ZXMvZGF0YWJhc2Vz L3NxbC85LjJfcGx1cy9zdGF0cy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvdGVtcGxhdGVzL2Rh dGFiYXNlcy9zcWwvOS4yX3BsdXMvc3RhdHMuc3FsCmluZGV4IGUwYzdlNmIu LjViMTkyNDMgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZW1wbGF0ZXMvZGF0YWJh c2VzL3NxbC85LjJfcGx1cy9zdGF0cy5zcWwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3RlbXBs YXRlcy9kYXRhYmFzZXMvc3FsLzkuMl9wbHVzL3N0YXRzLnNxbApAQCAtMTcs MTEgKzE3LDExIEBAIFNFTEVDVAogICAgIHNsYXZlLmNvbmZsX2J1ZmZlcnBp biBBUyB7eyBjb25ufHF0SWRlbnQoXygnQnVmZmVycGluIGNvbmZsaWN0cycp KSB9fSwKICAgICBzbGF2ZS5jb25mbF9kZWFkbG9jayBBUyB7eyBjb25ufHF0 SWRlbnQoXygnRGVhZGxvY2sgY29uZmxpY3RzJykpIH19LAogICAgIHRlbXBf ZmlsZXMgQVMge3sgY29ubnxxdElkZW50KF8oIlRlbXBvcmFyeSBmaWxlcyIp KSB9fSwKLSAgICBwZ19zaXplX3ByZXR0eSh0ZW1wX2J5dGVzKSBBUyB7eyBj b25ufHF0SWRlbnQoXygiU2l6ZSBvZiB0ZW1wb3JhcnkgZmlsZXMiKSkgfX0s CisgICAgdGVtcF9ieXRlcyBBUyB7eyBjb25ufHF0SWRlbnQoXygiU2l6ZSBv ZiB0ZW1wb3JhcnkgZmlsZXMiKSkgfX0sCiAgICAgZGVhZGxvY2tzIEFTIHt7 IGNvbm58cXRJZGVudChfKCJEZWFkbG9ja3MiKSkgfX0sCiAgICAgYmxrX3Jl YWRfdGltZSBBUyB7eyBjb25ufHF0SWRlbnQoXygiQmxvY2sgcmVhZCB0aW1l IikpIH19LAogICAgIGJsa193cml0ZV90aW1lIEFTIHt7IGNvbm58cXRJZGVu dChfKCJCbG9jayB3cml0ZSB0aW1lIikpIH19LAotICAgIHBnX3NpemVfcHJl dHR5KHBnX2RhdGFiYXNlX3NpemUoZGIuZGF0aWQpKSBBUyB7eyBjb25ufHF0 SWRlbnQoXygnU2l6ZScpKSB9fQorICAgIHBnX2RhdGFiYXNlX3NpemUoZGIu ZGF0aWQpIEFTIHt7IGNvbm58cXRJZGVudChfKCdTaXplJykpIH19CiBGUk9N CiAgICAgcGdfc3RhdF9kYXRhYmFzZSBkYgogICAgIExFRlQgSk9JTiBwZ19z dGF0X2RhdGFiYXNlX2NvbmZsaWN0cyBzbGF2ZSBPTiBkYi5kYXRpZD1zbGF2 ZS5kYXRpZApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3RlbXBsYXRlcy9kYXRhYmFz ZXMvc3FsL2RlZmF1bHQvc3RhdHMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3RlbXBsYXRlcy9k YXRhYmFzZXMvc3FsL2RlZmF1bHQvc3RhdHMuc3FsCmluZGV4IDgyYjUyZDAu LjRmMjNiOWQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZW1wbGF0ZXMvZGF0YWJh c2VzL3NxbC9kZWZhdWx0L3N0YXRzLnNxbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvdGVtcGxh dGVzL2RhdGFiYXNlcy9zcWwvZGVmYXVsdC9zdGF0cy5zcWwKQEAgLTE2LDcg KzE2LDcgQEAgU0VMRUNUCiAgICAgc2xhdmUuY29uZmxfc25hcHNob3QgQVMg e3sgY29ubnxxdElkZW50KF8oJ1NuYXBzaG90IGNvbmZsaWN0cycpKSB9fSwK ICAgICBzbGF2ZS5jb25mbF9idWZmZXJwaW4gQVMge3sgY29ubnxxdElkZW50 KF8oJ0J1ZmZlcnBpbiBjb25mbGljdHMnKSkgfX0sCiAgICAgc2xhdmUuY29u ZmxfZGVhZGxvY2sgQVMge3sgY29ubnxxdElkZW50KF8oJ0RlYWRsb2NrIGNv bmZsaWN0cycpKSB9fSwKLSAgICBwZ19zaXplX3ByZXR0eShwZ19kYXRhYmFz ZV9zaXplKGRiLmRhdGlkKSkgQVMge3sgY29ubnxxdElkZW50KF8oJ1NpemUn KSkgfX0KKyAgICBwZ19kYXRhYmFzZV9zaXplKGRiLmRhdGlkKSBBUyB7eyBj b25ufHF0SWRlbnQoXygnU2l6ZScpKSB9fQogRlJPTQogICAgIHBnX3N0YXRf ZGF0YWJhc2UgZGIKICAgICBMRUZUIEpPSU4gcGdfc3RhdF9kYXRhYmFzZV9j b25mbGljdHMgc2xhdmUgT04gZGIuZGF0aWQ9c2xhdmUuZGF0aWQKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL3RhYmxlc3BhY2VzL3RlbXBsYXRlcy90YWJsZXNwYWNlcy9qcy90YWJs ZXNwYWNlcy5qcyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL3RhYmxlc3BhY2VzL3RlbXBsYXRlcy90YWJsZXNwYWNlcy9q cy90YWJsZXNwYWNlcy5qcwppbmRleCA2MDEzNzJlLi4xNGZlYjgwIDEwMDY0 NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy90YWJsZXNwYWNlcy90ZW1wbGF0ZXMvdGFibGVzcGFjZXMvanMvdGFi bGVzcGFjZXMuanMKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvdGFibGVzcGFjZXMvdGVtcGxhdGVzL3RhYmxlc3Bh Y2VzL2pzL3RhYmxlc3BhY2VzLmpzCkBAIC05LDcgKzksOCBAQCBmdW5jdGlv bigkLCBfLCBTLCBwZ0FkbWluLCBwZ0Jyb3dzZXIsIGFsZXJ0aWZ5KSB7CiAg ICAgICAgIGxhYmVsOiAne3sgXygnVGFibGVzcGFjZXMnKSB9fScsCiAgICAg ICAgIHR5cGU6ICdjb2xsLXRhYmxlc3BhY2UnLAogICAgICAgICBjb2x1bW5z OiBbJ25hbWUnLCAnc3BjdXNlcicsICdkZXNjcmlwdGlvbiddLAotICAgICAg ICBoYXNTdGF0aXN0aWNzOiB0cnVlCisgICAgICAgIGhhc1N0YXRpc3RpY3M6 IHRydWUsCisgICAgICAgIHN0YXRzUHJldHRpZnlGaWVsZHM6IFsnU2l6ZSdd CiAgICAgICB9KTsKICAgfTsKIApAQCAtMjUsNiArMjYsNyBAQCBmdW5jdGlv bigkLCBfLCBTLCBwZ0FkbWluLCBwZ0Jyb3dzZXIsIGFsZXJ0aWZ5KSB7CiAg ICAgICBjYW5Ecm9wOiB0cnVlLAogICAgICAgaGFzRGVwZW5kczogdHJ1ZSwK ICAgICAgIGhhc1N0YXRpc3RpY3M6IHRydWUsCisgICAgICBzdGF0c1ByZXR0 aWZ5RmllbGRzOiBbJ1NpemUnXSwKICAgICAgIEluaXQ6IGZ1bmN0aW9uKCkg ewogICAgICAgICAvKiBBdm9pZCBtdWxpdHBsZSByZWdpc3RyYXRpb24gb2Yg bWVudXMgKi8KICAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpCmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy90YWJsZXNwYWNlcy90ZW1wbGF0ZXMvdGFibGVzcGFjZXMvc3FsL2Rl ZmF1bHQvc3RhdHMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvdGFibGVzcGFjZXMvdGVtcGxhdGVzL3RhYmxlc3Bh Y2VzL3NxbC9kZWZhdWx0L3N0YXRzLnNxbAppbmRleCAzZjkxYjAyLi41ZmM0 MjllIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy90YWJsZXNwYWNlcy90ZW1wbGF0ZXMvdGFibGVzcGFj ZXMvc3FsL2RlZmF1bHQvc3RhdHMuc3FsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3RhYmxlc3BhY2VzL3RlbXBs YXRlcy90YWJsZXNwYWNlcy9zcWwvZGVmYXVsdC9zdGF0cy5zcWwKQEAgLTEs OSArMSw5IEBACiB7IyMjIFNRTCB0byBmZXRjaCB0YWJsZXNwYWNlIG9iamVj dCBzdGF0cyAjIyN9CiB7JSBpZiB0c2lkICV9Ci1TRUxFQ1QgcGdfc2l6ZV9w cmV0dHkocGdfdGFibGVzcGFjZV9zaXplKHt7IHRzaWR8cXRMaXRlcmFsIH19 OjpPSUQpKSBBUyB7eyBjb25ufHF0SWRlbnQoXygnU2l6ZScpKSB9fQorU0VM RUNUIHBnX3RhYmxlc3BhY2Vfc2l6ZSh7eyB0c2lkfHF0TGl0ZXJhbCB9fTo6 T0lEKSBBUyB7eyBjb25ufHF0SWRlbnQoXygnU2l6ZScpKSB9fQogeyUgZWxz ZSAlfQogU0VMRUNUIHRzLnNwY25hbWUgQVMge3sgY29ubnxxdElkZW50KF8o J05hbWUnKSkgfX0sCi0gICAgcGdfc2l6ZV9wcmV0dHkocGdfdGFibGVzcGFj ZV9zaXplKHRzLm9pZCkpIEFTIHt7IGNvbm58cXRJZGVudChfKCdTaXplJykp IH19CisgICAgcGdfdGFibGVzcGFjZV9zaXplKHRzLm9pZCkgQVMge3sgY29u bnxxdElkZW50KF8oJ1NpemUnKSkgfX0KIEZST00KICAgICBwZ19jYXRhbG9n LnBnX3RhYmxlc3BhY2UgdHM7CiB7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vbWlzYy9zdGF0aXN0aWNzL3N0YXRpYy9qcy9zdGF0aXN0 aWNzLmpzIGIvd2ViL3BnYWRtaW4vbWlzYy9zdGF0aXN0aWNzL3N0YXRpYy9q cy9zdGF0aXN0aWNzLmpzCmluZGV4IDExOTFiMTYuLmUxYmJkNTUgMTAwNjQ0 Ci0tLSBhL3dlYi9wZ2FkbWluL21pc2Mvc3RhdGlzdGljcy9zdGF0aWMvanMv c3RhdGlzdGljcy5qcworKysgYi93ZWIvcGdhZG1pbi9taXNjL3N0YXRpc3Rp Y3Mvc3RhdGljL2pzL3N0YXRpc3RpY3MuanMKQEAgLTEsNyArMSw3IEBACiBk ZWZpbmUoWwogICAndW5kZXJzY29yZScsICd1bmRlcnNjb3JlLnN0cmluZycs ICdqcXVlcnknLCAncGdhZG1pbi5icm93c2VyJywgJ2JhY2tncmlkJywKLSAg J2FsZXJ0aWZ5JywgJ3djZG9ja2VyJywgJ3BnYWRtaW4uYmFja2dyaWQnLCAn cGdhZG1pbi5hbGVydGlmeWpzJywgJ3BnYWRtaW4uYnJvd3Nlci5tZXNzYWdl cycsCi1dLCBmdW5jdGlvbihfLCBTLCAkLCBwZ0Jyb3dzZXIsIEJhY2tncmlk LCBBbGVydGlmeSkgeworICAnYWxlcnRpZnknLCAnc291cmNlcy9zaXplX3By ZXR0aWZ5JworXSwgZnVuY3Rpb24oXywgUywgJCwgcGdCcm93c2VyLCBCYWNr Z3JpZCwgQWxlcnRpZnksIHNpemVQcmV0dGlmeSkgewogCiAgIGlmIChwZ0Jy b3dzZXIuTm9kZVN0YXRpc3RpY3MpCiAgICAgcmV0dXJuIHBnQnJvd3Nlci5O b2RlU3RhdGlzdGljczsKQEAgLTEyLDYgKzEyLDI1IEBAIGRlZmluZShbCiAg ICAgcmV0dXJuIHBnQnJvd3Nlci5Ob2RlU3RhdGlzdGljczsKICAgfQogCisg IHZhciBTaXplRm9ybWF0dGVyID0gQmFja2dyaWQuU2l6ZUZvcm1hdHRlciA9 IGZ1bmN0aW9uICgpIHt9OworICBfLmV4dGVuZChTaXplRm9ybWF0dGVyLnBy b3RvdHlwZSwgeworICAgICAgLyoqCisgICAgICAgICBUYWtlcyBhIHJhdyB2 YWx1ZSBmcm9tIGEgbW9kZWwgYW5kIHJldHVybnMgdGhlIGh1bWFuIHJlYWRh YmxlIGZvcm1hdHRlZAorICAgICAgICAgc3RyaW5nIGZvciBkaXNwbGF5Lgor CisgICAgICAgICBAbWVtYmVyIEJhY2tncmlkLlNpemVGb3JtYXR0ZXIKKyAg ICAgICAgIEBwYXJhbSB7Kn0gcmF3RGF0YQorICAgICAgICAgQHBhcmFtIHtC YWNrYm9uZS5Nb2RlbH0gbW9kZWwgVXNlZCBmb3IgbW9yZSBjb21wbGljYXRl ZCBmb3JtYXR0aW5nCisgICAgICAgICBAcmV0dXJuIHsqfQorICAgICAgKi8K KyAgICAgIGZyb21SYXc6IGZ1bmN0aW9uIChyYXdEYXRhLCBtb2RlbCkgewor ICAgICAgICByZXR1cm4gc2l6ZVByZXR0aWZ5KHJhd0RhdGEpOworICAgICAg fSwKKyAgICAgIHRvUmF3OiBmdW5jdGlvbiAoZm9ybWF0dGVkRGF0YSwgbW9k ZWwpIHsKKyAgICAgICAgcmV0dXJuIGZvcm1hdHRlZERhdGE7CisgICAgICB9 CisgIH0pOworCiAgIHZhciBQR0Jvb2xlYW5DZWxsID0gQmFja2dyaWQuRXh0 ZW5zaW9uLlN3aXRjaENlbGwuZXh0ZW5kKHsKICAgICAgIGRlZmF1bHRzOiBf LmV4dGVuZCh7fSwgQmFja2dyaWQuRXh0ZW5zaW9uLlN3aXRjaENlbGwucHJv dG90eXBlLmRlZmF1bHRzKQogICB9KSwKQEAgLTIwMCw5ICsyMTksOSBAQCBk ZWZpbmUoWwogICAgICAgICAgICAgICBpZiAocmVzLmRhdGEpIHsKICAgICAg ICAgICAgICAgICB2YXIgZGF0YSA9IHJlcy5kYXRhOwogICAgICAgICAgICAg ICAgIGlmIChub2RlLmhhc0NvbGxlY3RpdmVTdGF0aXN0aWNzIHx8IGRhdGFb J3Jvd3MnXS5sZW5ndGggPiAxKSB7Ci0gICAgICAgICAgICAgICAgICBzZWxm Ll9fY3JlYXRlTXVsdGlMaW5lU3RhdGlzdGljcy5jYWxsKHNlbGYsIGRhdGEp OworICAgICAgICAgICAgICAgICAgc2VsZi5fX2NyZWF0ZU11bHRpTGluZVN0 YXRpc3RpY3MuY2FsbChzZWxmLCBkYXRhLCBub2RlLnN0YXRzUHJldHRpZnlG aWVsZHMpOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg ICAgICAgICBzZWxmLl9fY3JlYXRlU2luZ2xlTGluZVN0YXRpc3RpY3MuY2Fs bChzZWxmLCBkYXRhKTsKKyAgICAgICAgICAgICAgICAgIHNlbGYuX19jcmVh dGVTaW5nbGVMaW5lU3RhdGlzdGljcy5jYWxsKHNlbGYsIGRhdGEsIG5vZGUu c3RhdHNQcmV0dGlmeUZpZWxkcyk7CiAgICAgICAgICAgICAgICAgfQogCiAg ICAgICAgICAgICAgICAgaWYgKHNlbGYuZ3JpZCkgewpAQCAtMjk0LDI0ICsz MTMsMjkgQEAgZGVmaW5lKFsKICAgICAgICAgfQogICAgIH0sCiAKLSAgICBf X2NyZWF0ZU11bHRpTGluZVN0YXRpc3RpY3M6IGZ1bmN0aW9uKGRhdGEpIHsK KyAgICBfX2NyZWF0ZU11bHRpTGluZVN0YXRpc3RpY3M6IGZ1bmN0aW9uKGRh dGEsIHByZXR0aWZ5RmllbGRzKSB7CiAgICAgICB2YXIgcm93cyA9IGRhdGFb J3Jvd3MnXSwKICAgICAgICAgICBjb2x1bW5zID0gZGF0YVsnY29sdW1ucydd OwogCiAgICAgICB0aGlzLmNvbHVtbnMgPSBbXTsKICAgICAgIGZvciAodmFy IGlkeCBpbiBjb2x1bW5zKSB7Ci0gICAgICAgIHZhciBjID0gY29sdW1uc1tp ZHhdOwotICAgICAgICB0aGlzLmNvbHVtbnMucHVzaCh7Ci0gICAgICAgICAg ZWRpdGFibGU6IGZhbHNlLAotICAgICAgICAgIG5hbWU6IGNbJ25hbWUnXSwK LSAgICAgICAgICBjZWxsOiB0eXBlQ2VsbE1hcHBlcltjWyd0eXBlX2NvZGUn XV0gfHwgJ3N0cmluZycKLSAgICAgICAgfSk7CisgICAgICAgIHZhciByYXdD b2x1bW4gPSBjb2x1bW5zW2lkeF0sCisgICAgICAgICAgICBjb2wgPSB7Cisg ICAgICAgICAgICBlZGl0YWJsZTogZmFsc2UsCisgICAgICAgICAgICBuYW1l OiByYXdDb2x1bW5bJ25hbWUnXSwKKyAgICAgICAgICAgIGNlbGw6IHR5cGVD ZWxsTWFwcGVyW3Jhd0NvbHVtblsndHlwZV9jb2RlJ11dIHx8ICdzdHJpbmcn CisgICAgICAgICAgIH07CisgICAgICAgICAgIGlmIChfLmluZGV4T2YocHJl dHRpZnlGaWVsZHMsIHJhd0NvbHVtblsnbmFtZSddKSAhPSAtMSkgeworICAg ICAgICAgICAgY29sWydmb3JtYXR0ZXInXSA9IFNpemVGb3JtYXR0ZXIKKyAg ICAgICAgICAgfQorICAgICAgICB0aGlzLmNvbHVtbnMucHVzaChjb2wpOwor CiAgICAgICB9CiAKICAgICAgIHRoaXMuY29sbGVjdGlvbi5yZXNldChyb3dz KTsKICAgICB9LAogCi0gICAgX19jcmVhdGVTaW5nbGVMaW5lU3RhdGlzdGlj czogZnVuY3Rpb24oZGF0YSkgeworICAgIF9fY3JlYXRlU2luZ2xlTGluZVN0 YXRpc3RpY3M6IGZ1bmN0aW9uKGRhdGEsIHByZXR0aWZ5RmllbGRzKSB7CiAg ICAgICB2YXIgcm93ID0gZGF0YVsncm93cyddWzBdLAogICAgICAgICAgIGNv bHVtbnMgPSBkYXRhWydjb2x1bW5zJ10KICAgICAgICAgICByZXMgPSBbXTsK QEAgLTMyMiw3ICszNDYsNyBAQCBkZWZpbmUoWwogICAgICAgICByZXMucHVz aCh7CiAgICAgICAgICAgJ3N0YXRpc3RpY3MnOiBuYW1lLAogICAgICAgICAg IC8vIENoZWNrIGlmIHJvdyBpcyB1bmRlZmluZWQ/Ci0gICAgICAgICAgJ3Zh bHVlJzogcm93ICYmIHJvd1tuYW1lXSA/IHJvd1tuYW1lXSA6IG51bGwKKyAg ICAgICAgICAndmFsdWUnOiByb3cgJiYgcm93W25hbWVdID8gKChfLmluZGV4 T2YocHJldHRpZnlGaWVsZHMsIG5hbWUpICE9IC0xKSA/IHNpemVQcmV0dGlm eShyb3dbbmFtZV0pIDogcm93W25hbWVdKSA6IG51bGwKICAgICAgICAgfSk7 CiAgICAgICB9CiAKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9q cy9zaXplX3ByZXR0aWZ5LmpzIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL3Np emVfcHJldHRpZnkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uMTNhMjZhZQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L3N0YXRpYy9qcy9zaXplX3ByZXR0aWZ5LmpzCkBAIC0wLDAgKzEsNDIgQEAK K2RlZmluZShbXSwKKyAgZnVuY3Rpb24gKCkgeworICAgIHZhciBzaXplUHJl dHRpZnkgPSBmdW5jdGlvbiAocmF3U2l6ZSkgeworICAgICAgdmFyIHNpemUg PSBNYXRoLmFicyhyYXdTaXplKSwKKyAgICAgICAgICBsaW1pdCA9IDEwICog MTAyNCwKKyAgICAgICAgICBsaW1pdDIgPSBsaW1pdCAtIDE7CisKKyAgICAg IGlmIChzaXplIDwgbGltaXQpCisgICAgICAgIHJldHVybiBzaXplICsgIiBi eXRlcyI7CisgICAgICBlbHNlCisgICAgICB7CisgICAgICAgIHNpemUgPSBz aXplIC8gMTAyNDsgLyoga2VlcCBvbmUgZXh0cmEgYml0IGZvciByb3VuZGlu ZyAqLworICAgICAgICBpZiAoc2l6ZSA8IGxpbWl0MikKKyAgICAgICAgICBy ZXR1cm4gTWF0aC5yb3VuZChzaXplKSArICIga0IiOworICAgICAgICBlbHNl CisgICAgICAgIHsKKyAgICAgICAgICBzaXplID0gc2l6ZSAvIDEwMjQ7Cisg ICAgICAgICAgaWYgKHNpemUgPCBsaW1pdDIpCisgICAgICAgICAgICByZXR1 cm4gTWF0aC5yb3VuZChzaXplKSArICIgTUIiOworICAgICAgICAgIGVsc2UK KyAgICAgICAgICB7CisgICAgICAgICAgICBzaXplID0gc2l6ZSAvIDEwMjQ7 CisgICAgICAgICAgICBpZiAoc2l6ZSA8IGxpbWl0MikKKyAgICAgICAgICAg ICAgcmV0dXJuIE1hdGgucm91bmQoc2l6ZSkgKyAiIEdCIjsKKyAgICAgICAg ICAgIGVsc2UKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgc2l6ZSA9 IHNpemUgLyAxMDI0OworICAgICAgICAgICAgICBpZiAoc2l6ZSA8IGxpbWl0 MikKKyAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5yb3VuZChzaXplKSAr ICIgVEIiOworICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgIHsK KyAgICAgICAgICAgICAgIHNpemUgPSBzaXplIC8gMTAyNDsKKyAgICAgICAg ICAgICAgICByZXR1cm4gTWF0aC5yb3VuZChzaXplKSArICIgUEIiOworICAg ICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAg ICAgICB9CisgICAgICB9CisgICAgfTsKKworICByZXR1cm4gc2l6ZVByZXR0 aWZ5OworfSk7CmRpZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi9qYXZhc2Ny aXB0L3NpemVfcHJldHRpZnlfc3BlYy5qcyBiL3dlYi9yZWdyZXNzaW9uL2ph dmFzY3JpcHQvc2l6ZV9wcmV0dGlmeV9zcGVjLmpzCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjllN2ZkMWQKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L3NpemVfcHJldHRpZnlf c3BlYy5qcwpAQCAtMCwwICsxLDcxIEBACisvLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLworLy8KKy8vIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9v bHMKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLworLy8gcGdB ZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworLy8KKy8vIENvcHlyaWdodCAo QykgMjAxMyAtIDIwMTcsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0K Ky8vIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3Rn cmVTUUwgTGljZW5jZQorLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vCisKK2RlZmluZShbInNvdXJjZXMvc2l6ZV9wcmV0dGlmeSJdLCBmdW5j dGlvbiAoc2l6ZVByZXR0aWZ5KSB7CisgIGRlc2NyaWJlKCJzaXplUHJldHRp ZnkiLCBmdW5jdGlvbiAoKSB7CisgICAgZGVzY3JpYmUoIndoZW4gc2l6ZSBp cyAwIiwgZnVuY3Rpb24gKCkgeworICAgICAgaXQoInJldHVybnMgMCBieXRl cyIsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgZXhwZWN0KHNpemVQcmV0dGlm eSgwKSkudG9FcXVhbCgiMCBieXRlcyIpOworICAgICAgfSk7CisgICAgfSk7 CisKKyAgICBkZXNjcmliZSgid2hlbiBzaXplID49IDEwa0IgYW5kIHNpemUg PCAxMCBNQiIsIGZ1bmN0aW9uICgpIHsKKyAgICAgIGl0KCJyZXR1cm5zIHNp emUgaW4ga0IiLCBmdW5jdGlvbiAoKSB7CisgICAgICAgIGV4cGVjdChzaXpl UHJldHRpZnkoMTAyNDApKS50b0VxdWFsKCIxMCBrQiIpOworICAgICAgfSk7 CisKKyAgICAgIGl0KCJyZXR1cm5zIHNpemUgaW4ga0IiLCBmdW5jdGlvbiAo KSB7CisgICAgICAgIGV4cGVjdChzaXplUHJldHRpZnkoOTk5OTkpKS50b0Vx dWFsKCI5OCBrQiIpOworICAgICAgfSk7CisgICAgfSk7CisKKworICAgIGRl c2NyaWJlKCJ3aGVuIHNpemUgPj0gMTBNQiBhbmQgc2l6ZSA8IDEwIEdCIiwg ZnVuY3Rpb24gKCkgeworICAgICAgaXQoInJldHVybnMgc2l6ZSBpbiBNQiIs IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgZXhwZWN0KHNpemVQcmV0dGlmeSgx MDQ4NTc2MCkpLnRvRXF1YWwoIjEwIE1CIik7CisgICAgICB9KTsKKworICAg ICAgaXQoInJldHVybnMgc2l6ZSBpbiBNQiIsIGZ1bmN0aW9uICgpIHsKKyAg ICAgICAgZXhwZWN0KHNpemVQcmV0dGlmeSg0NDA0MDE5MikpLnRvRXF1YWwo IjQyIE1CIik7CisgICAgICB9KTsKKyAgICB9KTsKKworCisgICAgZGVzY3Jp YmUoIndoZW4gc2l6ZSA+PSAxMEdCIGFuZCBzaXplIDwgMTAgVEIiLCBmdW5j dGlvbiAoKSB7CisgICAgICBpdCgicmV0dXJucyBzaXplIGluIEdCIiwgZnVu Y3Rpb24gKCkgeworICAgICAgICBleHBlY3Qoc2l6ZVByZXR0aWZ5KDEwNzM3 NDE4MjQwKSkudG9FcXVhbCgiMTAgR0IiKTsKKyAgICAgIH0pOworCisgICAg ICBpdCgicmV0dXJucyBzaXplIGluIEdCIiwgZnVuY3Rpb24gKCkgeworICAg ICAgICBleHBlY3Qoc2l6ZVByZXR0aWZ5KDEwNzM2MzQ0NDk4MTc2KSkudG9F cXVhbCgiOTk5OSBHQiIpOworICAgICAgfSk7CisgICAgfSk7CisKKyAgICBk ZXNjcmliZSgid2hlbiBzaXplID49IDEwVEIgYW5kIHNpemUgPCAxMCBQQiIs IGZ1bmN0aW9uICgpIHsKKyAgICAgIGl0KCJyZXR1cm5zIHNpemUgaW4gVEIi LCBmdW5jdGlvbiAoKSB7CisgICAgICAgIGV4cGVjdChzaXplUHJldHRpZnko MTA5OTUxMTYyNzc3NjApKS50b0VxdWFsKCIxMCBUQiIpOworICAgICAgfSk7 CisKKyAgICAgIGl0KCJyZXR1cm5zIHNpemUgaW4gVEIiLCBmdW5jdGlvbiAo KSB7CisgICAgICAgIGV4cGVjdChzaXplUHJldHRpZnkoMjk5OTUxMTYyNzc3 NjApKS50b0VxdWFsKCIyNyBUQiIpOworICAgICAgfSk7CisgICAgfSk7CisK KyAgICBkZXNjcmliZSgid2hlbiBzaXplID49IDEwIFBCIiwgZnVuY3Rpb24g KCkgeworICAgICAgaXQoInJldHVybnMgc2l6ZSBpbiBQQiIsIGZ1bmN0aW9u ICgpIHsKKyAgICAgICAgZXhwZWN0KHNpemVQcmV0dGlmeSgxMTI1ODk5OTA2 ODQyNjIwMCkpLnRvRXF1YWwoIjEwIFBCIik7CisgICAgICB9KTsKKworICAg IH0pOworCisgIH0pOworfSk7Cg== --001a113b02a0f450c2054eaf061c 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 --001a113b02a0f450c2054eaf061c--