Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1gjfZR-0008Bx-46 for pgadmin-hackers@arkaria.postgresql.org; Wed, 16 Jan 2019 07:25:05 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1gjfZP-0001WP-3B for pgadmin-hackers@arkaria.postgresql.org; Wed, 16 Jan 2019 07:25:03 +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_SHA1:256) (Exim 4.89) (envelope-from ) id 1gjfZO-0001Vm-Sc for pgadmin-hackers@lists.postgresql.org; Wed, 16 Jan 2019 07:25:02 +0000 Received: from mail-yb1-xb42.google.com ([2607:f8b0:4864:20::b42]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1gjfZL-0003h6-Gm for pgadmin-hackers@postgresql.org; Wed, 16 Jan 2019 07:25:02 +0000 Received: by mail-yb1-xb42.google.com with SMTP id o73so2149165ybc.0 for ; Tue, 15 Jan 2019 23:24:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=cYrvgaisbxuekkPnK7CnB2yzeO69ORiOSkHDuU+A3CI=; b=M+QlkHpdiNyGhdMhvBD5Qaiq09855IxSxvgjm0hcqXsNPhKUr+rdOBbHJFFu+QUGSC 10KKoZYOQl0IFl03JCBi77gvXgYDIDvPZ7ISCImKb5fW9x/aIWGAprynuYWak1FD+I+s +KGhqdMRU2d5JW4WRZhm/TI90iizOq3gfYt93y8RmqpiEA0DAb91TwU3S8ON430oWKZY VxvhJ1W/2+L0m6+ltJJYUTXwrW7ngZVfQ2cBCnU5NT8PbpGQG9sliMTiH4TmVtWOIfIm t9ZFe+R99EUOpuT0qBZTJ/DkKm+KIu2vckDL0/btHTgDXhUiBmPecY0J5aYQfoxY1wuO ulIA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=cYrvgaisbxuekkPnK7CnB2yzeO69ORiOSkHDuU+A3CI=; b=GACeb4w7Ikmj7zJfH4VLwZgiNFnFcDp7L6hoCdrTwz7MrwkTIfhphygbVlVI8Fs83d EdnSGcGY2vOoLsxv0/Aff9KFin1rdRzpNPllCNayjV9GQ6cOoo62XCpgB6dJ0P7oKBFF TLeQEWR9LX8q0RsO2Wr8E202Wi5YXg9uMIPIYq87JKVpsV9DvIagyvgmin3INW7ee7LF 0ee6ugh6TCBdvAFaYvgBAIYhg8xVuhP1s0HsTHJFAFrbYl0Hg5u00Rii2WebIJjMGfoK hTm1PnK8dEnqVqJmWIsseQsE4uLdxPQ4iy44dCj99RoBnMeaRDkhLz42hHaJIIp/KiAa u7bA== X-Gm-Message-State: AJcUukfrDGWPuKElIGImrWSOfAt3l9fUCXmtnQEIWVMDbkva0Zwkkg7t mTvtOGP6CnXVeqR6dlQN6+qroMO1fnCQfHZjQdVsPg+A X-Google-Smtp-Source: ALg8bN4jx4pGRbi8p1Kq1erIZ8Ja/bwSHweYywxzshRCtdCaCQ8M4hgeKgc0GY1DoPDi3Hvc4076d5wNIkGuLbXAkkE= X-Received: by 2002:a25:3a84:: with SMTP id h126mr6233397yba.87.1547623496807; Tue, 15 Jan 2019 23:24:56 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Harshal Dhumal Date: Wed, 16 Jan 2019 12:54:45 +0530 Message-ID: Subject: Re: [pgAdmin4] [RM3862] Fix Dialog tabset keyboard navigation To: pgadmin-hackers Content-Type: multipart/mixed; boundary="000000000000c62485057f8e2c8a" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --000000000000c62485057f8e2c8a Content-Type: multipart/alternative; boundary="000000000000c62482057f8e2c88" --000000000000c62482057f8e2c88 Content-Type: text/plain; charset="UTF-8" Hi, Please find attached updated patch. In this patch I have fixed two issues: i. Dialog tab navigation should work even if focus is on footer buttons (Save, Cancel, etc..) ii. Focus should be set to first editable element of dialog when tab cycle goes through all editable footer buttons. -- *Harshal Dhumal* *Sr. Software Engineer* EnterpriseDB India: http://www.enterprisedb.com The Enterprise PostgreSQL Company On Thu, Jan 10, 2019 at 1:16 PM Harshal Dhumal < harshal.dhumal@enterprisedb.com> wrote: > Hi, > This patch fixes Dialog tabset keyboard navigation. > This regression was caused due to bootstrap 4 changes. > Also I have added jasmine test cases for the same > > > -- > *Harshal Dhumal* > *Sr. Software Engineer* > > EnterpriseDB India: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > --000000000000c62482057f8e2c88 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

Please find attached updated patch.=
In this patch I have fixed two issues:
i. Dialog tab n= avigation should work even if focus is on footer buttons (Save, Cancel, etc= ..)
ii. Focus should be set to first editable element of dialog w= hen tab cycle goes through all editable footer buttons.


--=C2=A0
Harshal Dhumal
Sr. Software Engineer

EnterpriseDB India:=C2= =A0http://www.enterprisedb.comThe Enterprise PostgreSQL Company
<= /div>


On Thu, Jan 10, 2019 at 1:16 PM Harshal Dhumal <harshal.dhumal@enterprisedb.com&= gt; wrote:
Hi,
This patch fixes=C2=A0Dialo= g tabset keyboard navigation.
This regression was caused due to b= ootstrap 4 changes.
Also I have added jasmine test cases for the = same


=
--=C2=A0
Hars= hal Dhumal
Sr. Software Engineer

=
Enterpri= seDB India:=C2=A0http://www.enterpri= sedb.com
The Enterprise PostgreSQL Co= mpany
--000000000000c62482057f8e2c88-- --000000000000c62485057f8e2c8a Content-Type: text/x-patch; charset="US-ASCII"; name="RM3862_V2.patch" Content-Disposition: attachment; filename="RM3862_V2.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jqyurj4w0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc3RhdGljL2pzL2tleWJvYXJkLmpzIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zdGF0aWMvanMva2V5Ym9hcmQuanMKaW5kZXggNzkyNjZiZi4u NGQ5YjZhZSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zdGF0aWMvanMva2V5Ym9h cmQuanMKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zdGF0aWMvanMva2V5Ym9hcmQuanMKQEAg LTM0OSwxMSArMzQ5LDExIEBAIF8uZXh0ZW5kKHBnQnJvd3Nlci5rZXlib2FyZE5hdmlnYXRpb24s IHsKICAgICAgIGQ6IHNlbGVjdGVkVHJlZU5vZGVEYXRhLAogICAgIH07CiAgIH0sCi0gIGdldERp YWxvZ1RhYk5hdmlnYXRvcjogZnVuY3Rpb24oZGlhbG9nKSB7CisgIGdldERpYWxvZ1RhYk5hdmln YXRvcjogZnVuY3Rpb24oZGlhbG9nQ29udGFpbmVyKSB7CiAgICAgY29uc3QgYmFja3dhcmRfc2hv cnRjdXQgPSBwZ0Jyb3dzZXIuZ2V0X3ByZWZlcmVuY2UoJ2Jyb3dzZXInLCAnZGlhbG9nX3RhYl9i YWNrd2FyZCcpLnZhbHVlOwogICAgIGNvbnN0IGZvcndhcmRfc2hvcnRjdXQgPSBwZ0Jyb3dzZXIu Z2V0X3ByZWZlcmVuY2UoJ2Jyb3dzZXInLCAnZGlhbG9nX3RhYl9mb3J3YXJkJykudmFsdWU7CiAK LSAgICByZXR1cm4gbmV3IGRpYWxvZ1RhYk5hdmlnYXRvci5kaWFsb2dUYWJOYXZpZ2F0b3IoZGlh bG9nLCBiYWNrd2FyZF9zaG9ydGN1dCwgZm9yd2FyZF9zaG9ydGN1dCk7CisgICAgcmV0dXJuIG5l dyBkaWFsb2dUYWJOYXZpZ2F0b3IuZGlhbG9nVGFiTmF2aWdhdG9yKGRpYWxvZ0NvbnRhaW5lciwg YmFja3dhcmRfc2hvcnRjdXQsIGZvcndhcmRfc2hvcnRjdXQpOwogICB9LAogfSk7CiAKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc3RhdGljL2pzL25vZGUuanMgYi93ZWIvcGdhZG1p bi9icm93c2VyL3N0YXRpYy9qcy9ub2RlLmpzCmluZGV4IGY1Y2I4Y2QuLjMwNjA1ZGQgMTAwNjQ0 Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc3RhdGljL2pzL25vZGUuanMKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zdGF0aWMvanMvbm9kZS5qcwpAQCAtNDEyLDggKzQxMiw2IEBAIGRlZmlu ZSgncGdhZG1pbi5icm93c2VyLm5vZGUnLCBbCiAgICAgICAgICAgICAgICAgdmlldy5yZW5kZXIo KTsKICAgICAgICAgICAgICAgICBzZXRGb2N1c09uRWwoKTsKICAgICAgICAgICAgICAgICBuZXdN b2RlbC5zdGFydE5ld1Nlc3Npb24oKTsKLSAgICAgICAgICAgICAgICAvLyB2YXIgZGlhbG9nVGFi TmF2aWdhdG9yID0gcGdCcm93c2VyLmtleWJvYXJkTmF2aWdhdGlvbi5nZXREaWFsb2dUYWJOYXZp Z2F0b3Iodmlldyk7Ci0gICAgICAgICAgICAgICAgcGdCcm93c2VyLmtleWJvYXJkTmF2aWdhdGlv bi5nZXREaWFsb2dUYWJOYXZpZ2F0b3Iodmlldyk7CiAgICAgICAgICAgICAgIH0sCiAgICAgICAg ICAgICAgIGVycm9yOiBmdW5jdGlvbih4aHIsIGVycm9yLCBtZXNzYWdlKSB7CiAgICAgICAgICAg ICAgICAgdmFyIF9sYWJlbCA9IHRoYXQgJiYgaXRlbSA/CkBAIC00NTAsOCArNDQ4LDYgQEAgZGVm aW5lKCdwZ2FkbWluLmJyb3dzZXIubm9kZScsIFsKICAgICAgICAgICAgIHZpZXcucmVuZGVyKCk7 CiAgICAgICAgICAgICBzZXRGb2N1c09uRWwoKTsKICAgICAgICAgICAgIG5ld01vZGVsLnN0YXJ0 TmV3U2Vzc2lvbigpOwotICAgICAgICAgICAgLy8gdmFyIGRpYWxvZ1RhYk5hdmlnYXRvciA9IHBn QnJvd3Nlci5rZXlib2FyZE5hdmlnYXRpb24uZ2V0RGlhbG9nVGFiTmF2aWdhdG9yKHZpZXcpOwot ICAgICAgICAgICAgcGdCcm93c2VyLmtleWJvYXJkTmF2aWdhdGlvbi5nZXREaWFsb2dUYWJOYXZp Z2F0b3Iodmlldyk7CiAgICAgICAgICAgfQogICAgICAgICB9CiAKQEAgLTEwODMsNyArMTA3OSw3 IEBAIGRlZmluZSgncGdhZG1pbi5icm93c2VyLm5vZGUnLCBbCiAgICAgICAgICAgICAvLyBBbGwg YnV0dG9ucyB3aWxsIGJlIGNyZWF0ZWQgd2l0aGluIGEgc2luZ2xlCiAgICAgICAgICAgICAvLyBk aXYgYXJlYS4KICAgICAgICAgICAgIHZhciBidG5Hcm91cCA9Ci0gICAgICAgICAgICAgICQoJzxk aXY+PC9kaXY+JykuYWRkQ2xhc3MoCisgICAgICAgICAgICAgICQoJzxkaXYgdGFiaW5kZXg9IjAi PjwvZGl2PicpLmFkZENsYXNzKAogICAgICAgICAgICAgICAgICdwZy1wcm9wLWJ0bi1ncm91cCcK ICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgLy8gVGVtcGxhdGUgdXNlZCBmb3IgY3Jl YXRpbmcgYSBidXR0b24KQEAgLTEyMDAsNyArMTE5Niw2IEBAIGRlZmluZSgncGdhZG1pbi5icm93 c2VyLm5vZGUnLCBbCiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgIH0sCiAgICAg ICAgICAgICB9KTsKLQogICAgICAgICAgICAgY3JlYXRlQnV0dG9ucyhidXR0b25zLCAnaGVhZGVy JywgJ3BnLXByb3AtYnRuLWdyb3VwLWFib3ZlJyk7CiAgICAgICAgICAgfQogICAgICAgICAgIGou YXBwZW5kKGNvbnRlbnQpOwpAQCAtMTM5Miw3ICsxMzg3LDcgQEAgZGVmaW5lKCdwZ2FkbWluLmJy b3dzZXIubm9kZScsIFsKICAgICAgICAgICAgICk7CiAKICAgICAgICAgICAgIC8vIENyZWF0ZSBw cm9wZXIgYnV0dG9ucwotICAgICAgICAgICAgY3JlYXRlQnV0dG9ucyhbeworICAgICAgICAgICAg bGV0IGJ0bl9ncnAgPSBjcmVhdGVCdXR0b25zKFt7CiAgICAgICAgICAgICAgIGxhYmVsOiAnJywK ICAgICAgICAgICAgICAgdHlwZTogJ2hlbHAnLAogICAgICAgICAgICAgICB0b29sdGlwOiBnZXR0 ZXh0KCdTUUwgaGVscCBmb3IgdGhpcyBvYmplY3QgdHlwZS4nKSwKQEAgLTE0NTgsNiArMTQ1Mywx OCBAQCBkZWZpbmUoJ3BnYWRtaW4uYnJvd3Nlci5ub2RlJywgWwogICAgICAgICAgICAgICAgIH0p OwogICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgfV0sICdmb290ZXInLCAncGctcHJvcC1i dG4tZ3JvdXAtYmVsb3cnKTsKKworICAgICAgICAgICAgYnRuX2dycC5vbigna2V5ZG93bicsICdi dXR0b24nLCBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgICBpZiAoZXZlbnQua2V5Q29k ZSA9PSA5ICYmICQodGhpcykubmV4dEFsbCgnYnV0dG9uOm5vdChbZGlzYWJsZWRdKScpLmxlbmd0 aCA9PSAwKSB7CisgICAgICAgICAgICAgICAgLy8gc2V0IGZvY3VzIGJhY2sgdG8gZmlyc3QgZWRp dGFibGUgaW5wdXQgZWxlbWVudCBvZiBjdXJyZW50IGFjdGl2ZSB0YWIgb25jZSB3ZSBjeWNsZSB0 aHJvdWdoIGFsbCBlbmFibGVkIGJ1dHRvbnMuCisgICAgICAgICAgICAgICAgY29tbW9uVXRpbHMu ZmluZEFuZFNldEZvY3VzKHZpZXcuJGVsLmZpbmQoJy50YWItY29udGVudCBkaXYuYWN0aXZlJykp OworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgfQorICAgICAg ICAgICAgfSk7CisKKyAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAg ICAgICAgIHBnQnJvd3Nlci5rZXlib2FyZE5hdmlnYXRpb24uZ2V0RGlhbG9nVGFiTmF2aWdhdG9y KHBhbmVsLnBnRWxDb250YWluZXIpOworICAgICAgICAgICAgfSwgMjAwKTsKICAgICAgICAgICB9 CiAKICAgICAgICAgICAvLyBDcmVhdGUgc3RhdHVzIGJhci4KZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL3N0YXRpYy9qcy9kaWFsb2dfdGFiX25hdmlnYXRvci5qcyBiL3dlYi9wZ2FkbWluL3N0YXRp Yy9qcy9kaWFsb2dfdGFiX25hdmlnYXRvci5qcwppbmRleCAxOWIyMDQ1Li40NDcyMTcyIDEwMDY0 NAotLS0gYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMvZGlhbG9nX3RhYl9uYXZpZ2F0b3IuanMKKysr IGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL2RpYWxvZ190YWJfbmF2aWdhdG9yLmpzCkBAIC0xMywx MyArMTMsMTMgQEAgaW1wb3J0IHsgZmluZEFuZFNldEZvY3VzIH0gZnJvbSAnLi91dGlscyc7CiBp bXBvcnQgeyBwYXJzZVNob3J0Y3V0VmFsdWUgfSBmcm9tICcuL3V0aWxzJzsKIAogY2xhc3MgZGlh bG9nVGFiTmF2aWdhdG9yIHsKLSAgY29uc3RydWN0b3IoZGlhbG9nLCBiYWNrd2FyZFNob3J0Y3V0 LCBmb3J3YXJkU2hvcnRjdXQpIHsKKyAgY29uc3RydWN0b3IoZGlhbG9nQ29udGFpbmVyLCBiYWNr d2FyZFNob3J0Y3V0LCBmb3J3YXJkU2hvcnRjdXQpIHsKIAotICAgIHRoaXMuZGlhbG9nID0gZGlh bG9nOworICAgIHRoaXMuZGlhbG9nQ29udGFpbmVyID0gZGlhbG9nQ29udGFpbmVyOwogCiAgICAg dGhpcy50YWJTd2l0Y2hpbmcgPSBmYWxzZTsKIAotICAgIHRoaXMudGFicyA9IHRoaXMuZGlhbG9n LiRlbC5maW5kKCcubmF2LXRhYnMnKTsKKyAgICB0aGlzLnRhYnMgPSB0aGlzLmRpYWxvZ0NvbnRh aW5lci5maW5kKCcubmF2LXRhYnMnKTsKIAogICAgIGlmICh0aGlzLnRhYnMubGVuZ3RoID4gMCAp IHsKICAgICAgIHRoaXMudGFicyA9IHRoaXMudGFic1swXTsKQEAgLTI4LDEzICsyOCwxMyBAQCBj bGFzcyBkaWFsb2dUYWJOYXZpZ2F0b3IgewogICAgIHRoaXMuZGlhbG9nVGFiQmFja3dhcmQgPSBw YXJzZVNob3J0Y3V0VmFsdWUoYmFja3dhcmRTaG9ydGN1dCk7CiAgICAgdGhpcy5kaWFsb2dUYWJG b3J3YXJkID0gcGFyc2VTaG9ydGN1dFZhbHVlKGZvcndhcmRTaG9ydGN1dCk7CiAKLSAgICBNb3Vz ZXRyYXAodGhpcy5kaWFsb2cuZWwpLmJpbmQodGhpcy5kaWFsb2dUYWJCYWNrd2FyZCwgdGhpcy5v bktleWJvYXJkRXZlbnQuYmluZCh0aGlzKSk7Ci0gICAgTW91c2V0cmFwKHRoaXMuZGlhbG9nLmVs KS5iaW5kKHRoaXMuZGlhbG9nVGFiRm9yd2FyZCwgdGhpcy5vbktleWJvYXJkRXZlbnQuYmluZCh0 aGlzKSk7CisgICAgTW91c2V0cmFwKHRoaXMuZGlhbG9nQ29udGFpbmVyWzBdKS5iaW5kKHRoaXMu ZGlhbG9nVGFiQmFja3dhcmQsIHRoaXMub25LZXlib2FyZEV2ZW50LmJpbmQodGhpcykpOworICAg IE1vdXNldHJhcCh0aGlzLmRpYWxvZ0NvbnRhaW5lclswXSkuYmluZCh0aGlzLmRpYWxvZ1RhYkZv cndhcmQsIHRoaXMub25LZXlib2FyZEV2ZW50LmJpbmQodGhpcykpOwogCiAgIH0KIAogICBvbktl eWJvYXJkRXZlbnQoZXZlbnQsIHNob3J0Y3V0KSB7Ci0gICAgdmFyIGN1cnJlbnRUYWJQYW5lID0g IHRoaXMuZGlhbG9nLiRlbAorICAgIHZhciBjdXJyZW50VGFiUGFuZSA9ICB0aGlzLmRpYWxvZ0Nv bnRhaW5lcgogICAgICAgICAuZmluZCgnLnRhYi1jb250ZW50OmZpcnN0ID4gLnRhYi1wYW5lLmFj dGl2ZTpmaXJzdCcpLAogICAgICAgY2hpbGRUYWJEYXRhID0gdGhpcy5pc0FjdGl2ZVBhbmVIYXND aGlsZFRhYnMoY3VycmVudFRhYlBhbmUpOwogCkBAIC04Niw3ICs4Niw3IEBAIGNsYXNzIGRpYWxv Z1RhYk5hdmlnYXRvciB7CiAgICAgdmFyIHNlbGYgPSB0aGlzLAogICAgICAgbmV4dFRhYlBhbmUs CiAgICAgICBpbm5lclRhYkNvbnRhaW5lciwKLSAgICAgIHByZXZ0YWIgPSAkKHRhYnMpLmZpbmQo J2xpLmFjdGl2ZScpLnByZXYoJ2xpJyk7CisgICAgICBwcmV2dGFiID0gJCh0YWJzKS5maW5kKCds aScpLmhhcygnYS5hY3RpdmUnKS5wcmV2KCdsaScpOwogCiAgICAgaWYgKHByZXZ0YWIubGVuZ3Ro ID4gMCkgewogICAgICAgcHJldnRhYi5maW5kKCdhJykudGFiKCdzaG93Jyk7CkBAIC0xMTYsNyAr MTE2LDcgQEAgY2xhc3MgZGlhbG9nVGFiTmF2aWdhdG9yIHsKICAgICB2YXIgc2VsZiA9IHRoaXMs CiAgICAgICBuZXh0VGFiUGFuZSwKICAgICAgIGlubmVyVGFiQ29udGFpbmVyLAotICAgICAgbmV4 dHRhYiA9ICQodGFicykuZmluZCgnbGkuYWN0aXZlJykubmV4dCgnbGknKTsKKyAgICAgIG5leHR0 YWIgPSAkKHRhYnMpLmZpbmQoJ2xpJykuaGFzKCdhLmFjdGl2ZScpLm5leHQoJ2xpJyk7CiAKICAg ICBpZihuZXh0dGFiLmxlbmd0aCA+IDApIHsKICAgICAgIG5leHR0YWIuZmluZCgnYScpLnRhYign c2hvdycpOwpAQCAtMTQyLDExICsxNDIsMTEgQEAgY2xhc3MgZGlhbG9nVGFiTmF2aWdhdG9yIHsK ICAgfQogCiAgIGRldGFjaCgpIHsKLSAgICBNb3VzZXRyYXAodGhpcy5kaWFsb2cuZWwpLnVuYmlu ZCh0aGlzLmRpYWxvZ1RhYkJhY2t3YXJkKTsKLSAgICBNb3VzZXRyYXAodGhpcy5kaWFsb2cuZWwp LnVuYmluZCh0aGlzLmRpYWxvZ1RhYkZvcndhcmQpOworICAgIE1vdXNldHJhcCh0aGlzLmRpYWxv Z0NvbnRhaW5lclswXSkudW5iaW5kKHRoaXMuZGlhbG9nVGFiQmFja3dhcmQpOworICAgIE1vdXNl dHJhcCh0aGlzLmRpYWxvZ0NvbnRhaW5lclswXSkudW5iaW5kKHRoaXMuZGlhbG9nVGFiRm9yd2Fy ZCk7CiAgIH0KIH0KIAogbW9kdWxlLmV4cG9ydHMgPSB7CiAgIGRpYWxvZ1RhYk5hdmlnYXRvcjog ZGlhbG9nVGFiTmF2aWdhdG9yLAotfTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCit9Owpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvaW1wb3J0X2V4cG9ydC9zdGF0aWMvanMvaW1w b3J0X2V4cG9ydC5qcyBiL3dlYi9wZ2FkbWluL3Rvb2xzL2ltcG9ydF9leHBvcnQvc3RhdGljL2pz L2ltcG9ydF9leHBvcnQuanMKaW5kZXggZTM5NTdjMi4uNTNjNzg4YiAxMDA2NDQKLS0tIGEvd2Vi L3BnYWRtaW4vdG9vbHMvaW1wb3J0X2V4cG9ydC9zdGF0aWMvanMvaW1wb3J0X2V4cG9ydC5qcwor KysgYi93ZWIvcGdhZG1pbi90b29scy9pbXBvcnRfZXhwb3J0L3N0YXRpYy9qcy9pbXBvcnRfZXhw b3J0LmpzCkBAIC02NTcsMTAgKzY1NywxMSBAQCBCYWNrZm9ybSwgY29tbW9uVXRpbHMsIHN1cHBv cnRlZE5vZGVzCiAgICAgICAgICAgICAgIH0pOwogCiAgICAgICAgICAgICAgIHZpZXcuJGVsLmF0 dHIoJ3RhYmluZGV4JywgLTEpOwotICAgICAgICAgICAgICAvLyB2YXIgZGlhbG9nVGFiTmF2aWdh dG9yID0gcGdCcm93c2VyLmtleWJvYXJkTmF2aWdhdGlvbi5nZXREaWFsb2dUYWJOYXZpZ2F0b3Io dmlldyk7Ci0gICAgICAgICAgICAgIHBnQnJvd3Nlci5rZXlib2FyZE5hdmlnYXRpb24uZ2V0RGlh bG9nVGFiTmF2aWdhdG9yKHZpZXcpOwogICAgICAgICAgICAgICB2YXIgY29udGFpbmVyID0gdmll dy4kZWwuZmluZCgnLnRhYi1jb250ZW50OmZpcnN0ID4gLnRhYi1wYW5lLmFjdGl2ZTpmaXJzdCcp OwogICAgICAgICAgICAgICBjb21tb25VdGlscy5maW5kQW5kU2V0Rm9jdXMoY29udGFpbmVyKTsK KyAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBw Z0Jyb3dzZXIua2V5Ym9hcmROYXZpZ2F0aW9uLmdldERpYWxvZ1RhYk5hdmlnYXRvcigkKHNlbGYu ZWxlbWVudHMuZGlhbG9nKSk7CisgICAgICAgICAgICAgIH0sIDIwMCk7CiAgICAgICAgICAgICB9 LAogICAgICAgICAgIH07CiAgICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24v amF2YXNjcmlwdC9kaWFsb2dfdGFiX25hdmlnYXRvcl9zcGVjLmpzIGIvd2ViL3JlZ3Jlc3Npb24v amF2YXNjcmlwdC9kaWFsb2dfdGFiX25hdmlnYXRvcl9zcGVjLmpzCmluZGV4IGYzNTVlODguLjNj NjMwMWEgMTAwNjQ0Ci0tLSBhL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvZGlhbG9nX3RhYl9u YXZpZ2F0b3Jfc3BlYy5qcworKysgYi93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L2RpYWxvZ190 YWJfbmF2aWdhdG9yX3NwZWMuanMKQEAgLTE0LDEwICsxNCwxMCBAQCBkZXNjcmliZSgnZGlhbG9n VGFiTmF2aWdhdG9yJywgZnVuY3Rpb24gKCkgewogICBsZXQgZGlhbG9nLCB0YWJOYXZpZ2F0b3Is IGJhY2t3YXJkX3Nob3J0Y3V0LCBmb3J3YXJkX3Nob3J0Y3V0OwogCiAgIGJlZm9yZUVhY2goKCkg PT4gewotICAgIGxldCBkaWFsb2dIdG1sID0kKCc8ZGl2IHRhYmluZGV4PSIxIiBjbGFzcz0iYmFj a2Zvcm0tdGFiIiByb2xlPSJ0YWJwYW5lbCI+JysKKyAgICBkaWFsb2cgPSAkKCc8ZGl2IHRhYmlu ZGV4PSIxIiBjbGFzcz0iYmFja2Zvcm0tdGFiIiByb2xlPSJ0YWJwYW5lbCI+JysKICAgICAgICAg JyAgIDx1bCBjbGFzcz0ibmF2IG5hdi10YWJzIiByb2xlPSJ0YWJsaXN0Ij4nKwotICAgICAgICAn ICAgICAgPGxpIHJvbGU9InByZXNlbnRhdGlvbiIgY2xhc3M9ImFjdGl2ZSI+JysKLSAgICAgICAg JyAgICAgICAgIDxhIGRhdGEtdG9nZ2xlPSJ0YWIiIHRhYmluZGV4PSItMSIgZGF0YS10YWItaW5k ZXg9IjEiIGhyZWY9IiMxIiBhcmlhLWNvbnRyb2xzPSIxIj4gR2VuZXJhbDwvYT4nKworICAgICAg ICAnICAgICAgPGxpIHJvbGU9InByZXNlbnRhdGlvbiI+JysKKyAgICAgICAgJyAgICAgICAgIDxh IGNsYXNzPSJhY3RpdmUiIGRhdGEtdG9nZ2xlPSJ0YWIiIHRhYmluZGV4PSItMSIgZGF0YS10YWIt aW5kZXg9IjEiIGhyZWY9IiMxIiBhcmlhLWNvbnRyb2xzPSIxIj4gR2VuZXJhbDwvYT4nKwogICAg ICAgICAnICAgICAgPC9saT4nKwogICAgICAgICAnICAgICA8bGkgcm9sZT0icHJlc2VudGF0aW9u Ij4nKwogICAgICAgICAnICAgICAgICAgPGEgZGF0YS10b2dnbGU9InRhYiIgdGFiaW5kZXg9Ii0x IiBkYXRhLXRhYi1pbmRleD0iNSIgaHJlZj0iIzIiIGFyaWEtY29udHJvbHM9IjIiPiBEZWZhdWx0 IFByaXZpbGVnZXM8L2E+JysKQEAgLTUyLDExICs1Miw2IEBAIGRlc2NyaWJlKCdkaWFsb2dUYWJO YXZpZ2F0b3InLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICcgICA8L3VsPicrCiAgICAgICAgICc8 L2Rpdj4nKTsKIAotICAgIGRpYWxvZyA9IHt9OwotCi0gICAgZGlhbG9nLmVsID0gZGlhbG9nSHRt bFswXTsKLSAgICBkaWFsb2cuJGVsID0gZGlhbG9nSHRtbDsKLQogICAgIGJhY2t3YXJkX3Nob3J0 Y3V0ID0gewogICAgICAgJ2FsdCc6IGZhbHNlLAogICAgICAgJ3NoaWZ0JzogdHJ1ZSwKQEAgLTEx Miw0ICsxMDcsOTMgQEAgZGVzY3JpYmUoJ2RpYWxvZ1RhYk5hdmlnYXRvcicsIGZ1bmN0aW9uICgp IHsKIAogICB9KTsKIAotfSk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorCisgIGRlc2Ny aWJlKCduYXZpZ2F0ZUZvcndhcmQgZnJvbSBmaXN0IHRhYiB0byBzZWNvbmQgdGFiJywgZnVuY3Rp b24gKCkgeworICAgIHZhciBuYXZpZ2F0ZUZvcndhcmRSZXN1bHQ7CisgICAgYmVmb3JlRWFjaCgo KSA9PiB7CisgICAgICBzcHlPbih0YWJOYXZpZ2F0b3IsICduYXZpZ2F0ZUZvcndhcmQnKS5hbmQu Y2FsbFRocm91Z2goKTsKKworICAgICAgbmF2aWdhdGVGb3J3YXJkUmVzdWx0ID0gdGFiTmF2aWdh dG9yLm5hdmlnYXRlRm9yd2FyZCgKKyAgICAgICAgZGlhbG9nLmZpbmQoJ3VsLm5hdi10YWJzOmZp cnN0JyksCisgICAgICAgIGRpYWxvZy5maW5kKCdkaXYjMScpCisgICAgICApOworICAgIH0pOwor CisgICAgaXQoJ3Nob3VsZCByZXR1cm4gdHJ1ZScsIGZ1bmN0aW9uICgpIHsKKworICAgICAgZXhw ZWN0KG5hdmlnYXRlRm9yd2FyZFJlc3VsdCkudG9FcXVhbCh0cnVlKTsKKworICAgIH0pOworCisg IH0pOworCisKKyAgZGVzY3JpYmUoJ25hdmlnYXRlRm9yd2FyZCBmcm9tIGxhc3QgdGFiJywgZnVu Y3Rpb24gKCkgeworICAgIHZhciBuYXZpZ2F0ZUZvcndhcmRSZXN1bHQ7CisgICAgYmVmb3JlRWFj aCgoKSA9PiB7CisKKyAgICAgIC8vIHNldCBzZWNvbmQgdGFiIGFjdGl2ZQorICAgICAgZGlhbG9n LmZpbmQoJ3VsLm5hdi10YWJzIGxpIGEuYWN0aXZlJykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpOwor CisgICAgICBkaWFsb2cuZmluZCgndWwubmF2LXRhYnMgbGkgYVtocmVmPSIjMyJdJykuYWRkQ2xh c3MoJ2FjdGl2ZScpOworCisgICAgICBzcHlPbih0YWJOYXZpZ2F0b3IsICduYXZpZ2F0ZUZvcndh cmQnKS5hbmQuY2FsbFRocm91Z2goKTsKKworICAgICAgbmF2aWdhdGVGb3J3YXJkUmVzdWx0ID0g dGFiTmF2aWdhdG9yLm5hdmlnYXRlRm9yd2FyZCgKKyAgICAgICAgZGlhbG9nLmZpbmQoJ3VsLm5h di10YWJzOmZpcnN0JyksCisgICAgICAgIGRpYWxvZy5maW5kKCdkaXYjMScpCisgICAgICApOwor ICAgIH0pOworCisgICAgaXQoJ3Nob3VsZCByZXR1cm4gZmFsc2UnLCBmdW5jdGlvbiAoKSB7CisK KyAgICAgIGV4cGVjdChuYXZpZ2F0ZUZvcndhcmRSZXN1bHQpLnRvRXF1YWwoZmFsc2UpOworCisg ICAgfSk7CisKKyAgfSk7CisKKyAgZGVzY3JpYmUoJ25hdmlnYXRlQmFja3dhcmQgZnJvbSBzZWNv bmQgdGFiIHRvIGZpcnN0IHRhYicsIGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgbmF2aWdhdGVCYWNr d2FyZFJlc3VsdDsKKyAgICBiZWZvcmVFYWNoKCgpID0+IHsKKyAgICAgIC8vIHNldCBzZWNvbmQg dGFiIGFjdGl2ZQorICAgICAgZGlhbG9nLmZpbmQoJ3VsLm5hdi10YWJzIGxpIGEuYWN0aXZlJyku cmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpOworCisgICAgICBkaWFsb2cuZmluZCgndWwubmF2LXRhYnMg bGkgYVtocmVmPSIjMiJdJykuYWRkQ2xhc3MoJ2FjdGl2ZScpOworCisgICAgICBzcHlPbih0YWJO YXZpZ2F0b3IsICduYXZpZ2F0ZUJhY2t3YXJkJykuYW5kLmNhbGxUaHJvdWdoKCk7CisKKyAgICAg IG5hdmlnYXRlQmFja3dhcmRSZXN1bHQgPSB0YWJOYXZpZ2F0b3IubmF2aWdhdGVCYWNrd2FyZCgK KyAgICAgICAgZGlhbG9nLmZpbmQoJ3VsLm5hdi10YWJzOmZpcnN0JyksCisgICAgICAgIGRpYWxv Zy5maW5kKCdkaXYjMScpCisgICAgICApOworICAgIH0pOworCisgICAgaXQoJ3Nob3VsZCByZXR1 cm4gdHJ1ZScsIGZ1bmN0aW9uICgpIHsKKworICAgICAgZXhwZWN0KG5hdmlnYXRlQmFja3dhcmRS ZXN1bHQpLnRvRXF1YWwodHJ1ZSk7CisKKyAgICB9KTsKKworICB9KTsKKworICBkZXNjcmliZSgn bmF2aWdhdGVCYWNrd2FyZCBmcm9tIGZpcnN0IHRhYicsIGZ1bmN0aW9uICgpIHsKKyAgICB2YXIg bmF2aWdhdGVCYWNrd2FyZFJlc3VsdDsKKyAgICBiZWZvcmVFYWNoKCgpID0+IHsKKyAgICAgIHNw eU9uKHRhYk5hdmlnYXRvciwgJ25hdmlnYXRlQmFja3dhcmQnKS5hbmQuY2FsbFRocm91Z2goKTsK KworICAgICAgbmF2aWdhdGVCYWNrd2FyZFJlc3VsdCA9IHRhYk5hdmlnYXRvci5uYXZpZ2F0ZUJh Y2t3YXJkKAorICAgICAgICBkaWFsb2cuZmluZCgndWwubmF2LXRhYnM6Zmlyc3QnKSwKKyAgICAg ICAgZGlhbG9nLmZpbmQoJ2RpdiMxJykKKyAgICAgICk7CisgICAgfSk7CisKKyAgICBpdCgnc2hv dWxkIHJldHVybiBmYWxzZScsIGZ1bmN0aW9uICgpIHsKKworICAgICAgZXhwZWN0KG5hdmlnYXRl QmFja3dhcmRSZXN1bHQpLnRvRXF1YWwoZmFsc2UpOworCisgICAgfSk7CisKKyAgfSk7CisKK30p Owo= --000000000000c62485057f8e2c8a--