Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bIFux-0001sZ-C7 for pgadmin-hackers@arkaria.postgresql.org; Wed, 29 Jun 2016 13:52:39 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1bIFuw-0002g3-Ut for pgadmin-hackers@arkaria.postgresql.org; Wed, 29 Jun 2016 13:52:39 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1bIFuu-0002bd-2l for pgadmin-hackers@postgresql.org; Wed, 29 Jun 2016 13:52:36 +0000 Received: from mail-qk0-x22e.google.com ([2607:f8b0:400d:c09::22e]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1bIFuq-000779-HP for pgadmin-hackers@postgresql.org; Wed, 29 Jun 2016 13:52:34 +0000 Received: by mail-qk0-x22e.google.com with SMTP id t127so87728898qkf.1 for ; Wed, 29 Jun 2016 06:52:31 -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=oO+6fgzy8/IoJr3z6/oRv8160F8ew2aO99aQ1didbC8=; b=b6HWdD7MJACP2EjBT7OtgpmVj+OsX+6PL7i+fcHVYEMsKAYZXOES/cc1MGSAVoml5W wUG9c0PZcGcYLw4JNc1q0WDfZe9y+8pKGfm9VTZY8Cxoq+QC8uu6d16WPn9u4N09/RzC wq03axO34gnnOABWnOolWLE0nG1B33sYja8ZqpPY4uCtyUvb5y2fhlgJF7r1eLuEJq06 vf3xJnXpyma1x4fo0gO205F9LOq6aFyEC97lHHus5SNLNfN0G5U+DNSPv0w0Q7XXbtdF W0Fr0pJmrc5zv9EtK/iUusi0EZqsgLUSEiTnJd/cunIjOBbZdJr28OiZOUX0mPy48kqZ SbcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=oO+6fgzy8/IoJr3z6/oRv8160F8ew2aO99aQ1didbC8=; b=gyHuX5aZomHDT9/DiiLSIMdwediTpN5g1ew1MN+lmGhnMLK6jF8ZqfZKEje73fnABG tGW2FZ/tTxxjX3rZmA6eDcNv6qIsM6+stgM4L8jruOC4TyZYDu8l+ARPL5xic88anX9j j7r9mwfIyWjxrTRG+FnzCYff3UNeq9CoYyrbk5EOxmv9TDFBG3gZBtZaIntNqSCRM719 usWWucnE2Nb5iur9KUYtu0YleJrZhe7FcMR38CO/imZHih+IGLwxA3BErJka4zwDieN3 laa0e+rrOZFJ15WVAL17EUlbTWE8ANILPsKJizoo9iasthXDFh/7iAq/KCkGLpT4/t4S VBVA== X-Gm-Message-State: ALyK8tLBWOstUCW9vxZjnotQDkMLV3vicncE4Hjex8L2jTRSnElYpP07xXIv9lkLSEWSyp0HwbjlutPfsRak3erj X-Received: by 10.55.175.134 with SMTP id y128mr10915189qke.67.1467208350821; Wed, 29 Jun 2016 06:52:30 -0700 (PDT) MIME-Version: 1.0 Received: by 10.237.45.165 with HTTP; Wed, 29 Jun 2016 06:52:11 -0700 (PDT) In-Reply-To: References: From: Priyanka Shendge Date: Wed, 29 Jun 2016 19:22:11 +0530 Message-ID: Subject: Re: pgAdmin IV API test cases patch To: Dave Page Cc: pgadmin-hackers , Kanchan Mohitey Content-Type: multipart/mixed; boundary=94eb2c06e58e90a19605366b1050 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 --94eb2c06e58e90a19605366b1050 Content-Type: multipart/alternative; boundary=94eb2c06e58e90a19105366b104e --94eb2c06e58e90a19105366b104e Content-Type: text/plain; charset=UTF-8 Hi Dave, As per discussion over mail i have created separate config files for credentials and test data. PFA patch for same. Kindly, review and let me know for modifications. On 27 June 2016 at 15:10, Priyanka Shendge < priyanka.shendge@enterprisedb.com> wrote: > > > On 27 June 2016 at 13:24, Dave Page wrote: > >> On Sun, Jun 26, 2016 at 12:05 PM, Priyanka Shendge >> wrote: >> > >> > >> > On 24 June 2016 at 16:17, Dave Page wrote: >> >> >> >> Hi >> >> >> >> On Thu, Jun 23, 2016 at 2:41 PM, Priyanka Shendge >> >> wrote: >> >> > >> >> > >> >> > On 15 June 2016 at 15:05, Priyanka Shendge >> >> > wrote: >> >> >> >> >> >> Thanks a lot Dave. >> >> >> >> >> >> On 15 June 2016 at 14:09, Dave Page wrote: >> >> >>> >> >> >>> Hi >> >> >>> >> >> >>> On Thu, Jun 9, 2016 at 1:37 PM, Priyanka Shendge >> >> >>> wrote: >> >> >>> > Hi Dave, >> >> >>> > >> >> >>> > PFA updated patch. I have made changes suggested by you. >> >> >>> > >> >> >>> > Kindly, review and let me know for more changes. >> >> >>> >> >> >>> OK, I got a bit further this time, but not there yet. >> >> >>> >> >> >>> 1) The patch overwrote my test_config.json file. That should never >> >> >>> happen (that file shouldn't be in the source tree). >> >> >>> test_config.json.in should be the file that's included in the >> patch. >> >> >> >> >> >> >> >> >> OK. >> >> >>> >> >> >>> >> >> >>> 2) The updated test_config.json file is huge. >> >> > >> >> > >> >> > Current configuration file web/regression/test_config.json contains >> test >> >> > data(credentials) for each tree node; >> >> > which is used while adding and updating the respective node. >> >> >> >> Why would we need that? >> > >> > >> > Each node file (e.g. test_db_add.py and test_db_put.py) uses respective >> > credentials test data from >> > test_config.json while execution. >> >> That doesn't answer my question - why do we need separate credentials >> for each node? >> > > Sorry for typo, its test data not credentials. > > >> >> >> We should have just one set of credentials for >> >> everything. >> > >> > >> > Let me know if my understanding is clear: >> > >> > Should i keep basic credentials of each node (database, schema) into >> > test_config.json >> > instead taking care of each field? >> >> You should have one set of credentials that's used for the entire test >> run. >> > > Sure. I'll separate the credentials and test data into 2 different files. > So, a normal user can run the tests into one go after some minor > credentials changes. > And an advanced user can have an option to change the test data if he > wants. > >> >> >> >>> I should only need to >> >> >>> define one or more connections, then be able to run the tests. If >> you >> >> >>> need to keep configuration info for "advanced users", let's put it >> in >> >> >>> a different file to avoid confusing/scaring everyone else. Maybe >> split >> >> >>> it into config.json for the stuff the user needs to edit >> >> >>> (config.json.in would go in git), and test_config.json for the >> test >> >> >>> configuration. >> >> > >> >> > >> >> > Should i keep login and server credentials into >> >> > web/regression/test_config.json file and >> >> > put respective node details into config.json file of respective >> node's >> >> > tests >> >> > directory? >> >> >> >> Not if you expect users to need to edit them - and if not, why are the >> >> values not just hard-coded? >> >> >> >> > e.g. for database node: >> >> > I'll create config.json file into .../databases/tests/ directory >> >> > put database add and update credentials into config.json >> >> >> >> The key here is to make it simple for users. >> >> >> >> - To run the default tests, they should be able to copy/edit a simple >> >> file, and just add database server details for the server to run >> >> against. >> >> >> >> - If we have configurable tests (because making them configurable adds >> >> genuine value), then we can use an "advanced" config file to allow the >> >> user to adjust settings as they want. >> >> >> >> In the simple case, the user should be able to run the tests >> >> successfully within a minute or two from starting. >> >> >> >> In designing the layout for files etc, remember the following: >> >> >> >> - Users should never edit a file that is in our source control. That's >> >> why we have .in files that we expect them to copy. >> >> >> >> - Unless they're an advanced user, they shouldn't need to copy the >> >> config file for advanced options. That means that the tests should >> >> have defaults that match what is in the template advanced config file >> >> (or, the tests could read advanced.json.in if advanced.json doesn't >> >> exist, though that does seem a little icky). Of course, those are >> >> example filenames, not necessarily what you may choose. >> >> >> >> -- >> >> Dave Page >> >> Blog: http://pgsnake.blogspot.com >> >> Twitter: @pgsnake >> >> >> >> EnterpriseDB UK: http://www.enterprisedb.com >> >> The Enterprise PostgreSQL Company >> > >> > >> > >> > >> > -- >> > Best, >> > Priyanka >> > >> > EnterpriseDB Corporation >> > The Enterprise PostgreSQL Company >> >> >> >> -- >> Dave Page >> Blog: http://pgsnake.blogspot.com >> Twitter: @pgsnake >> >> EnterpriseDB UK: 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 >> > > > > -- > Best, > Priyanka > > EnterpriseDB Corporation > The Enterprise PostgreSQL Company > -- Best, Priyanka EnterpriseDB Corporation The Enterprise PostgreSQL Company --94eb2c06e58e90a19105366b104e Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi Dave,

As per discussion over mail i = have created separate config files for=C2=A0credentials and test data.

PFA patch for sa= me. Kindly, review and let me know for modifications.=C2=A0

On 27 June 201= 6 at 15:10, Priyanka Shendge <priyanka.shendge@enterprised= b.com> wrote:


On 27 June 2016 at 13:24, Dave Page <dpage@pgadmin.org&g= t; wrote:
On = Sun, Jun 26, 2016 at 12:05 PM, Priyanka Shendge
<priyanka.shendge@enterprisedb.= com> wrote:
>
>
> On 24 June 2016 at 16:17, Dave Page <dpage@pgadmin.org> wrote:
>>
>> Hi
>>
>> On Thu, Jun 23, 2016 at 2:41 PM, Priyanka Shendge
>> <priyanka.shendge@enterprisedb.com> wrote:
>> >
>> >
>> > On 15 June 2016 at 15:05, Priyanka Shendge
>> > <priyanka.shendge@enterprisedb.com> wrote:
>> >>
>> >> Thanks a lot Dave.
>> >>
>> >> On 15 June 2016 at 14:09, Dave Page <dpage@pgadmin.org> wrote:
>> >>>
>> >>> Hi
>> >>>
>> >>> On Thu, Jun 9, 2016 at 1:37 PM, Priyanka Shendge
>> >>> <priyanka.shendge@enterprisedb.com> wrote:
>> >>> > Hi Dave,
>> >>> >
>> >>> > PFA updated patch. I have made changes suggested= by you.
>> >>> >
>> >>> > Kindly, review and let me know for more changes.=
>> >>>
>> >>> OK, I got a bit further this time, but not there yet.=
>> >>>
>> >>> 1) The patch overwrote my test_config.json file. That= should never
>> >>> happen (that file shouldn't be in the source tree= ).
>> >>> test_config.json.in should be the file that'= s included in the patch.
>> >>
>> >>
>> >> OK.
>> >>>
>> >>>
>> >>> 2) The updated test_config.json file is huge.
>> >
>> >
>> > Current configuration file web/regression/test_config.json co= ntains test
>> > data(credentials) for each tree node;
>> > which is used while adding and updating the respective node.<= br> >>
>> Why would we need that?
>
>
> Each node file (e.g. test_db_add.py and test_db_put.py) uses respectiv= e
> credentials test data<= /span> =C2=A0from
> test_config.json while execution.

That doesn't answer my question - why do w= e need separate credentials
for each node?

Sorry for typo, i= ts test data not credentials.
=C2=A0

>> We should have just one set of credentials for
>> everything.
>
>
> Let me know if my understanding is clear:
>
> Should i keep basic credentials of each node (database, schema) into > test_config.json
> instead=C2=A0 taking care of each field?

You should have one set of credentials that's used for the entir= e test run.

Sure.=C2=A0 I'll= separate the credentials and test data into 2 different files.
S= o, a normal user can run the tests into one go after some minor credentials= changes.
And an advanced user can have an option to change the t= est data if he wants.

>> >>> I should only need to
>> >>> define one or more connections, then be able to run t= he tests. If you
>> >>> need to keep configuration info for "advanced us= ers", let's put it in
>> >>> a different file to avoid confusing/scaring everyone = else. Maybe split
>> >>> it into config.json for the stuff the user needs to e= dit
>> >>> (config.json.in would go in git), and test_config.jso= n for the test
>> >>> configuration.
>> >
>> >
>> > Should i keep login and server credentials into
>> > web/regression/test_config.json file and
>> > put respective node details into config.json file of respecti= ve node's
>> > tests
>> > directory?
>>
>> Not if you expect users to need to edit them - and if not, why are= the
>> values not just hard-coded?
>>
>> > e.g. for database node:
>> > I'll create config.json file into .../databases/tests/ di= rectory
>> > put database add and update credentials into config.json
>>
>> The key here is to make it simple for users.
>>
>> - To run the default tests, they should be able to copy/edit a sim= ple
>> file, and just add database server details for the server to run >> against.
>>
>> - If we have configurable tests (because making them configurable = adds
>> genuine value), then we can use an "advanced" config fil= e to allow the
>> user to adjust settings as they want.
>>
>> In the simple case, the user should be able to run the tests
>> successfully within a minute or two from starting.
>>
>> In designing the layout for files etc, remember the following:
>>
>> - Users should never edit a file that is in our source control. Th= at's
>> why we have .in files that we expect them to copy.
>>
>> - Unless they're an advanced user, they shouldn't need to = copy the
>> config file for advanced options. That means that the tests should=
>> have defaults that match what is in the template advanced config f= ile
>> (or, the tests could read advanced.json.in if advanced.json doe= sn't
>> exist, though that does seem a little icky). Of course, those are<= br> >> example filenames, not necessarily what you may choose.
>>
>> --
>> Dave Page
>> Blog: http://pgsnake.blogspot.com
>> Twitter: @pgsnake
>>
>> EnterpriseDB UK: http://www.enterprisedb.com
>> The Enterprise PostgreSQL Company
>
>
>
>
> --
> Best,
> Priyanka
>
> EnterpriseDB Corporation
> The Enterprise PostgreSQL Company



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

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


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



--
Best,
Priyanka

EnterpriseDB Corporation
The Enterprise PostgreSQL Compan= y




--
Best,
Priyanka

EnterpriseDB Corporation
The Enterprise PostgreSQL Company
--94eb2c06e58e90a19105366b104e-- --94eb2c06e58e90a19605366b1050 Content-Type: application/octet-stream; name="pgadmin4_config_revised.patch" Content-Disposition: attachment; filename="pgadmin4_config_revised.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_iq0xu3sl0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZXN0cy9fX2luaXRfXy5weSBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy90ZXN0cy9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi42MGVkNGM3Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3Rlc3RzL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsMTYgQEAKKyMgIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgI3BnQWRtaW4gNCAtIFBv c3RncmVTUUwgVG9vbHMKKyMKKyMgI0NvcHlyaWdodCAoQykgMjAxMyAtIDIw MTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgI1RoaXMgc29m dHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5j ZQorIworIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitmcm9t IHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9y CisKKworY2xhc3MgRGF0YWJhc2VHZW5lcmF0ZVRlc3RDYXNlKEJhc2VUZXN0 R2VuZXJhdG9yKToKKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAg ICByZXR1cm4KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZXN0cy90ZXN0X2RiX2Fk ZC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy90ZXN0cy90ZXN0X2RiX2FkZC5weQpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40Mjc4MzgzCi0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3Rlc3RzL3Rlc3RfZGJfYWRkLnB5CkBAIC0wLDAg KzEsMTAxIEBACisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRt aW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAy MDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBU aGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FM IExpY2VuY2UKKyMKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2Zyb20g cmVncmVzc2lvbi5jb25maWcgaW1wb3J0IGNvbmZpZ19kYXRhLCBhZHZhbmNl X2NvbmZpZ19kYXRhLCBwaWNrbGVfcGF0aAorZnJvbSBwZ2FkbWluLmJyb3dz ZXIudGVzdHMudGVzdF9sb2dpbiBpbXBvcnQgTG9naW5UZXN0Q2FzZQoraW1w b3J0IGpzb24KK2ltcG9ydCBwaWNrbGUKK2ltcG9ydCB1dWlkCitpbXBvcnQg b3MKK2Zyb20gcmVncmVzc2lvbi50ZXN0X3V0aWxzIGltcG9ydCBnZXRfaWRz CisKKworY2xhc3MgRGF0YWJhc2VBZGRUZXN0Q2FzZShMb2dpblRlc3RDYXNl KToKKyAgICAiIiIKKyAgICBUaGlzIGNsYXNzIHdpbGwgY2hlY2sgc2VydmVy IGdyb3VwIG5vZGUgcHJlc2VudCBvbiB0aGUgb2JqZWN0IGJyb3dzZXIncwor ICAgIHRyZWUgbm9kZSBieSByZXNwb25zZSBjb2RlLgorICAgICIiIgorICAg IHByaW9yaXR5ID0gNworCisgICAgc2NlbmFyaW9zID0gWworICAgICAgICAj IEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBkYXRhYmFzZSBub2RlLgorICAg ICAgICAoJ0NoZWNrIERhdGFiYXNlcyBOb2RlIFVSTCcsIGRpY3QodXJsPScv YnJvd3Nlci9kYXRhYmFzZS9vYmovJykpCisgICAgXQorCisgICAgZGVmIHJ1 blRlc3Qoc2VsZik6CisgICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwg YWRkIGRhdGFiYXNlIHVuZGVyIDFzdCBzZXJ2ZXIgb2YgdHJlZSBub2RlLiAi IiIKKworICAgICAgICBzcnZfaWQgPSBnZXRfaWRzKCkKKworICAgICAgICBz ZXJ2ZXJfaWQgPSBzcnZfaWRbInNpZCJdWzBdCisgICAgICAgIHNydl9ncnAg PSBjb25maWdfZGF0YVsndGVzdF9zZXJ2ZXJfZ3JvdXAnXQorCisgICAgICAg IHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCgnYnJvd3Nlci9zZXJ2ZXIv Y29ubmVjdC8nICsgc3RyKHNydl9ncnApICsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICcvJyArIHNlcnZlcl9pZCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE9ZGljdCgKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc3N3b3JkPWNvbmZp Z19kYXRhCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb J3Rlc3Rfc2VydmVyX2NyZWRlbnRpYWxzJ11bMF0KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFsndGVzdF9kYl9wYXNzd29yZCddKSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd19y ZWRpcmVjdHM9VHJ1ZSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhy ZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorCisgICAgICAgIHNydl9jb25u ZWN0ID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRhLmRlY29kZSgpKQorCisg ICAgICAgIGlmIHNydl9jb25uZWN0WydkYXRhJ11bJ2Nvbm5lY3RlZCddOgor CisgICAgICAgICAgICBkYXRhID0geworICAgICAgICAgICAgICAgICAgICAg ImRhdGFjbCI6IGFkdmFuY2VfY29uZmlnX2RhdGFbJ3Rlc3RfYWRkX2RhdGFi YXNlX2RhdGEnXVswXQorICAgICAgICAgICAgICAgICAgICAgWyd0ZXN0X3By aXZpbGVnZXNfYWNsJ10sCisgICAgICAgICAgICAgICAgICAgICAiZGF0Y29u bmxpbWl0IjogYWR2YW5jZV9jb25maWdfZGF0YQorICAgICAgICAgICAgICAg ICAgICAgWyd0ZXN0X2FkZF9kYXRhYmFzZV9kYXRhJ11bMF1bJ3Rlc3RfY29u bl9saW1pdCddLAorICAgICAgICAgICAgICAgICAgICAgImRhdG93bmVyIjog YWR2YW5jZV9jb25maWdfZGF0YQorICAgICAgICAgICAgICAgICAgICAgWyd0 ZXN0X2FkZF9kYXRhYmFzZV9kYXRhJ11bMF1bJ3Rlc3Rfb3duZXInXSwKKyAg ICAgICAgICAgICAgICAgICAgICJkZWZmdW5jYWNsIjogYWR2YW5jZV9jb25m aWdfZGF0YQorICAgICAgICAgICAgICAgICAgICAgWyd0ZXN0X2FkZF9kYXRh YmFzZV9kYXRhJ11bMF1bJ3Rlc3RfZnVuX2FjbCddLAorICAgICAgICAgICAg ICAgICAgICAgImRlZnNlcWFjbCI6IGFkdmFuY2VfY29uZmlnX2RhdGEKKyAg ICAgICAgICAgICAgICAgICAgIFsndGVzdF9hZGRfZGF0YWJhc2VfZGF0YSdd WzBdWyd0ZXN0X3NlcV9hY2wnXSwKKyAgICAgICAgICAgICAgICAgICAgICJk ZWZ0YmxhY2wiOiBhZHZhbmNlX2NvbmZpZ19kYXRhCisgICAgICAgICAgICAg ICAgICAgICBbJ3Rlc3RfYWRkX2RhdGFiYXNlX2RhdGEnXVswXVsndGVzdF90 YmxfYWNsJ10sCisgICAgICAgICAgICAgICAgICAgICAiZGVmdHlwZWFjbCI6 IGFkdmFuY2VfY29uZmlnX2RhdGEKKyAgICAgICAgICAgICAgICAgICAgIFsn dGVzdF9hZGRfZGF0YWJhc2VfZGF0YSddWzBdWyd0ZXN0X3R5cGVfYWNsJ10s CisgICAgICAgICAgICAgICAgICAgICAiZW5jb2RpbmciOiBhZHZhbmNlX2Nv bmZpZ19kYXRhCisgICAgICAgICAgICAgICAgICAgICBbJ3Rlc3RfYWRkX2Rh dGFiYXNlX2RhdGEnXVswXVsndGVzdF9lbmNvZGluZyddLAorICAgICAgICAg ICAgICAgICAgICAgIm5hbWUiOiBzdHIodXVpZC51dWlkNCgpKVsxOjhdLAor ICAgICAgICAgICAgICAgICAgICAgInByaXZpbGVnZXMiOiBhZHZhbmNlX2Nv bmZpZ19kYXRhCisgICAgICAgICAgICAgICAgICAgICBbJ3Rlc3RfYWRkX2Rh dGFiYXNlX2RhdGEnXVswXVsndGVzdF9wcml2aWxlZ2VzJ10sCisgICAgICAg ICAgICAgICAgICAgICAic2VjdXJpdGllcyI6IGFkdmFuY2VfY29uZmlnX2Rh dGEKKyAgICAgICAgICAgICAgICAgICAgIFsndGVzdF9hZGRfZGF0YWJhc2Vf ZGF0YSddWzBdWyd0ZXN0X3NlY3VyaXRpZXMnXSwKKyAgICAgICAgICAgICAg ICAgICAgICJ2YXJpYWJsZXMiOiBhZHZhbmNlX2NvbmZpZ19kYXRhCisgICAg ICAgICAgICAgICAgICAgICBbJ3Rlc3RfYWRkX2RhdGFiYXNlX2RhdGEnXVsw XVsndGVzdF92YXJpYWJsZXMnXQorICAgICAgICAgICAgICAgICAgICB9CisK KyAgICAgICAgICAgIGRiX3Jlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdChz ZWxmLnVybCArIHN0cihzcnZfZ3JwKSArICIvIiArCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lkICsgIi8i LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNv bicpCisKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShkYl9yZXNwb25z ZS5zdGF0dXNfY29kZSwgMjAwKQorCisgICAgICAgICAgICByZXNwZGF0YSA9 IGpzb24ubG9hZHMoZGJfcmVzcG9uc2UuZGF0YS5kZWNvZGUoKSkKKworICAg ICAgICAgICAgZGJfaWQgPSByZXNwZGF0YVsnbm9kZSddWydfaWQnXQorCisg ICAgICAgICAgICBpZiBvcy5wYXRoLmlzZmlsZShwaWNrbGVfcGF0aCk6CisK KyAgICAgICAgICAgICAgICBleHN0X3NlcnZlcl9pZCA9IG9wZW4ocGlja2xl X3BhdGgsICdyYicpCisKKyAgICAgICAgICAgICAgICB0b2xfc2VydmVyX2lk ID0gcGlja2xlLmxvYWQoZXhzdF9zZXJ2ZXJfaWQpCisgICAgICAgICAgICAg ICAgcGlja2xlX2lkX2RpY3QgPSB0b2xfc2VydmVyX2lkCisKKyAgICAgICAg ICAgICAgICBwaWNrbGVfaWRfZGljdFsiZGlkIl0uYXBwZW5kKGRiX2lkKQor CisgICAgICAgICAgICAgICAgZGJfb3V0cHV0ID0gb3BlbihwaWNrbGVfcGF0 aCwgJ3diJykKKyAgICAgICAgICAgICAgICBwaWNrbGUuZHVtcChwaWNrbGVf aWRfZGljdCwgZGJfb3V0cHV0KQorICAgICAgICAgICAgICAgIGRiX291dHB1 dC5jbG9zZSgpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvdGVzdHMvdGVzdF9kYl9k ZWxldGUucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvdGVzdHMvdGVzdF9kYl9kZWxldGUucHkKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2E4ZWQ5YgotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZXN0cy90ZXN0X2RiX2RlbGV0ZS5w eQpAQCAtMCwwICsxLDQ1IEBACisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisj CisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJp Z2h0IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQg VGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQ b3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CisKK2Zyb20gcmVncmVzc2lvbi5jb25maWcgaW1wb3J0IGNvbmZpZ19kYXRh Citmcm9tIHBnYWRtaW4uYnJvd3Nlci50ZXN0cy50ZXN0X2xvZ2luIGltcG9y dCBMb2dpblRlc3RDYXNlCitpbXBvcnQganNvbgorZnJvbSByZWdyZXNzaW9u LnRlc3Rfbm9kZXMgaW1wb3J0IHRlc3RfZ2V0bm9kZXMKK2Zyb20gcmVncmVz c2lvbi50ZXN0X3V0aWxzIGltcG9ydCBnZXRfaWRzCisKKworY2xhc3MgRGF0 YWJhc2VEZWxldGVUZXN0Q2FzZShMb2dpblRlc3RDYXNlKToKKyAgICAiIiIg VGhpcyBjbGFzcyB3aWxsIGRlbGV0ZSB0aGUgZGF0YWJhc2UgdW5kZXIgbGFz dCBhZGRlZCBzZXJ2ZXIuICIiIgorCisgICAgcHJpb3JpdHkgPSA5OAorCisg ICAgc2NlbmFyaW9zID0gWworICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQg VVJMIGZvciBkYXRhYmFzZSBub2RlLgorICAgICAgICAoJ0NoZWNrIERhdGFi YXNlcyBOb2RlIFVSTCcsIGRpY3QodXJsPScvYnJvd3Nlci9kYXRhYmFzZS9v YmovJykpCisgICAgXQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAg ICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgZGVsZXRlIHRoZSBkYXRhYmFz ZS4iIiIKKworICAgICAgICBhbGxfaWQgPSBnZXRfaWRzKCkKKyAgICAgICAg c2VydmVyX2lkID0gYWxsX2lkWyJzaWQiXVswXQorICAgICAgICBkYl9pZCA9 IGFsbF9pZFsiZGlkIl1bMF0KKyAgICAgICAgc3J2X2dycCA9IGNvbmZpZ19k YXRhWyd0ZXN0X3NlcnZlcl9ncm91cCddCisKKyAgICAgICAgZGJfY29uID0g dGVzdF9nZXRub2Rlcyhub2RlPXNlbGYpCisKKyAgICAgICAgaWYgbGVuKGRi X2NvbikgPT0gMDoKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiTm8g ZGF0YWJhc2UocykgdG8gZGVsZXRlLiIpCisKKyAgICAgICAgcmVzcG9uc2Ug PSBzZWxmLnRlc3Rlci5kZWxldGUoc2VsZi51cmwgKyBzdHIoc3J2X2dycCkg KyAnLycgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdHIoc2VydmVyX2lkKSArICcvJyArIHN0cihkYl9pZCksCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVj dHM9VHJ1ZSkKKworICAgICAgICByZXNwZGF0YSA9IGpzb24ubG9hZHMocmVz cG9uc2UuZGF0YS5kZWNvZGUoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVl KHJlc3BkYXRhWydzdWNjZXNzJ10sIDEpCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv dGVzdHMvdGVzdF9kYl9nZXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvdGVzdHMvdGVzdF9kYl9n ZXQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTkz MTk4NQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZXN0cy90ZXN0X2Ri X2dldC5weQpAQCAtMCwwICsxLDQzIEBACisjICMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMg Q29weXJpZ2h0IChDKSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxv cG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVy IHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMgIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCisKK2Zyb20gcmVncmVzc2lvbi5jb25maWcgaW1wb3J0IGNvbmZp Z19kYXRhCitmcm9tIHBnYWRtaW4uYnJvd3Nlci50ZXN0cy50ZXN0X2xvZ2lu IGltcG9ydCBMb2dpblRlc3RDYXNlCitmcm9tIHJlZ3Jlc3Npb24udGVzdF9u b2RlcyBpbXBvcnQgdGVzdF9nZXRub2RlcworZnJvbSByZWdyZXNzaW9uLnRl c3RfdXRpbHMgaW1wb3J0IGdldF9pZHMKKworCitjbGFzcyBEYXRhYmFzZXNH ZXRUZXN0Q2FzZShMb2dpblRlc3RDYXNlKToKKyAgICAiIiIKKyAgICBUaGlz IGNsYXNzIHdpbGwgZmV0Y2ggYWRkZWQgZGF0YWJhc2UgdW5kZXIgc2VydmVy IG5vZGUuCisgICAgIiIiCisgICAgcHJpb3JpdHkgPSA4CisKKyAgICBzY2Vu YXJpb3MgPSBbCisgICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9y IGRhdGFiYXNlIG5vZGUuCisgICAgICAgICgnQ2hlY2sgRGF0YWJhc2VzIE5v ZGUgVVJMJywgZGljdCh1cmw9Jy9icm93c2VyL2RhdGFiYXNlL29iai8nKSkK KyAgICBdCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIi IFRoaXMgZnVuY3Rpb24gd2lsbCBmZXRjaCBhZGRlZCBkYXRhYmFzZS4gIiIi CisKKyAgICAgICAgYWxsX2lkID0gZ2V0X2lkcygpCisgICAgICAgIHNlcnZl cl9pZCA9IGFsbF9pZFsic2lkIl1bMF0KKyAgICAgICAgZGJfaWQgPSBhbGxf aWRbImRpZCJdWzBdCisgICAgICAgIHNydl9ncnAgPSBjb25maWdfZGF0YVsn dGVzdF9zZXJ2ZXJfZ3JvdXAnXQorCisgICAgICAgIGRiX2NvbiA9IHRlc3Rf Z2V0bm9kZXMobm9kZT1zZWxmKQorCisgICAgICAgIGlmIGRiX2NvblsnZGF0 YSddWyJjb25uZWN0ZWQiXToKKworICAgICAgICAgICAgcmVzcG9uc2UgPSBz ZWxmLnRlc3Rlci5nZXQoc2VsZi51cmwgKyBzdHIoc3J2X2dycCkgKyAnLycg KworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry KHNlcnZlcl9pZCkgKyAnLycgKyBzdHIoZGJfaWQpLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1U cnVlKQorCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25z ZS5zdGF0dXNfY29kZSwgMjAwKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Rlc3Rz L3Rlc3RfZGJfcHV0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Rlc3RzL3Rlc3RfZGJfcHV0LnB5 Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkODM2MDMK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvdGVzdHMvdGVzdF9kYl9wdXQu cHkKQEAgLTAsMCArMSw1MSBAQAorIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor IworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHly aWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50 IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUg UG9zdGdyZVNRTCBMaWNlbmNlCisjCisjICMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworCitmcm9tIHJlZ3Jlc3Npb24uY29uZmlnIGltcG9ydCBjb25maWdfZGF0 YSwgIGFkdmFuY2VfY29uZmlnX2RhdGEKK2Zyb20gcGdhZG1pbi5icm93c2Vy LnRlc3RzLnRlc3RfbG9naW4gaW1wb3J0IExvZ2luVGVzdENhc2UKK2ltcG9y dCBqc29uCitmcm9tIHJlZ3Jlc3Npb24udGVzdF91dGlscyBpbXBvcnQgZ2V0 X2lkcworZnJvbSByZWdyZXNzaW9uLnRlc3Rfbm9kZXMgaW1wb3J0IHRlc3Rf Z2V0bm9kZXMKKworCitjbGFzcyBEYXRhYmFzZXNVcGRhdGVUZXN0Q2FzZShM b2dpblRlc3RDYXNlKToKKyAgICAiIiIKKyAgICBUaGlzIGNsYXNzIHdpbGwg dXBkYXRlIHRoZSBkYXRhYmFzZSB1bmRlciBsYXN0IGFkZGVkIHNlcnZlci4K KyAgICAiIiIKKyAgICBwcmlvcml0eSA9IDkKKworICAgIHNjZW5hcmlvcyA9 IFsKKyAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgZGF0YWJh c2Ugbm9kZS4KKyAgICAgICAgKCdDaGVjayBEYXRhYmFzZXMgTm9kZScsIGRp Y3QodXJsPScvYnJvd3Nlci9kYXRhYmFzZS9vYmovJykpCisgICAgXQorCisg ICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgICIiIiBUaGlzIGZ1bmN0 aW9uIHdpbGwgdXBkYXRlIHRoZSBjb21tZW50cyBmaWVsZCBvZiBkYXRhYmFz ZS4iIiIKKworICAgICAgICBhbGxfaWQgPSBnZXRfaWRzKCkKKyAgICAgICAg c2VydmVyX2lkID0gYWxsX2lkWyJzaWQiXVswXQorICAgICAgICBkYl9pZCA9 IGFsbF9pZFsiZGlkIl1bMF0KKyAgICAgICAgc3J2X2dycCA9IGNvbmZpZ19k YXRhWyd0ZXN0X3NlcnZlcl9ncm91cCddCisKKyAgICAgICAgZGJfY29uID0g dGVzdF9nZXRub2Rlcyhub2RlPXNlbGYpCisKKyAgICAgICAgaWYgZGJfY29u WydkYXRhJ11bImNvbm5lY3RlZCJdOgorCisgICAgICAgICAgICBkYXRhID0g eworICAgICAgICAgICAgICAgICJjb21tZW50cyI6IGFkdmFuY2VfY29uZmln X2RhdGFbInRlc3RfZGJfdXBkYXRlX2RhdGEiXVswXQorICAgICAgICAgICAg ICAgIFsidGVzdF9jb21tZW50Il0sCisgICAgICAgICAgICAgICAgImlkIjog ZGJfaWQKKyAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1 dF9yZXNwb25zZSA9IHNlbGYudGVzdGVyLnB1dChzZWxmLnVybCArIHN0cihz cnZfZ3JwKSArICcvJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAnLycgKyBzdHIoZGJf aWQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRy dWUpCisKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHB1dF9yZXNw b25zZS5zdGF0dXNfY29kZSwgMjAwKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvX19pbml0 X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy90ZXN0cy9fX2luaXRfXy5weQppbmRleCAyOGNkYjk0Li40ZmQyMDY2 IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy90ZXN0cy9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy9fX2luaXRf Xy5weQpAQCAtMTIsNCArMTIsNCBAQCBmcm9tIHBnYWRtaW4udXRpbHMucm91 dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCiAKIGNsYXNzIFNlcnZlckdl bmVyYXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgIGRlZiBy dW5UZXN0KHNlbGYpOgotICAgICAgICBwcmludCAoIkluIFNlcnZlckdlbmVy YXRlVGVzdENhc2UuLi4iKQorICAgICAgICByZXR1cm4KZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rl c3RzL3Rlc3Rfc2VydmVyX2FkZC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX2FkZC5w eQppbmRleCAwYWYxM2QzLi43NDk5Yjg1IDEwMDY0NAotLS0gYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0 X3NlcnZlcl9hZGQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zZXJ2ZXJfYWRkLnB5CkBA IC04LDE2ICs4LDE0IEBACiAjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjCiAKIGltcG9ydCBqc29uCi0KK2ltcG9ydCBwaWNrbGUKK2ltcG9ydCBv cwogZnJvbSBwZ2FkbWluLmJyb3dzZXIudGVzdHMudGVzdF9sb2dpbiBpbXBv cnQgTG9naW5UZXN0Q2FzZQotZnJvbSByZWdyZXNzaW9uLmNvbmZpZyBpbXBv cnQgY29uZmlnX2RhdGEKK2Zyb20gcmVncmVzc2lvbi5jb25maWcgaW1wb3J0 IGNvbmZpZ19kYXRhLCBwaWNrbGVfcGF0aAogCiAKIGNsYXNzIFNlcnZlcnNB ZGRUZXN0Q2FzZShMb2dpblRlc3RDYXNlKToKLSAgICAiIiIKLSAgICBUaGlz IGNsYXNzIHdpbGwgYWRkIHRoZSBzZXJ2ZXJzIHVuZGVyIGRlZmF1bHQgc2Vy dmVyIGdyb3VwIGFuZCB2ZXJpZnkgd2l0aAotICAgIHNlcnZlcidzIG5hbWUu Ci0gICAgIiIiCisgICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCBhZGQgdGhlIHNl cnZlcnMgdW5kZXIgZGVmYXVsdCBzZXJ2ZXIgZ3JvdXAuICIiIgogCiAgICAg cHJpb3JpdHkgPSA0CiAKQEAgLTI3LDE0ICsyNSwxOSBAQCBjbGFzcyBTZXJ2 ZXJzQWRkVGVzdENhc2UoTG9naW5UZXN0Q2FzZSk6CiAgICAgXQogCiAgICAg ZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIgotICAgICAgICBUaGlz IGZ1bmN0aW9uIHdpbGwgYWRkIHRoZSBzZXJ2ZXIgdW5kZXIgZGVmYXVsdCBz ZXJ2ZXIgZ3JvdXAuCi0gICAgICAgIFZlcmlmeSB0aGUgYWRkZWQgc2VydmVy IHdpdGggcmVzcG9uc2UgY29kZSBhcyB3ZWxsIGFzIHNlcnZlciBuYW1lLgot ICAgICAgICAiIiIKKyAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBh ZGQgdGhlIHNlcnZlciB1bmRlciBkZWZhdWx0IHNlcnZlciBncm91cC4iIiIK KworICAgICAgICAjIFN0b3JpbmcgcGFyZW50IGlkJ3MgaW50byBwaWNrbGUg ZGljdAorICAgICAgICBwaWNrbGVfaWRfZGljdCA9IFwKKyAgICAgICAgICAg IHsKKyAgICAgICAgICAgICAgICAic2lkIjogW10sICAjIHNlcnZlcgorICAg ICAgICAgICAgICAgICJkaWQiOiBbXSAgICMgZGF0YWJhc2UKKyAgICAgICAg ICAgIH0KIAogICAgICAgICBzcnZfZ3JwID0gY29uZmlnX2RhdGFbJ3Rlc3Rf c2VydmVyX2dyb3VwJ10KIAogICAgICAgICBmb3Igc3J2IGluIGNvbmZpZ19k YXRhWyd0ZXN0X3NlcnZlcl9jcmVkZW50aWFscyddOgorCiAgICAgICAgICAg ICBkYXRhID0geyJuYW1lIjogc3J2Wyd0ZXN0X25hbWUnXSwKICAgICAgICAg ICAgICAgICAgICAgImNvbW1lbnQiOiAiIiwKICAgICAgICAgICAgICAgICAg ICAgImhvc3QiOiBzcnZbJ3Rlc3RfaG9zdCddLApAQCAtNDQsMTAgKzQ3LDIw IEBAIGNsYXNzIFNlcnZlcnNBZGRUZXN0Q2FzZShMb2dpblRlc3RDYXNlKToK ICAgICAgICAgICAgICAgICAgICAgInJvbGUiOiAiIiwKICAgICAgICAgICAg ICAgICAgICAgInNzbG1vZGUiOiBzcnZbJ3Rlc3Rfc3NsbW9kZSddfQogCi0g ICAgICAgICAgICB1cmwgPSBzZWxmLnVybCArIHN0cihzcnZfZ3JwKSArICIv IgotCi0gICAgICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3Qo dXJsLCBkYXRhPWpzb24uZHVtcHMoZGF0YSksCisgICAgICAgICAgICByZXNw b25zZSA9IHNlbGYudGVzdGVyLnBvc3Qoc2VsZi51cmwgKyBzdHIoc3J2X2dy cCkgKyAiLyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9q c29uJykKKwogICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlc3BvbnNl LnN0YXR1c19jb2RlLCAyMDApCi0gICAgICAgICAgICByZXNwZGF0YSA9IGpz b24ubG9hZHMocmVzcG9uc2UuZGF0YSkKLSAgICAgICAgICAgIHNlbGYuYXNz ZXJ0VHJ1ZShyZXNwZGF0YVsnbm9kZSddWydsYWJlbCddLCBzcnZbJ3Rlc3Rf bmFtZSddKQorICAgICAgICAgICAgcmVzcGRhdGEgPSBqc29uLmxvYWRzKHJl c3BvbnNlLmRhdGEuZGVjb2RlKCkpCisKKyAgICAgICAgICAgIHNlcnZlcl9p ZCA9IHJlc3BkYXRhWydub2RlJ11bJ19pZCddCisKKyAgICAgICAgICAgIGlm IG9zLnBhdGguaXNmaWxlKHBpY2tsZV9wYXRoKToKKyAgICAgICAgICAgICAg ICBleHN0X3NlcnZlcl9pZCA9IG9wZW4ocGlja2xlX3BhdGgsICdyYicpCisg ICAgICAgICAgICAgICAgcGlja2xlX2lkX2RpY3QgPSBwaWNrbGUubG9hZChl eHN0X3NlcnZlcl9pZCkKKworICAgICAgICAgICAgcGlja2xlX2lkX2RpY3Rb InNpZCJdLmFwcGVuZChzZXJ2ZXJfaWQpCisgICAgICAgICAgICBvdXRwdXQg PSBvcGVuKHBpY2tsZV9wYXRoLCAnd2InKQorICAgICAgICAgICAgcGlja2xl LmR1bXAocGlja2xlX2lkX2RpY3QsIG91dHB1dCkKKyAgICAgICAgICAgIG91 dHB1dC5jbG9zZSgpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X3NlcnZlcl9kZWxl dGUucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy90ZXN0cy90ZXN0X3NlcnZlcl9kZWxldGUucHkKaW5kZXggMzI5ZDc0 Zi4uOTk3MzA4ZSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zZXJ2ZXJfZGVsZXRl LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX2RlbGV0ZS5weQpAQCAtOCwxNyAr OCwxNCBAQAogIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIAogaW1wb3J0IGpz b24KLQogZnJvbSBwZ2FkbWluLmJyb3dzZXIudGVzdHMudGVzdF9sb2dpbiBp bXBvcnQgTG9naW5UZXN0Q2FzZQogZnJvbSByZWdyZXNzaW9uLmNvbmZpZyBp bXBvcnQgY29uZmlnX2RhdGEKIAogCi1jbGFzcyBTZXJ2ZXJzRGVsZXRlVGVz dENhc2UoTG9naW5UZXN0Q2FzZSk6Ci0gICAgIiIiCi0gICAgVGhpcyBjbGFz cyB3aWxsIGNoZWNrIHNlcnZlciBub2RlIHByZXNlbnQgb24gdGhlIG9iamVj dCBicm93c2VyJ3MgdHJlZSBub2RlCi0gICAgYnkgcmVzcG9uc2UgY29kZS4K LSAgICAiIiIKLSAgICBwcmlvcml0eSA9IDcKK2NsYXNzIFNlcnZlckRlbGV0 ZVRlc3RDYXNlKExvZ2luVGVzdENhc2UpOgorICAgICIiIiBUaGlzIGNsYXNz IHdpbGwgZGVsZXRlIHRoZSBsYXN0IHNlcnZlciBwcmVzZW50IHVuZGVyIHRy ZWUgbm9kZS4iIiIKKworICAgIHByaW9yaXR5ID0gOTkKIAogICAgIHNjZW5h cmlvcyA9IFsKICAgICAgICAgIyBGZXRjaGluZyB0aGUgZGVmYXVsdCB1cmwg Zm9yIHNlcnZlciBub2RlCkBAIC0yNiwzMiArMjMsMjIgQEAgY2xhc3MgU2Vy dmVyc0RlbGV0ZVRlc3RDYXNlKExvZ2luVGVzdENhc2UpOgogICAgIF0KIAog ICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiIKLSAgICAgICAg VGhpcyBmdW5jdGlvbiB3aWxsIGdldCBhbGwgYXZhaWxhYmxlIHNlcnZlcnMg dW5kZXIgb2JqZWN0IGJyb3dzZXIKLSAgICAgICAgYW5kIGRlbGV0ZSB0aGUg c2VydmVycyB1c2luZyBzZXJ2ZXIgaWQuCi0gICAgICAgICIiIgorICAgICAg ICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGdldCBhbGwgYXZhaWxhYmxlIHNl cnZlcnMgdW5kZXIgb2JqZWN0IGJyb3dzZXIKKyAgICAgICAgYW5kIGRlbGV0 ZSB0aGUgbGFzdCBzZXJ2ZXIgdXNpbmcgc2VydmVyIGlkLiIiIgogCiAgICAg ICAgIHNydl9ncnAgPSBjb25maWdfZGF0YVsndGVzdF9zZXJ2ZXJfZ3JvdXAn XQogCi0gICAgICAgIGZvciBzcnYgaW4gY29uZmlnX2RhdGFbJ3Rlc3Rfc2Vy dmVyX2NyZWRlbnRpYWxzJ106Ci0KLSAgICAgICAgICAgIGRhdGEgPSB7Im5h bWUiOiBzcnZbJ3Rlc3RfbmFtZSddLAotICAgICAgICAgICAgICAgICAgICAi aG9zdCI6IHNydlsndGVzdF9ob3N0J10sCi0gICAgICAgICAgICAgICAgICAg ICJwb3J0Ijogc3J2Wyd0ZXN0X2RiX3BvcnQnXSwKLSAgICAgICAgICAgICAg ICAgICAgImRiIjogc3J2Wyd0ZXN0X21haW50ZW5hbmNlX2RiJ10sCi0gICAg ICAgICAgICAgICAgICAgICJ1c2VybmFtZSI6IHNydlsndGVzdF9kYl91c2Vy bmFtZSddLAotICAgICAgICAgICAgICAgICAgICAicm9sZSI6ICIiLAotICAg ICAgICAgICAgICAgICAgICAic3NsbW9kZSI6IHNydlsndGVzdF9zc2xtb2Rl J119CisgICAgICAgIHVybCA9IHNlbGYudXJsICsgc3RyKHNydl9ncnApICsg Ii8iCiAKLSAgICAgICAgICAgIHVybCA9IHNlbGYudXJsICsgc3RyKHNydl9n cnApICsgIi8iCisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0 KHVybCkKKyAgICAgICAgcmVzcGRhdGEgPSBqc29uLmxvYWRzKHJlc3BvbnNl LmRhdGEuZGVjb2RlKCkpCiAKLSAgICAgICAgICAgIHJlc3BvbnNlID0gc2Vs Zi50ZXN0ZXIuZ2V0KHVybCwgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudF90 eXBlPSdodG1sL2pzb24nKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVl KHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCi0gICAgICAgICAgICByZXNw ZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YSkKKyAgICAgICAgaWYg bGVuKHJlc3BkYXRhKSA9PSAwOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0 aW9uKCJObyBzZXJ2ZXIocykgdG8gZGVsZXRlLiIpCiAKLSAgICAgICAgICAg IGZvciBzZXJ2ZXIgaW4gcmVzcGRhdGE6Ci0gICAgICAgICAgICAgICAgcmVz cG9uc2UgPSBzZWxmLnRlc3Rlci5kZWxldGUodXJsICsganNvbi5kdW1wcyhz ZXJ2ZXJbJ2lkJ10pKQotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1 ZShyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQotICAgICAgICAgICAgICAg IHJlc3BkYXRhID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRhKQotICAgICAg ICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXNwZGF0YVsnc3VjY2Vzcydd LCAxKQorICAgICAgICAjIGRlbGV0ZSBsYXN0IHNlcnZlcgorICAgICAgICBz ZXJ2ZXIgPSByZXNwZGF0YVstMV0KKyAgICAgICAgcmVzcG9uc2UgPSBzZWxm LnRlc3Rlci5kZWxldGUodXJsICsgc3RyKHNlcnZlclsnaWQnXSkpCisgICAg ICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAw KQorICAgICAgICByZXNwZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0 YS5kZWNvZGUoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlc3BkYXRh WydzdWNjZXNzJ10sIDEpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X3NlcnZlcl9n ZXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy90ZXN0cy90ZXN0X3NlcnZlcl9nZXQucHkKaW5kZXggMDUwODQzZS4u MTYzZmVmMyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zZXJ2ZXJfZ2V0LnB5Cisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L3Rlc3RzL3Rlc3Rfc2VydmVyX2dldC5weQpAQCAtNywxNSArNywxNCBAQAog IwogIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogCi1pbXBvcnQg anNvbgotCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci50ZXN0cy50ZXN0X2xvZ2lu IGltcG9ydCBMb2dpblRlc3RDYXNlCiBmcm9tIHJlZ3Jlc3Npb24uY29uZmln IGltcG9ydCBjb25maWdfZGF0YQorZnJvbSByZWdyZXNzaW9uLnRlc3RfdXRp bHMgaW1wb3J0IGdldF9pZHMKIAogCiBjbGFzcyBTZXJ2ZXJzR2V0VGVzdENh c2UoTG9naW5UZXN0Q2FzZSk6CiAgICAgIiIiCi0gICAgVGhpcyBjbGFzcyB3 aWxsIGNoZWNrIHNlcnZlciBub2RlIHByZXNlbnQgb24gdGhlIG9iamVjdCBi cm93c2VyJ3MgdHJlZSBub2RlCisgICAgVGhpcyBjbGFzcyB3aWxsIGZldGNo IGFkZGVkIHNlcnZlcnMgdW5kZXIgZGVmYXVsdCBzZXJ2ZXIgZ3JvdXAKICAg ICBieSByZXNwb25zZSBjb2RlLgogICAgICIiIgogCkBAIC0yNywyMyArMjYs MTYgQEAgY2xhc3MgU2VydmVyc0dldFRlc3RDYXNlKExvZ2luVGVzdENhc2Up OgogICAgIF0KIAogICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAi IiIKLSAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGdldCBhbGwgYXZhaWxh YmxlIHNlcnZlcnMgcHJlc2VudCB1bmRlcgotICAgICAgICBvYmplY3QgYnJv d3Nlci4KLSAgICAgICAgIiIiCisgICAgICAgICIiIiBUaGlzIGZ1bmN0aW9u IHdpbGwgZmV0Y2ggdGhlIGFkZGVkIHNlcnZlcnMgdG8gb2JqZWN0IGJyb3dz ZXIuICIiIgogCisgICAgICAgIGFsbF9pZCA9IGdldF9pZHMoKQorICAgICAg ICBzZXJ2ZXJfaWQgPSBhbGxfaWRbInNpZCJdCiAgICAgICAgIHNydl9ncnAg PSBjb25maWdfZGF0YVsndGVzdF9zZXJ2ZXJfZ3JvdXAnXQogCi0gICAgICAg IGZvciBzcnYgaW4gY29uZmlnX2RhdGFbJ3Rlc3Rfc2VydmVyX2NyZWRlbnRp YWxzJ106Ci0gICAgICAgICAgICBkYXRhID0geyJuYW1lIjogc3J2Wyd0ZXN0 X25hbWUnXSwKLSAgICAgICAgICAgICAgICAgICAgImhvc3QiOiBzcnZbJ3Rl c3RfaG9zdCddLAotICAgICAgICAgICAgICAgICAgICAicG9ydCI6IHNydlsn dGVzdF9kYl9wb3J0J10sCi0gICAgICAgICAgICAgICAgICAgICJkYiI6IHNy dlsndGVzdF9tYWludGVuYW5jZV9kYiddLAotICAgICAgICAgICAgICAgICAg ICAidXNlcm5hbWUiOiBzcnZbJ3Rlc3RfZGJfdXNlcm5hbWUnXSwKLSAgICAg ICAgICAgICAgICAgICAgInJvbGUiOiAiIiwKLSAgICAgICAgICAgICAgICAg ICAgInNzbG1vZGUiOiBzcnZbJ3Rlc3Rfc3NsbW9kZSddfQotCi0gICAgICAg ICAgICB1cmwgPSBzZWxmLnVybCArIHN0cihzcnZfZ3JwKSArICIvIgotICAg ICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQodXJsLCBkYXRh PWpzb24uZHVtcHMoZGF0YSksCisgICAgICAgIGZvciBzcnYgaW4gc2VydmVy X2lkOgorCisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdl dChzZWxmLnVybCArIHN0cihzcnZfZ3JwKSArICcvJyArCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoc3J2KSwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlw ZT0naHRtbC9qc29uJykKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShy ZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorCisgICAgICAgICAgICBzZWxm LmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvdGVzdHMvdGVzdF9zZXJ2ZXJfcHV0LnB5IGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zZXJ2 ZXJfcHV0LnB5CmluZGV4IDMwNmJiMDMuLmY4Y2VmMjQgMTAwNjQ0Ci0tLSBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rl c3RzL3Rlc3Rfc2VydmVyX3B1dC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X3NlcnZlcl9w dXQucHkKQEAgLTgsMTYgKzgsMTMgQEAKICMgIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKIAogaW1wb3J0IGpzb24KLQogZnJvbSBwZ2FkbWluLmJy b3dzZXIudGVzdHMudGVzdF9sb2dpbiBpbXBvcnQgTG9naW5UZXN0Q2FzZQog ZnJvbSByZWdyZXNzaW9uLmNvbmZpZyBpbXBvcnQgY29uZmlnX2RhdGEKK2Zy b20gcmVncmVzc2lvbi50ZXN0X3V0aWxzIGltcG9ydCBnZXRfaWRzCiAKIAot Y2xhc3MgU2VydmVyc1VwZGF0ZVRlc3RDYXNlKExvZ2luVGVzdENhc2UpOgot ICAgICIiIgotICAgIFRoaXMgY2xhc3Mgd2lsbCBjaGVjayBzZXJ2ZXIgbm9k ZSBwcmVzZW50IG9uIHRoZSBvYmplY3QgYnJvd3NlcidzIHRyZWUgbm9kZQot ICAgIGJ5IHJlc3BvbnNlIGNvZGUuCi0gICAgIiIiCitjbGFzcyBTZXJ2ZXJV cGRhdGVUZXN0Q2FzZShMb2dpblRlc3RDYXNlKToKKyAgICAiIiIgVGhpcyBj bGFzcyB3aWxsIHVwZGF0ZSBzZXJ2ZXIncyBjb21tZW50IGZpZWxkLiAiIiIK IAogICAgIHByaW9yaXR5ID0gNgogCkBAIC0yNywzOSArMjQsNDEgQEAgY2xh c3MgU2VydmVyc1VwZGF0ZVRlc3RDYXNlKExvZ2luVGVzdENhc2UpOgogICAg IF0KIAogICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiIKLSAg ICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGVkaXQgYW5kIHVwZGF0ZSB0aGUg c2VydmVyJ3MgY29tbWVudCBmaWVsZAotICAgICAgICBieSB0aGUgc2VydmVy IGlkLgotICAgICAgICAiIiIKKyAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24g d2lsbCB1cGRhdGUgdGhlIHNlcnZlcidzIGNvbW1lbnQgZmllbGQuICIiIgog CisgICAgICAgIGFsbF9pZCA9IGdldF9pZHMoKQorICAgICAgICBzZXJ2ZXJf aWQgPSBhbGxfaWRbInNpZCJdWzBdCiAgICAgICAgIHNydl9ncnAgPSBjb25m aWdfZGF0YVsndGVzdF9zZXJ2ZXJfZ3JvdXAnXQogCi0gICAgICAgIGZvciBz cnYgaW4gY29uZmlnX2RhdGFbJ3Rlc3Rfc2VydmVyX2NyZWRlbnRpYWxzJ106 CisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KHNlbGYudXJs ICsgc3RyKHNydl9ncnApICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCksCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkK IAotICAgICAgICAgICAgZGF0YSA9IHsibmFtZSI6IHNydlsndGVzdF9uYW1l J10sCi0gICAgICAgICAgICAgICAgICAgICJob3N0Ijogc3J2Wyd0ZXN0X2hv c3QnXSwKLSAgICAgICAgICAgICAgICAgICAgInBvcnQiOiBzcnZbJ3Rlc3Rf ZGJfcG9ydCddLAotICAgICAgICAgICAgICAgICAgICAiZGIiOiBzcnZbJ3Rl c3RfbWFpbnRlbmFuY2VfZGInXSwKLSAgICAgICAgICAgICAgICAgICAgInVz ZXJuYW1lIjogc3J2Wyd0ZXN0X2RiX3VzZXJuYW1lJ10sCi0gICAgICAgICAg ICAgICAgICAgICJyb2xlIjogIiIsCi0gICAgICAgICAgICAgICAgICAgICJz c2xtb2RlIjogc3J2Wyd0ZXN0X3NzbG1vZGUnXX0KKyAgICAgICAgY29uX3Jl c3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCgnYnJvd3Nlci9zZXJ2ZXIvY29u bmVjdC97MH0vezF9Jy5mb3JtYXQKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoc3J2X2dycCwgc2VydmVyX2lkKSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhPWRpY3Qo cGFzc3dvcmQ9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbmZpZ19kYXRhCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsndGVzdF9zZXJ2 ZXJfY3JlZGVudGlhbHMnXVswXQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBbJ3Rlc3RfZGJfcGFzc3dvcmQn XSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Zm9sbG93X3JlZGlyZWN0cz1UcnVlKQogCi0gICAgICAgICAgICB1cmwgPSBz ZWxmLnVybCArIHN0cihzcnZfZ3JwKSArICIvIgorICAgICAgICBzcnZfY29u ID0ganNvbi5sb2Fkcyhjb25fcmVzcG9uc2UuZGF0YS5kZWNvZGUoKSkKIAot ICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQodXJsLCBk YXRhPWpzb24uZHVtcHMoZGF0YSksCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCisg ICAgICAgIGlmIGxlbihzcnZfY29uKSA9PSAwOgorICAgICAgICAgICAgcmFp c2UgRXhjZXB0aW9uKCJObyBTZXJ2ZXIocykgY29ubmVjdGVkIHRvIHVwZGF0 ZS4iKQogCi0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUocmVzcG9uc2Uu c3RhdHVzX2NvZGUsIDIwMCkKLSAgICAgICAgICAgIHJlc3BkYXRhID0ganNv bi5sb2FkcyhyZXNwb25zZS5kYXRhKQorICAgICAgICBkYXRhID0gXAorICAg ICAgICAgICAgeworICAgICAgICAgICAgICAgICJjb21tZW50IjogY29uZmln X2RhdGEKKyAgICAgICAgICAgICAgICBbJ3Rlc3Rfc2VydmVyX3VwZGF0ZV9k YXRhJ11bJ3Rlc3RfY29tbWVudCddLAorICAgICAgICAgICAgICAgICJpZCI6 IHNlcnZlcl9pZAorICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBmb3Ig c2VydmVyIGluIHJlc3BkYXRhOgorICAgICAgICBwdXRfcmVzcG9uc2UgPSBz ZWxmLnRlc3Rlci5wdXQoc2VsZi51cmwgKyBzdHIoc3J2X2dycCkgKyAnLycg KworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry KHNlcnZlcl9pZCksIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0n aHRtbC9qc29uJykKIAotICAgICAgICAgICAgICAgIHVybCA9IHNlbGYudXJs ICsgc3RyKHNydl9ncnApICsgIi8iICsganNvbi5kdW1wcyhzZXJ2ZXJbJ2lk J10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHB1dF9yZXNwb25zZS5z dGF0dXNfY29kZSwgMjAwKQogCi0gICAgICAgICAgICAgICAgZm9yIHNlcnZl ciBpbiBjb25maWdfZGF0YVsndGVzdF9zZXJ2ZXJfdXBkYXRlX2RhdGEnXToK LSAgICAgICAgICAgICAgICAgICAgZGF0YSA9IHsiY29tbWVudCI6IHNlcnZl clsndGVzdF9jb21tZW50J119Ci0gICAgICAgICAgICAgICAgICAgIHJlc3Bv bnNlID0gc2VsZi50ZXN0ZXIucHV0KHVybCwgZGF0YT1qc29uLmR1bXBzKGRh dGEpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCi0gICAgICAgICAg ICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXNwb25zZS5zdGF0dXNfY29k ZSwgMjAwKQotICAgICAgICAgICAgICAgICAgICByZXNwZGF0YSA9IGpzb24u bG9hZHMocmVzcG9uc2UuZGF0YSkKLSAgICAgICAgICAgICAgICAgICAgc2Vs Zi5hc3NlcnRUcnVlKHJlc3BkYXRhWydzdWNjZXNzJ10sIDEpCisgICAgICAg IHJlc3BkYXRhID0ganNvbi5sb2FkcyhwdXRfcmVzcG9uc2UuZGF0YS5kZWNv ZGUoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlc3BkYXRhWydzdWNj ZXNzJ10sIDEpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvdGVzdHMvdGVzdF9zZ19hZGQucHkgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvdGVzdHMvdGVzdF9zZ19hZGQucHkK ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU3MGJiNjUuLjAwMDAw MDAKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Rl c3RzL3Rlc3Rfc2dfYWRkLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAs MCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jCi0jIHBn QWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKLSMKLSMgQ29weXJpZ2h0IChD KSAyMDEzIC0gMjAxNiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQot IyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3Jl U1FMIExpY2VuY2UKLSMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IwotCi1pbXBvcnQganNvbgotCi1mcm9tIHBnYWRtaW4uYnJvd3Nlci50ZXN0 cy50ZXN0X2xvZ2luIGltcG9ydCBMb2dpblRlc3RDYXNlCi1mcm9tIHJlZ3Jl c3Npb24uY29uZmlnIGltcG9ydCBjb25maWdfZGF0YQotCi0KLWNsYXNzIFNn Tm9kZVRlc3RDYXNlKExvZ2luVGVzdENhc2UpOgotICAgICIiIgotICAgICBU aGlzIGNsYXNzIHdpbGwgY2hlY2sgYXZhaWxhYmxlIHNlcnZlciBncm91cHMg aW4gcGdBZG1pbi4KLSAgICAiIiIKLQotICAgIHByaW9yaXR5ID0gMQotCi0g ICAgc2NlbmFyaW9zID0gWwotICAgICAgICAjIEZldGNoaW5nIHRoZSBkZWZh dWx0IHVybCBmb3Igc2VydmVyIGdyb3VwIG5vZGUKLSAgICAgICAgKCdDaGVj ayBTZXJ2ZXIgR3JvdXAgTm9kZScsIGRpY3QodXJsPScvYnJvd3Nlci9zZXJ2 ZXItZ3JvdXAvb2JqLycpKQotICAgIF0KLQotICAgIGRlZiBydW5UZXN0KHNl bGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgY2hlY2sgYXZh aWxhYmxlIHNlcnZlciBncm91cHMuIiIiCi0KLSAgICAgICAgaSA9IGNvbmZp Z19kYXRhWyd0ZXN0X3NlcnZlcl9ncm91cCddCi0KLSAgICAgICAgcmVzcG9u c2UgPSBzZWxmLnRlc3Rlci5nZXQoc2VsZi51cmwgKyBzdHIoaSksIGNvbnRl bnRfdHlwZT0naHRtbC9qc29uJykKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVl KHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCi0gICAgICAgIHJlc3BkYXRh ID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRhKQotICAgICAgICBzZWxmLmFz c2VydFRydWUocmVzcGRhdGFbJ2lkJ10sIGkpCmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvdGVzdHMvdGVzdF9zZ19n ZXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvdGVz dHMvdGVzdF9zZ19nZXQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uYzU1MmQ4ZQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy90ZXN0cy90ZXN0X3NnX2dldC5w eQpAQCAtMCwwICsxLDM2IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIwor IyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZl bG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5k ZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjCisKK2ltcG9ydCBqc29uCitmcm9tIHBnYWRtaW4u YnJvd3Nlci50ZXN0cy50ZXN0X2xvZ2luIGltcG9ydCBMb2dpblRlc3RDYXNl Citmcm9tIHJlZ3Jlc3Npb24uY29uZmlnIGltcG9ydCBjb25maWdfZGF0YQor CisKK2NsYXNzIFNnR2V0VGVzdENhc2UoTG9naW5UZXN0Q2FzZSk6CisgICAg IiIiCisgICAgIFRoaXMgY2xhc3Mgd2lsbCBjaGVjayBhdmFpbGFibGUgc2Vy dmVyIGdyb3VwcyBpbiBwZ0FkbWluLgorICAgICIiIgorCisgICAgcHJpb3Jp dHkgPSAzCisKKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICMgRmV0Y2hp bmcgdGhlIGRlZmF1bHQgdXJsIGZvciBzZXJ2ZXIgZ3JvdXAgbm9kZQorICAg ICAgICAoJ0NoZWNrIFNlcnZlciBHcm91cCBOb2RlJywgZGljdCh1cmw9Jy9i cm93c2VyL3NlcnZlci1ncm91cC9vYmovJykpCisgICAgXQorCisgICAgZGVm IHJ1blRlc3Qoc2VsZik6CisgICAgICAgICIiIlRoaXMgZnVuY3Rpb24gd2ls bCBjaGVjayBhdmFpbGFibGUgc2VydmVyIGdyb3Vwcy4iIiIKKworICAgICAg ICBzcnZfZ3JwID0gY29uZmlnX2RhdGFbJ3Rlc3Rfc2VydmVyX2dyb3VwJ10K KworICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldChzZWxmLnVy bCArIHN0cihzcnZfZ3JwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorICAgICAgICBz ZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQor ICAgICAgICByZXNwZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5k ZWNvZGUoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlc3BkYXRhWydp ZCddLCBzcnZfZ3JwKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci90ZXN0cy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVz dHMvX19pbml0X18ucHkKaW5kZXggMjM4MWVmZC4uNDQ3MDcxMSAxMDA2NDQK LS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0cy9fX2luaXRfXy5weQor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Rlc3RzL19faW5pdF9fLnB5CkBA IC0xMSw1ICsxMSw2IEBAIGZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBv cnQgQmFzZVRlc3RHZW5lcmF0b3IKIAogCiBjbGFzcyBCcm93c2VyR2VuZXJh dGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CisKICAgICBkZWYgcnVu VGVzdChzZWxmKToKLSAgICAgICAgcHJpbnQgKCJJbiBCcm93c2VyR2VuZXJh dGVUZXN0Q2FzZS4uLiIpCisgICAgICAgIHJldHVybgpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0cy90ZXN0X2NoYW5nZV9wYXNzd29y ZC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVzdHMvdGVzdF9jaGFuZ2Vf cGFzc3dvcmQucHkKaW5kZXggZGVkYjdkOS4uNWM0OTMwZCAxMDA2NDQKLS0t IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0cy90ZXN0X2NoYW5nZV9wYXNz d29yZC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Rlc3RzL3Rlc3Rf Y2hhbmdlX3Bhc3N3b3JkLnB5CkBAIC04NSwxMCArODUsMTAgQEAgY2xhc3Mg Q2hhbmdlUGFzc3dvcmRUZXN0Q2FzZShMb2dpblRlc3RDYXNlKToKICAgICAg ICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIGNoZWNrIGNoYW5nZSBwYXNzd29y ZCBmdW5jdGlvbmFsaXR5LiIiIgogCiAgICAgICAgIHJlc3BvbnNlID0gc2Vs Zi50ZXN0ZXIuZ2V0KCcvY2hhbmdlJywgZm9sbG93X3JlZGlyZWN0cz1UcnVl KQotICAgICAgICBzZWxmLmFzc2VydEluKCdwZ0FkbWluIDQgUGFzc3dvcmQg Q2hhbmdlJywgcmVzcG9uc2UuZGF0YSkKKyAgICAgICAgc2VsZi5hc3NlcnRJ bigncGdBZG1pbiA0IFBhc3N3b3JkIENoYW5nZScsIHJlc3BvbnNlLmRhdGEu ZGVjb2RlKCd1dGY4JykpCiAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0 ZXIucG9zdCgnL2NoYW5nZScsIGRhdGE9ZGljdCgKICAgICAgICAgICAgIHBh c3N3b3JkPXNlbGYucGFzc3dvcmQsCiAgICAgICAgICAgICBuZXdfcGFzc3dv cmQ9c2VsZi5uZXdfcGFzc3dvcmQsCiAgICAgICAgICAgICBuZXdfcGFzc3dv cmRfY29uZmlybT1zZWxmLm5ld19wYXNzd29yZF9jb25maXJtKSwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVj dHM9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRJbihzZWxmLnJlc3BkYXRh LCByZXNwb25zZS5kYXRhKQorICAgICAgICBzZWxmLmFzc2VydEluKHNlbGYu cmVzcGRhdGEsIHJlc3BvbnNlLmRhdGEuZGVjb2RlKCd1dGY4JykpCmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Rlc3RzL3Rlc3RfbG9naW4u cHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Rlc3RzL3Rlc3RfbG9naW4ucHkK aW5kZXggN2MyYjc5Ni4uZDI3MmE2MyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRt aW4vYnJvd3Nlci90ZXN0cy90ZXN0X2xvZ2luLnB5CisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvdGVzdHMvdGVzdF9sb2dpbi5weQpAQCAtOCw3ICs4LDYg QEAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAKIGltcG9ydCB1 dWlkCi0KIGZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRl c3RHZW5lcmF0b3IKIGZyb20gcmVncmVzc2lvbi5jb25maWcgaW1wb3J0IGNv bmZpZ19kYXRhCiAKQEAgLTY3LDcgKzY2LDkgQEAgY2xhc3MgTG9naW5UZXN0 Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICAgICAgICAgICAg Wyd0ZXN0X2xvZ2luX3VzZXJuYW1lJ10pLAogICAgICAgICAgICAgcGFzc3dv cmQ9KGNvbmZpZ19kYXRhWydwZ0FkbWluNF9sb2dpbl9jcmVkZW50aWFscydd CiAgICAgICAgICAgICAgICAgICAgICAgWyd0ZXN0X2xvZ2luX3Bhc3N3b3Jk J10pLAotICAgICAgICAgICAgcmVzcGRhdGE9J1lvdSBhcmUgY3VycmVudGx5 IHJ1bm5pbmcgdmVyc2lvbicpKQorICAgICAgICAgICAgcmVzcGRhdGE9J0dy YXZhdGFyIGltYWdlIGZvciAlcycgJQorICAgICAgICAgICAgICAgICAgICAg Y29uZmlnX2RhdGFbJ3BnQWRtaW40X2xvZ2luX2NyZWRlbnRpYWxzJ10KKyAg ICAgICAgICAgICAgICAgICAgIFsndGVzdF9sb2dpbl91c2VybmFtZSddKSkK ICAgICBdCiAKICAgICBkZWYgcnVuVGVzdChzZWxmKToKQEAgLTc2LDQgKzc3 LDQgQEAgY2xhc3MgTG9naW5UZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6 CiAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCgnL2xvZ2lu JywgZGF0YT1kaWN0KAogICAgICAgICAgICAgZW1haWw9c2VsZi5lbWFpbCwg cGFzc3dvcmQ9c2VsZi5wYXNzd29yZCksCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCi0gICAg ICAgIHNlbGYuYXNzZXJ0SW4oc2VsZi5yZXNwZGF0YSwgcmVzcG9uc2UuZGF0 YSkKKyAgICAgICAgc2VsZi5hc3NlcnRJbihzZWxmLnJlc3BkYXRhLCByZXNw b25zZS5kYXRhLmRlY29kZSgndXRmOCcpKQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci90ZXN0cy90ZXN0X2xvZ291dC5weSBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvdGVzdHMvdGVzdF9sb2dvdXQucHkKaW5kZXggODk3MWU3 Mi4uZDk2MTFhZSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci90 ZXN0cy90ZXN0X2xvZ291dC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3Rlc3RzL3Rlc3RfbG9nb3V0LnB5CkBAIC0xNCwxNCArMTQsMTMgQEAgZnJv bSByZWdyZXNzaW9uLmNvbmZpZyBpbXBvcnQgY29uZmlnX2RhdGEKIGNsYXNz IExvZ291dFRlc3QoTG9naW5UZXN0Q2FzZSk6CiAgICAgIiIiCiAgICAgVGhp cyBjbGFzcyB2ZXJpZmllcyB0aGUgbG9nb3V0IGZ1bmN0aW9uYWxpdHk7IHBy b3ZpZGVkIHRoZSB1c2VyIGlzIGFscmVhZHkKLSAgICBsb2dnZWQtaW4uIERp Y3Rpb25hcnkgcGFyYW1ldGVycyBkZWZpbmUgdGhlIHNjZW5hcmlvIGFwcGVu ZGVkIGJ5IHRlc3QKLSAgICBuYW1lLgorICAgIGxvZ2dlZC1pbi4KICAgICAi IiIKIAotICAgIHByaW9yaXR5ID0gMworICAgIHByaW9yaXR5ID0gMTAwCiAK ICAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICMgVGhpcyB0ZXN0IGNhc2Ug dmFsaWRhdGUgdGhlIGxvZ291dCBwYWdlCisgICAgICAgICMgVGhpcyB0ZXN0 IGNhc2UgdmFsaWRhdGUgdGhlIGxvZ291dCBwYWdlLgogICAgICAgICAoJ0xv Z2dpbmcgT3V0JywgZGljdChyZXNwZGF0YT0nUmVkaXJlY3RpbmcuLi4nKSkK ICAgICBdCiAKQEAgLTI5LDcgKzI4LDcgQEAgY2xhc3MgTG9nb3V0VGVzdChM b2dpblRlc3RDYXNlKToKICAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBjaGVj a3MgdGhlIGxvZ291dCBmdW5jdGlvbmFsaXR5LiIiIgogCiAgICAgICAgIHJl c3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KCcvbG9nb3V0JykKLSAgICAgICAg c2VsZi5hc3NlcnRJbihzZWxmLnJlc3BkYXRhLCByZXNwb25zZS5kYXRhKQor ICAgICAgICBzZWxmLmFzc2VydEluKHNlbGYucmVzcGRhdGEsIHJlc3BvbnNl LmRhdGEuZGVjb2RlKCd1dGY4JykpCiAKICAgICBkZWYgdGVhckRvd24oc2Vs Zik6CiAgICAgICAgICIiIgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci90ZXN0cy90ZXN0X3Jlc2V0X3Bhc3N3b3JkLnB5IGIvd2ViL3BnYWRt aW4vYnJvd3Nlci90ZXN0cy90ZXN0X3Jlc2V0X3Bhc3N3b3JkLnB5CmluZGV4 IDAzMGIxODIuLjMxYTM5OTIgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvdGVzdHMvdGVzdF9yZXNldF9wYXNzd29yZC5weQorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3Rlc3RzL3Rlc3RfcmVzZXRfcGFzc3dvcmQucHkK QEAgLTQxLDggKzQxLDkgQEAgY2xhc3MgUmVzZXRQYXNzd29yZFRlc3RDYXNl KEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgIiIiVGhpcyBmdW5jdGlv biBjaGVja3MgcmVzZXQgcGFzc3dvcmQgZnVuY3Rpb25hbGl0eS4iIiIKIAog ICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldCgnL3Jlc2V0JykK LSAgICAgICAgc2VsZi5hc3NlcnRJbignUmVjb3ZlciBwZ0FkbWluIDQgUGFz c3dvcmQnLCByZXNwb25zZS5kYXRhKQorICAgICAgICBzZWxmLmFzc2VydElu KCdSZWNvdmVyIHBnQWRtaW4gNCBQYXNzd29yZCcsCisgICAgICAgICAgICAg ICAgICAgICAgcmVzcG9uc2UuZGF0YS5kZWNvZGUoJ3V0ZjgnKSkKICAgICAg ICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wb3N0KAogICAgICAgICAgICAg Jy9yZXNldCcsIGRhdGE9ZGljdChlbWFpbD1zZWxmLmVtYWlsKSwKICAgICAg ICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKLSAgICAgICAgc2VsZi5h c3NlcnRJbihzZWxmLnJlc3BkYXRhLCByZXNwb25zZS5kYXRhKQorICAgICAg ICBzZWxmLmFzc2VydEluKHNlbGYucmVzcGRhdGEsIHJlc3BvbnNlLmRhdGEu ZGVjb2RlKCd1dGY4JykpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi91dGls cy9yb3V0ZS5weSBiL3dlYi9wZ2FkbWluL3V0aWxzL3JvdXRlLnB5CmluZGV4 IGZiOWRlNjkuLmU0Mzk5NjUgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3V0 aWxzL3JvdXRlLnB5CisrKyBiL3dlYi9wZ2FkbWluL3V0aWxzL3JvdXRlLnB5 CkBAIC01Miw3ICs1MiwxMCBAQCBjbGFzcyBUZXN0c0dlbmVyYXRvclJlZ2lz dHJ5KEFCQ01ldGEpOgogICAgICAgICBmcm9tIHdlcmt6ZXVnLnV0aWxzIGlt cG9ydCBmaW5kX21vZHVsZXMKIAogICAgICAgICBmb3IgbW9kdWxlX25hbWUg aW4gZmluZF9tb2R1bGVzKHBrZywgRmFsc2UsIFRydWUpOgotICAgICAgICAg ICAgbW9kdWxlID0gaW1wb3J0X21vZHVsZShtb2R1bGVfbmFtZSkKKyAgICAg ICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBtb2R1bGUgPSBpbXBvcnRf bW9kdWxlKG1vZHVsZV9uYW1lKQorICAgICAgICAgICAgZXhjZXB0IEltcG9y dEVycm9yOgorICAgICAgICAgICAgICAgIHBhc3MKIAogCiBpbXBvcnQgc2l4 CmRpZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi9SRUFETUUgYi93ZWIvcmVn cmVzc2lvbi9SRUFETUUKaW5kZXggZTAwMDNlNC4uNDRlZWRmYiAxMDA2NDQK LS0tIGEvd2ViL3JlZ3Jlc3Npb24vUkVBRE1FCisrKyBiL3dlYi9yZWdyZXNz aW9uL1JFQURNRQpAQCAtNDAsMjMgKzQwLDI3IEBAIEdlbmVyYWwgSW5mb3Jt YXRpb24KICAgICAzLiB0ZXN0X3NlcnZlcl9nZXQucHkKICAgICA0LiB0ZXN0 X3NlcnZlcl91cGRhdGUucHkKIAotMikgVGhlIHBnQWRtaW40IHNvdXJjZSB0 cmVlIGluY2x1ZGVzIGEgZmlsZSB0ZW1wbGF0ZSBmb3IgdGhlIHNlcnZlciBj b25maWd1cmF0aW9uCi0gICBuYW1lZCDigJh0ZXN0X2NvbmZpZy5qc29uLmlu JyBpbiB0aGUg4oCYcGdBZG1pbjQvd2ViL3JlZ3Jlc3Npb27igJkgZGlyZWN0 b3J5LiBBZnRlcgotICAgY29tcGxldGluZyB0aGUgcGdBZG1pbjQgY29uZmln dXJhdGlvbiwgeW91IG11c3QgbWFrZSBhIHdvcmtpbmcgY29weSBvZiB0aGUK LSAgIHRlbXBsYXRlIGNhbGxlZCB0ZXN0X2NvbmZpZy5qc29uIGJlZm9yZSBt b2RpZnlpbmcgdGhlIGZpbGUgY29udGVudHMuCisyKSBUaGUgcGdBZG1pbjQg c291cmNlIHRyZWUgaW5jbHVkZXMgMiBkaWZmZXJlbnQgY29uZmlndXJhdGlv biBmaWxlIHRlbXBsYXRlcy4KKyAgIE9uZSBmaWxlIHRlbXBsYXRlIGZvciB0 aGUgc2VydmVyIGNvbmZpZ3VyYXRpb24KKyAgIG5hbWVkIOKAmHRlc3RfY29u ZmlnLmpzb24uaW4nIGFuZCBhbm90aGVyIGZvciB0ZXN0IGNvbmZpZ3VyYXRp b24gbmFtZWQKKyAgICd0ZXN0X2FkdmFuY2VfY29uZmlnLmpzb24uaW4nIGlu IHRoZSDigJhwZ0FkbWluNC93ZWIvcmVncmVzc2lvbuKAmSBkaXJlY3Rvcnku CisgICBBZnRlciBjb21wbGV0aW5nIHRoZSBwZ0FkbWluNCBjb25maWd1cmF0 aW9uLCB5b3UgbXVzdCBtYWtlIGEgd29ya2luZyBjb3B5IG9mCisgICB0aGUg dGVtcGxhdGVzIGNhbGxlZCB0ZXN0X2NvbmZpZy5qc29uIGFuZCB0ZXN0X2Fk dmFuY2VfY29uZmlnLmpzb24KKyAgIGJlZm9yZSBtb2RpZnlpbmcgdGhlIGZp bGUgY29udGVudHMuCiAKIAkyYSkgVGhlIGZvbGxvd2luZyBjb21tYW5kIGNv cGllcyB0aGUgdGVzdF9jb25maWcuanNvbi5pbiBmaWxlLCBjcmVhdGluZyBh Ci0JICAgIGNvbmZpZ3VyYXRpb24gZmlsZSBuYW1lZCB0ZXN0X2NvbmZpZy5q c29uCisJICAgIGNvbmZpZ3VyYXRpb24gZmlsZSBuYW1lZCB0ZXN0X2NvbmZp Zy5qc29uIChzYW1lIHdheSB1c2VyIGNhbiBjb3B5CisJICAgIHRlc3RfYWR2 YW5jZV9jb25maWcuanNvbi5pbiBmaWxlIGludG8gdGVzdF9hZHZhbmNlX2Nv bmZpZy5qc29uKQogCiAgICAgICAgICAgICAjIGNwIHBnYWRtaW40L3dlYi9y ZWdyZXNzaW9uL3Rlc3RfY29uZmlnLmpzb24uaW4gXAogICAgICAgICAgICAg ICBwZ2FkbWluNC93ZWIvcmVncmVzc2lvbi90ZXN0X2NvbmZpZy5qc29uCiAK LQkyYikgQWZ0ZXIgY3JlYXRpbmcgdGhlIHNlcnZlciBjb25maWd1cmF0aW9u IGZpbGUsIGFkZCAob3IgbW9kaWZ5KQorCTJiKSBBZnRlciBjcmVhdGluZyB0 aGUgc2VydmVyIGFuZCB0ZXN0IGNvbmZpZ3VyYXRpb24gZmlsZSwgYWRkIChv ciBtb2RpZnkpCiAJICAgIHBhcmFtZXRlciB2YWx1ZXMgYXMgcGVyIHJlcXVp cmVtZW50cy4gVGhlIGNvbmZpZ3VyYXRpb24KIAkgICAgZmlsZXMgYXJlIG93 bmVkIGJ5IHJvb3QvdXNlci4gVGhlIHBnQWRtaW40IHJlZ3Jlc3Npb24gZnJh bWV3b3JrIGV4cGVjdHMKIAkgICAgdG8gZmluZCB0aGUgZmlsZXMgaW4gdGhl ICBkaXJlY3RvcnkgJy88aW5zdGFsbGF0aW9uIGRpcj4vd2ViL3JlZ3Jlc3Np b24vJy4KLQkgICAgSWYgeW91IG1vdmUgdGhlIGZpbGUgdG8gYW5vdGhlciBs b2NhdGlvbiwgeW91IG11c3QgY3JlYXRlIGEgc3ltYm9saWMgbGluawotCSAg ICB0aGF0IHNwZWNpZmllcyB0aGUgbmV3IGxvY2F0aW9uLgorCSAgICBJZiB5 b3UgbW92ZSB0aGUgZmlsZSB0byBhbm90aGVyIGxvY2F0aW9uLCB5b3UgbXVz dCBjcmVhdGUgYSBzeW1ib2xpYworCSAgICBsaW5rIHRoYXQgc3BlY2lmaWVz IHRoZSBuZXcgbG9jYXRpb24uCiAKIAkyYykgU3BlY2lmeWluZyBTZXJ2ZXIg Q29uZmlndXJhdGlvbiBmaWxlOgogCkBAIC02NCw2ICs2OCwxMyBAQCBHZW5l cmFsIEluZm9ybWF0aW9uCiAJICAgIHNlcnZlciBkZXRhaWxzIGFuZCBjb25u ZWN0aW9uIHByb3BlcnRpZXMgYXMgcGVyIHRoZWlyIGxvY2FsIHNldHVwLiBU aGUKIAkgICAgdGVzdF9jb25maWcgZmlsZSBpcyBpbiBqc29uIGZvcm1hdCBh bmQgcHJvcGVydHkgdmFsdWVzIGFyZSBjYXNlLXNlbnNpdGl2ZS4KIAorCTJk KSBTcGVjaWZ5aW5nIHRoZSBUZXN0IENvbmZpZ3VyYXRpb24gZmlsZToKKwor CSAgICBUaGUgdXNlciBjYW4gYWRkL2NoYW5nZSB0ZXN0IGRhdGEgYXMgcGVy IHRoZWlyIG5lZWQuIFRoZQorCSAgICB0ZXN0X2FkdmFuY2VfY29uZmlnIGZp bGUgaXMgaW4ganNvbiBmb3JtYXQgYW5kIHByb3BlcnR5IHZhbHVlcyBhcmUK KwkgICAgY2FzZS1zZW5zaXRpdmUuCisKKwogVGVzdCBEYXRhIERldGFpbHMK IC0tLS0tLS0tLS0tLS0tLS0tCiAKZGlmZiAtLWdpdCBhL3dlYi9yZWdyZXNz aW9uL2NvbmZpZy5weSBiL3dlYi9yZWdyZXNzaW9uL2NvbmZpZy5weQppbmRl eCBiZWY2NWZiLi5mNDhlYWRlIDEwMDY0NAotLS0gYS93ZWIvcmVncmVzc2lv bi9jb25maWcucHkKKysrIGIvd2ViL3JlZ3Jlc3Npb24vY29uZmlnLnB5CkBA IC0xNCwzICsxNCw4IEBAIHJvb3QgPSBvcy5wYXRoLmRpcm5hbWUob3MucGF0 aC5yZWFscGF0aChfX2ZpbGVfXykpCiAKIHdpdGggb3Blbihyb290ICsgJy90 ZXN0X2NvbmZpZy5qc29uJykgYXMgZGF0YV9maWxlOgogICAgIGNvbmZpZ19k YXRhID0ganNvbi5sb2FkKGRhdGFfZmlsZSkKKword2l0aCBvcGVuKHJvb3Qg KyAnL3Rlc3RfYWR2YW5jZV9jb25maWcuanNvbicpIGFzIGRhdGFfZmlsZToK KyAgICBhZHZhbmNlX2NvbmZpZ19kYXRhID0ganNvbi5sb2FkKGRhdGFfZmls ZSkKKworcGlja2xlX3BhdGggPSBvcy5wYXRoLmpvaW4ocm9vdCwgJ3BhcmVu dF9pZC5wa2wnKQpkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24vdGVzdF9h ZHZhbmNlX2NvbmZpZy5qc29uLmluIGIvd2ViL3JlZ3Jlc3Npb24vdGVzdF9h ZHZhbmNlX2NvbmZpZy5qc29uLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjM3MjliY2IKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cmVncmVzc2lvbi90ZXN0X2FkdmFuY2VfY29uZmlnLmpzb24uaW4KQEAgLTAs MCArMSwxMDUgQEAKK3sKKyAgInRlc3RfYWRkX2RhdGFiYXNlX2RhdGEiOiBb CisgICB7CisgICAgInRlc3RfcHJpdmlsZWdlc19hY2wiOiBbCisgICAgICB7 CisgICAgICAgICJncmFudGVlIjogInBvc3RncmVzIiwKKyAgICAgICAgImdy YW50b3IiOiAicG9zdGdyZXMiLAorICAgICAgICAicHJpdmlsZWdlcyI6IFsK KyAgICAgICAgICB7CisgICAgICAgICAgICAicHJpdmlsZWdlX3R5cGUiOiAi QyIsCisgICAgICAgICAgICAicHJpdmlsZWdlIjogdHJ1ZSwKKyAgICAgICAg ICAgICJ3aXRoX2dyYW50IjogdHJ1ZQorICAgICAgICAgIH0sCisgICAgICAg ICAgeworICAgICAgICAgICAgInByaXZpbGVnZV90eXBlIjogIlQiLAorICAg ICAgICAgICAgInByaXZpbGVnZSI6IHRydWUsCisgICAgICAgICAgICAid2l0 aF9ncmFudCI6IGZhbHNlCisgICAgICAgICAgfQorICAgICAgICBdCisgICAg ICB9CisgICAgXSwKKyAgICAidGVzdF9jb25uX2xpbWl0IjogLTEsCisgICAg InRlc3Rfb3duZXIiOiAicG9zdGdyZXMiLAorICAgICJ0ZXN0X2Z1bl9hY2wi OiBbCisgICAgICB7CisgICAgICAgICJncmFudGVlIjogInBvc3RncmVzIiwK KyAgICAgICAgImdyYW50b3IiOiAicG9zdGdyZXMiLAorICAgICAgICAicHJp dmlsZWdlcyI6IFsKKyAgICAgICAgICB7CisgICAgICAgICAgICAicHJpdmls ZWdlX3R5cGUiOiAiWCIsCisgICAgICAgICAgICAicHJpdmlsZWdlIjogdHJ1 ZSwKKyAgICAgICAgICAgICJ3aXRoX2dyYW50IjogZmFsc2UKKyAgICAgICAg ICB9CisgICAgICAgIF0KKyAgICAgIH0KKyAgICBdLAorICAgICJ0ZXN0X3Nl cV9hY2wiOiBbCisgICAgICB7CisgICAgICAgICJncmFudGVlIjogInBvc3Rn cmVzIiwKKyAgICAgICAgImdyYW50b3IiOiAicG9zdGdyZXMiLAorICAgICAg ICAicHJpdmlsZWdlcyI6IFsKKyAgICAgICAgICB7CisgICAgICAgICAgICAi cHJpdmlsZWdlX3R5cGUiOiAiciIsCisgICAgICAgICAgICAicHJpdmlsZWdl IjogdHJ1ZSwKKyAgICAgICAgICAgICJ3aXRoX2dyYW50IjogZmFsc2UKKyAg ICAgICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAgICAgICJwcml2aWxl Z2VfdHlwZSI6ICJ3IiwKKyAgICAgICAgICAgICJwcml2aWxlZ2UiOiB0cnVl LAorICAgICAgICAgICAgIndpdGhfZ3JhbnQiOiBmYWxzZQorICAgICAgICAg IH0sCisgICAgICAgICAgeworICAgICAgICAgICAgInByaXZpbGVnZV90eXBl IjogIlUiLAorICAgICAgICAgICAgInByaXZpbGVnZSI6IHRydWUsCisgICAg ICAgICAgICAid2l0aF9ncmFudCI6IGZhbHNlCisgICAgICAgICAgfQorICAg ICAgICBdCisgICAgICB9CisgICAgXSwKKyAgICAidGVzdF90YmxfYWNsIjog WworICAgICAgeworICAgICAgICAiZ3JhbnRlZSI6ICJwb3N0Z3JlcyIsCisg ICAgICAgICJncmFudG9yIjogInBvc3RncmVzIiwKKyAgICAgICAgInByaXZp bGVnZXMiOiBbCisgICAgICAgICAgeworICAgICAgICAgICAgInByaXZpbGVn ZV90eXBlIjogImEiLAorICAgICAgICAgICAgInByaXZpbGVnZSI6IHRydWUs CisgICAgICAgICAgICAid2l0aF9ncmFudCI6IHRydWUKKyAgICAgICAgICB9 LAorICAgICAgICAgIHsKKyAgICAgICAgICAgICJwcml2aWxlZ2VfdHlwZSI6 ICJyIiwKKyAgICAgICAgICAgICJwcml2aWxlZ2UiOiB0cnVlLAorICAgICAg ICAgICAgIndpdGhfZ3JhbnQiOiBmYWxzZQorICAgICAgICAgIH0KKyAgICAg ICAgXQorICAgICAgfQorICAgIF0sCisgICAgInRlc3RfdHlwZV9hY2wiOiBb CisgICAgICB7CisgICAgICAgICJncmFudGVlIjogInBvc3RncmVzIiwKKyAg ICAgICAgImdyYW50b3IiOiAicG9zdGdyZXMiLAorICAgICAgICAicHJpdmls ZWdlcyI6IFsKKyAgICAgICAgICB7CisgICAgICAgICAgICAicHJpdmlsZWdl X3R5cGUiOiAiVSIsCisgICAgICAgICAgICAicHJpdmlsZWdlIjogdHJ1ZSwK KyAgICAgICAgICAgICJ3aXRoX2dyYW50IjogZmFsc2UKKyAgICAgICAgICB9 CisgICAgICAgIF0KKyAgICAgIH0KKyAgICBdLAorICAgICJ0ZXN0X2VuY29k aW5nIjogIlVURjgiLAorICAgICJ0ZXN0X25hbWUiOiAidGVzdF9kYl9hdXRv bWF0aW9uIiwKKyAgICAidGVzdF9wcml2aWxlZ2VzIjogW10sCisgICAgInRl c3Rfc2VjdXJpdGllcyI6IFtdLAorICAgICJ0ZXN0X3ZhcmlhYmxlcyI6IFtd CisgIH0KKyBdLAorCisgICJ0ZXN0X2RiX3VwZGF0ZV9kYXRhIjogWworICB7 CisgICAgICAidGVzdF9jb21tZW50IjogIlRoaXMgaXMgZGIgdXBkYXRlIGNv bW1lbnQiCisgIH0KKyBdCisKK30KZGlmZiAtLWdpdCBhL3dlYi9yZWdyZXNz aW9uL3Rlc3Rfbm9kZXMucHkgYi93ZWIvcmVncmVzc2lvbi90ZXN0X25vZGVz LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIzZmQ1 ZWYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcmVncmVzc2lvbi90ZXN0X25v ZGVzLnB5CkBAIC0wLDAgKzEsNDIgQEAKKyMgIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBD b3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZlbG9w bWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIg dGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyAjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKKworZnJvbSByZWdyZXNzaW9uLmNvbmZpZyBpbXBvcnQgY29uZmln X2RhdGEKK2ltcG9ydCBqc29uCitmcm9tIHJlZ3Jlc3Npb24udGVzdF91dGls cyBpbXBvcnQgZ2V0X2lkcworCisKK2RlZiB0ZXN0X2dldG5vZGVzKG5vZGU9 Tm9uZSk6CisgICAgIyBDb25uZWN0IHRvIHNlcnZlciBhbmQgZGF0YWJhc2Uu CisKKyAgICBpZiBub3Qgbm9kZToKKyAgICAgICAgcmV0dXJuIE5vbmUKKwor ICAgIGFsbF9pZCA9IGdldF9pZHMoKQorCisgICAgc2VydmVyX2lkID0gYWxs X2lkWyJzaWQiXVswXQorICAgIGRiX2lkID0gYWxsX2lkWyJkaWQiXVswXQor ICAgIHNydl9ncnAgPSBjb25maWdfZGF0YVsndGVzdF9zZXJ2ZXJfZ3JvdXAn XQorCisgICAgIyBDb25uZWN0IHRvIHNlcnZlcgorICAgIHJlc3BvbnNlID0g bm9kZS50ZXN0ZXIucG9zdCgnYnJvd3Nlci9zZXJ2ZXIvY29ubmVjdC97MH0v ezF9Jy5mb3JtYXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KHNydl9ncnAsIHNlcnZlcl9pZCksCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGRhdGE9ZGljdChwYXNzd29yZD1jb25maWdfZGF0YQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ3Rlc3Rfc2VydmVyX2Ny ZWRlbnRpYWxzJ11bMF0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgWyd0ZXN0X2RiX3Bhc3N3b3JkJ10pLCBmb2xsb3dfcmVkaXJlY3RzPVRy dWUpCisKKyAgICAjIENvbm5lY3QgdG8gZGF0YWJhc2UKKyAgICBjb25fcmVz cG9uc2UgPSBub2RlLnRlc3Rlci5wb3N0KCdicm93c2VyL2RhdGFiYXNlL2Nv bm5lY3QvJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg J3swfS97MX0vezJ9Jy5mb3JtYXQKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChzcnZfZ3JwLCBzZXJ2ZXJfaWQsIGRiX2lkKSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd19yZWRp cmVjdHM9VHJ1ZSkKKworICAgIGRiX2NvbiA9IGpzb24ubG9hZHMoY29uX3Jl c3BvbnNlLmRhdGEuZGVjb2RlKCkpCisKKyAgICByZXR1cm4gZGJfY29uCmRp ZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi90ZXN0X3V0aWxzLnB5IGIvd2Vi L3JlZ3Jlc3Npb24vdGVzdF91dGlscy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi5jNjg3NDRmCi0tLSAvZGV2L251bGwKKysrIGIv d2ViL3JlZ3Jlc3Npb24vdGVzdF91dGlscy5weQpAQCAtMCwwICsxLDIwIEBA CisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBv c3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAx NiwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3 YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UK KyMKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2ltcG9ydCBwaWNrbGUK K2Zyb20gcmVncmVzc2lvbi5jb25maWcgaW1wb3J0IHBpY2tsZV9wYXRoCisK KworZGVmIGdldF9pZHModXJsPXBpY2tsZV9wYXRoKToKKyAgICAjIFRoaXMg ZnVuY3Rpb24gd2lsbCByZWFkIHBhcmVudCBub2RlcyBpZCdzIGZyb20gcGlj a2xlIGFuZCByZXR1cm4gaXQuCisKKyAgICBvdXRwdXQgPSBvcGVuKHVybCwg J3JiJykKKyAgICBpZHMgPSBwaWNrbGUubG9hZChvdXRwdXQpCisgICAgb3V0 cHV0LmNsb3NlKCkKKyAgICByZXR1cm4gaWRzCmRpZmYgLS1naXQgYS93ZWIv cmVncmVzc2lvbi90ZXN0c3VpdGUucHkgYi93ZWIvcmVncmVzc2lvbi90ZXN0 c3VpdGUucHkKaW5kZXggNmU2ZmIwYy4uNDUwNjliMiAxMDA2NDQKLS0tIGEv d2ViL3JlZ3Jlc3Npb24vdGVzdHN1aXRlLnB5CisrKyBiL3dlYi9yZWdyZXNz aW9uL3Rlc3RzdWl0ZS5weQpAQCAtMTMsNyArMTMsOCBAQCB0aGVtIHRvIFRl c3RTdWl0ZS4gIiIiCiBpbXBvcnQgb3MKIGltcG9ydCBzeXMKIGltcG9ydCB1 bml0dGVzdAotCitpbXBvcnQgb3BlcmF0b3IKK2ltcG9ydCBsb2dnaW5nCiBm cm9tIHRlc3RzY2VuYXJpb3Muc2NlbmFyaW9zIGltcG9ydCBnZW5lcmF0ZV9z Y2VuYXJpb3MKIAogIyBXZSBuZWVkIHRvIGluY2x1ZGUgdGhlIHJvb3QgZGly ZWN0b3J5IGluIHN5cy5wYXRoIHRvIGVuc3VyZSB0aGF0IHdlIGNhbgpAQCAt NDUsNiArNDYsMjIgQEAgVGVzdHNHZW5lcmF0b3JSZWdpc3RyeS5sb2FkX2dl bmVyYXRvcnMoJ3BnYWRtaW4nKQogIyBhcHBsaWNhdGlvbi4gV2UgY2FuIHRy aWdnZXIgdGVzdCByZXF1ZXN0IHRvIHRoZSBhcHBsaWNhdGlvbi4KIHRlc3Rf Y2xpZW50ID0gYXBwLnRlc3RfY2xpZW50KCkKIAorY2xhc3MgU3RyZWFtVG9M b2dnZXIob2JqZWN0KToKKyAgICAiIiIKKyAgICBGYWtlIGZpbGUtbGlrZSBz dHJlYW0gb2JqZWN0IHRoYXQgcmVkaXJlY3RzIHdyaXRlcyB0byBhIGxvZ2dl ciBpbnN0YW5jZS4KKyAgICAiIiIKKyAgICBkZWYgX19pbml0X18oc2VsZiwg bG9nZ2VyLCBsb2dfbGV2ZWw9bG9nZ2luZy5JTkZPKToKKyAgICAgICAgc2Vs Zi5sb2dnZXIgPSBsb2dnZXIKKyAgICAgICAgc2VsZi5sb2dfbGV2ZWwgPSBs b2dfbGV2ZWwKKyAgICAgICAgc2VsZi5saW5lYnVmID0gJycKKworICAgIGRl ZiB3cml0ZShzZWxmLCBidWYpOgorICAgICAgICBmb3IgbGluZSBpbiBidWYu cnN0cmlwKCkuc3BsaXRsaW5lcygpOgorICAgICAgICAgICAgc2VsZi5sb2dn ZXIubG9nKHNlbGYubG9nX2xldmVsLCBsaW5lLnJzdHJpcCgpKQorCisgICAg ZGVmIGZsdXNoKHNlbGYpOgorICAgICAgICBwYXNzCisKIAogZGVmIHN1aXRl KCk6CiAgICAgIiIiIERlZmluaW5nIHRlc3Qgc3VpdGUgd2hpY2ggd2lsbCBl eGVjdXRlIGFsbCB0aGUgdGVzdGNhc2VzIHByZXNlbnQgaW4KQEAgLTU5LDYg Kzc2LDggQEAgZGVmIHN1aXRlKCk6CiAKICAgICAgICAgbW9kdWxlcy5pbnNl cnQoZ2VuLnByaW9yaXR5LCBnZW4pCiAKKyAgICBtb2R1bGVzLnNvcnQoa2V5 PW9wZXJhdG9yLmF0dHJnZXR0ZXIoJ3ByaW9yaXR5JykpCisKICAgICBmb3Ig bSBpbiBtb2R1bGVzOgogICAgICAgICBvYmogPSBtKCkKICAgICAgICAgb2Jq LnNldFRlc3RDbGllbnQodGVzdF9jbGllbnQpCkBAIC02OSw1ICs4OCwyNSBA QCBkZWYgc3VpdGUoKToKIAogCiBpZiBfX25hbWVfXyA9PSAnX19tYWluX18n OgorCisgICAgcHJpbnQoIlBsZWFzZSBjaGVjayBvdXRwdXQgaW4gZmlsZTog bG9nZ2VyLmxvZyBwbGFjZWQgYXQgIgorICAgICAgICAgICIuLi4vcGdhZG1p bjQvd2ViL3JlZ3Jlc3Npb24iKQorCisgICAgbG9nZ2luZy5iYXNpY0NvbmZp ZyhsZXZlbD1sb2dnaW5nLkRFQlVHLAorICAgICAgICAgICAgICAgICAgICAg ICAgZm9ybWF0PSclKGFzY3RpbWUpczolKGxldmVsbmFtZSlzOiUobmFtZSlz OiUobWVzc2FnZSlzJywKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVu YW1lPSJsb2dnZXIubG9nIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZp bGVtb2RlPSd3JworICAgICAgICAgICAgICAgICAgICAgICAgKQorCisgICAg c3Rkb3V0X2xvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCdTVERPVVQnKQor ICAgIHNsID0gU3RyZWFtVG9Mb2dnZXIoc3Rkb3V0X2xvZ2dlciwgbG9nZ2lu Zy5JTkZPKQorICAgIHN5cy5zdGRvdXQgPSBzbAorCisgICAgc3RkZXJyX2xv Z2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCdTVERFUlInKQorICAgIHNsID0g U3RyZWFtVG9Mb2dnZXIoc3RkZXJyX2xvZ2dlciwgbG9nZ2luZy5FUlJPUikK KyAgICBzeXMuc3RkZXJyID0gc2wKKwogICAgIHN1aXRlID0gc3VpdGUoKQot ICAgIHRlc3RzID0gdW5pdHRlc3QuVGV4dFRlc3RSdW5uZXIoZGVzY3JpcHRp b25zPVRydWUsIHZlcmJvc2l0eT0yKS5ydW4oc3VpdGUpCisgICAgdGVzdHMg PSB1bml0dGVzdC5UZXh0VGVzdFJ1bm5lcihkZXNjcmlwdGlvbnM9VHJ1ZSwg dmVyYm9zaXR5PTIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdHJlYW09c3lzLnN0ZG91dCkucnVuKHN1aXRlKQorICAgIG9zLnJl bW92ZSgicGFyZW50X2lkLnBrbCIpCg== --94eb2c06e58e90a19605366b1050 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 --94eb2c06e58e90a19605366b1050--