Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ch9gS-0003WA-S9 for pgadmin-hackers@arkaria.postgresql.org; Fri, 24 Feb 2017 06:48:53 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1ch9gR-000558-IQ for pgadmin-hackers@arkaria.postgresql.org; Fri, 24 Feb 2017 06:48:51 +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 1ch9gO-0004zu-HC for pgadmin-hackers@postgresql.org; Fri, 24 Feb 2017 06:48:48 +0000 Received: from mail-lf0-x22b.google.com ([2a00:1450:4010:c07::22b]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1ch9g0-00024B-69 for pgadmin-hackers@postgresql.org; Fri, 24 Feb 2017 06:48:47 +0000 Received: by mail-lf0-x22b.google.com with SMTP id b80so5173667lfe.3 for ; Thu, 23 Feb 2017 22:48:23 -0800 (PST) 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=PjyXrOaA1VyKNC6qOawbrONplevEAXSahVXenMBWsFk=; b=1SQY+ntfre4R5yW9ji/imWPMRrPCG1DEGaYmzqTNDRK63fIEvhGgb5lyTAQCUdnPNV 8wM6Qfb/Xskr2kfyotmHtGOBeCtbAM5onOPm7MDUtaiizQ5ou8cdo2f2YC+nYfhhl4Un TjggXtKK9X4i2UEJEawjuKax0dFAHbJWHg5HHZ4DvOEOfkIgjvhs8pYomSeqhmXEGr4V YF8+uKO19X2XWETjIN9Z7uFIi3tAAwSeI7z6m054i2u+kUxAMyeOj388iVE0qwRpBHzm LhR12YEIzzjUZ9XIiu06pd7f/7roNelpR1pgC+gvf5xes7JQYFNihkhtpYBxjK16C97v CPqA== 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=PjyXrOaA1VyKNC6qOawbrONplevEAXSahVXenMBWsFk=; b=jNvG3gvo9s6rRImqpeK/8LPckoOStbdzFR9pFdGduM4U0bqzUl4JMoSolmsmM4rmBl OkZhc+6LgsNnGju6Y8PZdDAnyvNkAekPpD17R/mRzOtAtcX42U4N88+AVV67W5Xp10re qMbnexhZ7TYn9S0cU3EQgYiAJJSwxky3BjR2fFYmu+4MkyzwHDSI5APWVobAwdzq9w0X YSjHX/WuvtaVY1QfDCPHvwqFr+KcHwyS/xgSDIUsRVpnQp04nPjBXNgl8IFuTejbXUnV fUGfmtEeyD2yiKekSme7Ibl0wy/ngMy7Kwl5yVhlXeyy0hLkl61eQVIEQg+kja7cHOSX ZZWw== X-Gm-Message-State: AMke39lfVHb0gQ750IlchWfY4+OVwQNo4svK8IyADIgINu3R00SRIzXFAQgCNxkDNoZsGJJ45z801jlEDDKrDYhX X-Received: by 10.46.82.10 with SMTP id g10mr257666ljb.127.1487918901742; Thu, 23 Feb 2017 22:48:21 -0800 (PST) MIME-Version: 1.0 Received: by 10.25.41.201 with HTTP; Thu, 23 Feb 2017 22:48:20 -0800 (PST) In-Reply-To: References: From: Khushboo Vashi Date: Fri, 24 Feb 2017 12:18:20 +0530 Message-ID: Subject: Re: [pgAdmin4][Patch]: RM 2089 - PARALLEL SAFE support for functions missing To: Dave Page Cc: Akshay Joshi , pgadmin-hackers Content-Type: multipart/mixed; boundary=001a113c59f497ffed0549411d4d 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 --001a113c59f497ffed0549411d4d Content-Type: multipart/alternative; boundary=001a113c59f497ffeb0549411d4b --001a113c59f497ffeb0549411d4b Content-Type: text/plain; charset=UTF-8 Hi, Please find the attached updated patch. Thanks, Khushboo On Wed, Feb 15, 2017 at 8:57 PM, Dave Page wrote: > Hi > > On Fri, Feb 10, 2017 at 7:28 AM, Khushboo Vashi < > khushboo.vashi@enterprisedb.com> wrote: > >> Hi, >> >> Please find the attached updated patch. >> >> Thanks, >> Khushboo >> >> On Fri, Feb 3, 2017 at 7:53 PM, Dave Page >> wrote: >> >>> >>> >>> On Fri, Feb 3, 2017 at 1:59 PM, Khushboo Vashi < >>> khushboo.vashi@enterprisedb.com> wrote: >>> >>>> >>>> >>>> On Fri, Feb 3, 2017 at 7:02 PM, Dave Page >>>> wrote: >>>> >>>>> I doubt the order matters, but feel free to change it if it bugs you >>>>> :-) >>>>> >>>>> >>>> I have tried to create the function with both SQL commands. >>>> There is no bug, its just in pgAdmin4, if its not leakproof then we >>>> mentioned 'NOT LEAKPROOF' in the SQL. >>>> So, I am not sure, we should remove it or not. >>>> >>> >>> Well we should be consistent - we either list the full set of all >>> options, or just the non-default ones. The main thing is that we don't >>> explicitly show options that are the default in some cases, but not in >>> others. >>> >>> >> Agreed. Fixed for LEAKPROOF and PARALLEL options. >> > > This seems to work in edit mode, but not in create mode, where the > PARALLEL option that's selected is simply ignored in the msql. > > Fixed > -- > Dave Page > VP, Chief Architect, Tools & Installers > EnterpriseDB: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > --001a113c59f497ffeb0549411d4b Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi,

Please find the attached updated pa= tch.

Thanks,
Khushboo

On Wed, Feb 15, 2017 at 8:57 PM,= Dave Page <dave.page@enterprisedb.com> wrote:
<= blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px= #ccc solid;padding-left:1ex">
Hi

On Fri, Feb 10, 2017 at 7:= 28 AM, Khushboo Vashi <khushboo.vashi@enterprisedb.com<= /a>> wrote:
Hi,

Please find the attached updat= ed patch.

Thanks,
Khushboo

On Fri, Feb 3, 2017 a= t 7:53 PM, Dave Page <dave.page@enterprisedb.com> w= rote:

<= br>
On Fri, Feb 3, 2017 at 1:59 PM, Khushboo Vashi <khushboo.vashi@enterprisedb.com> wrote:


On Fri, Feb 3, 2017 at 7:02 PM, Dave Page <dave.page@enterprisedb.com> wrote:
I doubt the order matters, but feel free to change it if it bu= gs you :-)


I ha= ve tried to create the function with both SQL commands.=C2=A0
The= re is no bug, its just in pgAdmin4, if its not leakproof then we mentioned = 'NOT LEAKPROOF' =C2=A0in the SQL.
So, I am not sure, we s= hould remove it or not.

=
Well we should be consistent - we either list the full set of a= ll options, or just the non-default ones. The main thing is that we don'= ;t explicitly show options that are the default in some cases, but not in o= thers.
=C2=A0
Agreed.=C2=A0 Fixed for LEAKPROOF and PARALLEL options.

This seems to work = in edit mode, but not in create mode, where the PARALLEL option that's = selected is simply ignored in the msql.
=C2=A0
<= /div>
Fixed=C2=A0
--
Dave Page
VP, Chief Architect, Tools & Installers
EnterpriseDB= : http://www.ente= rprisedb.com
The Enterprise PostgreSQL Company

Blog: http://pgsnake.blogspot.= com
Twitter: @pgsnake

--001a113c59f497ffeb0549411d4b-- --001a113c59f497ffed0549411d4d Content-Type: text/x-patch; charset=US-ASCII; name="RM_2089_ver2.patch" Content-Disposition: attachment; filename="RM_2089_ver2.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_izjgh1sy0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy9fX2luaXRf Xy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy9fX2luaXRfXy5weQpp bmRleCA1NTFmOGJiLi5lYmY5YTZhIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL19faW5pdF9fLnB5CkBAIC0xMDc1LDYgKzEwNzUsNyBA QCBjbGFzcyBGdW5jdGlvblZpZXcoUEdDaGlsZE5vZGVWaWV3LCBEYXRhVHlw ZVJlYWRlcik6CiAgICAgICAgICIiIgogCiAgICAgICAgIHZvbF9kaWN0ID0g eyd2JzogJ1ZPTEFUSUxFJywgJ3MnOiAnU1RBQkxFJywgJ2knOiAnSU1NVVRB QkxFJ30KKyAgICAgICAgcGFyYWxsZWxfZGljdCA9IHsndSc6ICdVTlNBRkUn LCAncyc6ICdTQUZFJywgJ3InOiAnUkVTVFJJQ1RFRCd9CiAKICAgICAgICAg IyBHZXQgU2NoZW1hIE5hbWUgZnJvbSBpdHMgT0lELgogICAgICAgICBpZiAn cHJvbmFtZXNwYWNlJyBpbiBkYXRhOgpAQCAtMTA4Niw2ICsxMDg3LDkgQEAg Y2xhc3MgRnVuY3Rpb25WaWV3KFBHQ2hpbGROb2RlVmlldywgRGF0YVR5cGVS ZWFkZXIpOgogICAgICAgICBpZiBmbmlkIGlzIG5vdCBOb25lOgogICAgICAg ICAgICAgIyBFZGl0IE1vZGUKIAorICAgICAgICAgICAgaWYgJ3Byb3BhcmFs bGVsJyBpbiBkYXRhOgorICAgICAgICAgICAgICAgIGRhdGFbJ3Byb3BhcmFs bGVsJ10gPSBwYXJhbGxlbF9kaWN0W2RhdGFbJ3Byb3BhcmFsbGVsJ11dCisK ICAgICAgICAgICAgICMgRmV0Y2ggT2xkIERhdGEgZnJvbSBkYXRhYmFzZS4K ICAgICAgICAgICAgIG9sZF9kYXRhID0gc2VsZi5fZmV0Y2hfcHJvcGVydGll cyhnaWQsIHNpZCwgZGlkLCBzY2lkLCBmbmlkKQogCkBAIC0xMDk2LDExICsx MTAwLDE1IEBAIGNsYXNzIEZ1bmN0aW9uVmlldyhQR0NoaWxkTm9kZVZpZXcs IERhdGFUeXBlUmVhZGVyKToKICAgICAgICAgICAgIGlmICdwcm92b2xhdGls ZScgaW4gb2xkX2RhdGE6CiAgICAgICAgICAgICAgICAgb2xkX2RhdGFbJ3By b3ZvbGF0aWxlJ10gPSB2b2xfZGljdFtvbGRfZGF0YVsncHJvdm9sYXRpbGUn XV0KIAorICAgICAgICAgICAgaWYgJ3Byb3BhcmFsbGVsJyBpbiBvbGRfZGF0 YToKKyAgICAgICAgICAgICAgICBvbGRfZGF0YVsncHJvcGFyYWxsZWwnXSA9 IHBhcmFsbGVsX2RpY3Rbb2xkX2RhdGFbJ3Byb3BhcmFsbGVsJ11dCisKICAg ICAgICAgICAgICMgSWYgYW55IG9mIHRoZSBiZWxvdyBhcmd1bWVudCBpcyBj aGFuZ2VkLAogICAgICAgICAgICAgIyB0aGVuIENSRUFURSBPUiBSRVBMQUNF IFNRTCBzdGF0ZW1lbnQgc2hvdWxkIGJlIGNhbGxlZAogICAgICAgICAgICAg ZnVuX2NoYW5nZV9hcmdzID0gWydsYW5uYW1lJywgJ3Byb3NyYycsICdwcm9i aW4nLCAncHJvc3JjX2MnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICdwcm92b2xhdGlsZScsICdwcm9pc3N0cmljdCcsICdwcm9zZWNkZWYn LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcm9jb3N0Jywg J3Byb2xlYWtwcm9vZicsICdhcmd1bWVudHMnXQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICdwcm9wYXJhbGxlbCcsICdwcm9jb3N0JywgJ3By b2xlYWtwcm9vZicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg J2FyZ3VtZW50cyddCiAKICAgICAgICAgICAgIGRhdGFbJ2NoYW5nZV9mdW5j J10gPSBGYWxzZQogICAgICAgICAgICAgZm9yIGFyZyBpbiBmdW5fY2hhbmdl X2FyZ3M6CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL2Z1bmN0aW9uL2pzL2Z1bmN0aW9ucy5qcyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vanMvZnVuY3Rp b25zLmpzCmluZGV4IDg2ZmFmOGUuLjQ2MWUxYTIgMTAwNjQ0Ci0tLSBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vanMv ZnVuY3Rpb25zLmpzCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZW1wbGF0ZXMvZnVuY3Rpb24vanMvZnVuY3Rpb25zLmpzCkBAIC0xNTcsNiAr MTU3LDcgQEAgZnVuY3Rpb24oJCwgXywgUywgcGdBZG1pbiwgcGdCcm93c2Vy LCBhbGVydGlmeSkgewogICAgICAgICAgIHByb2lzc3RyaWN0OiB1bmRlZmlu ZWQsCiAgICAgICAgICAgcHJvc2VjZGVmOiB1bmRlZmluZWQsIC8qIFNlY3Vy aXR5IG9mIGRlZmluZXIgKi8KICAgICAgICAgICBwcm9pc3dpbmRvdzogdW5k ZWZpbmVkLCAvKiBXaW5kb3cgRnVuY3Rpb24gPyAqLworICAgICAgICAgIHBy b3BhcmFsbGVsOiB1bmRlZmluZWQsIC8qIFBhcmFsbGVsIG1vZGUgKi8KICAg ICAgICAgICBwcm9jb3N0OiB1bmRlZmluZWQsIC8qIEVzdGltYXRlZCBleGVj dXRpb24gQ29zdCAqLwogICAgICAgICAgIHByb3Jvd3M6IHVuZGVmaW5lZCwg LyogRXN0aW1hdGVkIG51bWJlciBvZiByb3dzICovCiAgICAgICAgICAgcHJv bGVha3Byb29mOiB1bmRlZmluZWQsCkBAIC0yNTUsNyArMjU2LDcgQEAgZnVu Y3Rpb24oJCwgXywgUywgcGdBZG1pbiwgcGdCcm93c2VyLCBhbGVydGlmeSkg ewogICAgICAgICAgICAgeydsYWJlbCc6ICdWT0xBVElMRScsICd2YWx1ZSc6 ICd2J30sCiAgICAgICAgICAgICB7J2xhYmVsJzogJ1NUQUJMRScsICd2YWx1 ZSc6ICdzJ30sCiAgICAgICAgICAgICB7J2xhYmVsJzogJ0lNTVVUQUJMRScs ICd2YWx1ZSc6ICdpJ30sCi0gICAgICAgICAgXSwgZGlzYWJsZWQ6ICdpc0Rp c2FibGVkJworICAgICAgICAgIF0sIGRpc2FibGVkOiAnaXNEaXNhYmxlZCcs IHNlbGVjdDI6IHthbGxvd0NsZWFyOiBmYWxzZX0KICAgICAgICAgfSx7CiAg ICAgICAgICAgaWQ6ICdwcm9yZXRzZXQnLCBsYWJlbDogJ3t7IF8oJ1JldHVy bnMgYSBzZXQ/JykgfX0nLCB0eXBlOiAnc3dpdGNoJywKICAgICAgICAgICBk aXNhYmxlZDogJ2lzRGlzYWJsZWQnLCBncm91cDogJ3t7IF8oJ09wdGlvbnMn KSB9fScsCkBAIC0yNzcsNiArMjc4LDE1IEBAIGZ1bmN0aW9uKCQsIF8sIFMs IHBnQWRtaW4sIHBnQnJvd3NlciwgYWxlcnRpZnkpIHsKICAgICAgICAgICAg Z3JvdXA6ICd7eyBfKCdPcHRpb25zJykgfX0nLCBjZWxsOidib29sZWFuJywg dHlwZTogJ3N3aXRjaCcsCiAgICAgICAgICAgICBkaXNhYmxlZDogJ2lzRGlz YWJsZWQnLCB2aXNpYmxlOiAnaXNWaXNpYmxlJwogICAgICAgICB9LHsKKyAg ICAgICAgICBpZDogJ3Byb3BhcmFsbGVsJywgbGFiZWw6ICd7eyBfKCdQYXJh bGxlbCcpIH19JywgY2VsbDogJ3N0cmluZycsCisgICAgICAgICAgY29udHJv bDogJ25vZGUtYWpheC1vcHRpb25zJywgdHlwZTogJ3RleHQnLCBncm91cDog J3t7IF8oJ09wdGlvbnMnKSB9fScsCisgICAgICAgICAgb3B0aW9uczpbCisg ICAgICAgICAgICB7J2xhYmVsJzogJ3t7IF8oJ1VOU0FGRScpIH19JywgJ3Zh bHVlJzogJ3UnfSwKKyAgICAgICAgICAgIHsnbGFiZWwnOiAne3sgXygnUkVT VFJJQ1RFRCcpIH19JywgJ3ZhbHVlJzogJ3InfSwKKyAgICAgICAgICAgIHsn bGFiZWwnOiAne3sgXygnU0FGRScpIH19JywgJ3ZhbHVlJzogJ3MnfSwKKyAg ICAgICAgICBdLCBkaXNhYmxlZDogJ2lzRGlzYWJsZWQnLCBtaW5fdmVyc2lv bjogOTA2MDAsCisgICAgICAgICAgc2VsZWN0Mjoge2FsbG93Q2xlYXI6IGZh bHNlfQorICAgICAgICB9LHsKICAgICAgICAgICBpZDogJ3Byb2Nvc3QnLCBs YWJlbDogJ3t7IF8oJ0VzdGltYXRlZCBjb3N0JykgfX0nLCBncm91cDogJ3t7 IF8oJ09wdGlvbnMnKSB9fScsCiAgICAgICAgICAgY2VsbDonc3RyaW5nJywg dHlwZTogJ3RleHQnLCBkaXNhYmxlZDogJ2lzRGlzYWJsZWQnCiAgICAgICAg IH0sewpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4yX3BsdXMvY3JlYXRlLnNxbCBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24v cGcvc3FsLzkuMl9wbHVzL2NyZWF0ZS5zcWwKaW5kZXggNjI0M2UzMy4uMzMw YzQ3OCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4yX3BsdXMvY3JlYXRlLnNxbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0 aW9uL3BnL3NxbC85LjJfcGx1cy9jcmVhdGUuc3FsCkBAIC0xOSw3ICsxOSw3 IEBAIENSRUFURXslIGlmIHF1ZXJ5X3R5cGUgaXMgZGVmaW5lZCAlfXt7JyBP UiBSRVBMQUNFJ319eyUgZW5kaWYgJX0gRlVOQ1RJT04ge3sgY29uCiB7JSBp ZiBkYXRhLnByb2Nvc3QgJX0KICAgICBDT1NUIHt7ZGF0YS5wcm9jb3N0fX0K IHslIGVuZGlmICV9Ci0gICAgeyUgaWYgZGF0YS5wcm92b2xhdGlsZSAlfXsl IGlmIGRhdGEucHJvdm9sYXRpbGUgPT0gJ2knICV9SU1NVVRBQkxFeyUgZWxp ZiBkYXRhLnByb3ZvbGF0aWxlID09ICdzJyAlfVNUQUJMRXslIGVsc2UgJX1W T0xBVElMRXslIGVuZGlmICV9IHslIGVuZGlmICV9eyUgaWYgZGF0YS5wcm9s ZWFrcHJvb2YgJX1MRUFLUFJPT0YgeyUgZWxzZSAlfU5PVCBMRUFLUFJPT0Yg eyUgZW5kaWYgJX0KKyAgICB7JSBpZiBkYXRhLnByb3ZvbGF0aWxlICV9eyUg aWYgZGF0YS5wcm92b2xhdGlsZSA9PSAnaScgJX1JTU1VVEFCTEV7JSBlbGlm IGRhdGEucHJvdm9sYXRpbGUgPT0gJ3MnICV9U1RBQkxFeyUgZWxzZSAlfVZP TEFUSUxFeyUgZW5kaWYgJX0geyUgZW5kaWYgJX17JSBpZiBkYXRhLnByb2xl YWtwcm9vZiAlfUxFQUtQUk9PRiB7JSBlbmRpZiAlfQogeyUgaWYgZGF0YS5w cm9pc3N0cmljdCAlfVNUUklDVCB7JSBlbmRpZiAlfQogeyUgaWYgZGF0YS5w cm9zZWNkZWYgJX1TRUNVUklUWSBERUZJTkVSIHslIGVuZGlmICV9CiB7JSBp ZiBkYXRhLnByb2lzd2luZG93ICV9V0lORE9XeyUgZW5kaWYgJX0KZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVu Y3Rpb24vcGcvc3FsLzkuMl9wbHVzL3VwZGF0ZS5zcWwgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjJf cGx1cy91cGRhdGUuc3FsCmluZGV4IDI4MjAxNzIuLjY0Y2QwYTIgMTAwNjQ0 Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVu Y3Rpb24vcGcvc3FsLzkuMl9wbHVzL3VwZGF0ZS5zcWwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwv OS4yX3BsdXMvdXBkYXRlLnNxbApAQCAtMjIsNyArMjIsNyBAQCBDUkVBVEUg T1IgUkVQTEFDRSBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLnBy b25hbWVzcGFjZSwgbmFtZSkgfX0oeyUgaWYgZAogICAgIExBTkdVQUdFIHt7 IGRhdGEubGFubmFtZXxxdExpdGVyYWwgfX0geyUgZWxzZSAlfQogICAgIExB TkdVQUdFIHt7IG9fZGF0YS5sYW5uYW1lfHF0TGl0ZXJhbCB9fQogICAgIHsl IGVuZGlmICV9eyUgaWYgJ3Byb3ZvbGF0aWxlJyBpbiBkYXRhIGFuZCBkYXRh LnByb3ZvbGF0aWxlICV9e3sgZGF0YS5wcm92b2xhdGlsZSB9fSB7JSBlbGlm ICdwcm92b2xhdGlsZScgbm90IGluIGRhdGEgYW5kIG9fZGF0YS5wcm92b2xh dGlsZSAlfXt7IG9fZGF0YS5wcm92b2xhdGlsZSB9fXslIGVuZGlmICV9Ci17 JSBpZiAoJ3Byb2xlYWtwcm9vZicgaW4gZGF0YSBhbmQgZGF0YS5wcm9sZWFr cHJvb2YpIG9yICgncHJvbGVha3Byb29mJyBub3QgaW4gZGF0YSBhbmQgb19k YXRhLnByb2xlYWtwcm9vZikgJX1MRUFLUFJPT0Z7JSBlbGlmICdwcm9sZWFr cHJvb2YnIGluIGRhdGEgYW5kIG5vdCBkYXRhLnByb2xlYWtwcm9vZiAlfU5P VCBMRUFLUFJPT0Z7JSBlbmRpZiAlfQoreyUgaWYgKCdwcm9sZWFrcHJvb2Yn IGluIGRhdGEgYW5kIGRhdGEucHJvbGVha3Byb29mKSBvciAoJ3Byb2xlYWtw cm9vZicgbm90IGluIGRhdGEgYW5kIG9fZGF0YS5wcm9sZWFrcHJvb2YpICV9 IExFQUtQUk9PRnslIGVsaWYgJ3Byb2xlYWtwcm9vZicgaW4gZGF0YSBhbmQg bm90IGRhdGEucHJvbGVha3Byb29mICV9IE5PVCBMRUFLUFJPT0Z7JSBlbmRp ZiAlfQogeyUgaWYgKCdwcm9pc3N0cmljdCcgaW4gZGF0YSBhbmQgZGF0YS5w cm9pc3N0cmljdCkgb3IgKCdwcm9pc3N0cmljdCcgbm90IGluIGRhdGEgYW5k IG9fZGF0YS5wcm9pc3N0cmljdCkgJX0gU1RSSUNUeyUgZW5kaWYgJX0KIHsl IGlmICgncHJvc2VjZGVmJyBpbiBkYXRhIGFuZCBkYXRhLnByb3NlY2RlZikg b3IgKCdwcm9zZWNkZWYnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvc2Vj ZGVmKSAlfSBTRUNVUklUWSBERUZJTkVSeyUgZW5kaWYgJX0KIHslIGlmICgn cHJvaXN3aW5kb3cnIGluIGRhdGEgYW5kIGRhdGEucHJvaXN3aW5kb3cpIG9y ICgncHJvaXN3aW5kb3cnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvaXN3 aW5kb3cpICV9IFdJTkRPV3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3Nx bC85LjVfcGx1cy9jcmVhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41X3BsdXMvY3JlYXRl LnNxbAppbmRleCA5MzNkYWE1Li5kYTQ2NjQ5IDEwMDY0NAotLS0gYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3Nx bC85LjVfcGx1cy9jcmVhdGUuc3FsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuNV9wbHVzL2Ny ZWF0ZS5zcWwKQEAgLTE5LDcgKzE5LDcgQEAgQ1JFQVRFeyUgaWYgcXVlcnlf dHlwZSBpcyBkZWZpbmVkICV9e3snIE9SIFJFUExBQ0UnfX17JSBlbmRpZiAl fSBGVU5DVElPTiB7eyBjb24KIHslIGlmIGRhdGEucHJvY29zdCAlfQogICAg IENPU1Qge3tkYXRhLnByb2Nvc3R9fQogeyUgZW5kaWYgJX0KLSAgICB7JSBp ZiBkYXRhLnByb3ZvbGF0aWxlICV9eyUgaWYgZGF0YS5wcm92b2xhdGlsZSA9 PSAnaScgJX1JTU1VVEFCTEV7JSBlbGlmIGRhdGEucHJvdm9sYXRpbGUgPT0g J3MnICV9U1RBQkxFeyUgZWxzZSAlfVZPTEFUSUxFeyUgZW5kaWYgJX0geyUg ZW5kaWYgJX17JSBpZiBkYXRhLnByb2xlYWtwcm9vZiAlfUxFQUtQUk9PRiB7 JSBlbHNlICV9Tk9UIExFQUtQUk9PRiB7JSBlbmRpZiAlfQorICAgIHslIGlm IGRhdGEucHJvdm9sYXRpbGUgJX17JSBpZiBkYXRhLnByb3ZvbGF0aWxlID09 ICdpJyAlfUlNTVVUQUJMRXslIGVsaWYgZGF0YS5wcm92b2xhdGlsZSA9PSAn cycgJX1TVEFCTEV7JSBlbHNlICV9Vk9MQVRJTEV7JSBlbmRpZiAlfSB7JSBl bmRpZiAlfXslIGlmIGRhdGEucHJvbGVha3Byb29mICV9TEVBS1BST09GIHsl IGVuZGlmICV9CiB7JSBpZiBkYXRhLnByb2lzc3RyaWN0ICV9U1RSSUNUIHsl IGVuZGlmICV9CiB7JSBpZiBkYXRhLnByb3NlY2RlZiAlfVNFQ1VSSVRZIERF RklORVIgeyUgZW5kaWYgJX0KIHslIGlmIGRhdGEucHJvaXN3aW5kb3cgJX1X SU5ET1d7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41X3BsdXMv dXBkYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvZnVuY3Rpb24vcGcvc3FsLzkuNV9wbHVzL3VwZGF0ZS5zcWwKaW5kZXgg NTA1ZWUyYS4uNGRmZWIxMCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41X3BsdXMv dXBkYXRlLnNxbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjVfcGx1cy91cGRhdGUuc3FsCkBA IC0yMyw3ICsyMyw3IEBAIENSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHt7 IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fSh7 JSBpZiBkCiAgICAgTEFOR1VBR0Uge3sgZGF0YS5sYW5uYW1lfHF0TGl0ZXJh bCB9fSB7JSBlbHNlICV9CiAgICAgTEFOR1VBR0Uge3sgb19kYXRhLmxhbm5h bWV8cXRMaXRlcmFsIH19CiAgICAgeyUgZW5kaWYgJX17JSBpZiAncHJvdm9s YXRpbGUnIGluIGRhdGEgYW5kIGRhdGEucHJvdm9sYXRpbGUgJX17eyBkYXRh LnByb3ZvbGF0aWxlIH19IHslIGVsaWYgJ3Byb3ZvbGF0aWxlJyBub3QgaW4g ZGF0YSBhbmQgb19kYXRhLnByb3ZvbGF0aWxlICV9e3sgb19kYXRhLnByb3Zv bGF0aWxlIH19eyUgZW5kaWYgJX0KLXslIGlmICgncHJvbGVha3Byb29mJyBp biBkYXRhIGFuZCBkYXRhLnByb2xlYWtwcm9vZikgb3IgKCdwcm9sZWFrcHJv b2YnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvbGVha3Byb29mKSAlfUxF QUtQUk9PRnslIGVsaWYgJ3Byb2xlYWtwcm9vZicgaW4gZGF0YSBhbmQgbm90 IGRhdGEucHJvbGVha3Byb29mICV9Tk9UIExFQUtQUk9PRnslIGVuZGlmICV9 Cit7JSBpZiAoJ3Byb2xlYWtwcm9vZicgaW4gZGF0YSBhbmQgZGF0YS5wcm9s ZWFrcHJvb2YpIG9yICgncHJvbGVha3Byb29mJyBub3QgaW4gZGF0YSBhbmQg b19kYXRhLnByb2xlYWtwcm9vZikgJX0gTEVBS1BST09GeyUgZWxpZiAncHJv bGVha3Byb29mJyBpbiBkYXRhIGFuZCBub3QgZGF0YS5wcm9sZWFrcHJvb2Yg JX0gTk9UIExFQUtQUk9PRnslIGVuZGlmICV9CiB7JSBpZiAoJ3Byb2lzc3Ry aWN0JyBpbiBkYXRhIGFuZCBkYXRhLnByb2lzc3RyaWN0KSBvciAoJ3Byb2lz c3RyaWN0JyBub3QgaW4gZGF0YSBhbmQgb19kYXRhLnByb2lzc3RyaWN0KSAl fSBTVFJJQ1R7JSBlbmRpZiAlfQogeyUgaWYgKCdwcm9zZWNkZWYnIGluIGRh dGEgYW5kIGRhdGEucHJvc2VjZGVmKSBvciAoJ3Byb3NlY2RlZicgbm90IGlu IGRhdGEgYW5kIG9fZGF0YS5wcm9zZWNkZWYpICV9IFNFQ1VSSVRZIERFRklO RVJ7JSBlbmRpZiAlfQogeyUgaWYgKCdwcm9pc3dpbmRvdycgaW4gZGF0YSBh bmQgZGF0YS5wcm9pc3dpbmRvdykgb3IgKCdwcm9pc3dpbmRvdycgbm90IGlu IGRhdGEgYW5kIG9fZGF0YS5wcm9pc3dpbmRvdykgJX0gV0lORE9XeyUgZW5k aWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuNl9wbHVzL2NyZWF0ZS5zcWwg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9u L3BnL3NxbC85LjZfcGx1cy9jcmVhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLmNjNmRmMTEKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9u L3BnL3NxbC85LjZfcGx1cy9jcmVhdGUuc3FsCkBAIC0wLDAgKzEsNjYgQEAK K3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9zZWN1cml0eS5tYWNyb3Mn IGFzIFNFQ0xBQkVMICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMv cHJpdmlsZWdlLm1hY3JvcycgYXMgUFJJVklMRUdFICV9Cit7JSBpbXBvcnQg J21hY3Jvcy9mdW5jdGlvbnMvdmFyaWFibGUubWFjcm9zJyBhcyBWQVJJQUJM RSAlfQoreyUgc2V0IGlzX2NvbHVtbnMgPSBbXSAlfQoreyUgaWYgZGF0YSAl fQoreyUgaWYgcXVlcnlfZm9yID09ICdzcWxfcGFuZWwnIGFuZCBmdW5jX2Rl ZiBpcyBkZWZpbmVkICV9CitDUkVBVEV7JSBpZiBxdWVyeV90eXBlIGlzIGRl ZmluZWQgJX17eycgT1IgUkVQTEFDRSd9fXslIGVuZGlmICV9IEZVTkNUSU9O IHt7ZnVuY19kZWZ9fQoreyUgZWxzZSAlfQorQ1JFQVRFeyUgaWYgcXVlcnlf dHlwZSBpcyBkZWZpbmVkICV9e3snIE9SIFJFUExBQ0UnfX17JSBlbmRpZiAl fSBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2Us IGRhdGEubmFtZSkgfX0oeyUgaWYgZGF0YS5hcmdzICV9Cit7JSBmb3IgcCBp biBkYXRhLmFyZ3MgJX17JSBpZiBwLmFyZ21vZGUgJX17e3AuYXJnbW9kZX19 IHslIGVuZGlmICV9eyUgaWYgcC5hcmduYW1lICV9e3sgY29ubnxxdElkZW50 KHAuYXJnbmFtZSkgfX0geyUgZW5kaWYgJX17JSBpZiBwLmFyZ3R5cGUgJX17 eyBjb25ufHF0VHlwZUlkZW50KHAuYXJndHlwZSkgfX17JSBlbmRpZiAlfXsl IGlmIHAuYXJnZGVmdmFsICV9IERFRkFVTFQge3twLmFyZ2RlZnZhbH19eyUg ZW5kaWYgJX0KK3slIGlmIG5vdCBsb29wLmxhc3QgJX0sIHslIGVuZGlmICV9 Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQorKQoreyUgZW5kaWYgJX0K KyAgICBSRVRVUk5TeyUgaWYgZGF0YS5wcm9yZXRzZXQgYW5kIGRhdGEucHJv cmV0dHlwZW5hbWUuc3RhcnRzd2l0aCgnU0VUT0YgJykgJX0ge3sgZGF0YS5w cm9yZXR0eXBlbmFtZSB9fSB7JSBlbGlmIGRhdGEucHJvcmV0c2V0ICV9IFNF VE9GIHt7IGNvbm58cXRUeXBlSWRlbnQoZGF0YS5wcm9yZXR0eXBlbmFtZSkg fX17JSBlbHNlICV9IHt7IGNvbm58cXRUeXBlSWRlbnQoZGF0YS5wcm9yZXR0 eXBlbmFtZSkgfX17JSBlbmRpZiAlfQorCisgICAgTEFOR1VBR0Uge3sgZGF0 YS5sYW5uYW1lfHF0TGl0ZXJhbCB9fQoreyUgaWYgZGF0YS5wcm9jb3N0ICV9 CisgICAgQ09TVCB7e2RhdGEucHJvY29zdH19Cit7JSBlbmRpZiAlfQorICAg IHslIGlmIGRhdGEucHJvdm9sYXRpbGUgJX17JSBpZiBkYXRhLnByb3ZvbGF0 aWxlID09ICdpJyAlfUlNTVVUQUJMRXslIGVsaWYgZGF0YS5wcm92b2xhdGls ZSA9PSAncycgJX1TVEFCTEV7JSBlbHNlICV9Vk9MQVRJTEV7JSBlbmRpZiAl fSB7JSBlbmRpZiAlfXslIGlmIGRhdGEucHJvbGVha3Byb29mICV9TEVBS1BS T09GIHslIGVuZGlmICV9Cit7JSBpZiBkYXRhLnByb2lzc3RyaWN0ICV9U1RS SUNUIHslIGVuZGlmICV9Cit7JSBpZiBkYXRhLnByb3NlY2RlZiAlfVNFQ1VS SVRZIERFRklORVIgeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEucHJvaXN3aW5k b3cgJX1XSU5ET1cgeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEucHJvcGFyYWxs ZWwgYW5kIChkYXRhLnByb3BhcmFsbGVsID09ICdyJyBvciBkYXRhLnByb3Bh cmFsbGVsID09ICdzJykgJX0KKworICAgIHslIGlmIGRhdGEucHJvcGFyYWxs ZWwgPT0gJ3InICV9UEFSQUxMRUwgUkVTVFJJQ1RFRHslIGVsaWYgZGF0YS5w cm9wYXJhbGxlbCA9PSAncycgJX1QQVJBTExFTCBTQUZFeyUgZW5kaWYgJX17 JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEucHJvcm93cyAlfQorCisgICAgUk9X UyB7e2RhdGEucHJvcm93c319eyUgZW5kaWYgLSV9eyUgaWYgZGF0YS52YXJp YWJsZXMgJX17JSBmb3IgdiBpbiBkYXRhLnZhcmlhYmxlcyAlfQorCisgICAg U0VUIHt7IGNvbm58cXRJZGVudCh2Lm5hbWUpIH19PXt7IHYudmFsdWV8cXRM aXRlcmFsIH19eyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQorCitBUyB7JSBp ZiBkYXRhLmxhbm5hbWUgPT0gJ2MnICV9Cit7eyBkYXRhLnByb2JpbnxxdExp dGVyYWwgfX0sIHt7IGRhdGEucHJvc3JjX2N8cXRMaXRlcmFsIH19Cit7JSBl bHNlICV9CiskZnVuY3Rpb24kCit7eyBkYXRhLnByb3NyYyB9fQorJGZ1bmN0 aW9uJHslIGVuZGlmIC0lfTsKK3slIGlmIGRhdGEuZnVuY293bmVyICV9CisK K0FMVEVSIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChkYXRhLnByb25hbWVz cGFjZSwgZGF0YS5uYW1lKSB9fSh7e2RhdGEuZnVuY19hcmdzX3dpdGhvdXR9 fSkKKyAgICBPV05FUiBUTyB7eyBjb25ufHF0SWRlbnQoZGF0YS5mdW5jb3du ZXIpIH19OworeyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLmFjbCAlfQoreyUg Zm9yIHAgaW4gZGF0YS5hY2wgJX0KKwore3sgUFJJVklMRUdFLlNFVChjb25u LCAiRlVOQ1RJT04iLCBwLmdyYW50ZWUsIGRhdGEubmFtZSwgcC53aXRob3V0 X2dyYW50LCBwLndpdGhfZ3JhbnQsIGRhdGEucHJvbmFtZXNwYWNlLCBkYXRh LmZ1bmNfYXJnc193aXRob3V0KX19Cit7JSBlbmRmb3IgJX17JSBlbmRpZiAl fQoreyUgaWYgZGF0YS5kZXNjcmlwdGlvbiAlfQorCitDT01NRU5UIE9OIEZV TkNUSU9OIHt7IGNvbm58cXRJZGVudChkYXRhLnByb25hbWVzcGFjZSwgZGF0 YS5uYW1lKSB9fSh7e2RhdGEuZnVuY19hcmdzX3dpdGhvdXR9fSkKKyAgICBJ UyB7eyBkYXRhLmRlc2NyaXB0aW9ufHF0TGl0ZXJhbCAgfX07Cit7JSBlbmRp ZiAtJX0KK3slIGlmIGRhdGEuc2VjbGFiZWxzICV9Cit7JSBmb3IgciBpbiBk YXRhLnNlY2xhYmVscyAlfQoreyUgaWYgci5sYWJlbCBhbmQgci5wcm92aWRl ciAlfQorCit7eyBTRUNMQUJFTC5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgZGF0 YS5uYW1lLCByLnByb3ZpZGVyLCByLmxhYmVsLCBkYXRhLnByb25hbWVzcGFj ZSwgZGF0YS5mdW5jX2FyZ3Nfd2l0aG91dCkgfX0KK3slIGVuZGlmICV9Cit7 JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQorCit7JSBlbmRpZiAlfQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9m dW5jdGlvbi9wZy9zcWwvOS42X3BsdXMvdXBkYXRlLnNxbCBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzku Nl9wbHVzL3VwZGF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uNDllYjk0ZQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzku Nl9wbHVzL3VwZGF0ZS5zcWwKQEAgLTAsMCArMSwxMTYgQEAKK3slIGltcG9y dCAnbWFjcm9zL2Z1bmN0aW9ucy9zZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xB QkVMICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvcHJpdmlsZWdl Lm1hY3JvcycgYXMgUFJJVklMRUdFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9m dW5jdGlvbnMvdmFyaWFibGUubWFjcm9zJyBhcyBWQVJJQUJMRSAlfXslIGlm IGRhdGEgJX0KK3slIHNldCBuYW1lID0gb19kYXRhLm5hbWUgJX0KK3slIGlm IGRhdGEubmFtZSAlfQoreyUgaWYgZGF0YS5uYW1lICE9IG9fZGF0YS5uYW1l ICV9CitBTFRFUiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLnBy b25hbWVzcGFjZSwgb19kYXRhLm5hbWUpIH19KHt7CitvX2RhdGEucHJvYXJn dHlwZW5hbWVzIH19KQorICAgIFJFTkFNRSBUTyB7eyBjb25ufHF0SWRlbnQo ZGF0YS5uYW1lKSB9fTsKK3slIHNldCBuYW1lID0gZGF0YS5uYW1lICV9Cit7 JSBlbmRpZiAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLmNoYW5nZV9m dW5jICAlfQorCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB7eyBjb25u fHF0SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX0oeyUgaWYg ZGF0YS5hcmd1bWVudHMgJX0KK3slIGZvciBwIGluIGRhdGEuYXJndW1lbnRz ICV9eyUgaWYgcC5hcmdtb2RlICV9e3twLmFyZ21vZGV9fSB7JSBlbmRpZiAl fXslIGlmIHAuYXJnbmFtZSAlfXt7IGNvbm58cXRJZGVudChwLmFyZ25hbWUp IH19IHslIGVuZGlmICV9eyUgaWYgcC5hcmd0eXBlICV9e3sgY29ubnxxdFR5 cGVJZGVudChwLmFyZ3R5cGUpIH19eyUgZW5kaWYgJX17JSBpZiBwLmFyZ2Rl ZnZhbCAlfSBERUZBVUxUIHt7cC5hcmdkZWZ2YWx9fXslIGVuZGlmICV9Cit7 JSBpZiBub3QgbG9vcC5sYXN0ICV9LHslIGVuZGlmICV9Cit7JSBlbmRmb3Ig JX0KK3slIGVuZGlmIC0lfQorKQorICAgIFJFVFVSTlMge3sgb19kYXRhLnBy b3JldHR5cGVuYW1lIH19Cit7JSBpZiAnbGFubmFtZScgaW4gZGF0YSAlfQor ICAgIExBTkdVQUdFIHt7IGRhdGEubGFubmFtZXxxdExpdGVyYWwgfX0geyUg ZWxzZSAlfQorICAgIExBTkdVQUdFIHt7IG9fZGF0YS5sYW5uYW1lfHF0TGl0 ZXJhbCB9fQorICAgIHslIGVuZGlmICV9eyUgaWYgJ3Byb3ZvbGF0aWxlJyBp biBkYXRhIGFuZCBkYXRhLnByb3ZvbGF0aWxlICV9e3sgZGF0YS5wcm92b2xh dGlsZSB9fSB7JSBlbGlmICdwcm92b2xhdGlsZScgbm90IGluIGRhdGEgYW5k IG9fZGF0YS5wcm92b2xhdGlsZSAlfXt7IG9fZGF0YS5wcm92b2xhdGlsZSB9 fXslIGVuZGlmICV9Cit7JSBpZiAoJ3Byb2xlYWtwcm9vZicgaW4gZGF0YSBh bmQgZGF0YS5wcm9sZWFrcHJvb2YpIG9yICgncHJvbGVha3Byb29mJyBub3Qg aW4gZGF0YSBhbmQgb19kYXRhLnByb2xlYWtwcm9vZikgJX0gTEVBS1BST09G eyUgZWxpZiAncHJvbGVha3Byb29mJyBpbiBkYXRhIGFuZCBub3QgZGF0YS5w cm9sZWFrcHJvb2YgJX0gTk9UIExFQUtQUk9PRnslIGVuZGlmICV9Cit7JSBp ZiAoJ3Byb2lzc3RyaWN0JyBpbiBkYXRhIGFuZCBkYXRhLnByb2lzc3RyaWN0 KSBvciAoJ3Byb2lzc3RyaWN0JyBub3QgaW4gZGF0YSBhbmQgb19kYXRhLnBy b2lzc3RyaWN0KSAlfSBTVFJJQ1R7JSBlbmRpZiAlfQoreyUgaWYgKCdwcm9z ZWNkZWYnIGluIGRhdGEgYW5kIGRhdGEucHJvc2VjZGVmKSBvciAoJ3Byb3Nl Y2RlZicgbm90IGluIGRhdGEgYW5kIG9fZGF0YS5wcm9zZWNkZWYpICV9IFNF Q1VSSVRZIERFRklORVJ7JSBlbmRpZiAlfQoreyUgaWYgKCdwcm9pc3dpbmRv dycgaW4gZGF0YSBhbmQgZGF0YS5wcm9pc3dpbmRvdykgb3IgKCdwcm9pc3dp bmRvdycgbm90IGluIGRhdGEgYW5kIG9fZGF0YS5wcm9pc3dpbmRvdykgJX0g V0lORE9XeyUgZW5kaWYgJX0KKworICAgIHslIGlmICdwcm9wYXJhbGxlbCcg aW4gZGF0YSBhbmQgZGF0YS5wcm9wYXJhbGxlbCAlfVBBUkFMTEVMIHt7IGRh dGEucHJvcGFyYWxsZWwgfX17JSBlbGlmICdwcm9wYXJhbGxlbCcgbm90IGlu IGRhdGEgYW5kIG9fZGF0YS5wcm9wYXJhbGxlbCAlfVBBUkFMTEVMIHt7IG9f ZGF0YS5wcm9wYXJhbGxlbCB9fXslIGVuZGlmICV9CisKKyAgICB7JSBpZiBk YXRhLnByb2Nvc3QgJX1DT1NUIHt7ZGF0YS5wcm9jb3N0fX17JSBlbGlmIG9f ZGF0YS5wcm9jb3N0ICV9Q09TVCB7e29fZGF0YS5wcm9jb3N0fX17JSBlbmRp ZiAlfXslIGlmIGRhdGEucHJvcm93cyAlfQorCisgICAgUk9XUyB7e2RhdGEu cHJvcm93c319eyUgZWxpZiBvX2RhdGEucHJvcm93cyAlfVJPV1Mge3tvX2Rh dGEucHJvcm93c319IHslZW5kaWYgLSV9eyUgaWYgZGF0YS5tZXJnZWRfdmFy aWFibGVzICV9eyUgZm9yIHYgaW4gZGF0YS5tZXJnZWRfdmFyaWFibGVzICV9 CisKKyAgICBTRVQge3sgY29ubnxxdElkZW50KHYubmFtZSkgfX09e3sgdi52 YWx1ZXxxdExpdGVyYWwgfX17JSBlbmRmb3IgLSV9CisgICAgeyUgZW5kaWYg JX0KKworQVMgeyUgaWYgJ3Byb2JpbicgaW4gZGF0YSBvciAncHJvc3JjX2Mn IGluIGRhdGEgJX0KK3slIGlmICdwcm9iaW4nIGluIGRhdGEgJX17eyBkYXRh LnByb2JpbnxxdExpdGVyYWwgfX17JSBlbHNlICV9e3sgb19kYXRhLnByb2Jp bnxxdExpdGVyYWwgfX17JSBlbmRpZiAlfSwgeyUgaWYgJ3Byb3NyY19jJyBp biBkYXRhICV9e3sgZGF0YS5wcm9zcmNfY3xxdExpdGVyYWwgfX17JSBlbHNl ICV9e3sgb19kYXRhLnByb3NyY19jfHF0TGl0ZXJhbCB9fXslIGVuZGlmICV9 eyUgZWxpZiAncHJvc3JjJyBpbiBkYXRhICV9CiskZnVuY3Rpb24ke3sgZGF0 YS5wcm9zcmMgfX0kZnVuY3Rpb24keyUgZWxpZiBvX2RhdGEubGFubmFtZSA9 PSAnYycgJX0KK3t7IG9fZGF0YS5wcm9iaW58cXRMaXRlcmFsIH19LCB7eyBv X2RhdGEucHJvc3JjX2N8cXRMaXRlcmFsIH19eyUgZWxzZSAlfQorJGZ1bmN0 aW9uJHt7IG9fZGF0YS5wcm9zcmMgfX0kZnVuY3Rpb24keyUgZW5kaWYgLSV9 OworeyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLmZ1bmNvd25lciAlfQorCitB TFRFUiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLnByb25hbWVz cGFjZSwgbmFtZSkgfX0oe3tvX2RhdGEucHJvYXJndHlwZW5hbWVzIH19KQor ICAgIE9XTkVSIFRPIHt7IGNvbm58cXRJZGVudChkYXRhLmZ1bmNvd25lcikg fX07Cit7JSBlbmRpZiAtJX0KK3sjIFRoZSBTUUwgZ2VuZXJhdGVkIGJlbG93 IHdpbGwgY2hhbmdlIHByaXZpbGVkZ2VzICN9Cit7JSBpZiBkYXRhLmFjbCAl fQoreyUgaWYgJ2RlbGV0ZWQnIGluIGRhdGEuYWNsICV9Cit7JSBmb3IgcHJp diBpbiBkYXRhLmFjbC5kZWxldGVkICV9CisKK3t7IFBSSVZJTEVHRS5VTlNF VEFMTChjb25uLCAnRlVOQ1RJT04nLCBwcml2LmdyYW50ZWUsIG5hbWUsIG9f ZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19 Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgJ2NoYW5nZWQn IGluIGRhdGEuZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmFjbC5j aGFuZ2VkICV9CisKK3t7IFBSSVZJTEVHRS5VTlNFVEFMTChjb25uLCAnRlVO Q1RJT04nLCBwcml2LmdyYW50ZWUsIG5hbWUsIG9fZGF0YS5wcm9uYW1lc3Bh Y2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19CisKK3t7IFBSSVZJTEVH RS5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgcHJpdi5ncmFudGVlLCBuYW1lLCBw cml2LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0aF9ncmFudCwgb19kYXRhLnBy b25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVu ZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiAnYWRkZWQnIGluIGRhdGEu YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmFjbC5hZGRlZCAlfQorCit7 eyBQUklWSUxFR0UuU0VUKGNvbm4sICdGVU5DVElPTicsIHByaXYuZ3JhbnRl ZSwgbmFtZSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQs IG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMp IH19Cit7JSBlbmRmb3IgJX17JSBlbmRpZiAtJX0KK3slIGVuZGlmIC0lfQor eyUgaWYgZGF0YS5jaGFuZ2VfZnVuYyA9PSBGYWxzZSAlfQoreyUgaWYgZGF0 YS52YXJpYWJsZXMgJX0KK3slIGlmICdkZWxldGVkJyBpbiBkYXRhLnZhcmlh YmxlcyBhbmQgZGF0YS52YXJpYWJsZXMuZGVsZXRlZHxsZW5ndGggPiAwICV9 CisKK3t7IFZBUklBQkxFLlVOU0VUKGNvbm4sICdGVU5DVElPTicsIG5hbWUs IGRhdGEudmFyaWFibGVzLmRlbGV0ZWQsIG9fZGF0YS5wcm9uYW1lc3BhY2Us IG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRpZiAtJX0KK3sl IGlmICdtZXJnZWRfdmFyaWFibGVzJyBpbiBkYXRhIGFuZCBkYXRhLm1lcmdl ZF92YXJpYWJsZXN8bGVuZ3RoID4gMCAlfQorCit7eyBWQVJJQUJMRS5TRVQo Y29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwgZGF0YS5tZXJnZWRfdmFyaWFibGVz LCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVz KSB9fQoreyUgZW5kaWYgLSV9Cit7JSBlbmRpZiAtJX0KK3slIGVuZGlmIC0l fQoreyUgc2V0IHNlY2xhYmVscyA9IGRhdGEuc2VjbGFiZWxzICV9Cit7JSBp ZiAnZGVsZXRlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuZGVsZXRl ZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuZGVsZXRl ZCAlfQorCit7eyBTRUNMQUJFTC5VTlNFVChjb25uLCAnRlVOQ1RJT04nLCBu YW1lLCByLnByb3ZpZGVyLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEu cHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAt JX0KK3slIGlmICdhZGRlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMu YWRkZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmFk ZGVkICV9CisKK3t7IFNFQ0xBQkVMLlNFVChjb25uLCAnRlVOQ1RJT04nLCBu YW1lLCByLnByb3ZpZGVyLCByLmxhYmVsLCBvX2RhdGEucHJvbmFtZXNwYWNl LCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7 JSBlbmRpZiAtJX0KK3slIGlmICdjaGFuZ2VkJyBpbiBzZWNsYWJlbHMgYW5k IHNlY2xhYmVscy5jaGFuZ2VkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGlu IHNlY2xhYmVscy5jaGFuZ2VkICV9CisKK3t7IFNFQ0xBQkVMLlNFVChjb25u LCAnRlVOQ1RJT04nLCBuYW1lLCByLnByb3ZpZGVyLCByLmxhYmVsLCBvX2Rh dGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQor eyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEuZGVzY3Jp cHRpb24gaXMgZGVmaW5lZCBhbmQgZGF0YS5kZXNjcmlwdGlvbiAhPSBvX2Rh dGEuZGVzY3JpcHRpb24lfQorCitDT01NRU5UIE9OIEZVTkNUSU9OIHt7IGNv bm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fSh7e29f ZGF0YS5wcm9hcmd0eXBlbmFtZXMgfX0pCisgICAgSVMge3sgZGF0YS5kZXNj cmlwdGlvbnxxdExpdGVyYWwgfX07Cit7JSBlbmRpZiAtJX0KKworeyUgaWYg ZGF0YS5wcm9uYW1lc3BhY2UgJX0KKworQUxURVIgRlVOQ1RJT04ge3sgY29u bnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19KHt7b19k YXRhLnByb2FyZ3R5cGVuYW1lcyB9fSkKKyAgICBTRVQgU0NIRU1BIHt7IGNv bm58cXRJZGVudChkYXRhLnByb25hbWVzcGFjZSkgfX07Cit7JSBlbmRpZiAt JX0KKworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4yX3Bs dXMvY3JlYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4yX3BsdXMvY3JlYXRlLnNxbApp bmRleCAyNjk4MmU4Li4wYjEwZDZmIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzku Ml9wbHVzL2NyZWF0ZS5zcWwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy9jcmVh dGUuc3FsCkBAIC0xOSw3ICsxOSw3IEBAIENSRUFURXslIGlmIHF1ZXJ5X3R5 cGUgaXMgZGVmaW5lZCAlfXt7JyBPUiBSRVBMQUNFJ319eyUgZW5kaWYgJX0g RlVOQ1RJT04ge3sgY29uCiB7JSBpZiBkYXRhLnByb2Nvc3QgJX0KICAgICBD T1NUIHt7ZGF0YS5wcm9jb3N0fX0KIHslIGVuZGlmICV9Ci0gICAgeyUgaWYg ZGF0YS5wcm92b2xhdGlsZSAlfXslIGlmIGRhdGEucHJvdm9sYXRpbGUgPT0g J2knICV9SU1NVVRBQkxFeyUgZWxpZiBkYXRhLnByb3ZvbGF0aWxlID09ICdz JyAlfVNUQUJMRXslIGVsc2UgJX1WT0xBVElMRXslIGVuZGlmICV9IHslIGVu ZGlmICV9eyUgaWYgZGF0YS5wcm9sZWFrcHJvb2YgJX0gTEVBS1BST09GIHsl IGVsc2UgJX0gTk9UIExFQUtQUk9PRiB7JSBlbmRpZiAlfQorICAgIHslIGlm IGRhdGEucHJvdm9sYXRpbGUgJX17JSBpZiBkYXRhLnByb3ZvbGF0aWxlID09 ICdpJyAlfUlNTVVUQUJMRXslIGVsaWYgZGF0YS5wcm92b2xhdGlsZSA9PSAn cycgJX1TVEFCTEV7JSBlbHNlICV9Vk9MQVRJTEV7JSBlbmRpZiAlfSB7JSBl bmRpZiAlfXslIGlmIGRhdGEucHJvbGVha3Byb29mICV9IExFQUtQUk9PRiB7 JSBlbmRpZiAlfQogeyUgaWYgZGF0YS5wcm9pc3N0cmljdCAlfVNUUklDVCB7 JSBlbmRpZiAlfQogeyUgaWYgZGF0YS5wcm9zZWNkZWYgJX1TRUNVUklUWSBE RUZJTkVSIHslIGVuZGlmICV9CiB7JSBpZiBkYXRhLnByb2lzd2luZG93ICV9 V0lORE9XeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS41X3Bs dXMvY3JlYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS41X3BsdXMvY3JlYXRlLnNxbApp bmRleCBjYmZlMzNkLi42ZDEyN2JkIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzku NV9wbHVzL2NyZWF0ZS5zcWwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjVfcGx1cy9jcmVh dGUuc3FsCkBAIC0xNiw3ICsxNiw3IEBAIENSRUFURXslIGlmIHF1ZXJ5X3R5 cGUgaXMgZGVmaW5lZCAlfXt7JyBPUiBSRVBMQUNFJ319eyUgZW5kaWYgJX0g RlVOQ1RJT04ge3sgY29uCiAgICAgUkVUVVJOU3slIGlmIGRhdGEucHJvcmV0 c2V0IGFuZCBkYXRhLnByb3JldHR5cGVuYW1lLnN0YXJ0c3dpdGgoJ1NFVE9G ICcpICV9IHt7IGRhdGEucHJvcmV0dHlwZW5hbWUgfX0geyUgZWxpZiBkYXRh LnByb3JldHNldCAlfSBTRVRPRiB7eyBjb25ufHF0VHlwZUlkZW50KGRhdGEu cHJvcmV0dHlwZW5hbWUpIH19eyUgZWxzZSAlfSB7eyBjb25ufHF0VHlwZUlk ZW50KGRhdGEucHJvcmV0dHlwZW5hbWUpIH19eyUgZW5kaWYgJX0KIAogICAg IExBTkdVQUdFIHt7IGRhdGEubGFubmFtZXxxdExpdGVyYWwgfX0KLSAgICB7 JSBpZiBkYXRhLnByb3ZvbGF0aWxlICV9eyUgaWYgZGF0YS5wcm92b2xhdGls ZSA9PSAnaScgJX1JTU1VVEFCTEV7JSBlbGlmIGRhdGEucHJvdm9sYXRpbGUg PT0gJ3MnICV9U1RBQkxFeyUgZWxzZSAlfVZPTEFUSUxFeyUgZW5kaWYgJX0g eyUgZW5kaWYgJX17JSBpZiBkYXRhLnByb2xlYWtwcm9vZiAlfUxFQUtQUk9P RiB7JSBlbHNlICV9Tk9UIExFQUtQUk9PRiB7JSBlbmRpZiAlfQorICAgIHsl IGlmIGRhdGEucHJvdm9sYXRpbGUgJX17JSBpZiBkYXRhLnByb3ZvbGF0aWxl ID09ICdpJyAlfUlNTVVUQUJMRXslIGVsaWYgZGF0YS5wcm92b2xhdGlsZSA9 PSAncycgJX1TVEFCTEV7JSBlbHNlICV9Vk9MQVRJTEV7JSBlbmRpZiAlfSB7 JSBlbmRpZiAlfXslIGlmIGRhdGEucHJvbGVha3Byb29mICV9TEVBS1BST09G IHslIGVuZGlmICV9CiB7JSBpZiBkYXRhLnByb2lzc3RyaWN0ICV9U1RSSUNU IHslIGVuZGlmICV9CiB7JSBpZiBkYXRhLnByb3NlY2RlZiAlfVNFQ1VSSVRZ IERFRklORVIgeyUgZW5kaWYgJX0KIHslIGlmIGRhdGEucHJvaXN3aW5kb3cg JX1XSU5ET1d7JSBlbmRpZiAlfXslIGlmIGRhdGEucHJvY29zdCAlfQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9m dW5jdGlvbi9wcGFzL3NxbC85LjZfcGx1cy9jcmVhdGUuc3FsIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3Nx bC85LjZfcGx1cy9jcmVhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLmFiMDU4OTEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMv c3FsLzkuNl9wbHVzL2NyZWF0ZS5zcWwKQEAgLTAsMCArMSw2NSBAQAoreyUg aW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3NlY3VyaXR5Lm1hY3JvcycgYXMg U0VDTEFCRUwgJX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9wcml2 aWxlZ2UubWFjcm9zJyBhcyBQUklWSUxFR0UgJX0KK3slIGltcG9ydCAnbWFj cm9zL2Z1bmN0aW9ucy92YXJpYWJsZS5tYWNyb3MnIGFzIFZBUklBQkxFICV9 Cit7JSBzZXQgaXNfY29sdW1ucyA9IFtdICV9Cit7JSBpZiBkYXRhICV9Cit7 JSBpZiBxdWVyeV9mb3IgPT0gJ3NxbF9wYW5lbCcgYW5kIGZ1bmNfZGVmIGlz IGRlZmluZWQgJX0KK0NSRUFURXslIGlmIHF1ZXJ5X3R5cGUgaXMgZGVmaW5l ZCAlfXt7JyBPUiBSRVBMQUNFJ319eyUgZW5kaWYgJX0gRlVOQ1RJT04ge3tm dW5jX2RlZn19Cit7JSBlbHNlICV9CitDUkVBVEV7JSBpZiBxdWVyeV90eXBl IGlzIGRlZmluZWQgJX17eycgT1IgUkVQTEFDRSd9fXslIGVuZGlmICV9IEZV TkNUSU9OIHt7IGNvbm58cXRJZGVudChkYXRhLnByb25hbWVzcGFjZSwgZGF0 YS5uYW1lKSB9fSh7JSBpZiBkYXRhLmFyZ3MgJX0KK3slIGZvciBwIGluIGRh dGEuYXJncyAlfXslIGlmIHAuYXJnbW9kZSAlfXt7cC5hcmdtb2RlfX0geyUg ZW5kaWYgJX17JSBpZiBwLmFyZ25hbWUgJX17eyBjb25ufHF0SWRlbnQocC5h cmduYW1lKSB9fSB7JSBlbmRpZiAlfXslIGlmIHAuYXJndHlwZSAlfXt7IGNv bm58cXRUeXBlSWRlbnQocC5hcmd0eXBlKSB9fXslIGVuZGlmICV9eyUgaWYg cC5hcmdkZWZ2YWwgJX0gREVGQVVMVCB7e3AuYXJnZGVmdmFsfX17JSBlbmRp ZiAlfQoreyUgaWYgbm90IGxvb3AubGFzdCAlfSx7JSBlbmRpZiAlfQoreyUg ZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KKyAgICApCit7JSBlbmRpZiAtJX0K KyAgICBSRVRVUk5TeyUgaWYgZGF0YS5wcm9yZXRzZXQgYW5kIGRhdGEucHJv cmV0dHlwZW5hbWUuc3RhcnRzd2l0aCgnU0VUT0YgJykgJX0ge3sgZGF0YS5w cm9yZXR0eXBlbmFtZSB9fSB7JSBlbGlmIGRhdGEucHJvcmV0c2V0ICV9IFNF VE9GIHt7IGNvbm58cXRUeXBlSWRlbnQoZGF0YS5wcm9yZXR0eXBlbmFtZSkg fX17JSBlbHNlICV9IHt7IGNvbm58cXRUeXBlSWRlbnQoZGF0YS5wcm9yZXR0 eXBlbmFtZSkgfX17JSBlbmRpZiAlfQorCisgICAgTEFOR1VBR0Uge3sgZGF0 YS5sYW5uYW1lfHF0TGl0ZXJhbCB9fQorICAgIHslIGlmIGRhdGEucHJvdm9s YXRpbGUgJX17JSBpZiBkYXRhLnByb3ZvbGF0aWxlID09ICdpJyAlfUlNTVVU QUJMRXslIGVsaWYgZGF0YS5wcm92b2xhdGlsZSA9PSAncycgJX1TVEFCTEV7 JSBlbHNlICV9Vk9MQVRJTEV7JSBlbmRpZiAlfSB7JSBlbmRpZiAlfXslIGlm IGRhdGEucHJvbGVha3Byb29mICV9TEVBS1BST09GIHslIGVuZGlmICV9Cit7 JSBpZiBkYXRhLnByb2lzc3RyaWN0ICV9U1RSSUNUIHslIGVuZGlmICV9Cit7 JSBpZiBkYXRhLnByb3NlY2RlZiAlfVNFQ1VSSVRZIERFRklORVIgeyUgZW5k aWYgJX0KK3slIGlmIGRhdGEucHJvaXN3aW5kb3cgJX1XSU5ET1d7JSBlbmRp ZiAlfQoreyUgaWYgZGF0YS5wcm9wYXJhbGxlbCBhbmQgKGRhdGEucHJvcGFy YWxsZWwgPT0gJ3InIG9yIGRhdGEucHJvcGFyYWxsZWwgPT0gJ3MnKSAlfQor CisgICAgeyUgaWYgZGF0YS5wcm9wYXJhbGxlbCA9PSAncicgJX1QQVJBTExF TCBSRVNUUklDVEVEeyUgZWxpZiBkYXRhLnByb3BhcmFsbGVsID09ICdzJyAl fVBBUkFMTEVMIFNBRkV7JSBlbmRpZiAlfXslIGVuZGlmICV9Cit7JSBpZiBk YXRhLnByb2Nvc3QgJX0KKworICAgIENPU1Qge3tkYXRhLnByb2Nvc3R9fXsl IGVuZGlmICV9eyUgaWYgZGF0YS5wcm9yb3dzICV9CisKKyAgICBST1dTIHt7 ZGF0YS5wcm9yb3dzfX17JSBlbmRpZiAtJX17JSBpZiBkYXRhLnZhcmlhYmxl cyAlfXslIGZvciB2IGluIGRhdGEudmFyaWFibGVzICV9CisKKyAgICBTRVQg e3sgY29ubnxxdElkZW50KHYubmFtZSkgfX09e3sgdi52YWx1ZXxxdExpdGVy YWwgfX17JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9CisKK0FTIHslIGlmIGRh dGEubGFubmFtZSA9PSAnYycgJX0KK3t7IGRhdGEucHJvYmlufHF0TGl0ZXJh bCB9fSwge3sgZGF0YS5wcm9zcmNfY3xxdExpdGVyYWwgfX0KK3slIGVsc2Ug JX0KKyRmdW5jdGlvbiQKK3t7IGRhdGEucHJvc3JjIH19CiskZnVuY3Rpb24k eyUgZW5kaWYgLSV9OworeyUgaWYgZGF0YS5mdW5jb3duZXIgJX0KKworQUxU RVIgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KGRhdGEucHJvbmFtZXNwYWNl LCBkYXRhLm5hbWUpIH19KHt7ZGF0YS5mdW5jX2FyZ3Nfd2l0aG91dH19KQor ICAgIE9XTkVSIFRPIHt7IGNvbm58cXRJZGVudChkYXRhLmZ1bmNvd25lcikg fX07Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEuYWNsICV9Cit7JSBmb3Ig cCBpbiBkYXRhLmFjbCAlfQorCit7eyBQUklWSUxFR0UuU0VUKGNvbm4sICJG VU5DVElPTiIsIHAuZ3JhbnRlZSwgZGF0YS5uYW1lLCBwLndpdGhvdXRfZ3Jh bnQsIHAud2l0aF9ncmFudCwgZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEuZnVu Y19hcmdzX3dpdGhvdXQpfX0KK3slIGVuZGZvciAlfXslIGVuZGlmICV9Cit7 JSBpZiBkYXRhLmRlc2NyaXB0aW9uICV9CisKK0NPTU1FTlQgT04gRlVOQ1RJ T04ge3sgY29ubnxxdElkZW50KGRhdGEucHJvbmFtZXNwYWNlLCBkYXRhLm5h bWUpIH19KHt7ZGF0YS5mdW5jX2FyZ3Nfd2l0aG91dH19KQorICAgIElTIHt7 IGRhdGEuZGVzY3JpcHRpb258cXRMaXRlcmFsICB9fTsKK3slIGVuZGlmIC0l fQoreyUgaWYgZGF0YS5zZWNsYWJlbHMgJX0KK3slIGZvciByIGluIGRhdGEu c2VjbGFiZWxzICV9Cit7JSBpZiByLmxhYmVsIGFuZCByLnByb3ZpZGVyICV9 CisKK3t7IFNFQ0xBQkVMLlNFVChjb25uLCAnRlVOQ1RJT04nLCBkYXRhLm5h bWUsIHIucHJvdmlkZXIsIHIubGFiZWwsIGRhdGEucHJvbmFtZXNwYWNlLCBk YXRhLmZ1bmNfYXJnc193aXRob3V0KSB9fQoreyUgZW5kaWYgJX0KK3slIGVu ZGZvciAlfQoreyUgZW5kaWYgLSV9CisKK3slIGVuZGlmICV9CmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0 aW9uL3BwYXMvc3FsLzkuNl9wbHVzL3VwZGF0ZS5zcWwgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzku Nl9wbHVzL3VwZGF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uNDllYjk0ZQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwv OS42X3BsdXMvdXBkYXRlLnNxbApAQCAtMCwwICsxLDExNiBAQAoreyUgaW1w b3J0ICdtYWNyb3MvZnVuY3Rpb25zL3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VD TEFCRUwgJX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9wcml2aWxl Z2UubWFjcm9zJyBhcyBQUklWSUxFR0UgJX0KK3slIGltcG9ydCAnbWFjcm9z L2Z1bmN0aW9ucy92YXJpYWJsZS5tYWNyb3MnIGFzIFZBUklBQkxFICV9eyUg aWYgZGF0YSAlfQoreyUgc2V0IG5hbWUgPSBvX2RhdGEubmFtZSAlfQoreyUg aWYgZGF0YS5uYW1lICV9Cit7JSBpZiBkYXRhLm5hbWUgIT0gb19kYXRhLm5h bWUgJX0KK0FMVEVSIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEu cHJvbmFtZXNwYWNlLCBvX2RhdGEubmFtZSkgfX0oe3sKK29fZGF0YS5wcm9h cmd0eXBlbmFtZXMgfX0pCisgICAgUkVOQU1FIFRPIHt7IGNvbm58cXRJZGVu dChkYXRhLm5hbWUpIH19OworeyUgc2V0IG5hbWUgPSBkYXRhLm5hbWUgJX0K K3slIGVuZGlmICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEuY2hhbmdl X2Z1bmMgICV9CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHt7IGNv bm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fSh7JSBp ZiBkYXRhLmFyZ3VtZW50cyAlfQoreyUgZm9yIHAgaW4gZGF0YS5hcmd1bWVu dHMgJX17JSBpZiBwLmFyZ21vZGUgJX17e3AuYXJnbW9kZX19IHslIGVuZGlm ICV9eyUgaWYgcC5hcmduYW1lICV9e3sgY29ubnxxdElkZW50KHAuYXJnbmFt ZSkgfX0geyUgZW5kaWYgJX17JSBpZiBwLmFyZ3R5cGUgJX17eyBjb25ufHF0 VHlwZUlkZW50KHAuYXJndHlwZSkgfX17JSBlbmRpZiAlfXslIGlmIHAuYXJn ZGVmdmFsICV9IERFRkFVTFQge3twLmFyZ2RlZnZhbH19eyUgZW5kaWYgJX0K K3slIGlmIG5vdCBsb29wLmxhc3QgJX0seyUgZW5kaWYgJX0KK3slIGVuZGZv ciAlfQoreyUgZW5kaWYgLSV9CispCisgICAgUkVUVVJOUyB7eyBvX2RhdGEu cHJvcmV0dHlwZW5hbWUgfX0KK3slIGlmICdsYW5uYW1lJyBpbiBkYXRhICV9 CisgICAgTEFOR1VBR0Uge3sgZGF0YS5sYW5uYW1lfHF0TGl0ZXJhbCB9fSB7 JSBlbHNlICV9CisgICAgTEFOR1VBR0Uge3sgb19kYXRhLmxhbm5hbWV8cXRM aXRlcmFsIH19CisgICAgeyUgZW5kaWYgJX17JSBpZiAncHJvdm9sYXRpbGUn IGluIGRhdGEgYW5kIGRhdGEucHJvdm9sYXRpbGUgJX17eyBkYXRhLnByb3Zv bGF0aWxlIH19IHslIGVsaWYgJ3Byb3ZvbGF0aWxlJyBub3QgaW4gZGF0YSBh bmQgb19kYXRhLnByb3ZvbGF0aWxlICV9e3sgb19kYXRhLnByb3ZvbGF0aWxl IH19eyUgZW5kaWYgJX0KK3slIGlmICgncHJvbGVha3Byb29mJyBpbiBkYXRh IGFuZCBkYXRhLnByb2xlYWtwcm9vZikgb3IgKCdwcm9sZWFrcHJvb2YnIG5v dCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvbGVha3Byb29mKSAlfSBMRUFLUFJP T0Z7JSBlbGlmICdwcm9sZWFrcHJvb2YnIGluIGRhdGEgYW5kIG5vdCBkYXRh LnByb2xlYWtwcm9vZiAlfSBOT1QgTEVBS1BST09GeyUgZW5kaWYgJX0KK3sl IGlmICgncHJvaXNzdHJpY3QnIGluIGRhdGEgYW5kIGRhdGEucHJvaXNzdHJp Y3QpIG9yICgncHJvaXNzdHJpY3QnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEu cHJvaXNzdHJpY3QpICV9IFNUUklDVHslIGVuZGlmICV9Cit7JSBpZiAoJ3By b3NlY2RlZicgaW4gZGF0YSBhbmQgZGF0YS5wcm9zZWNkZWYpIG9yICgncHJv c2VjZGVmJyBub3QgaW4gZGF0YSBhbmQgb19kYXRhLnByb3NlY2RlZikgJX0g U0VDVVJJVFkgREVGSU5FUnslIGVuZGlmICV9Cit7JSBpZiAoJ3Byb2lzd2lu ZG93JyBpbiBkYXRhIGFuZCBkYXRhLnByb2lzd2luZG93KSBvciAoJ3Byb2lz d2luZG93JyBub3QgaW4gZGF0YSBhbmQgb19kYXRhLnByb2lzd2luZG93KSAl fSBXSU5ET1d7JSBlbmRpZiAlfQorCisgICAgeyUgaWYgJ3Byb3BhcmFsbGVs JyBpbiBkYXRhIGFuZCBkYXRhLnByb3BhcmFsbGVsICV9UEFSQUxMRUwge3sg ZGF0YS5wcm9wYXJhbGxlbCB9fXslIGVsaWYgJ3Byb3BhcmFsbGVsJyBub3Qg aW4gZGF0YSBhbmQgb19kYXRhLnByb3BhcmFsbGVsICV9UEFSQUxMRUwge3sg b19kYXRhLnByb3BhcmFsbGVsIH19eyUgZW5kaWYgJX0KKworICAgIHslIGlm IGRhdGEucHJvY29zdCAlfUNPU1Qge3tkYXRhLnByb2Nvc3R9fXslIGVsaWYg b19kYXRhLnByb2Nvc3QgJX1DT1NUIHt7b19kYXRhLnByb2Nvc3R9fXslIGVu ZGlmICV9eyUgaWYgZGF0YS5wcm9yb3dzICV9CisKKyAgICBST1dTIHt7ZGF0 YS5wcm9yb3dzfX17JSBlbGlmIG9fZGF0YS5wcm9yb3dzICV9Uk9XUyB7e29f ZGF0YS5wcm9yb3dzfX0geyVlbmRpZiAtJX17JSBpZiBkYXRhLm1lcmdlZF92 YXJpYWJsZXMgJX17JSBmb3IgdiBpbiBkYXRhLm1lcmdlZF92YXJpYWJsZXMg JX0KKworICAgIFNFVCB7eyBjb25ufHF0SWRlbnQodi5uYW1lKSB9fT17eyB2 LnZhbHVlfHF0TGl0ZXJhbCB9fXslIGVuZGZvciAtJX0KKyAgICB7JSBlbmRp ZiAlfQorCitBUyB7JSBpZiAncHJvYmluJyBpbiBkYXRhIG9yICdwcm9zcmNf YycgaW4gZGF0YSAlfQoreyUgaWYgJ3Byb2JpbicgaW4gZGF0YSAlfXt7IGRh dGEucHJvYmlufHF0TGl0ZXJhbCB9fXslIGVsc2UgJX17eyBvX2RhdGEucHJv YmlufHF0TGl0ZXJhbCB9fXslIGVuZGlmICV9LCB7JSBpZiAncHJvc3JjX2Mn IGluIGRhdGEgJX17eyBkYXRhLnByb3NyY19jfHF0TGl0ZXJhbCB9fXslIGVs c2UgJX17eyBvX2RhdGEucHJvc3JjX2N8cXRMaXRlcmFsIH19eyUgZW5kaWYg JX17JSBlbGlmICdwcm9zcmMnIGluIGRhdGEgJX0KKyRmdW5jdGlvbiR7eyBk YXRhLnByb3NyYyB9fSRmdW5jdGlvbiR7JSBlbGlmIG9fZGF0YS5sYW5uYW1l ID09ICdjJyAlfQore3sgb19kYXRhLnByb2JpbnxxdExpdGVyYWwgfX0sIHt7 IG9fZGF0YS5wcm9zcmNfY3xxdExpdGVyYWwgfX17JSBlbHNlICV9CiskZnVu Y3Rpb24ke3sgb19kYXRhLnByb3NyYyB9fSRmdW5jdGlvbiR7JSBlbmRpZiAt JX07Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEuZnVuY293bmVyICV9CisK K0FMVEVSIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFt ZXNwYWNlLCBuYW1lKSB9fSh7e29fZGF0YS5wcm9hcmd0eXBlbmFtZXMgfX0p CisgICAgT1dORVIgVE8ge3sgY29ubnxxdElkZW50KGRhdGEuZnVuY293bmVy KSB9fTsKK3slIGVuZGlmIC0lfQoreyMgVGhlIFNRTCBnZW5lcmF0ZWQgYmVs b3cgd2lsbCBjaGFuZ2UgcHJpdmlsZWRnZXMgI30KK3slIGlmIGRhdGEuYWNs ICV9Cit7JSBpZiAnZGVsZXRlZCcgaW4gZGF0YS5hY2wgJX0KK3slIGZvciBw cml2IGluIGRhdGEuYWNsLmRlbGV0ZWQgJX0KKwore3sgUFJJVklMRUdFLlVO U0VUQUxMKGNvbm4sICdGVU5DVElPTicsIHByaXYuZ3JhbnRlZSwgbmFtZSwg b19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykg fX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiAnY2hhbmdl ZCcgaW4gZGF0YS5kYXRhY2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEuYWNs LmNoYW5nZWQgJX0KKwore3sgUFJJVklMRUdFLlVOU0VUQUxMKGNvbm4sICdG VU5DVElPTicsIHByaXYuZ3JhbnRlZSwgbmFtZSwgb19kYXRhLnByb25hbWVz cGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KKwore3sgUFJJVklM RUdFLlNFVChjb25uLCAnRlVOQ1RJT04nLCBwcml2LmdyYW50ZWUsIG5hbWUs IHByaXYud2l0aG91dF9ncmFudCwgcHJpdi53aXRoX2dyYW50LCBvX2RhdGEu cHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUg ZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmICdhZGRlZCcgaW4gZGF0 YS5hY2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEuYWNsLmFkZGVkICV9CisK K3t7IFBSSVZJTEVHRS5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgcHJpdi5ncmFu dGVlLCBuYW1lLCBwcml2LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0aF9ncmFu dCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1l cykgfX0KK3slIGVuZGZvciAlfXslIGVuZGlmIC0lfQoreyUgZW5kaWYgLSV9 Cit7JSBpZiBkYXRhLmNoYW5nZV9mdW5jID09IEZhbHNlICV9Cit7JSBpZiBk YXRhLnZhcmlhYmxlcyAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIGRhdGEudmFy aWFibGVzIGFuZCBkYXRhLnZhcmlhYmxlcy5kZWxldGVkfGxlbmd0aCA+IDAg JX0KKwore3sgVkFSSUFCTEUuVU5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFt ZSwgZGF0YS52YXJpYWJsZXMuZGVsZXRlZCwgb19kYXRhLnByb25hbWVzcGFj ZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGlmIC0lfQor eyUgaWYgJ21lcmdlZF92YXJpYWJsZXMnIGluIGRhdGEgYW5kIGRhdGEubWVy Z2VkX3ZhcmlhYmxlc3xsZW5ndGggPiAwICV9CisKK3t7IFZBUklBQkxFLlNF VChjb25uLCAnRlVOQ1RJT04nLCBuYW1lLCBkYXRhLm1lcmdlZF92YXJpYWJs ZXMsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFt ZXMpIH19Cit7JSBlbmRpZiAtJX0KK3slIGVuZGlmIC0lfQoreyUgZW5kaWYg LSV9Cit7JSBzZXQgc2VjbGFiZWxzID0gZGF0YS5zZWNsYWJlbHMgJX0KK3sl IGlmICdkZWxldGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5kZWxl dGVkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5kZWxl dGVkICV9CisKK3t7IFNFQ0xBQkVMLlVOU0VUKGNvbm4sICdGVU5DVElPTics IG5hbWUsIHIucHJvdmlkZXIsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0 YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlm IC0lfQoreyUgaWYgJ2FkZGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVs cy5hZGRlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMu YWRkZWQgJX0KKwore3sgU0VDTEFCRUwuU0VUKGNvbm4sICdGVU5DVElPTics IG5hbWUsIHIucHJvdmlkZXIsIHIubGFiZWwsIG9fZGF0YS5wcm9uYW1lc3Bh Y2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX0K K3slIGVuZGlmIC0lfQoreyUgaWYgJ2NoYW5nZWQnIGluIHNlY2xhYmVscyBh bmQgc2VjbGFiZWxzLmNoYW5nZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIg aW4gc2VjbGFiZWxzLmNoYW5nZWQgJX0KKwore3sgU0VDTEFCRUwuU0VUKGNv bm4sICdGVU5DVElPTicsIG5hbWUsIHIucHJvdmlkZXIsIHIubGFiZWwsIG9f ZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19 Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5kZXNj cmlwdGlvbiBpcyBkZWZpbmVkIGFuZCBkYXRhLmRlc2NyaXB0aW9uICE9IG9f ZGF0YS5kZXNjcmlwdGlvbiV9CisKK0NPTU1FTlQgT04gRlVOQ1RJT04ge3sg Y29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19KHt7 b19kYXRhLnByb2FyZ3R5cGVuYW1lcyB9fSkKKyAgICBJUyB7eyBkYXRhLmRl c2NyaXB0aW9ufHF0TGl0ZXJhbCB9fTsKK3slIGVuZGlmIC0lfQorCit7JSBp ZiBkYXRhLnByb25hbWVzcGFjZSAlfQorCitBTFRFUiBGVU5DVElPTiB7eyBj b25ufHF0SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX0oe3tv X2RhdGEucHJvYXJndHlwZW5hbWVzIH19KQorICAgIFNFVCBTQ0hFTUEge3sg Y29ubnxxdElkZW50KGRhdGEucHJvbmFtZXNwYWNlKSB9fTsKK3slIGVuZGlm IC0lfQorCit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS41 X3BsdXMvY3JlYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuNV9wbHVzL2NyZWF0ZS5z cWwKaW5kZXggZjA0NjlkOS4uYWEyOTM5MCAxMDA2NDQKLS0tIGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9z cWwvOS41X3BsdXMvY3JlYXRlLnNxbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjVfcGx1 cy9jcmVhdGUuc3FsCkBAIC0xNCw3ICsxNCw3IEBAIENSRUFURSBPUiBSRVBM QUNFIFBST0NFRFVSRSB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3Bh Y2UsIGRhdGEubmFtZSkgfX17JSBpCiB7JSBlbmRpZiAlfQogeyUgaWYgcXVl cnlfdHlwZSAhPSAnY3JlYXRlJyAlfQogCi0gICAge3sgZGF0YS5wcm92b2xh dGlsZSB9fXslIGlmIGRhdGEucHJvbGVha3Byb29mICV9IExFQUtQUk9PRiB7 JSBlbGlmIG5vdCBkYXRhLnByb2xlYWtwcm9vZiAlfSBOT1QgTEVBS1BST09G IHslIGVuZGlmICV9CisgICAge3sgZGF0YS5wcm92b2xhdGlsZSB9fXslIGlm IGRhdGEucHJvbGVha3Byb29mICV9IExFQUtQUk9PRiB7JSBlbmRpZiAlfQog eyUgaWYgZGF0YS5wcm9pc3N0cmljdCAlfVNUUklDVCB7JSBlbmRpZiAlfQog eyUgaWYgZGF0YS5wcm9zZWNkZWYgJX1TRUNVUklUWSBERUZJTkVSIHslIGVu ZGlmICV9eyUgaWYgZGF0YS5wcm9jb3N0ICV9CiAKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3Bw YXMvc3FsLzkuNl9wbHVzL2NyZWF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjZfcGx1 cy9jcmVhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjQ0M2JlMTMKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjZf cGx1cy9jcmVhdGUuc3FsCkBAIC0wLDAgKzEsNTIgQEAKK3slIGltcG9ydCAn bWFjcm9zL2Z1bmN0aW9ucy9zZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkVM ICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvcHJpdmlsZWdlLm1h Y3JvcycgYXMgUFJJVklMRUdFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5j dGlvbnMvdmFyaWFibGUubWFjcm9zJyBhcyBWQVJJQUJMRSAlfQoreyUgc2V0 IGlzX2NvbHVtbnMgPSBbXSAlfQoreyUgaWYgZGF0YSAlfQoreyUgaWYgcXVl cnlfZm9yID09ICdzcWxfcGFuZWwnIGFuZCBmdW5jX2RlZiBpcyBkZWZpbmVk ICV9CitDUkVBVEUgT1IgUkVQTEFDRSAgUFJPQ0VEVVJFIHt7ZnVuY19kZWZ9 fQoreyUgZWxzZSAlfQorQ1JFQVRFIE9SIFJFUExBQ0UgUFJPQ0VEVVJFIHt7 IGNvbm58cXRJZGVudChkYXRhLnByb25hbWVzcGFjZSwgZGF0YS5uYW1lKSB9 fXslIGlmIGRhdGEuYXJncyBpcyBkZWZpbmVkICV9CisoeyUgZm9yIHAgaW4g ZGF0YS5hcmdzICV9eyUgaWYgcC5hcmdtb2RlICV9e3twLmFyZ21vZGV9fSB7 JSBlbmRpZiAlfXslIGlmIHAuYXJnbmFtZSAlfXt7IGNvbm58cXRJZGVudChw LmFyZ25hbWUpfX0geyUgZW5kaWYgJX17JSBpZiBwLmFyZ3R5cGUgJX17eyBj b25ufHF0VHlwZUlkZW50KHAuYXJndHlwZSkgfX17JSBlbmRpZiAlfXslIGlm IHAuYXJnZGVmdmFsICV9IERFRkFVTFQge3twLmFyZ2RlZnZhbH19eyUgZW5k aWYgJX0KK3slIGlmIG5vdCBsb29wLmxhc3QgJX0sIHslIGVuZGlmICV9Cit7 JSBlbmRmb3IgLSV9CispeyUgZW5kaWYgJX0KK3slIGVuZGlmICV9Cit7JSBp ZiBxdWVyeV90eXBlICE9ICdjcmVhdGUnICV9CisKKyAgICB7eyBkYXRhLnBy b3ZvbGF0aWxlIH19eyUgaWYgZGF0YS5wcm9sZWFrcHJvb2YgJX0gTEVBS1BS T09GIHslIGVuZGlmICV9Cit7JSBpZiBkYXRhLnByb2lzc3RyaWN0ICV9U1RS SUNUIHslIGVuZGlmICV9Cit7JSBpZiBkYXRhLnByb3NlY2RlZiAlfVNFQ1VS SVRZIERFRklORVIgeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEucHJvcGFyYWxs ZWwgYW5kIChkYXRhLnByb3BhcmFsbGVsID09ICdyJyBvciBkYXRhLnByb3Bh cmFsbGVsID09ICdzJykgJX0KKworICAgIHslIGlmIGRhdGEucHJvcGFyYWxs ZWwgPT0gJ3InICV9UEFSQUxMRUwgUkVTVFJJQ1RFRHslIGVsaWYgZGF0YS5w cm9wYXJhbGxlbCA9PSAncycgJX1QQVJBTExFTCBTQUZFeyUgZW5kaWYgJX17 JSBlbmRpZiAlfXslIGlmIGRhdGEucHJvY29zdCAlfQorCisgICAgQ09TVCB7 e2RhdGEucHJvY29zdH19eyUgZW5kaWYgJX17JSBpZiBkYXRhLnByb3Jvd3Mg JX0KKworICAgIFJPV1Mge3tkYXRhLnByb3Jvd3N9fXslIGVuZGlmIC0lfXsl IGlmIGRhdGEudmFyaWFibGVzICV9eyUgZm9yIHYgaW4gZGF0YS52YXJpYWJs ZXMgJX0KKworICAgIFNFVCB7eyBjb25ufHF0SWRlbnQodi5uYW1lKSB9fT17 eyB2LnZhbHVlfHF0TGl0ZXJhbCB9fXslIGVuZGZvciAtJX0KK3slIGVuZGlm ICV9eyUgZW5kaWYgJX0KKworQVMKK3t7IGRhdGEucHJvc3JjIH19OworeyUg aWYgZGF0YS5hY2wgYW5kIG5vdCBpc19zcWwgJX0KK3slIGZvciBwIGluIGRh dGEuYWNsICV9CisKK3t7IFBSSVZJTEVHRS5TRVQoY29ubiwgIlBST0NFRFVS RSIsIHAuZ3JhbnRlZSwgZGF0YS5uYW1lLCBwLndpdGhvdXRfZ3JhbnQsIHAu d2l0aF9ncmFudCwgZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEuZnVuY19hcmdz X3dpdGhvdXQpfX0KK3slIGVuZGZvciAlfXslIGVuZGlmICV9Cit7JSBpZiBk YXRhLmRlc2NyaXB0aW9uICV9CisKK0NPTU1FTlQgT04gUFJPQ0VEVVJFIHt7 IGNvbm58cXRJZGVudChkYXRhLnByb25hbWVzcGFjZSwgZGF0YS5uYW1lKSB9 fQorICAgIElTIHt7IGRhdGEuZGVzY3JpcHRpb258cXRMaXRlcmFsICB9fTsK K3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5zZWNsYWJlbHMgJX0KK3slIGZv ciByIGluIGRhdGEuc2VjbGFiZWxzICV9Cit7JSBpZiByLmxhYmVsIGFuZCBy LnByb3ZpZGVyICV9CisKK3t7IFNFQ0xBQkVMLlNFVChjb25uLCAnUFJPQ0VE VVJFJywgZGF0YS5uYW1lLCByLnByb3ZpZGVyLCByLmxhYmVsLCBkYXRhLnBy b25hbWVzcGFjZSwgZGF0YS5mdW5jX2FyZ3Nfd2l0aG91dCkgfX0KK3slIGVu ZGlmICV9Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQorCit7JSBlbmRp ZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS42X3BsdXMvdXBkYXRlLnNx bCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2Vk dXJlL3BwYXMvc3FsLzkuNl9wbHVzL3VwZGF0ZS5zcWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQyNDY3OAotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJv Y2VkdXJlL3BwYXMvc3FsLzkuNl9wbHVzL3VwZGF0ZS5zcWwKQEAgLTAsMCAr MSwxMDQgQEAKK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9zZWN1cml0 eS5tYWNyb3MnIGFzIFNFQ0xBQkVMICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9m dW5jdGlvbnMvcHJpdmlsZWdlLm1hY3JvcycgYXMgUFJJVklMRUdFICV9Cit7 JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvdmFyaWFibGUubWFjcm9zJyBh cyBWQVJJQUJMRSAlfXslIGlmIGRhdGEgJX0KK3slIHNldCBuYW1lID0gb19k YXRhLm5hbWUgJX0KK3slIGlmIGRhdGEubmFtZSAlfQoreyUgaWYgZGF0YS5u YW1lICE9IG9fZGF0YS5uYW1lICV9CitBTFRFUiBQUk9DRURVUkUge3sgY29u bnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5uYW1lKSB9 fQorICAgIFJFTkFNRSBUTyB7eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9 fTsKK3slIHNldCBuYW1lID0gZGF0YS5uYW1lICV9Cit7JSBlbmRpZiAlfQor eyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLmNoYW5nZV9mdW5jICAlfQorQ1JF QVRFIE9SIFJFUExBQ0UgUFJPQ0VEVVJFIHt7IGNvbm58cXRJZGVudChvX2Rh dGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fXslIGlmIGRhdGEuYXJndW1lbnRz ICV9KHslIGZvciBwIGluIGRhdGEuYXJndW1lbnRzICV9eyUgaWYgcC5hcmdt b2RlICV9e3twLmFyZ21vZGV9fSB7JSBlbmRpZiAlfXslIGlmIHAuYXJnbmFt ZSAlfXt7IGNvbm58cXRJZGVudChwLmFyZ25hbWUpIH19IHslIGVuZGlmICV9 eyUgaWYgcC5hcmd0eXBlICV9e3sgY29ubnxxdFR5cGVJZGVudChwLmFyZ3R5 cGUpIH19eyUgZW5kaWYgJX17JSBpZiBwLmFyZ2RlZnZhbCAlfSBERUZBVUxU IHt7cC5hcmdkZWZ2YWx9fXslIGVuZGlmICV9Cit7JSBpZiBub3QgbG9vcC5s YXN0ICV9LCB7JSBlbmRpZiAlfQoreyUgZW5kZm9yICV9CispCit7JSBlbmRp ZiAlfQorICAgIHslIGlmICgncHJvbGVha3Byb29mJyBpbiBkYXRhIGFuZCBk YXRhLnByb2xlYWtwcm9vZikgb3IgKCdwcm9sZWFrcHJvb2YnIG5vdCBpbiBk YXRhIGFuZCBvX2RhdGEucHJvbGVha3Byb29mKSAlfUxFQUtQUk9PRnslIGVs c2UgJX1OT1QgTEVBS1BST09GeyUgZW5kaWYgJX0KK3slIGlmICgncHJvaXNz dHJpY3QnIGluIGRhdGEgYW5kIGRhdGEucHJvaXNzdHJpY3QpIG9yICgncHJv aXNzdHJpY3QnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvaXNzdHJpY3Qp ICV9IFNUUklDVHslIGVuZGlmICV9Cit7JSBpZiAoJ3Byb3NlY2RlZicgaW4g ZGF0YSBhbmQgZGF0YS5wcm9zZWNkZWYpIG9yICgncHJvc2VjZGVmJyBub3Qg aW4gZGF0YSBhbmQgb19kYXRhLnByb3NlY2RlZikgJX0gU0VDVVJJVFkgREVG SU5FUnslIGVuZGlmICV9CisKKyAgICB7JSBpZiAncHJvcGFyYWxsZWwnIGlu IGRhdGEgYW5kIGRhdGEucHJvcGFyYWxsZWwgJX1QQVJBTExFTCB7eyBkYXRh LnByb3BhcmFsbGVsIH19eyUgZWxpZiAncHJvcGFyYWxsZWwnIG5vdCBpbiBk YXRhIGFuZCBvX2RhdGEucHJvcGFyYWxsZWwgJX1QQVJBTExFTCB7eyBvX2Rh dGEucHJvcGFyYWxsZWwgfX17JSBlbmRpZiAlfQorCisgICAgeyUgaWYgZGF0 YS5wcm9jb3N0ICV9Q09TVCB7e2RhdGEucHJvY29zdH19eyUgZWxpZiBvX2Rh dGEucHJvY29zdCAlfUNPU1Qge3tvX2RhdGEucHJvY29zdH19eyUgZW5kaWYg JX17JSBpZiBkYXRhLnByb3Jvd3MgJX0KKworICAgIFJPV1Mge3tkYXRhLnBy b3Jvd3N9fXslIGVsaWYgb19kYXRhLnByb3Jvd3MgJX1ST1dTIHt7b19kYXRh LnByb3Jvd3N9fXslIGVuZGlmIC0lfXslIGlmIGRhdGEubWVyZ2VkX3Zhcmlh YmxlcyAlfXslIGZvciB2IGluIGRhdGEubWVyZ2VkX3ZhcmlhYmxlcyAlfQor CisgICAgU0VUIHt7IGNvbm58cXRJZGVudCh2Lm5hbWUpIH19PXt7IHYudmFs dWV8cXRMaXRlcmFsIH19eyUgZW5kZm9yIC0lfQoreyUgZW5kaWYgJX0KKwor QVMKK3slIGlmIGRhdGEucHJvc3JjICV9e3sgZGF0YS5wcm9zcmMgfX17JSBl bHNlICV9e3sgb19kYXRhLnByb3NyYyB9fXslIGVuZGlmIC0lfTsKK3slIGVu ZGlmIC0lfQoreyUgaWYgZGF0YS5mdW5jb3duZXIgJX0KKworQUxURVIgUFJP Q0VEVVJFIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBu YW1lKSB9fXslIGlmIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMgJX0oe3sgb19k YXRhLnByb2FyZ3R5cGVuYW1lcyB9fSl7JSBlbmRpZiAlfQorICAgIE9XTkVS IFRPIHt7IGRhdGEuZnVuY293bmVyIH19OworeyUgZW5kaWYgLSV9Cit7IyBU aGUgU1FMIGdlbmVyYXRlZCBiZWxvdyB3aWxsIGNoYW5nZSBwcml2aWxlZGdl cyAjfQoreyUgaWYgZGF0YS5hY2wgJX0KK3slIGlmICdkZWxldGVkJyBpbiBk YXRhLmFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5hY2wuZGVsZXRlZCAl fQorCit7eyBQUklWSUxFR0UuVU5TRVRBTEwoY29ubiwgJ1BST0NFRFVSRScs IHByaXYuZ3JhbnRlZSwgbmFtZSwgb19kYXRhLnByb25hbWVzcGFjZSwgb19k YXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5k aWYgLSV9Cit7JSBpZiAnY2hhbmdlZCcgaW4gZGF0YS5kYXRhY2wgJX0KK3sl IGZvciBwcml2IGluIGRhdGEuYWNsLmNoYW5nZWQgJX0KKwore3sgUFJJVklM RUdFLlVOU0VUQUxMKGNvbm4sICdQUk9DRURVUkUnLCBwcml2LmdyYW50ZWUs IG5hbWUsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBl bmFtZXMpIH19CisKK3t7IFBSSVZJTEVHRS5TRVQoY29ubiwgJ1BST0NFRFVS RScsIHByaXYuZ3JhbnRlZSwgbmFtZSwgcHJpdi53aXRob3V0X2dyYW50LCBw cml2LndpdGhfZ3JhbnQsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5w cm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0l fQoreyUgaWYgJ2FkZGVkJyBpbiBkYXRhLmFjbCAlfQoreyUgZm9yIHByaXYg aW4gZGF0YS5hY2wuYWRkZWQgJX0KKwore3sgUFJJVklMRUdFLlNFVChjb25u LCAnUFJPQ0VEVVJFJywgcHJpdi5ncmFudGVlLCBuYW1lLCBwcml2LndpdGhv dXRfZ3JhbnQsIHByaXYud2l0aF9ncmFudCwgb19kYXRhLnByb25hbWVzcGFj ZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQor eyUgZW5kaWYgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5jaGFuZ2Vf ZnVuYyA9PSBGYWxzZSAlfQoreyUgaWYgZGF0YS52YXJpYWJsZXMgJX0KK3sl IGlmICdkZWxldGVkJyBpbiBkYXRhLnZhcmlhYmxlcyBhbmQgZGF0YS52YXJp YWJsZXMuZGVsZXRlZHxsZW5ndGggPiAwICV9CisKK3t7IFZBUklBQkxFLlVO U0VUKGNvbm4sICdQUk9DRURVUkUnLCBuYW1lLCBkYXRhLnZhcmlhYmxlcy5k ZWxldGVkLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlw ZW5hbWVzKSB9fQoreyUgZW5kaWYgLSV9Cit7JSBpZiAnbWVyZ2VkX3Zhcmlh YmxlcycgaW4gZGF0YSBhbmQgZGF0YS5tZXJnZWRfdmFyaWFibGVzfGxlbmd0 aCA+IDAgJX0KKwore3sgVkFSSUFCTEUuU0VUKGNvbm4sICdQUk9DRURVUkUn LCBuYW1lLCBkYXRhLm1lcmdlZF92YXJpYWJsZXMsIG9fZGF0YS5wcm9uYW1l c3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRpZiAt JX0KK3slIGVuZGlmIC0lfQoreyUgZW5kaWYgLSV9Cit7JSBzZXQgc2VjbGFi ZWxzID0gZGF0YS5zZWNsYWJlbHMgJX0KK3slIGlmICdkZWxldGVkJyBpbiBz ZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5kZWxldGVkfGxlbmd0aCA+IDAgJX0K K3slIGZvciByIGluIHNlY2xhYmVscy5kZWxldGVkICV9CisKK3t7IFNFQ0xB QkVMLlVOU0VUKGNvbm4sICdQUk9DRURVUkUnLCBuYW1lLCByLnByb3ZpZGVy LCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVz KSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmICdhZGRl ZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuYWRkZWR8bGVuZ3RoID4g MCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmFkZGVkICV9CisKK3t7IFNF Q0xBQkVMLlNFVChjb25uLCAnUFJPQ0VEVVJFJywgbmFtZSwgci5wcm92aWRl ciwgci5sYWJlbCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2Fy Z3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7 JSBpZiAnY2hhbmdlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuY2hh bmdlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuY2hh bmdlZCAlfQorCit7eyBTRUNMQUJFTC5TRVQoY29ubiwgJ1BST0NFRFVSRScs IG5hbWUsIHIucHJvdmlkZXIsIHIubGFiZWwsIG9fZGF0YS5wcm9uYW1lc3Bh Y2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX0K K3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5kZXNjcmlwdGlvbiBpcyBkZWZp bmVkIGFuZCBkYXRhLmRlc2NyaXB0aW9uICE9IG9fZGF0YS5kZXNjcmlwdGlv biV9CisKK0NPTU1FTlQgT04gUFJPQ0VEVVJFIHt7IGNvbm58cXRJZGVudChv X2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fQorICAgIElTIHt7IGRhdGEu ZGVzY3JpcHRpb258cXRMaXRlcmFsIH19OworeyUgZW5kaWYgLSV9Cit7JSBp ZiBkYXRhLnByb25hbWVzcGFjZSAlfQorCitBTFRFUiBQUk9DRURVUkUge3sg Y29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19Cisg ICAgU0VUIFNDSEVNQSB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3Bh Y2UpIH19OworeyUgZW5kaWYgLSV9CisKK3slIGVuZGlmICV9Cg== --001a113c59f497ffed0549411d4d 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 --001a113c59f497ffed0549411d4d--