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 1inJUh-0001EQ-Ed for pgadmin-hackers@arkaria.postgresql.org; Fri, 03 Jan 2020 09:43:47 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1inJUf-0007sv-AT for pgadmin-hackers@arkaria.postgresql.org; Fri, 03 Jan 2020 09:43:45 +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 1inJUe-0007so-UM for pgadmin-hackers@lists.postgresql.org; Fri, 03 Jan 2020 09:43:45 +0000 Received: from mail-ed1-x542.google.com ([2a00:1450:4864:20::542]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1inJUc-0001e8-IH for pgadmin-hackers@postgresql.org; Fri, 03 Jan 2020 09:43:44 +0000 Received: by mail-ed1-x542.google.com with SMTP id cy15so41217285edb.4 for ; Fri, 03 Jan 2020 01:43:42 -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 :cc; bh=SUkxpbIJmVReUQ/vfyQEqIkkiG6S3bHsU+tVggoPOrk=; b=Nz2xlynsRK2LbPInvkAWK7HH8qVFdPkhtL/GJ/Az8IwW/Zf86vt3NKuE+qJkCMUK5p PM1bsePTj9Whf4xCQEiJYkjtIsiE5rCkbKrOcz49C+Ug7+V3BNjANOWYUHCTqINJ/6KW KvLr4wzMwR3weZxB8mxvhbvljBoBklXcK11NjbBfly06UnOYHY8exUMEh2/qPW1ers8f GNSvX81L8yy0DcBXo4r3Fcb8BriSkQTU9Wz/RsJ63MHQ1UPFgphrOzCCzc1y99og+FOJ lBTfJOPR8A/B4X5as8PhBErFKE3AEEj9qH9fWzMKsC7jnkmjlQJYAoHdq1Wy/od7QtRb irsg== 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:cc; bh=SUkxpbIJmVReUQ/vfyQEqIkkiG6S3bHsU+tVggoPOrk=; b=AscULIzODGuvZx92XOUgFh/e4SqS9TWiQwSLwkqW03UFLpO3dOp/YfF1cOlvZuYa8w 8ICT8k2YOTXhrnS7Y33hbIlrzBBHU43a9+Q+U3dGt8TbA9GoURixlj0CKyhkF+ek/KTF COFcoCqi4hzQSrAOstFKWTRwzouCGO6SY+Dtv5ctTx24O3nO+wH5qk1u0A0D7r1FVqiU qLCWxqTcy26v5koGRpdkmykiYagycKxnEb9/Ahg92P3CroQLvWv/XcafwRphD2a12mam Q82NSBbBvLlIh7JHar6Drv0nvrW9vWvUW5NV+JCeZeah9YmngQoZuFBns/0hY1sReZNM EvNQ== X-Gm-Message-State: APjAAAUmGaf6FvzRlZXLWTKUJU6i3kqfL7nEm9qmcLV1OO68JfP3p/Lg uZz4J2hoWjYObKbCTz/lgkLslCbUXTR1U6Mvjgd1OJpwX5+xFLxpdGnv6ISTPjLJLE+0vq17BFA Qk+9bqW4qjOhaVQrGpKbFq0yM9DsHb+p22lvWbsdY4hnwv1U8hzmUx/ci3tVwAa8iGHyB5PL25U qKd9wuFyh1zcPgd0O3/3x/G3k61lR6MsSniYXLAVBcqGRUSOG3m/OH9EeH X-Google-Smtp-Source: APXvYqwIvTF/NDz9/fYBKzz2wDcJLPn+iXEHfXfSJRK3gOn2SkX9CLNXcw1qAa2+DX8HJ2r5xqARZefc8UMN6aT2wm4= X-Received: by 2002:a17:906:7c4e:: with SMTP id g14mr94763411ejp.195.1578044620320; Fri, 03 Jan 2020 01:43:40 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Aditya Toshniwal Date: Fri, 3 Jan 2020 15:13:04 +0530 Message-ID: Subject: Re: [pgAdmin][RM5038] Select2 enhancement - Load items on demand (scroll) To: pgadmin-hackers Cc: Akshay Joshi Content-Type: multipart/mixed; boundary="00000000000008ec29059b3925d2" X-CLOUD-SEC-AV-Info: edb,google_mail,monitor X-CLOUD-SEC-AV-Sent: true X-Gm-Spam: 0 X-Gm-Phishy: 0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --00000000000008ec29059b3925d2 Content-Type: multipart/alternative; boundary="00000000000008ec26059b3925d0" --00000000000008ec26059b3925d0 Content-Type: text/plain; charset="UTF-8" Hi Hackers, The previous patch broke the tags and tokenizer options of select2. Turned out, with the change of data adapter we also need to configure adapters for tags, tokenizer and others. Attached is the patch to set those to the default available in select2. I've also renamed onDemandLoad to showOnScroll to avoid confusion as we are showing the already present data on scroll and not loading the data on demand from ajax. Kindly review. On Wed, Jan 1, 2020 at 11:25 AM Akshay Joshi wrote: > Thanks, patch applied. > > On Tue, Dec 24, 2019 at 1:01 PM Aditya Toshniwal < > aditya.toshniwal@enterprisedb.com> wrote: > >> Hi Hackers, >> >> Attached is the patch to enhance select2 used in pgAdmin. The select2 >> dropdown will show only a few items when opened initially. On scrolling it >> will show others. Searching will work as before. This will reduce the >> number of DOM nodes on page. >> Note that, individual controls can disable the behaviour if desired by >> passing onDemandLoad:false for select2 options. It is enabled by default. >> >> Kindly review. >> >> -- >> Thanks and Regards, >> Aditya Toshniwal >> pgAdmin Hacker | Sr. Software Engineer | EnterpriseDB India | Pune >> "Don't Complain about Heat, Plant a TREE" >> > > > -- > *Thanks & Regards* > *Akshay Joshi* > > *Sr. Software Architect* > *EnterpriseDB Software India Private Limited* > *Mobile: +91 976-788-8246* > -- Thanks and Regards, Aditya Toshniwal pgAdmin Hacker | Sr. Software Engineer | EnterpriseDB India | Pune "Don't Complain about Heat, Plant a TREE" --00000000000008ec26059b3925d0 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Hackers,

The previous patch broke the tags and tokenize= r options of select2. Turned out, with the change of data adapter we also n= eed to configure adapters for tags, tokenizer and others.
Attached is the= patch to set those to the default available in select2.
I've also rena= med onDemandLoad to showOnScroll to avoid=C2=A0confusion as we are showing = the already present data on scroll and not loading the data on demand from = ajax.

Kindly review.

On Wed, Jan 1, 2020 at 11:25 AM Akshay Joshi= <akshay.joshi@enterpri= sedb.com> wrote:
Thanks, patch applied.

On Tue, Dec 24, 2019 at 1:01= PM Aditya Toshniwal <aditya.toshniwal@enterprisedb.com> wrote:
Hi Hacker= s,

Attached is the patch to enhance=C2=A0select2 used in pgAdmin. The = select2 dropdown will show only a few items when opened initially. On scrol= ling it will show others. Searching will work as before. This will reduce t= he number of DOM nodes on page.
Note that, individual controls can disable = the behaviour if desired by passing onDemandLoad:false for select2 options.= It is enabled by default.

Kindly review.

--
<= div dir=3D"ltr">
Thanks and Regards,
Aditya Toshniwal
pgAdmin Hacker | Sr. Software Engi= neer |=C2=A0EnterpriseDB India |=C2=A0Pune
"Don't Complain about Heat, Plant a TR= EE"
=


--
Thanks & Regards
Akshay Joshi
<= font color=3D"#3333FF">Sr. Software Architect=
<= font color=3D"#000000" face=3D"arial, sans-serif">EnterpriseDB Software = India Private Limited
Mobile: +91 976-788-8246=


--
Thanks and Regards,Aditya Toshniwal
pgAdmin Hacker | Sr. S= oftware Engineer |=C2=A0EnterpriseDB India |=C2=A0Pune
"Don't Complain about Heat= , Plant a TREE"
=
--00000000000008ec26059b3925d0-- --00000000000008ec29059b3925d2 Content-Type: application/octet-stream; name="RM5038.part2.patch" Content-Disposition: attachment; filename="RM5038.part2.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k4xyyz2j0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc3RhdGljL2pzL25vZGUudWkuanMgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3N0YXRpYy9qcy9ub2RlLnVpLmpzCmluZGV4IDZlNTA2MDc5MS4u MjNjMGQ5MTk1IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3N0YXRpYy9qcy9ub2Rl LnVpLmpzCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc3RhdGljL2pzL25vZGUudWkuanMKQEAg LTkzLDU3ICs5Myw2IEBAIGRlZmluZShbCiAgICAgKTsKICAgfSk7CiAKLSAgLyogRGVmaW5lIG9u IGRlbWFuZCBsb2FkaW5nIG9mIGRyb3Bkb3duIGl0ZW1zLgotICAgKiBUaGlzIGFsc28gcmVxdWly ZXMgYWpheCBvcHRpb24gb2Ygc2VsZWN0MiB0byBiZSBzZXQuCi0gICAqIFRoZSB0cmljayBpcywg YWpheDoge30gd2lsbCBhbHNvIHdvcmsgZXZlbiBpZiB5b3UncmUgYWN0dWFsbHkgbm90Ci0gICAq IHVzaW5nIGFqYXguCi0gICAqLwotICAkLmZuLnNlbGVjdDIuYW1kLmRlZmluZSgnc2VsZWN0Mi9v bkRlbWFuZERhdGFBZGFwdGVyJywgWwotICAgICdzZWxlY3QyL3V0aWxzJywKLSAgICAnc2VsZWN0 Mi9kYXRhL3NlbGVjdCcsCi0gIF0sIGZ1bmN0aW9uIChVdGlscywgU2VsZWN0QWRhcHRlcikgewot Ci0gICAgZnVuY3Rpb24gb25EZW1hbmREYXRhQWRhcHRlciAoJGVsZW1lbnQsIG9wdGlvbnMpIHsK LSAgICAgIHRoaXMuJGVsZW1lbnQgPSAkZWxlbWVudDsKLSAgICAgIHRoaXMub3B0aW9ucyA9IG9w dGlvbnM7Ci0gICAgfQotICAgIFV0aWxzLkV4dGVuZChvbkRlbWFuZERhdGFBZGFwdGVyLCBTZWxl Y3RBZGFwdGVyKTsKLSAgICBvbkRlbWFuZERhdGFBZGFwdGVyLnByb3RvdHlwZS5xdWVyeSA9IGZ1 bmN0aW9uIChwYXJhbXMsIGNhbGxiYWNrKSB7Ci0gICAgICB2YXIgZGF0YSA9IFtdOwotICAgICAg dmFyIHNlbGYgPSB0aGlzOwotICAgICAgaWYgKCFwYXJhbXMucGFnZSkgewotICAgICAgICBwYXJh bXMucGFnZSA9IDE7Ci0gICAgICB9Ci0gICAgICB2YXIgcGFnZVNpemUgPSAyMDsKLQotICAgICAg dmFyICRvcHRpb25zID0gdGhpcy4kZWxlbWVudC5jaGlsZHJlbigpOwotICAgICAgJG9wdGlvbnMu ZWFjaChmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHZhciAkb3B0aW9uID0gJCh0aGlzKTsKLQotICAg ICAgICBpZiAoISRvcHRpb24uaXMoJ29wdGlvbicpICYmICEkb3B0aW9uLmlzKCdvcHRncm91cCcp KSB7Ci0gICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgdmFyIG9wdGlvbiA9 IHNlbGYuaXRlbSgkb3B0aW9uKTsKLQotICAgICAgICB2YXIgbWF0Y2hlcyA9IHNlbGYubWF0Y2hl cyhwYXJhbXMsIG9wdGlvbik7Ci0KLSAgICAgICAgaWYgKG1hdGNoZXMgIT09IG51bGwpIHsKLSAg ICAgICAgICBkYXRhLnB1c2gobWF0Y2hlcyk7Ci0gICAgICAgIH0KLSAgICAgIH0pOwotCi0gICAg ICBjYWxsYmFjayh7Ci0gICAgICAgIHJlc3VsdHM6IGRhdGEuc2xpY2UoKHBhcmFtcy5wYWdlIC0g MSkgKiBwYWdlU2l6ZSwgcGFyYW1zLnBhZ2UgKiBwYWdlU2l6ZSksCi0gICAgICAgIHBhZ2luYXRp b246IHsKLSAgICAgICAgICBtb3JlOiBkYXRhLmxlbmd0aCA+PSBwYXJhbXMucGFnZSAqIHBhZ2VT aXplLAotICAgICAgICB9LAotICAgICAgfSk7Ci0gICAgfTsKLQotICAgIHJldHVybiBvbkRlbWFu ZERhdGFBZGFwdGVyOwotICB9KTsKLQogICAvKgogICAgKiBOb2RlQWpheE9wdGlvbnNDb250cm9s CiAgICAqICAgVGhpcyBjb250cm9sIHdpbGwgZmV0Y2ggdGhlIG9wdGlvbnMgcmVxdWlyZWQgdG8g cmVuZGVyIHRoZSBzZWxlY3QKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9iYWNr Zm9ybS5wZ2FkbWluLmpzIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL2JhY2tmb3JtLnBnYWRtaW4u anMKaW5kZXggYzUzYmU4MzJjLi44NjdkMGE2ODEgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3N0 YXRpYy9qcy9iYWNrZm9ybS5wZ2FkbWluLmpzCisrKyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9i YWNrZm9ybS5wZ2FkbWluLmpzCkBAIC0xMCwxMCArMTAsMTAgQEAKIGRlZmluZShbCiAgICdzb3Vy Y2VzL2dldHRleHQnLCAndW5kZXJzY29yZScsICdqcXVlcnknLAogICAnYmFja2JvbmUnLCAnYmFj a2Zvcm0nLCAnYmFja2dyaWQnLCAnY29kZW1pcnJvcicsICdzb3VyY2VzL3NxbGVkaXRvcl91dGls cycsCi0gICdzb3VyY2VzL2tleWJvYXJkX3Nob3J0Y3V0cycsICdzb3VyY2VzL3dpbmRvdycsCisg ICdzb3VyY2VzL2tleWJvYXJkX3Nob3J0Y3V0cycsICdzb3VyY2VzL3dpbmRvdycsICdzb3VyY2Vz L3NlbGVjdDIvY29uZmlndXJlX3Nob3dfb25fc2Nyb2xsJywKICAgJ3NwZWN0cnVtJywgJ3BnYWRt aW4uYmFja2dyaWQnLCAnc2VsZWN0MicsICdib290c3RyYXAudG9nZ2xlJywKIF0sIGZ1bmN0aW9u KGdldHRleHQsIF8sICQsIEJhY2tib25lLCBCYWNrZm9ybSwgQmFja2dyaWQsIENvZGVNaXJyb3Is Ci0gIFNxbEVkaXRvclV0aWxzLCBrZXlib2FyZFNob3J0Y3V0cywgcGdXaW5kb3cpIHsKKyAgU3Fs RWRpdG9yVXRpbHMsIGtleWJvYXJkU2hvcnRjdXRzLCBwZ1dpbmRvdywgY29uZmlndXJlX3Nob3df b25fc2Nyb2xsKSB7CiAKICAgdmFyIHBnQWRtaW4gPSAod2luZG93LnBnQWRtaW4gPSB3aW5kb3cu cGdBZG1pbiB8fCB7fSksCiAgICAgcGdCcm93c2VyID0gcGdBZG1pbi5Ccm93c2VyOwpAQCAtMjE5 MCw3ICsyMTkwLDcgQEAgZGVmaW5lKFsKICAgICAgICAgZW1wdHlPcHRpb25zOiBmYWxzZSwKICAg ICAgICAgcHJlc2VydmVTZWxlY3Rpb25PcmRlcjogZmFsc2UsCiAgICAgICAgIGlzRHJvcGRvd25Q YXJlbnQ6IGZhbHNlLAotICAgICAgICBvbkRlbWFuZExvYWQ6IHRydWUsCisgICAgICAgIHNob3dP blNjcm9sbDogdHJ1ZSwKICAgICAgIH0pOwogCiAgICAgICAvLyBFdmFsdWF0ZSB0aGUgZGlzYWJs ZWQsIHZpc2libGUsIGFuZCByZXF1aXJlZCBvcHRpb24KQEAgLTIyNDksMTUgKzIyNDksOCBAQCBk ZWZpbmUoWwogICAgICAgICBzZWxlY3QyT3B0cy5kYXRhID0gZGF0YS5yYXdWYWx1ZTsKICAgICAg IH0KIAotICAgICAgLyogU2V0IHRoZSBwZ2FkbWluIGFkYXB0ZXIgZm9yIG9uIGRlbWFuZCBsb2Fk LgotICAgICAgICogU2V0dGluZyBlbXB0eSBhamF4IG9wdGlvbiB3aWxsIGVuYWJsZSBpbmZpbml0 ZSBzY3JvbGxpbmcuCi0gICAgICAgKi8KLSAgICAgIGlmKHNlbGVjdDJPcHRzLm9uRGVtYW5kTG9h ZCkgewotICAgICAgICBzZWxlY3QyT3B0cy5kYXRhQWRhcHRlciA9ICQuZm4uc2VsZWN0Mi5hbWQu cmVxdWlyZSgnc2VsZWN0Mi9vbkRlbWFuZERhdGFBZGFwdGVyJyk7Ci0gICAgICAgIGlmKF8uaXNV bmRlZmluZWQoc2VsZWN0Mk9wdHMuYWpheCkpIHsKLSAgICAgICAgICBzZWxlY3QyT3B0cy5hamF4 ID0ge307Ci0gICAgICAgIH0KLSAgICAgIH0KKyAgICAgIC8qIENvbmZpZ3VyZSBzaG93IG9uIHNj cm9sbCBpZiByZXF1aXJlZCAqLworICAgICAgc2VsZWN0Mk9wdHMgPSBjb25maWd1cmVfc2hvd19v bl9zY3JvbGwuZGVmYXVsdChzZWxlY3QyT3B0cyk7CiAKICAgICAgIHRoaXMuJHNlbCA9IHRoaXMu JGVsLmZpbmQoJ3NlbGVjdCcpLnNlbGVjdDIoc2VsZWN0Mk9wdHMpOwogCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9zdGF0aWMvanMvYmFja2dyaWQucGdhZG1pbi5qcyBiL3dlYi9wZ2FkbWluL3N0 YXRpYy9qcy9iYWNrZ3JpZC5wZ2FkbWluLmpzCmluZGV4IDJmMGE4YTAxOC4uN2U4Zjk2NDhmIDEw MDY0NAotLS0gYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMvYmFja2dyaWQucGdhZG1pbi5qcworKysg Yi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvYmFja2dyaWQucGdhZG1pbi5qcwpAQCAtOSwxMSArOSwx MSBAQAogCiBkZWZpbmUoWwogICAnc291cmNlcy9nZXR0ZXh0JywgJ3VuZGVyc2NvcmUnLCAnanF1 ZXJ5JywgJ2JhY2tib25lJywgJ2JhY2tmb3JtJywgJ2JhY2tncmlkJywgJ2FsZXJ0aWZ5JywKLSAg J21vbWVudCcsICdiaWdudW1iZXInLCAnc291cmNlcy91dGlscycsICdzb3VyY2VzL2tleWJvYXJk X3Nob3J0Y3V0cycsCisgICdtb21lbnQnLCAnYmlnbnVtYmVyJywgJ3NvdXJjZXMvdXRpbHMnLCAn c291cmNlcy9rZXlib2FyZF9zaG9ydGN1dHMnLCAnc291cmNlcy9zZWxlY3QyL2NvbmZpZ3VyZV9z aG93X29uX3Njcm9sbCcsCiAgICdib290c3RyYXAuZGF0ZXRpbWVwaWNrZXInLCAnYmFja2dyaWQu ZmlsdGVyJywgJ2Jvb3RzdHJhcC50b2dnbGUnLAogXSwgZnVuY3Rpb24oCiAgIGdldHRleHQsIF8s ICQsIEJhY2tib25lLCBCYWNrZm9ybSwgQmFja2dyaWQsIEFsZXJ0aWZ5LCBtb21lbnQsIEJpZ051 bWJlciwKLSAgY29tbW9uVXRpbHMsIGtleWJvYXJkU2hvcnRjdXRzCisgIGNvbW1vblV0aWxzLCBr ZXlib2FyZFNob3J0Y3V0cywgY29uZmlndXJlX3Nob3dfb25fc2Nyb2xsCiApIHsKICAgLyoKICAg ICogQWRkIG1lY2hhbmlzbSBpbiBiYWNrZ3JpZCB0byByZW5kZXIgZGlmZmVyZW50IHR5cGVzIG9m IGNlbGxzIGluCkBAIC04ODMsNyArODgzLDcgQEAgZGVmaW5lKFsKICAgICAgICAgc2VsZWN0Ml9v cHRzID0gXy5leHRlbmQoewogICAgICAgICAgIG9wZW5PbkVudGVyOiBmYWxzZSwKICAgICAgICAg ICBtdWx0aXBsZTogZmFsc2UsCi0gICAgICAgICAgb25EZW1hbmRMb2FkOiB0cnVlLAorICAgICAg ICAgIHNob3dPblNjcm9sbDogdHJ1ZSwKICAgICAgICAgfSwgc2VsZi5kZWZhdWx0cy5zZWxlY3Qy LAogICAgICAgICAoY29sLnNlbGVjdDIgfHwge30pCiAgICAgICAgICksCkBAIC05NDQsMTIgKzk0 NCw5IEBAIGRlZmluZShbCiAgICAgICAgIHNlbGVjdDJfb3B0c1sncGxhY2Vob2xkZXInXSA9ICcn OwogICAgICAgfQogCi0gICAgICBpZihzZWxlY3QyX29wdHMub25EZW1hbmRMb2FkKSB7Ci0gICAg ICAgIHNlbGVjdDJfb3B0cy5kYXRhQWRhcHRlciA9ICQuZm4uc2VsZWN0Mi5hbWQucmVxdWlyZSgn c2VsZWN0Mi9vbkRlbWFuZERhdGFBZGFwdGVyJyk7Ci0gICAgICAgIGlmKF8uaXNVbmRlZmluZWQo c2VsZWN0Ml9vcHRzLmFqYXgpKSB7Ci0gICAgICAgICAgc2VsZWN0Ml9vcHRzLmFqYXggPSB7fTsK LSAgICAgICAgfQotICAgICAgfQorICAgICAgLyogQ29uZmlndXJlIHNob3cgb24gc2Nyb2xsIGlm IHJlcXVpcmVkICovCisgICAgICBzZWxlY3QyX29wdHMgPSBjb25maWd1cmVfc2hvd19vbl9zY3Jv bGwuZGVmYXVsdChzZWxlY3QyX29wdHMpOworCiAgICAgICAvLyBJbml0aWFsaXplIHNlbGVjdDIg Y29udHJvbC4KICAgICAgIHRoaXMuJHNlbCA9IHRoaXMuJHNlbGVjdC5zZWxlY3QyKHNlbGVjdDJf b3B0cyk7CiAKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9zZWxlY3QyL2NvbmZp Z3VyZV9zaG93X29uX3Njcm9sbC5qcyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9zZWxlY3QyL2Nv bmZpZ3VyZV9zaG93X29uX3Njcm9sbC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAuLmNhMmU4MTM5ZgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9q cy9zZWxlY3QyL2NvbmZpZ3VyZV9zaG93X29uX3Njcm9sbC5qcwpAQCAtMCwwICsxLDk3IEBACitp bXBvcnQgJ3NlbGVjdDInOworaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JzsKK2ltcG9ydCBfIGZyb20g J3VuZGVyc2NvcmUnOworCitleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAob3B0aW9ucykgeworICBp ZihvcHRpb25zLnNob3dPblNjcm9sbCkgeworICAgIGxldCBVdGlscyA9ICQuZm4uc2VsZWN0Mi5h bWQucmVxdWlyZSgnc2VsZWN0Mi91dGlscycpOworCisgICAgLyogRGVmaW5lIG9uIHNjcm9sbCBz aG93aW5nIG9mIGRyb3Bkb3duIGl0ZW1zLgorICAgICAqIFRoaXMgYWxzbyByZXF1aXJlcyBhamF4 IG9wdGlvbiBvZiBzZWxlY3QyIHRvIGJlIHNldC4KKyAgICAgKiBUaGUgdHJpY2sgaXMsIGFqYXg6 IHt9IHdpbGwgYWxzbyB3b3JrIGV2ZW4gaWYgeW91J3JlIGFjdHVhbGx5IG5vdAorICAgICAqIHVz aW5nIGFqYXguCisgICAgICovCisgICAgbGV0IFNjcm9sbERhdGFBZGFwdGVyID0gZnVuY3Rpb24g KCRlbGVtZW50LCBvcHRpb25zKSB7CisgICAgICBTY3JvbGxEYXRhQWRhcHRlci5fX3N1cGVyX18u Y29uc3RydWN0b3IuY2FsbCh0aGlzLCAkZWxlbWVudCwgb3B0aW9ucyk7CisgICAgfTsKKworICAg IGlmKG9wdGlvbnMuZGF0YSkgeworICAgICAgVXRpbHMuRXh0ZW5kKFNjcm9sbERhdGFBZGFwdGVy LCAkLmZuLnNlbGVjdDIuYW1kLnJlcXVpcmUoJ3NlbGVjdDIvZGF0YS9hcnJheScpKTsKKyAgICB9 IGVsc2UgeworICAgICAgVXRpbHMuRXh0ZW5kKFNjcm9sbERhdGFBZGFwdGVyLCAkLmZuLnNlbGVj dDIuYW1kLnJlcXVpcmUoJ3NlbGVjdDIvZGF0YS9zZWxlY3QnKSk7CisgICAgfQorCisgICAgU2Ny b2xsRGF0YUFkYXB0ZXIucHJvdG90eXBlLnF1ZXJ5ID0gZnVuY3Rpb24gKHBhcmFtcywgY2FsbGJh Y2spIHsKKyAgICAgIHZhciBkYXRhID0gW107CisgICAgICB2YXIgc2VsZiA9IHRoaXM7CisgICAg ICBpZiAoIXBhcmFtcy5wYWdlKSB7CisgICAgICAgIHBhcmFtcy5wYWdlID0gMTsKKyAgICAgIH0K KyAgICAgIHZhciBwYWdlU2l6ZSA9IDIwOworCisgICAgICB2YXIgJG9wdGlvbnMgPSB0aGlzLiRl bGVtZW50LmNoaWxkcmVuKCk7CisgICAgICAkb3B0aW9ucy5lYWNoKGZ1bmN0aW9uICgpIHsKKyAg ICAgICAgdmFyICRvcHRpb24gPSAkKHRoaXMpOworCisgICAgICAgIGlmICghJG9wdGlvbi5pcygn b3B0aW9uJykgJiYgISRvcHRpb24uaXMoJ29wdGdyb3VwJykpIHsKKyAgICAgICAgICByZXR1cm47 CisgICAgICAgIH0KKworICAgICAgICB2YXIgb3B0aW9uID0gc2VsZi5pdGVtKCRvcHRpb24pOwor CisgICAgICAgIHZhciBtYXRjaGVzID0gc2VsZi5tYXRjaGVzKHBhcmFtcywgb3B0aW9uKTsKKwor ICAgICAgICBpZiAobWF0Y2hlcyAhPT0gbnVsbCkgeworICAgICAgICAgIGRhdGEucHVzaChtYXRj aGVzKTsKKyAgICAgICAgfQorICAgICAgfSk7CisKKyAgICAgIGNhbGxiYWNrKHsKKyAgICAgICAg cmVzdWx0czogZGF0YS5zbGljZSgocGFyYW1zLnBhZ2UgLSAxKSAqIHBhZ2VTaXplLCBwYXJhbXMu cGFnZSAqIHBhZ2VTaXplKSwKKyAgICAgICAgcGFnaW5hdGlvbjogeworICAgICAgICAgIG1vcmU6 IGRhdGEubGVuZ3RoID49IHBhcmFtcy5wYWdlICogcGFnZVNpemUsCisgICAgICAgIH0sCisgICAg ICB9KTsKKyAgICB9OworCisgICAgaWYgKG9wdGlvbnMubWluaW11bUlucHV0TGVuZ3RoID4gMCkg eworICAgICAgU2Nyb2xsRGF0YUFkYXB0ZXIgPSBVdGlscy5EZWNvcmF0ZSgKKyAgICAgICAgU2Ny b2xsRGF0YUFkYXB0ZXIsCisgICAgICAgICQuZm4uc2VsZWN0Mi5hbWQucmVxdWlyZSgnc2VsZWN0 Mi9kYXRhL21pbmltdW1JbnB1dExlbmd0aCcpCisgICAgICApOworICAgIH0KKworICAgIGlmIChv cHRpb25zLm1heGltdW1JbnB1dExlbmd0aCA+IDApIHsKKyAgICAgIFNjcm9sbERhdGFBZGFwdGVy ID0gVXRpbHMuRGVjb3JhdGUoCisgICAgICAgIFNjcm9sbERhdGFBZGFwdGVyLAorICAgICAgICAk LmZuLnNlbGVjdDIuYW1kLnJlcXVpcmUoJ3NlbGVjdDIvZGF0YS9tYXhpbXVtSW5wdXRMZW5ndGgn KQorICAgICAgKTsKKyAgICB9CisKKyAgICBpZiAob3B0aW9ucy5tYXhpbXVtU2VsZWN0aW9uTGVu Z3RoID4gMCkgeworICAgICAgU2Nyb2xsRGF0YUFkYXB0ZXIgPSBVdGlscy5EZWNvcmF0ZSgKKyAg ICAgICAgU2Nyb2xsRGF0YUFkYXB0ZXIsCisgICAgICAgICQuZm4uc2VsZWN0Mi5hbWQucmVxdWly ZSgnc2VsZWN0Mi9kYXRhL21heGltdW1TZWxlY3Rpb25MZW5ndGgnKQorICAgICAgKTsKKyAgICB9 CisKKyAgICBpZiAob3B0aW9ucy50YWdzKSB7CisgICAgICBTY3JvbGxEYXRhQWRhcHRlciA9IFV0 aWxzLkRlY29yYXRlKFNjcm9sbERhdGFBZGFwdGVyLCAkLmZuLnNlbGVjdDIuYW1kLnJlcXVpcmUo J3NlbGVjdDIvZGF0YS90YWdzJykpOworICAgIH0KKworICAgIGlmIChvcHRpb25zLnRva2VuU2Vw YXJhdG9ycyAhPSBudWxsIHx8IG9wdGlvbnMudG9rZW5pemVyICE9IG51bGwpIHsKKyAgICAgIFNj cm9sbERhdGFBZGFwdGVyID0gVXRpbHMuRGVjb3JhdGUoCisgICAgICAgIFNjcm9sbERhdGFBZGFw dGVyLAorICAgICAgICAkLmZuLnNlbGVjdDIuYW1kLnJlcXVpcmUoJ3NlbGVjdDIvZGF0YS90b2tl bml6ZXInKQorICAgICAgKTsKKyAgICB9CisKKyAgICBvcHRpb25zLmRhdGFBZGFwdGVyID0gU2Ny b2xsRGF0YUFkYXB0ZXI7CisKKyAgICAvKiBTZXR0aW5nIGVtcHR5IGFqYXggb3B0aW9uIHdpbGwg ZW5hYmxlIGluZmluaXRlIHNjcm9sbGluZy4gKi8KKyAgICBpZihfLmlzVW5kZWZpbmVkKG9wdGlv bnMuYWpheCkpIHsKKyAgICAgIG9wdGlvbnMuYWpheCA9IHt9OworICAgIH0KKyAgfQorICByZXR1 cm4gb3B0aW9uczsKK30K --00000000000008ec29059b3925d2--