Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cgIgH-0006o9-Ds for pgadmin-hackers@arkaria.postgresql.org; Tue, 21 Feb 2017 22:13:09 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1cgIgG-0000EI-VZ for pgadmin-hackers@arkaria.postgresql.org; Tue, 21 Feb 2017 22:13:09 +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 1cgIg2-00089C-4N for pgadmin-hackers@postgresql.org; Tue, 21 Feb 2017 22:12:54 +0000 Received: from mail-qt0-x22a.google.com ([2607:f8b0:400d:c0d::22a]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1cgIfy-00013F-7i for pgadmin-hackers@postgresql.org; Tue, 21 Feb 2017 22:12:53 +0000 Received: by mail-qt0-x22a.google.com with SMTP id b16so74406625qte.0 for ; Tue, 21 Feb 2017 14:12:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pivotal-io.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=vmsmer4RUKeHfsLQgqLxRuEXRUMJCrk5YpVZ+bAS9gc=; b=QSTTJ5mDEADwGrWg6+noNebh6ZHL8XHxfl1rcS5DWRbkYEEvZAfQK/fe1UONijR9i4 ubgUXF1eQKvOHu9R9GCGOjNpm0q07ZJW7aulNEBwXNvg9LKKKP5x1ektfcf26Gbagqui +lVoJD1EFkTnjI2CvKFOPgZBYnREO1nc8IhS5ydHXHCAu4DCmv2u4OeTou5ubgufUYik Pk1Jg7AfU4TIc5IkGU9FVvKseGDtdRj5TepoYgw5saTj9SjXpKLJaRNKXpNrcVrS9rEF Aiokm0wOwd3cMuHjJtbriCvgJkNssUl6Xn1lzl2cVR3OSsUCKVithf53TxrKhe2bYLGz yk4A== 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=vmsmer4RUKeHfsLQgqLxRuEXRUMJCrk5YpVZ+bAS9gc=; b=WTzSMPoc1STYq2ak44pEWgEJB0OQNXrHIoqzKfYK02qKE1a823FrzHMXUDFHHHZviy zV5emvBADZPDhhJWzlObol1ecy1bxZFujHAXxBTkcTuFrsRQbMSsorwqmxO+htsJO8nr cJU9i4EGVAom3bNcj1uDenxpiMpyyaIOE5rAINIG5FUsTr1/lRgliZSYz5u5W8HbytBx y8bAIQbwyCWvsxq516KIotbQUp0TjCG1xQmT5h3VeLJ0gmJFMJgcMvaaVYj3Xnjnu1au UO0erdKjYNiCjQ7P4Yk060AF6af9XfMwqZlwX1MIyEZLfBJa10XgjdDwenSESlJTl8rf i44Q== X-Gm-Message-State: AMke39nYFJunBrnGgh7vXurWnlNblkd7Xh9HNkFy2XohdCvO6SlnPLhrn3YsTWkdo9h3K4a6KfFHZUjiT5TlFKyA X-Received: by 10.200.34.232 with SMTP id g37mr16616263qta.91.1487715167376; Tue, 21 Feb 2017 14:12:47 -0800 (PST) MIME-Version: 1.0 Received: by 10.140.102.16 with HTTP; Tue, 21 Feb 2017 14:12:46 -0800 (PST) In-Reply-To: References: From: Atira Odhner Date: Tue, 21 Feb 2017 17:12:46 -0500 Message-ID: Subject: Re: Acceptance Tests against a browser (WIP) To: Dave Page , pgadmin-hackers Cc: Sarah McAlear Content-Type: multipart/mixed; boundary=001a113fd9bc14e8b5054911ae76 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 --001a113fd9bc14e8b5054911ae76 Content-Type: multipart/alternative; boundary=001a113fd9bc14e8b1054911ae74 --001a113fd9bc14e8b1054911ae74 Content-Type: text/plain; charset=UTF-8 Hi Dave, We fixed the flakiness issues that we saw (hopefully they are the same ones you were seeing.) by tearing down connections to the acceptance_test_db before attempting to drop it at the beginning of the test. Once we have access to the CI pipeline we can help out there to ensure the flakiness is gone. We wrapped the README at 80 characters, and removed the misleading function definition from the test. As far as the screenshots go, I'm more inclined to remove the screenshotting than to work on improving it. It currently only works when the failure is due to an AssertionError since that's what failureException relies on. We also renamed acceptance to feature_tests since 'acceptance' seemed ambiguous/redundant with 'regression'. Tira & Sara On Mon, Feb 13, 2017 at 9:36 AM, Dave Page wrote: > Hi, > > I've been playing with this for the last couple of hours, and I just > can't get it to work reliably; > > - A good percentage of the time the browser opens with a URL of > "data:," and does nothing more. This appears to happen if tests fail, > which still leaves server processes running in the background. > > - The connect_to_server test usually seems to work. > > - The template_selection_feature test usually does *not* work. I can't > see an obvious reason, but I suspect it's a race condition. What seems > to happen is that the function definition is entered, but not > registered by the UI, so the mSQL panel just ends up saying > "incomplete definition". Manually checking what was input proves that > everything is correct - and indeed, returning the SQL tab shows the > expected SQL. > > Other issues I noted: > > - The template_selection_feature test should just enter BEGIN/END. > What it currently enters is an entire function definition, when only > the body content is expected. E.g. > > self.page.fill_codemirror_area_with( > """BEGIN > > END; > """ > ) > > - Screenshots are being taken of failed tests: > 1) I've never actually seen any get saved > 2) They should be saved to the same directory as the test log, not /tmp > 3) They should have guaranteed unique names, and be mentioned in the > test output so the user can reference the image to the failure. > > The reason the last two items are important is that I've now got a > test server running the test suite with every supported version of > Python, for every supported database (well, almost, pending a couple > of fixes). I have separate workspaces for each Python version, and a > single test run might run every test 10 times, once for each database > server. > > - Please wrap the README at < 80 chars. > > > > On Thu, Feb 9, 2017 at 4:17 PM, Atira Odhner wrote: > > Hi Dave, > > > >> I think the problem was that the way you phrased it, > > > > > > You're right, we totally messed that up. We were talking about making 3 > > patches and ended up making only 2 and forgot to reword that bit. > > Sorry about that. > > > > Here are the two patches for this change that resolves the AttributeError > > you were seeing. The first patch is identical to the patch of the same > name > > in the other email thread. > > > >> We're used to > >> dealing with larger patchsets via the mailing list - typically as long > >> as you're clear about any dependencies, it shouldn't be a problem. > > > > > > Great! We'll try sending patchsets from now on and hopefully that > resolves > > some of the issues we were seeing. > > > > Tira & George > > > > On Thu, Feb 9, 2017 at 9:28 AM, Dave Page wrote: > >> > >> Hi > >> > >> On Thu, Feb 9, 2017 at 2:20 PM, Atira Odhner > wrote: > >> > Certainly. We did mention the dependency in the email. Would it be > >> > better > >> > to mention it in the patch name? > >> > >> I think the problem was that the way you phrased it, it sounded > >> optional ("an updated patch which does not include adding that test > >> helper in case you apply the show-tables patch first"). I think a > >> clear "This patch is dependent on patch Foo" would suffice. > >> > >> > Is there a better way for us to manage > >> > these changes? On other open source projects, I've seen github mirrors > >> > set > >> > up so that changes can be pulled in like branches rather then as patch > >> > applies. That would have avoided this situation since the parent > commit > >> > would be pulled in with the same SHA from either pull request branch > and > >> > git > >> > would not see it as a conflict. > >> > > >> > I'm rather new to dealing with patch files like this so I would love > >> > some > >> > tips. > >> > >> The Postgres project in general is quite conservative and stuck in > >> it's ways about how things are done (which is usually a good thing > >> considering you trust your data to the resulting code). We're used to > >> dealing with larger patchsets via the mailing list - typically as long > >> as you're clear about any dependencies, it shouldn't be a problem. > >> Some of us use tools like PyCharms for handling patches and helping > >> with reviews etc. which I guess replaces most, if not all of the > >> GitHub functionality over plain git. > >> > >> -- > >> Dave Page > >> Blog: http://pgsnake.blogspot.com > >> Twitter: @pgsnake > >> > >> EnterpriseDB UK: http://www.enterprisedb.com > >> The Enterprise PostgreSQL Company > > > > > > > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > --001a113fd9bc14e8b1054911ae74 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi Dave,

We fixed the flakiness i= ssues that we saw (hopefully they are the same ones you were seeing.) by te= aring down connections to the acceptance_test_db before attempting to drop = it at the beginning of the test.=C2=A0Once we have access to the CI pipelin= e we can help out there to ensure the flakiness is gone.

We wrapped the README at 80 characters, and removed the misleading functio= n definition from the test.

As far= as the screenshots go, I'm more inclined to remove the screenshotting = than to work on improving it. It currently only works when the failure is d= ue to an AssertionError since that's what failureException relies on.= =C2=A0

We also renamed acceptance to feature_tests= since 'acceptance' seemed ambiguous/redundant with 'regression= '.

Tira & Sara


On Mon, Feb 13, 201= 7 at 9:36 AM, Dave Page <dpage@pgadmin.org> wrote:
Hi,

I've been playing with this for the last couple of hours, and I just
can't get it to work reliably;

- A good percentage of the time the browser opens with a URL of
"data:," and does nothing more. This appears to happen if tests f= ail,
which still leaves server processes running in the background.

- The connect_to_server test usually seems to work.

- The template_selection_feature test usually does *not* work. I can't<= br> see an obvious reason, but I suspect it's a race condition. What seems<= br> to happen is that the function definition is entered, but not
registered by the UI, so the mSQL panel just ends up saying
"incomplete definition". Manually checking what was input proves = that
everything is correct - and indeed, returning the SQL tab shows the
expected SQL.

Other issues I noted:

- The template_selection_feature test should just enter BEGIN/END.
What it currently enters is an entire function definition, when only
the body content is expected. E.g.

=C2=A0 =C2=A0 =C2=A0 =C2=A0 self.page.fill_codemirror_area_with(
"""BEGIN

END;
"""
=C2=A0 =C2=A0 =C2=A0 =C2=A0 )

- Screenshots are being taken of failed tests:
=C2=A0 1) I've never actually seen any get saved
=C2=A0 2) They should be saved to the same directory as the test log, not /= tmp
=C2=A0 3) They should have guaranteed unique names, and be mentioned in the=
test output so the user can reference the image to the failure.

The reason the last two items are important is that I've now got a
test server running the test suite with every supported version of
Python, for every supported database (well, almost, pending a couple
of fixes). I have separate workspaces for each Python version, and a
single test run might run every test 10 times, once for each database
server.

- Please wrap the README at < 80 chars.



On Thu, Feb 9, 2017 at 4:17 PM, Atira Odhner <aodhner@pivotal.io> wrote:
> Hi Dave,
>
>>=C2=A0 I think the problem was that the way you phrased it,
>
>
> You're right, we totally messed that up. We were talking about mak= ing 3
> patches and ended up making only 2 and forgot to reword that bit.
> Sorry about that.
>
> Here are the two patches for this change that resolves the AttributeEr= ror
> you were seeing. The first patch is identical to the patch of the same= name
> in the other email thread.
>
>> We're used to
>> dealing with larger patchsets via the mailing list - typically as = long
>> as you're clear about any dependencies, it shouldn't be a = problem.
>
>
> Great! We'll try sending patchsets from now on and hopefully that = resolves
> some of the issues we were seeing.
>
> Tira & George
>
> On Thu, Feb 9, 2017 at 9:28 AM, Dave Page <dpage@pgadmin.org> wrote:
>>
>> Hi
>>
>> On Thu, Feb 9, 2017 at 2:20 PM, Atira Odhner <aodhner@pivotal.io> wrote:
>> > Certainly.=C2=A0 We did mention the dependency in the email. = Would it be
>> > better
>> > to mention it in the patch name?
>>
>> I think the problem was that the way you phrased it, it sounded
>> optional ("an updated patch which does not include adding tha= t test
>> helper in case you apply the show-tables patch first"). I thi= nk a
>> clear "This patch is dependent on patch Foo" would suffi= ce.
>>
>> > Is there a better way for us to manage
>> > these changes? On other open source projects, I've seen g= ithub mirrors
>> > set
>> > up so that changes can be pulled in like branches rather then= as patch
>> > applies. That would have avoided this situation since the par= ent commit
>> > would be pulled in with the same SHA from either pull request= branch and
>> > git
>> > would not see it as a conflict.
>> >
>> > I'm rather new to dealing with patch files like this so I= would love
>> > some
>> > tips.
>>
>> The Postgres project in general is quite conservative and stuck in=
>> it's ways about how things are done (which is usually a good t= hing
>> considering you trust your data to the resulting code). We're = used to
>> dealing with larger patchsets via the mailing list - typically as = long
>> as you're clear about any dependencies, it shouldn't be a = problem.
>> Some of us use tools like PyCharms for handling patches and helpin= g
>> with reviews etc. which I guess replaces most, if not all of the >> GitHub functionality over plain git.
>>
>> --
>> Dave Page
>> Blog: http://pgsnake.blogspot.com
>> Twitter: @pgsnake
>>
>> EnterpriseDB UK: http://www.enterprisedb.com
>> The Enterprise PostgreSQL Company
>
>



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

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

--001a113fd9bc14e8b1054911ae74-- --001a113fd9bc14e8b5054911ae76 Content-Type: application/octet-stream; name="0003-Rename-acceptance-feature_tests-and-make-tests-less-.patch" Content-Disposition: attachment; filename="0003-Rename-acceptance-feature_tests-and-make-tests-less-.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_izg2zl5a0 RnJvbSA1MmJjNDYwZGZmYTY0OTdhMjA3NDE3OGQ3NGFhZmVlZWFlMGJlMjky IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiR2VvcmdlIEdlbGFz aHZpbGksIFNhcmFoIE1jQWxlYXIgYW5kIFRpcmEgT2RobmVyIgogPHBhaXIr Z2dlbGFzaHZpbGkrc21jYWxlYXIrYW9kaG5lckBwaXZvdGFsLmlvPgpEYXRl OiBUdWUsIDIxIEZlYiAyMDE3IDExOjI1OjM2IC0wNTAwClN1YmplY3Q6IFtQ QVRDSCAxLzJdIFJlbmFtZSBhY2NlcHRhbmNlIC0+IGZlYXR1cmVfdGVzdHMg YW5kIG1ha2UgdGVzdHMgbGVzcwogZmxha3kgYnkgdGVhcmluZyBkb3duIHRo ZSBkYXRhYmFzZSBjb25uZWN0aW9uIGJlZm9yZSBydW5uaW5nIHRoZSB0ZXN0 CgotLS0KIC4uLi97YWNjZXB0YW5jZSA9PiBmZWF0dXJlX3Rlc3RzfS9fX2lu aXRfXy5weSAgICAgIHwgIDAKIC4uLi9jb25uZWN0X3RvX3NlcnZlcl9mZWF0 dXJlX3Rlc3QucHkgICAgICAgICAgICAgIHwgMjIgKysrLS0tLS0tLS0tLS0t LS0tCiAuLi4vdGVtcGxhdGVfc2VsZWN0aW9uX2ZlYXR1cmVfdGVzdC5weSAg ICAgICAgICAgICB8IDI0ICsrKystLS0tLS0tLS0tLS0tLS0tCiB3ZWIvcGdh ZG1pbi91dGlscy9yb3V0ZS5weSAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAyICstCiB3ZWIvcmVncmVzc2lvbi9SRUFETUUgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICA2ICsrLS0tCiAuLi4vdGVzdHMgPT4gcmVncmVz c2lvbi9mZWF0dXJlX3V0aWxzfS9fX2luaXRfXy5weSB8ICAwCiAuLi4ve3V0 aWxzID0+IGZlYXR1cmVfdXRpbHN9L2FwcF9zdGFydGVyLnB5ICAgICAgICB8 ICAwCiB3ZWIvcmVncmVzc2lvbi9mZWF0dXJlX3V0aWxzL2Jhc2VfZmVhdHVy ZV90ZXN0LnB5ICB8IDI2ICsrKysrKysrKysrKysrKysrKysrKysKIC4uLi97 dXRpbHMgPT4gZmVhdHVyZV91dGlsc30vcGdhZG1pbl9wYWdlLnB5ICAgICAg IHwgIDYgKysrKy0KIHdlYi9yZWdyZXNzaW9uL3Rlc3RfdXRpbHMucHkgICAg ICAgICAgICAgICAgICAgICAgIHwgIDUgKysrKysKIHdlYi9yZWdyZXNzaW9u L3V0aWxzL19faW5pdF9fLnB5ICAgICAgICAgICAgICAgICAgIHwgIDAKIDEx IGZpbGVzIGNoYW5nZWQsIDQ3IGluc2VydGlvbnMoKyksIDQ0IGRlbGV0aW9u cygtKQogcmVuYW1lIHdlYi9wZ2FkbWluL3thY2NlcHRhbmNlID0+IGZlYXR1 cmVfdGVzdHN9L19faW5pdF9fLnB5ICgxMDAlKQogcmVuYW1lIHdlYi9wZ2Fk bWluL3thY2NlcHRhbmNlL3Rlc3RzID0+IGZlYXR1cmVfdGVzdHN9L2Nvbm5l Y3RfdG9fc2VydmVyX2ZlYXR1cmVfdGVzdC5weSAoNzglKQogcmVuYW1lIHdl Yi9wZ2FkbWluL3thY2NlcHRhbmNlL3Rlc3RzID0+IGZlYXR1cmVfdGVzdHN9 L3RlbXBsYXRlX3NlbGVjdGlvbl9mZWF0dXJlX3Rlc3QucHkgKDc0JSkKIHJl bmFtZSB3ZWIve3BnYWRtaW4vYWNjZXB0YW5jZS90ZXN0cyA9PiByZWdyZXNz aW9uL2ZlYXR1cmVfdXRpbHN9L19faW5pdF9fLnB5ICgxMDAlKQogcmVuYW1l IHdlYi9yZWdyZXNzaW9uL3t1dGlscyA9PiBmZWF0dXJlX3V0aWxzfS9hcHBf c3RhcnRlci5weSAoMTAwJSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCB3ZWIvcmVn cmVzc2lvbi9mZWF0dXJlX3V0aWxzL2Jhc2VfZmVhdHVyZV90ZXN0LnB5CiBy ZW5hbWUgd2ViL3JlZ3Jlc3Npb24ve3V0aWxzID0+IGZlYXR1cmVfdXRpbHN9 L3BnYWRtaW5fcGFnZS5weSAoOTUlKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHdl Yi9yZWdyZXNzaW9uL3V0aWxzL19faW5pdF9fLnB5CgpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYWNjZXB0YW5jZS9fX2luaXRfXy5weSBiL3dlYi9wZ2Fk bWluL2ZlYXR1cmVfdGVzdHMvX19pbml0X18ucHkKc2ltaWxhcml0eSBpbmRl eCAxMDAlCnJlbmFtZSBmcm9tIHdlYi9wZ2FkbWluL2FjY2VwdGFuY2UvX19p bml0X18ucHkKcmVuYW1lIHRvIHdlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMv X19pbml0X18ucHkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2FjY2VwdGFu Y2UvdGVzdHMvY29ubmVjdF90b19zZXJ2ZXJfZmVhdHVyZV90ZXN0LnB5IGIv d2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy9jb25uZWN0X3RvX3NlcnZlcl9m ZWF0dXJlX3Rlc3QucHkKc2ltaWxhcml0eSBpbmRleCA3OCUKcmVuYW1lIGZy b20gd2ViL3BnYWRtaW4vYWNjZXB0YW5jZS90ZXN0cy9jb25uZWN0X3RvX3Nl cnZlcl9mZWF0dXJlX3Rlc3QucHkKcmVuYW1lIHRvIHdlYi9wZ2FkbWluL2Zl YXR1cmVfdGVzdHMvY29ubmVjdF90b19zZXJ2ZXJfZmVhdHVyZV90ZXN0LnB5 CmluZGV4IGMzYmVlNGU2Li4yYTdmNjM4ZSAxMDA2NDQKLS0tIGEvd2ViL3Bn YWRtaW4vYWNjZXB0YW5jZS90ZXN0cy9jb25uZWN0X3RvX3NlcnZlcl9mZWF0 dXJlX3Rlc3QucHkKKysrIGIvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy9j b25uZWN0X3RvX3NlcnZlcl9mZWF0dXJlX3Rlc3QucHkKQEAgLTcsMjkgKzcs MjAgQEAKICMKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAKLWZyb20gc2VsZW5pdW0g aW1wb3J0IHdlYmRyaXZlcgogZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIgaW1w b3J0IEFjdGlvbkNoYWlucwogCiBpbXBvcnQgY29uZmlnIGFzIGFwcF9jb25m aWcKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RH ZW5lcmF0b3IKIGZyb20gcmVncmVzc2lvbiBpbXBvcnQgdGVzdF91dGlscwot ZnJvbSByZWdyZXNzaW9uLnV0aWxzLmFwcF9zdGFydGVyIGltcG9ydCBBcHBT dGFydGVyCi1mcm9tIHJlZ3Jlc3Npb24udXRpbHMucGdhZG1pbl9wYWdlIGlt cG9ydCBQZ2FkbWluUGFnZQorZnJvbSByZWdyZXNzaW9uLmZlYXR1cmVfdXRp bHMuYmFzZV9mZWF0dXJlX3Rlc3QgaW1wb3J0IEJhc2VGZWF0dXJlVGVzdAog CiAKLWNsYXNzIENvbm5lY3RzVG9TZXJ2ZXJGZWF0dXJlVGVzdChCYXNlVGVz dEdlbmVyYXRvcik6CitjbGFzcyBDb25uZWN0c1RvU2VydmVyRmVhdHVyZVRl c3QoQmFzZUZlYXR1cmVUZXN0KToKICAgICAiIiIKICAgICBUZXN0cyB0aGF0 IGEgZGF0YWJhc2UgY29ubmVjdGlvbiBjYW4gYmUgY3JlYXRlZCBmcm9tIHRo ZSBVSQogICAgICIiIgogCiAgICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAg ICBpZiBhcHBfY29uZmlnLlNFUlZFUl9NT0RFOgotICAgICAgICAgICAgc2Vs Zi5za2lwVGVzdCgiQ3VycmVudGx5LCBjb25maWcgaXMgc2V0IHRvIHN0YXJ0 IHBnYWRtaW4gaW4gc2VydmVyIG1vZGUuICIKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgIlRoaXMgdGVzdCBkb2Vzbid0IGtub3cgdXNlcm5hbWUgYW5k IHBhc3N3b3JkIHNvIGRvZXNuJ3Qgd29yayBpbiBzZXJ2ZXIgbW9kZSIpCi0K LSAgICAgICAgZHJpdmVyID0gd2ViZHJpdmVyLkNocm9tZSgpCi0gICAgICAg IHNlbGYuYXBwX3N0YXJ0ZXIgPSBBcHBTdGFydGVyKGRyaXZlciwgYXBwX2Nv bmZpZykKLSAgICAgICAgc2VsZi5wYWdlID0gUGdhZG1pblBhZ2UoZHJpdmVy LCBhcHBfY29uZmlnKQorICAgICAgICBzdXBlcihDb25uZWN0c1RvU2VydmVy RmVhdHVyZVRlc3QsIHNlbGYpLnNldFVwKCkKIAogICAgICAgICBjb25uZWN0 aW9uID0gdGVzdF91dGlscy5nZXRfZGJfY29ubmVjdGlvbihzZWxmLnNlcnZl clsnZGInXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3VzZXJuYW1lJ10sCkBAIC00 MCw5ICszMSw2IEBAIGNsYXNzIENvbm5lY3RzVG9TZXJ2ZXJGZWF0dXJlVGVz dChCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgIHRlc3RfdXRpbHMuY3Jl YXRlX2RhdGFiYXNlKHNlbGYuc2VydmVyLCAiYWNjZXB0YW5jZV90ZXN0X2Ri IikKICAgICAgICAgdGVzdF91dGlscy5jcmVhdGVfdGFibGUoc2VsZi5zZXJ2 ZXIsICJhY2NlcHRhbmNlX3Rlc3RfZGIiLCAidGVzdF90YWJsZSIpCiAKLSAg ICAgICAgc2VsZi5hcHBfc3RhcnRlci5zdGFydF9hcHAoKQotICAgICAgICBz ZWxmLnBhZ2Uud2FpdF9mb3JfYXBwKCkKLQogICAgIGRlZiBydW5UZXN0KHNl bGYpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFwcF9jb25maWcuQVBQ X05BTUUsIHNlbGYucGFnZS5kcml2ZXIudGl0bGUpCiAgICAgICAgIHNlbGYu cGFnZS53YWl0X2Zvcl9zcGlubmVyX3RvX2Rpc2FwcGVhcigpCkBAIC02MSwx MCArNDksNiBAQCBjbGFzcyBDb25uZWN0c1RvU2VydmVyRmVhdHVyZVRlc3Qo QmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsncG9ydCdd KQogICAgICAgICB0ZXN0X3V0aWxzLmRyb3BfZGF0YWJhc2UoY29ubmVjdGlv biwgImFjY2VwdGFuY2VfdGVzdF9kYiIpCiAKLSAgICBkZWYgZmFpbHVyZUV4 Y2VwdGlvbihzZWxmLCAqYXJncywgKiprd2FyZ3MpOgotICAgICAgICBzZWxm LnBhZ2UuZHJpdmVyLnNhdmVfc2NyZWVuc2hvdCgnL3RtcC9wZ2FkbWluX2Nv bm5lY3RfdG9fc2VydmVyX3Rlc3RfZmFpbHVyZS5wbmcnKQotICAgICAgICBy ZXR1cm4gQXNzZXJ0aW9uRXJyb3IoKmFyZ3MsICoqa3dhcmdzKQotCiAgICAg ZGVmIF9jb25uZWN0c190b19zZXJ2ZXIoc2VsZik6CiAgICAgICAgIHNlbGYu cGFnZS5maW5kX2J5X3hwYXRoKCIvLypbQGNsYXNzPSdhY2lUcmVlVGV4dCcg YW5kIC49J1NlcnZlcnMnXSIpLmNsaWNrKCkKICAgICAgICAgc2VsZi5wYWdl LmRyaXZlci5maW5kX2VsZW1lbnRfYnlfbGlua190ZXh0KCJPYmplY3QiKS5j bGljaygpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9hY2NlcHRhbmNlL3Rl c3RzL3RlbXBsYXRlX3NlbGVjdGlvbl9mZWF0dXJlX3Rlc3QucHkgYi93ZWIv cGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3RlbXBsYXRlX3NlbGVjdGlvbl9mZWF0 dXJlX3Rlc3QucHkKc2ltaWxhcml0eSBpbmRleCA3NCUKcmVuYW1lIGZyb20g d2ViL3BnYWRtaW4vYWNjZXB0YW5jZS90ZXN0cy90ZW1wbGF0ZV9zZWxlY3Rp b25fZmVhdHVyZV90ZXN0LnB5CnJlbmFtZSB0byB3ZWIvcGdhZG1pbi9mZWF0 dXJlX3Rlc3RzL3RlbXBsYXRlX3NlbGVjdGlvbl9mZWF0dXJlX3Rlc3QucHkK aW5kZXggYjc0MDVkNTYuLjg1ODk1MGY0IDEwMDY0NAotLS0gYS93ZWIvcGdh ZG1pbi9hY2NlcHRhbmNlL3Rlc3RzL3RlbXBsYXRlX3NlbGVjdGlvbl9mZWF0 dXJlX3Rlc3QucHkKKysrIGIvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy90 ZW1wbGF0ZV9zZWxlY3Rpb25fZmVhdHVyZV90ZXN0LnB5CkBAIC0xLDIyICsx LDEzIEBACiBmcm9tIHNlbGVuaXVtIGltcG9ydCB3ZWJkcml2ZXIKIGZyb20g c2VsZW5pdW0ud2ViZHJpdmVyIGltcG9ydCBBY3Rpb25DaGFpbnMKIAotaW1w b3J0IGNvbmZpZyBhcyBhcHBfY29uZmlnCi1mcm9tIHBnYWRtaW4udXRpbHMu cm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCiBmcm9tIHJlZ3Jlc3Np b24gaW1wb3J0IHRlc3RfdXRpbHMKLWZyb20gcmVncmVzc2lvbi51dGlscy5h cHBfc3RhcnRlciBpbXBvcnQgQXBwU3RhcnRlcgotZnJvbSByZWdyZXNzaW9u LnV0aWxzLnBnYWRtaW5fcGFnZSBpbXBvcnQgUGdhZG1pblBhZ2UKK2Zyb20g cmVncmVzc2lvbi5mZWF0dXJlX3V0aWxzLmJhc2VfZmVhdHVyZV90ZXN0IGlt cG9ydCBCYXNlRmVhdHVyZVRlc3QKIAogCi1jbGFzcyBUZW1wbGF0ZVNlbGVj dGlvbkZlYXR1cmVUZXN0KEJhc2VUZXN0R2VuZXJhdG9yKToKK2NsYXNzIFRl bXBsYXRlU2VsZWN0aW9uRmVhdHVyZVRlc3QoQmFzZUZlYXR1cmVUZXN0KToK ICAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIGlmIGFwcF9jb25maWcu U0VSVkVSX01PREU6Ci0gICAgICAgICAgICBzZWxmLnNraXBUZXN0KCJDdXJy ZW50bHksIGNvbmZpZyBpcyBzZXQgdG8gc3RhcnQgcGdhZG1pbiBpbiBzZXJ2 ZXIgbW9kZS4gIgotICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhpcyB0 ZXN0IGRvZXNuJ3Qga25vdyB1c2VybmFtZSBhbmQgcGFzc3dvcmQgc28gZG9l c24ndCB3b3JrIGluIHNlcnZlciBtb2RlIikKLQotICAgICAgICBkcml2ZXIg PSB3ZWJkcml2ZXIuQ2hyb21lKCkKLSAgICAgICAgc2VsZi5hcHBfc3RhcnRl ciA9IEFwcFN0YXJ0ZXIoZHJpdmVyLCBhcHBfY29uZmlnKQotICAgICAgICBz ZWxmLnBhZ2UgPSBQZ2FkbWluUGFnZShkcml2ZXIsIGFwcF9jb25maWcpCisg ICAgICAgIHN1cGVyKFRlbXBsYXRlU2VsZWN0aW9uRmVhdHVyZVRlc3QsIHNl bGYpLnNldFVwKCkKIAogICAgICAgICBjb25uZWN0aW9uID0gdGVzdF91dGls cy5nZXRfZGJfY29ubmVjdGlvbihzZWxmLnNlcnZlclsnZGInXSwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5zZXJ2ZXJbJ3VzZXJuYW1lJ10sCkBAIC0yNyw5ICsxOCw2IEBAIGNs YXNzIFRlbXBsYXRlU2VsZWN0aW9uRmVhdHVyZVRlc3QoQmFzZVRlc3RHZW5l cmF0b3IpOgogCiAgICAgICAgIHRlc3RfdXRpbHMuY3JlYXRlX2RhdGFiYXNl KHNlbGYuc2VydmVyLCAiYWNjZXB0YW5jZV90ZXN0X2RiIikKIAotICAgICAg ICBzZWxmLmFwcF9zdGFydGVyLnN0YXJ0X2FwcCgpCi0gICAgICAgIHNlbGYu cGFnZS53YWl0X2Zvcl9hcHAoKQotCiAgICAgICAgIHNlbGYucGFnZS5hZGRf c2VydmVyKHNlbGYuc2VydmVyKQogCiAgICAgZGVmIHJ1blRlc3Qoc2VsZik6 CkBAIC03MSw4ICs1OSw0IEBAICRCT0RZJAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsn ZGJfcGFzc3dvcmQnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2hvc3QnXSwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5zZXJ2ZXJbJ3BvcnQnXSkKLSAgICAgICAgdGVzdF91dGlscy5k cm9wX2RhdGFiYXNlKGNvbm5lY3Rpb24sICJhY2NlcHRhbmNlX3Rlc3RfZGIi KQotCi0gICAgZGVmIGZhaWx1cmVFeGNlcHRpb24oc2VsZiwgKmFyZ3MsICoq a3dhcmdzKToKLSAgICAgICAgc2VsZi5wYWdlLmRyaXZlci5zYXZlX3NjcmVl bnNob3QoJy90bXAvcGdhZG1pbl9zcWxfdGVtcGxhdGVfc2VsZWN0aW9uX2Zh aWx1cmUucG5nJykKLSAgICAgICAgcmV0dXJuIEFzc2VydGlvbkVycm9yKCph cmdzLCAqKmt3YXJncykKKyAgICAgICAgdGVzdF91dGlscy5kcm9wX2RhdGFi YXNlKGNvbm5lY3Rpb24sICJhY2NlcHRhbmNlX3Rlc3RfZGIiKQpcIE5vIG5l d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L3V0aWxzL3JvdXRlLnB5IGIvd2ViL3BnYWRtaW4vdXRpbHMvcm91dGUucHkK aW5kZXggOTk2ODkyYTYuLjJkZWEyNWQ5IDEwMDY0NAotLS0gYS93ZWIvcGdh ZG1pbi91dGlscy9yb3V0ZS5weQorKysgYi93ZWIvcGdhZG1pbi91dGlscy9y b3V0ZS5weQpAQCAtNDgsNyArNDgsNyBAQCBjbGFzcyBUZXN0c0dlbmVyYXRv clJlZ2lzdHJ5KEFCQ01ldGEpOgogICAgICAgICAjIFJlZ2lzdGVyIHRoaXMg dHlwZSBvZiBtb2R1bGUsIGJhc2VkIG9uIHRoZSBtb2R1bGUgbmFtZQogICAg ICAgICAjIEF2b2lkIHJlZ2lzdGVyaW5nIHRoZSBCYXNlRHJpdmVyIGl0c2Vs ZgogCi0gICAgICAgIGlmIG5hbWUgIT0gJ0Jhc2VUZXN0R2VuZXJhdG9yJzoK KyAgICAgICAgaWYgbmFtZSAhPSAnQmFzZVRlc3RHZW5lcmF0b3InIGFuZCBu YW1lICE9ICdCYXNlRmVhdHVyZVRlc3QnOgogICAgICAgICAgICAgVGVzdHNH ZW5lcmF0b3JSZWdpc3RyeS5yZWdpc3RyeVtkWydfX21vZHVsZV9fJ11dID0g Y2xzCiAKICAgICAgICAgQUJDTWV0YS5fX2luaXRfXyhjbHMsIG5hbWUsIGJh c2VzLCBkKQpkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24vUkVBRE1FIGIv d2ViL3JlZ3Jlc3Npb24vUkVBRE1FCmluZGV4IDcxMDFlYjc1Li5kMTYxMTFi NiAxMDA2NDQKLS0tIGEvd2ViL3JlZ3Jlc3Npb24vUkVBRE1FCisrKyBiL3dl Yi9yZWdyZXNzaW9uL1JFQURNRQpAQCAtMTAzLDcgKzEwMyw3IEBAIFRlc3Qg RGF0YSBEZXRhaWxzCiBFeGVjdXRpb246CiAtLS0tLS0tLS0tLQogCi0tIEZv ciBhY2NlcHRhbmNlIHRlc3RzIHRvIHJ1biBhcyBwYXJ0IG9mIHRoZSBlbnRp cmUgdGVzdCBzdWl0ZSwgQ2hyb21lIGFuZCBjaHJvbWVkcml2ZXIgbmVlZCB0 byBiZSBpbnN0YWxsZWQ6CistIEZvciBmZWF0dXJlIHRlc3RzIHRvIHJ1biBh cyBwYXJ0IG9mIHRoZSBlbnRpcmUgdGVzdCBzdWl0ZSwgQ2hyb21lIGFuZCBj aHJvbWVkcml2ZXIgbmVlZCB0byBiZSBpbnN0YWxsZWQ6CiAgIGdldCBjaHJv bWVkcml2ZXIgZnJvbSBodHRwczovL3NpdGVzLmdvb2dsZS5jb20vYS9jaHJv bWl1bS5vcmcvY2hyb21lZHJpdmVyL2Rvd25sb2FkcyBvciBhIHBhY2thZ2Ug bWFuYWdlcgogICBhbmQgbWFrZSBzdXJlIGl0IGlzIG9uIHRoZSBQQVRICiAK QEAgLTEzNyw4ICsxMzcsOCBAQCBFeGVjdXRpb246CiAKIC0gRXhjbHVkZSBh IHBhY2thZ2UgYW5kIGl0cyBzdWJwYWNrYWdlcyB3aGVuIHJ1bm5pbmcgdGVz dHM6CiAKLSAgICBFeGFtcGxlOiBleGNsdWRlIGFjY2VwdGFuY2UgdGVzdHMg YnV0IHJ1biBhbGwgb3RoZXJzOgotICAgIHJ1biAncHl0aG9uIHJ1bnRlc3Rz LnB5IC0tZXhjbHVkZSBhY2NlcHRhbmNlJworICAgIEV4YW1wbGU6IGV4Y2x1 ZGUgZmVhdHVyZSB0ZXN0cyBidXQgcnVuIGFsbCBvdGhlcnM6CisgICAgcnVu ICdweXRob24gcnVudGVzdHMucHkgLS1leGNsdWRlIGZlYXR1cmVfdGVzdHMn CiAKICAgICBFeGFtcGxlOiBleGNsdWRlIG11bHRpcGxlIHBhY2thZ2VzOgog ICAgIHJ1biAncHl0aG9uIHJ1bnRlc3RzLnB5IC0tZXhjbHVkZSBicm93c2Vy LnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMsYnJvd3Nlci5zZXJ2 ZXJfZ3JvdXBzLnNlcnZlcnMudGFibGVzcGFjZXMnCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9hY2NlcHRhbmNlL3Rlc3RzL19faW5pdF9fLnB5IGIvd2Vi L3JlZ3Jlc3Npb24vZmVhdHVyZV91dGlscy9fX2luaXRfXy5weQpzaW1pbGFy aXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gd2ViL3BnYWRtaW4vYWNjZXB0 YW5jZS90ZXN0cy9fX2luaXRfXy5weQpyZW5hbWUgdG8gd2ViL3JlZ3Jlc3Np b24vZmVhdHVyZV91dGlscy9fX2luaXRfXy5weQpkaWZmIC0tZ2l0IGEvd2Vi L3JlZ3Jlc3Npb24vdXRpbHMvYXBwX3N0YXJ0ZXIucHkgYi93ZWIvcmVncmVz c2lvbi9mZWF0dXJlX3V0aWxzL2FwcF9zdGFydGVyLnB5CnNpbWlsYXJpdHkg aW5kZXggMTAwJQpyZW5hbWUgZnJvbSB3ZWIvcmVncmVzc2lvbi91dGlscy9h cHBfc3RhcnRlci5weQpyZW5hbWUgdG8gd2ViL3JlZ3Jlc3Npb24vZmVhdHVy ZV91dGlscy9hcHBfc3RhcnRlci5weQpkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jl c3Npb24vZmVhdHVyZV91dGlscy9iYXNlX2ZlYXR1cmVfdGVzdC5weSBiL3dl Yi9yZWdyZXNzaW9uL2ZlYXR1cmVfdXRpbHMvYmFzZV9mZWF0dXJlX3Rlc3Qu cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAuLjYyZDNi YjM2Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3JlZ3Jlc3Npb24vZmVhdHVy ZV91dGlscy9iYXNlX2ZlYXR1cmVfdGVzdC5weQpAQCAtMCwwICsxLDI2IEBA Citmcm9tIHNlbGVuaXVtIGltcG9ydCB3ZWJkcml2ZXIKKworaW1wb3J0IGNv bmZpZyBhcyBhcHBfY29uZmlnCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUg aW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHJlZ3Jlc3Npb24uZmVh dHVyZV91dGlscy5hcHBfc3RhcnRlciBpbXBvcnQgQXBwU3RhcnRlcgorZnJv bSByZWdyZXNzaW9uLmZlYXR1cmVfdXRpbHMucGdhZG1pbl9wYWdlIGltcG9y dCBQZ2FkbWluUGFnZQorCisKK2NsYXNzIEJhc2VGZWF0dXJlVGVzdChCYXNl VGVzdEdlbmVyYXRvcik6CisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAg ICBpZiBhcHBfY29uZmlnLlNFUlZFUl9NT0RFOgorICAgICAgICAgICAgc2Vs Zi5za2lwVGVzdCgiQ3VycmVudGx5LCBjb25maWcgaXMgc2V0IHRvIHN0YXJ0 IHBnYWRtaW4gaW4gc2VydmVyIG1vZGUuICIKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgIlRoaXMgdGVzdCBkb2Vzbid0IGtub3cgdXNlcm5hbWUgYW5k IHBhc3N3b3JkIHNvIGRvZXNuJ3Qgd29yayBpbiBzZXJ2ZXIgbW9kZSIpCisK KyAgICAgICAgZHJpdmVyID0gd2ViZHJpdmVyLkNocm9tZSgpCisgICAgICAg IHNlbGYuYXBwX3N0YXJ0ZXIgPSBBcHBTdGFydGVyKGRyaXZlciwgYXBwX2Nv bmZpZykKKyAgICAgICAgc2VsZi5wYWdlID0gUGdhZG1pblBhZ2UoZHJpdmVy LCBhcHBfY29uZmlnKQorICAgICAgICBzZWxmLmFwcF9zdGFydGVyLnN0YXJ0 X2FwcCgpCisgICAgICAgIHNlbGYucGFnZS53YWl0X2Zvcl9hcHAoKQorCisg ICAgZGVmIGZhaWx1cmVFeGNlcHRpb24oc2VsZiwgKmFyZ3MsICoqa3dhcmdz KToKKyAgICAgICAgc2VsZi5wYWdlLmRyaXZlci5zYXZlX3NjcmVlbnNob3Qo Jy90bXAvZmVhdHVyZV90ZXN0X2ZhaWx1cmUucG5nJykKKyAgICAgICAgcmV0 dXJuIEFzc2VydGlvbkVycm9yKCphcmdzLCAqKmt3YXJncykKKworICAgIGRl ZiBydW5UZXN0KHNlbGYpOgorICAgICAgICBwYXNzClwgTm8gbmV3bGluZSBh dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24vdXRp bHMvcGdhZG1pbl9wYWdlLnB5IGIvd2ViL3JlZ3Jlc3Npb24vZmVhdHVyZV91 dGlscy9wZ2FkbWluX3BhZ2UucHkKc2ltaWxhcml0eSBpbmRleCA5NSUKcmVu YW1lIGZyb20gd2ViL3JlZ3Jlc3Npb24vdXRpbHMvcGdhZG1pbl9wYWdlLnB5 CnJlbmFtZSB0byB3ZWIvcmVncmVzc2lvbi9mZWF0dXJlX3V0aWxzL3BnYWRt aW5fcGFnZS5weQppbmRleCBkNmE1ODM2Yy4uOGQyODQzZjYgMTAwNjQ0Ci0t LSBhL3dlYi9yZWdyZXNzaW9uL3V0aWxzL3BnYWRtaW5fcGFnZS5weQorKysg Yi93ZWIvcmVncmVzc2lvbi9mZWF0dXJlX3V0aWxzL3BnYWRtaW5fcGFnZS5w eQpAQCAtMSw0ICsxLDUgQEAKIGltcG9ydCB0aW1lCisKIGZyb20gc2VsZW5p dW0uY29tbW9uLmV4Y2VwdGlvbnMgaW1wb3J0IE5vU3VjaEVsZW1lbnRFeGNl cHRpb24KIGZyb20gc2VsZW5pdW0ud2ViZHJpdmVyIGltcG9ydCBBY3Rpb25D aGFpbnMKIGZyb20gc2VsZW5pdW0ud2ViZHJpdmVyLmNvbW1vbi5rZXlzIGlt cG9ydCBLZXlzCkBAIC02NSw2ICs2Niw5IEBAIGNsYXNzIFBnYWRtaW5QYWdl OgogICAgICAgICAgICAgIi8vcHJlW2NvbnRhaW5zKEBjbGFzcywnQ29kZU1p cnJvci1saW5lJyldLy4uLy4uLy4uLypbY29udGFpbnMoQGNsYXNzLCdDb2Rl TWlycm9yLWNvZGUnKV0iKS5jbGljaygpCiAgICAgICAgIEFjdGlvbkNoYWlu cyhzZWxmLmRyaXZlcikuc2VuZF9rZXlzKGZpZWxkX2NvbnRlbnQpLnBlcmZv cm0oKQogCisgICAgZGVmIGNsaWNrX3RhYihzZWxmLCB0YWJfbmFtZSk6Cisg ICAgICAgIHNlbGYuZmluZF9ieV94cGF0aCgiLy8qW2NvbnRhaW5zKEBjbGFz cywnd2NQYW5lbFRhYicpIGFuZCBjb250YWlucyguLCciICsgdGFiX25hbWUg KyAiJyldIikuY2xpY2soKQorCiAgICAgZGVmIHdhaXRfZm9yX2lucHV0X2Zp ZWxkX2NvbnRlbnQoc2VsZiwgZmllbGRfbmFtZSwgY29udGVudCk6CiAgICAg ICAgIGRlZiBpbnB1dF9maWVsZF9oYXNfY29udGVudCgpOgogICAgICAgICAg ICAgZWxlbWVudCA9IHNlbGYuZHJpdmVyLmZpbmRfZWxlbWVudF9ieV94cGF0 aCgKQEAgLTExNyw0ICsxMjEsNCBAQCBjbGFzcyBQZ2FkbWluUGFnZToKICAg ICAgICAgICAgIHRpbWVfd2FpdGVkICs9IHNsZWVwX3RpbWUKICAgICAgICAg ICAgIHRpbWUuc2xlZXAoc2xlZXBfdGltZSkKIAotICAgICAgICByYWlzZSBS dW50aW1lRXJyb3IoInRpbWVkIG91dCB3YWl0aW5nIGZvciAiICsgd2FpdGlu Z19mb3JfbWVzc2FnZSkKKyAgICAgICAgcmFpc2UgQXNzZXJ0aW9uRXJyb3Io InRpbWVkIG91dCB3YWl0aW5nIGZvciAiICsgd2FpdGluZ19mb3JfbWVzc2Fn ZSkKZGlmZiAtLWdpdCBhL3dlYi9yZWdyZXNzaW9uL3Rlc3RfdXRpbHMucHkg Yi93ZWIvcmVncmVzc2lvbi90ZXN0X3V0aWxzLnB5CmluZGV4IGI0NDQ1ZDdk Li4xYzJkMjQ0ZCAxMDA2NDQKLS0tIGEvd2ViL3JlZ3Jlc3Npb24vdGVzdF91 dGlscy5weQorKysgYi93ZWIvcmVncmVzc2lvbi90ZXN0X3V0aWxzLnB5CkBA IC0xNTcsNiArMTU3LDExIEBAIGRlZiBkcm9wX2RhdGFiYXNlKGNvbm5lY3Rp b24sIGRhdGFiYXNlX25hbWUpOgogICAgICIiIlRoaXMgZnVuY3Rpb24gdXNl ZCB0byBkcm9wIHRoZSBkYXRhYmFzZSIiIgogICAgIGlmIGRhdGFiYXNlX25h bWUgbm90IGluIFsicG9zdGdyZXMiLCAidGVtcGxhdGUxIiwgInRlbXBsYXRl MCJdOgogICAgICAgICBwZ19jdXJzb3IgPSBjb25uZWN0aW9uLmN1cnNvcigp CisKKyAgICAgICAgcGdfY3Vyc29yLmV4ZWN1dGUoCisgICAgICAgICAgICAi U0VMRUNUIHBnX3Rlcm1pbmF0ZV9iYWNrZW5kKHBnX3N0YXRfYWN0aXZpdHku cGlkKSBGUk9NIHBnX3N0YXRfYWN0aXZpdHkgIgorICAgICAgICAgICAgIldI RVJFIHBnX3N0YXRfYWN0aXZpdHkuZGF0bmFtZSA9JyVzJyBhbmQgcGlkIDw+ IHBnX2JhY2tlbmRfcGlkKCk7IiAlIGRhdGFiYXNlX25hbWUKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgKQogICAgICAgICBwZ19jdXJzb3IuZXhlY3V0 ZSgiU0VMRUNUICogRlJPTSBwZ19kYXRhYmFzZSBkYiBXSEVSRSIKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIiBkYi5kYXRuYW1lPSclcyciICUgZGF0 YWJhc2VfbmFtZSkKICAgICAgICAgaWYgcGdfY3Vyc29yLmZldGNoYWxsKCk6 CmRpZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi91dGlscy9fX2luaXRfXy5w eSBiL3dlYi9yZWdyZXNzaW9uL3V0aWxzL19faW5pdF9fLnB5CmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNjlkZTI5Yi4uMDAwMDAwMDAKLS0g CjIuMTEuMAoK --001a113fd9bc14e8b5054911ae76 Content-Type: application/octet-stream; name="0004-wrap-README-in-80-characters-and-simplify-TemplateSe.patch" Content-Disposition: attachment; filename="0004-wrap-README-in-80-characters-and-simplify-TemplateSe.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_izg2zl5u1 RnJvbSAxODZlNmZkYTI1NTdlMjMzNDZhMTQzNDAzNjQxODdiZDBmYzhkY2Vl IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTYXJhaCBNY0FsZWFy IGFuZCBUaXJhIE9kaG5lciA8cGFpcitzbWNhbGVhcithb2RobmVyQHBpdm90 YWwuaW8+CkRhdGU6IFR1ZSwgMjEgRmViIDIwMTcgMTU6NDI6NDUgLTA1MDAK U3ViamVjdDogW1BBVENIIDIvMl0gd3JhcCBSRUFETUUgaW4gODAgY2hhcmFj dGVycyBhbmQgc2ltcGxpZnkKIFRlbXBsYXRlU2VsZWN0aW9uRmVhdHVyZVRl c3QKCi0tLQogUkVBRE1FICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAxMyArKysrKysrLS0tLS0tCiAu Li4vZmVhdHVyZV90ZXN0cy90ZW1wbGF0ZV9zZWxlY3Rpb25fZmVhdHVyZV90 ZXN0LnB5ICAgICAgICB8IDExICstLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5n ZWQsIDggaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvUkVBRE1FIGIvUkVBRE1FCmluZGV4IGM0YTUzM2UyLi5lZDAxMDE3 NCAxMDA2NDQKLS0tIGEvUkVBRE1FCisrKyBiL1JFQURNRQpAQCAtMiw3ICsy LDcgQEAgcGdBZG1pbiA0CiA9PT09PT09PT0KIAogcGdBZG1pbiA0IGlzIGEg cmV3cml0ZSBvZiB0aGUgcG9wdWxhciBwZ0FkbWluMyBtYW5hZ2VtZW50IHRv b2wgZm9yIHRoZQotUG9zdGdyZVNRTCAoaHR0cDovL3d3dy5wb3N0Z3Jlc3Fs Lm9yZykgZGF0YWJhc2UuIAorUG9zdGdyZVNRTCAoaHR0cDovL3d3dy5wb3N0 Z3Jlc3FsLm9yZykgZGF0YWJhc2UuCiAKIEluIHRoZSBmb2xsb3dpbmcgZG9j dW1lbnRhdGlvbiBhbmQgZXhhbXBsZXMsICIkUEdBRE1JTjRfU1JDLyIgaXMg dXNlZCB0byBkZW5vdGUKIHRoZSB0b3AtbGV2ZWwgZGlyZWN0b3J5IG9mIGEg Y29weSBvZiB0aGUgcGdBZG1pbiBzb3VyY2UgdHJlZSwgZWl0aGVyIGZyb20g YQpAQCAtNTMsOSArNTMsMTAgQEAgQnkgZGVmYXVsdCwgdGhlIHJ1bnRpbWUg YXBwbGljYXRpb24gd2lsbCBiZSBidWlsdCBpbiByZWxlYXNlIG1vZGUuCiBP biBMaW51eCwgYW4gZXhlY3V0YWJsZSBjYWxsZWQgJ3BnQWRtaW40JyB3aWxs IGJlIGJ1aWx0LCBhbmQgb24gTWFjIE9TIFgsIGFuCiBhcHAgYnVuZGxlIGNh bGxlZCBwZ0FkbWluNC5hcHAgd2lsbCBiZSBjcmVhdGVkLgogCi1UbyBidWls ZCB0aGUgcnVudGltZSBvbiBhIFdpbmRvd3Mgc3lzdGVtLCBleHBvcnQgUFlU SE9OX0hPTUUgYW5kIFBZVEhPTl9WRVJTSU9OIAotdmFyaWFibGVzIGluIHRo ZSBTeXN0ZW0gZW52aXJvbm1lbnQuIFNwZWNpZnkgdGhlIFBZVEhPTl9WRVJT SU9OIHdpdGggdGhlIG1ham9yIAotYW5kIG1pbm9yIG51bWJlci4gRG8gbm90 IHNwZWNpZnkgbWljcm8gbGV2ZWwgdmVyc2lvbi4KK1RvIGJ1aWxkIHRoZSBy dW50aW1lIG9uIGEgV2luZG93cyBzeXN0ZW0sIGV4cG9ydCBQWVRIT05fSE9N RSBhbmQKK1BZVEhPTl9WRVJTSU9OIHZhcmlhYmxlcyBpbiB0aGUgU3lzdGVt IGVudmlyb25tZW50LiBTcGVjaWZ5IHRoZQorUFlUSE9OX1ZFUlNJT04gd2l0 aCB0aGUgbWFqb3IgYW5kIG1pbm9yIG51bWJlci4gRG8gbm90IHNwZWNpZnkg bWljcm8gbGV2ZWwKK3ZlcnNpb24uCiAKIEZvciBleGFtcGxlLCBnaXZlbiBh IFB5dGhvbiB2ZXJzaW9uIG9mIEEuQi5DOyBBIC0gTWFqb3IgbnVtYmVyLCBC IC0gTWlub3IKIG51bWJlciwgQyAtIE1pY3JvIGxldmVsIChCdWcgZml4IHJl bGVhc2VzKS4KQEAgLTEwMCw3ICsxMDEsNyBAQCBwcm9jZXNzIGlzIGZhaXJs eSBzaW1wbGUgLSBhZGFwdCBhcyByZXF1aXJlZCBmb3IgeW91ciBkaXN0cmli dXRpb246CiAgICBwZ19jb25maWcgY2FuIGJlIGZvdW5kIGZvciBidWlsZGlu ZyBwc3ljb3BnMiksIGFuZCBpbnN0YWxsIHRoZSByZXF1aXJlZAogICAgcGFj a2FnZXM6CiAKLSAgICAocGdhZG1pbjQpICQgUEFUSD0kUEFUSDovdXNyL2xv Y2FsL3Bnc3FsL2JpbiBwaXAgaW5zdGFsbCAtciAkUEdBRE1JTjRfU1JDL3Jl cXVpcmVtZW50c19weTIudHh0CisgICAkIFBBVEg9JFBBVEg6L3Vzci9sb2Nh bC9wZ3NxbC9iaW4gcGlwIGluc3RhbGwgLXIgJFBHQURNSU40X1NSQy9yZXF1 aXJlbWVudHNfcHkyLnR4dAogCiAgICBJZiB5b3UgYXJlIHVzaW5nIFB5dGhv biAzLCB1c2UgdGhlIHJlcXVpcmVtZW50c19weTMudHh0IGZpbGUgaW5zdGVh ZC4KIApAQCAtMzAyLDYgKzMwMyw2IEBAIHBnQWRtaW4gSGFja2VycyBtYWls aW5nIGxpc3Q6CiAKIHBnYWRtaW4taGFja2Vyc0Bwb3N0Z3Jlc3FsLm9yZwog Ci0tLSAKKy0tCiBEYXZlIFBhZ2UKIHBnQWRtaW4gUHJvamVjdCBMZWFkCmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3RlbXBsYXRl X3NlbGVjdGlvbl9mZWF0dXJlX3Rlc3QucHkgYi93ZWIvcGdhZG1pbi9mZWF0 dXJlX3Rlc3RzL3RlbXBsYXRlX3NlbGVjdGlvbl9mZWF0dXJlX3Rlc3QucHkK aW5kZXggODU4OTUwZjQuLmNlYjEyNDc4IDEwMDY0NAotLS0gYS93ZWIvcGdh ZG1pbi9mZWF0dXJlX3Rlc3RzL3RlbXBsYXRlX3NlbGVjdGlvbl9mZWF0dXJl X3Rlc3QucHkKKysrIGIvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy90ZW1w bGF0ZV9zZWxlY3Rpb25fZmVhdHVyZV90ZXN0LnB5CkBAIC0zNiwxNiArMzYs NyBAQCBjbGFzcyBUZW1wbGF0ZVNlbGVjdGlvbkZlYXR1cmVUZXN0KEJhc2VG ZWF0dXJlVGVzdCk6CiAgICAgICAgIHNlbGYucGFnZS5maW5kX2J5X3BhcnRp YWxfbGlua190ZXh0KCJUcmlnZ2VyIGZ1bmN0aW9uLi4uIikuY2xpY2soKQog ICAgICAgICBzZWxmLnBhZ2UuZmlsbF9pbnB1dF9ieV9maWVsZF9uYW1lKCJu YW1lIiwgInRlc3QtdHJpZ2dlci1mdW5jdGlvbiIpCiAgICAgICAgIHNlbGYu cGFnZS5maW5kX2J5X3BhcnRpYWxfbGlua190ZXh0KCJEZWZpbml0aW9uIiku Y2xpY2soKQotICAgICAgICBzZWxmLnBhZ2UuZmlsbF9jb2RlbWlycm9yX2Fy ZWFfd2l0aCgKLSIiIkNSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGxvZ19s YXN0X25hbWVfY2hhbmdlcygpCi1SRVRVUk5TIFRSSUdHRVIgQVMKLSRCT0RZ JAotQkVHSU4KLQotRU5EOwotJEJPRFkkCi0iIiIKLSAgICAgICAgKQorICAg ICAgICBzZWxmLnBhZ2UuZmlsbF9jb2RlbWlycm9yX2FyZWFfd2l0aCgic29t ZS10cmlnZ2VyLWZ1bmN0aW9uLWNvbnRlbnQiKQogICAgICAgICBzZWxmLnBh Z2UuZmluZF9ieV9wYXJ0aWFsX2xpbmtfdGV4dCgiU1FMIikuY2xpY2soKQog CiAgICAgICAgIHNlbGYucGFnZS5maW5kX2J5X3hwYXRoKCIvLypbY29udGFp bnMoQGNsYXNzLCdDb2RlTWlycm9yLWxpbmVzJykgYW5kIGNvbnRhaW5zKC4s J0xFQUtQUk9PRicpXSIpCi0tIAoyLjExLjAKCg== --001a113fd9bc14e8b5054911ae76 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 --001a113fd9bc14e8b5054911ae76--