Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dIvrS-0001rZ-2O for pgadmin-hackers@arkaria.postgresql.org; Thu, 08 Jun 2017 11:44:22 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1dIvrR-0000Np-Ku for pgadmin-hackers@arkaria.postgresql.org; Thu, 08 Jun 2017 11:44:21 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1dIvrC-0007yk-6D for pgadmin-hackers@postgresql.org; Thu, 08 Jun 2017 11:44:06 +0000 Received: from mail-it0-x22d.google.com ([2607:f8b0:4001:c0b::22d]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1dIvr8-0005oW-IB for pgadmin-hackers@postgresql.org; Thu, 08 Jun 2017 11:44:05 +0000 Received: by mail-it0-x22d.google.com with SMTP id m47so123465423iti.1 for ; Thu, 08 Jun 2017 04:44:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pgadmin-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=yx4AZZu5t1zW8FgQl8Dq0SitAGscbeCJZDXBOsXfw9c=; b=zAC4AFwJKI5Absi65OUtb7qci8ta8+Z8FJCTcux+kJJS7rdA+WvPjkjNF7nPvKmZE9 mZUTKD1Vkg5rfzxMsDcqv/IiVuMtpTUEFXhf92HbZJCF1f/JEKCNRhpmggc08PtvgwjA Qj2diaulkD/0On50WZlsEFJtGWK5Rj4JWqdHFL/enwUeR/k2VwxJdEtZ6e1F+t7jUTjc YY2oU/1jhZDkz/hS351XIIEoHG2G9Xkcqd4k6olsejBB5ejB9lbkeqbPIgIaoeYGYZtY L/y7iltVGWDLt2cm12K0lMF2BTqhVvR5ydLXtIHsYLrKjQHKcx0FPBlDu2NqEt5JNZ4m D9RA== 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=yx4AZZu5t1zW8FgQl8Dq0SitAGscbeCJZDXBOsXfw9c=; b=MZlVVG3ciQft5aWZNxzL7SPZMDqyH/tBdcdl1/tdZC3fJPvrG8RSzFqp2YbEwro4sU Sv3T6BZcWAcZdNLsTnGFV5BrIXABDXR0mQzr7DgcnL2NCf4RZoGHLeSPFYUcLt0wMCJ2 e6xAC38/LPRGgJL55MCv8QHrWoB7PFSTeHyJBP1OeIQapSU8wnZOAvp5aZBwrYUtqQiE +GIQUICjfLKkPVFR6DPV3KuqBVcYj6xVnWkX0VUZGQyP+p/2Y8l469f3FuXLgpgRjnyk EBOCQMXUdclm3P0em9sCVNOCZfoLQPUeQzJfdpHQyKhNV/te5ekFszOx3UIbTLRoyNyj MCTQ== X-Gm-Message-State: AODbwcBYZTXIvOcctc6btf0pGi0EljnFbU4TNfKaqRqh+QuNrtVWFRwn Fkdw9/J3Bu2MQU2nGyiCsDILvv7uwH1dqn8= X-Received: by 10.36.31.74 with SMTP id d71mr4764247itd.85.1496922240812; Thu, 08 Jun 2017 04:44:00 -0700 (PDT) MIME-Version: 1.0 Received: by 10.107.174.147 with HTTP; Thu, 8 Jun 2017 04:43:59 -0700 (PDT) In-Reply-To: References: From: Dave Page Date: Thu, 8 Jun 2017 12:43:59 +0100 Message-ID: Subject: Re: [pgAdmin4][Patch]: Load module's JS files only when required To: Joao Pedro De Almeida Pereira Cc: Surinder Kumar , pgadmin-hackers Content-Type: multipart/mixed; boundary="001a1145ecc66bc3c40551715e26" 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 --001a1145ecc66bc3c40551715e26 Content-Type: text/plain; charset="UTF-8" Hi On Wed, Jun 7, 2017 at 7:10 PM, Joao Pedro De Almeida Pereira wrote: > Hello Dave, > By the description on the email, it looks like the process is very similar > to the Grunt process that we were talking about, but without the patch, it > is a bit hard to get more specifics. > Can you forward the patch so we can take a look at it. > > We believe that every effort done to eliminate templated Javascript and CSS > files is well worth it, and should be followed. Odd - the patch was sent to you as well. Oh well, here it is. > On Tue, Jun 6, 2017 at 9:39 AM, Dave Page wrote: >> >> Hi >> >> On Mon, Jun 5, 2017 at 10:22 AM, Surinder Kumar >> wrote: >> > Hi Dave, >> > >> > Please find attached patch for minifying CSS files and optimize images >> > using >> > Webpack. >> > >> > Steps to run: >> > >> > 1) After applying patch, go to web directory and run npm install on >> > terminal >> > to install packages which are used to parse/minify CSS files. >> > >> > 2) Run npm run build which creates dist folder inside >> > web/pgadmin/static/ >> > directory to store processed images, fonts and css files. >> > >> > 3. Set DEBUG = False in config_local.py and then run python pgAdmin.py >> > to >> > start server. >> > I kept generated main.css and overrides.css conditional in base.html to >> > load >> > them only when debug mode is False >> > >> > >> > After running "npm run build", following files/directories are >> > generated: >> > >> > 1) main.css - about 20 vendor CSS files are packed into this file and >> > more >> > importantly the paths to images are preserved. >> > >> > 2) overrides.css - it contains bootstrap.overrides.css and pgadmin.css, >> > they >> > has to be packed separately and loaded after all CSS files are loaded >> > because the purpose of these files is to override the vendor or modules >> > css. >> > >> > 3) img - it contains the images used in CSS files. The name of image >> > files >> > can also be hashed names for caching purpose which we can use. >> > >> > 4) fonts - it contains the fonts used in fontawesome.css and other css >> > files. >> > >> > This is a simple patch to demonstrate how CSS files will be minified >> > with >> > Webpack. >> >> I think this is a good, simple method. It handles debug v.s release, >> and of course, any plugin modules can include their own images/CSS >> without even having to worry about webpacking if installed later. >> >> > For now it minifies only vendor CSS files, I will add modules static >> > files >> > in the list later on. >> >> I think we need to do that to get a better idea of the benefits. We >> also need to get some of the JS code in there as well (Ashesh should >> be able to help with that - he told me he's de-templatised a lot of >> that now). >> >> > Any thoughts on minifying template CSS files which are built dynamically >> > and >> > loaded with dependency on other modules? >> >> Let's look at why they are templates. Is that required, or could they >> be made static? >> >> > Also, I looked into Flask-webpack which generates bundled assets using >> > Webpack(webpack.config.js) and provide additionally global template tags >> > to >> > use in Jinja templates. >> > >> > But it might not work with latest version of Webpack as this repo is not >> > updated since last 2 years. I need to check with latest version and I >> > will >> > update on this. >> >> Given how straightforward this seems to be, I'm not sure it's needed. >> >> Joao, any comments? >> >> Nice work - thanks! >> >> -- >> Dave Page >> Blog: http://pgsnake.blogspot.com >> Twitter: @pgsnake >> >> EnterpriseDB UK: http://www.enterprisedb.com >> The Enterprise PostgreSQL Company > > -- Dave Page Blog: http://pgsnake.blogspot.com Twitter: @pgsnake EnterpriseDB UK: http://www.enterprisedb.com The Enterprise PostgreSQL Company --001a1145ecc66bc3c40551715e26 Content-Type: application/octet-stream; name="bundle_css_using_webpack.patch" Content-Disposition: attachment; filename="bundle_css_using_webpack.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j3ocujoh0 ZGlmZiAtLWdpdCBhL3dlYi9wYWNrYWdlLmpzb24gYi93ZWIvcGFja2FnZS5q c29uCmluZGV4IDgwZTRlNWEuLjZiNzkxNTQgMTAwNjQ0Ci0tLSBhL3dlYi9w YWNrYWdlLmpzb24KKysrIGIvd2ViL3BhY2thZ2UuanNvbgpAQCAtMSwxMCAr MSwyNCBAQAogeworICAiZGVwZW5kZW5jaWVzIjogeworICAgICJ3ZWJwYWNr IjogIl4yLjYuMSIKKyAgfSwKICAgImRldkRlcGVuZGVuY2llcyI6IHsKICAg ICAiamFzbWluZS1jb3JlIjogIl4yLjUuMiIsCiAgICAgImthcm1hIjogIl4x LjUuMCIsCiAgICAgImthcm1hLWphc21pbmUiOiAiXjEuMS4wIiwKICAgICAi a2FybWEtcGhhbnRvbWpzLWxhdW5jaGVyIjogIl4xLjAuMiIsCiAgICAgImth cm1hLXJlcXVpcmVqcyI6ICJeMS4xLjAiLAotICAgICJyZXF1aXJlanMiOiAi XjIuMy4zIgorICAgICJyZXF1aXJlanMiOiAiXjIuMy4zIiwKKyAgICAiZ3J1 bnQiOiAiXjEuMC4xIiwKKyAgICAiY3NzLWxvYWRlciI6ICJeMC4yOC4zIiwK KyAgICAic3R5bGUtbG9hZGVyIjogIl4wLjE4LjEiLAorICAgICJleHRyYWN0 LXRleHQtd2VicGFjay1wbHVnaW4iOiAiXjIuMS4wIiwKKyAgICAiZmlsZS1s b2FkZXIiOiAiXjAuMTEuMSIsCisgICAgImltYWdlLXdlYnBhY2stbG9hZGVy IjogIl4zLjMuMSIsCisgICAgIm9wdGltaXplLWNzcy1hc3NldHMtd2VicGFj ay1wbHVnaW4iOiAiXjEuMy4yIiwKKyAgICAiY2xlYW4td2VicGFjay1wbHVn aW4iOiAiXjAuMS4xNiIKKyAgfSwKKyAgInNjcmlwdHMiOiB7CisgICAgImJ1 aWxkIjogIndlYnBhY2sgLS1oaWRlLW1vZHVsZXMiCiAgIH0KIH0KZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL3RlbXBsYXRlcy9iYXNlLmh0bWwgYi93ZWIv cGdhZG1pbi90ZW1wbGF0ZXMvYmFzZS5odG1sCmluZGV4IDM3NWIzOWQuLjM3 ODliMWEgMTAwNzU1Ci0tLSBhL3dlYi9wZ2FkbWluL3RlbXBsYXRlcy9iYXNl Lmh0bWwKKysrIGIvd2ViL3BnYWRtaW4vdGVtcGxhdGVzL2Jhc2UuaHRtbApA QCAtMTgsNiArMTgsNyBAQAogICAgIDwhLS0gVG8gc2V0IHBnQWRtaW40IHNo b3J0Y3V0IGljb24gaW4gYnJvd3NlciAtLT4KICAgICA8bGluayByZWw9InNo b3J0Y3V0IGljb24iIGhyZWY9Int7IHVybF9mb3IoJ3JlZGlyZWN0cy5mYXZp Y29uJykgfX0iLz4KIAorICAgIHslIGlmIGNvbmZpZy5ERUJVRyAlfQogICAg IDwhLS0gQmFzZSB0ZW1wbGF0ZSBzdHlsZXNoZWV0cyAtLT4KICAgICA8bGlu ayB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0IgogICAgICAgICAg IGhyZWY9Int7IHVybF9mb3IoJ3N0YXRpYycsIGZpbGVuYW1lPSd2ZW5kb3Iv Ym9vdHN0cmFwL2Nzcy9ib290c3RyYXAuY3NzJyBpZiBjb25maWcuREVCVUcg ZWxzZSAndmVuZG9yL2Jvb3RzdHJhcC9jc3MvYm9vdHN0cmFwLm1pbi5jc3Mn KX19Ii8+CkBAIC01NCwxMyArNTUsMjAgQEAKICAgICA8bGluayB0eXBlPSJ0 ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0IgogICAgICAgICAgIGhyZWY9Int7 IHVybF9mb3IoJ3N0YXRpYycsIGZpbGVuYW1lPSd2ZW5kb3IvY29kZW1pcnJv ci9hZGRvbi9zY3JvbGwvc2ltcGxlc2Nyb2xsYmFycy5jc3MnKX19Ii8+CiAK KyAgICB7JSBlbHNlICV9CisgICAgICAgIDxsaW5rIHR5cGU9InRleHQvY3Nz IiByZWw9InN0eWxlc2hlZXQiIGhyZWY9Int7IHVybF9mb3IoJ3N0YXRpYycs IGZpbGVuYW1lPSdkaXN0L21haW4uY3NzJyl9fSIvPgorICAgIHslIGVuZGlm ICV9CiAgICAgPCEtLSBWaWV3IHNwZWNpZmllZCBzdHlsZXNoZWV0cyAtLT4K ICAgICB7JSBmb3Igc3R5bGVzaGVldCBpbiBjdXJyZW50X2FwcC5zdHlsZXNo ZWV0cyAlfQogICAgIDxsaW5rIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxl c2hlZXQiIGhyZWY9Int7IHN0eWxlc2hlZXQgfX0iPgogICAgIHslIGVuZGZv ciAlfQogCisgICAgeyUgaWYgY29uZmlnLkRFQlVHICV9CiAgICAgPGxpbmsg dHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ie3sgdXJs X2Zvcignc3RhdGljJywgZmlsZW5hbWU9J2Nzcy9ib290c3RyYXAub3ZlcnJp ZGVzLmNzcycpIH19Ii8+CiAgICAgPGxpbmsgdHlwZT0idGV4dC9jc3MiIHJl bD0ic3R5bGVzaGVldCIgaHJlZj0ie3sgdXJsX2Zvcignc3RhdGljJywgZmls ZW5hbWU9J2Nzcy9wZ2FkbWluLmNzcycpIH19Ii8+CisgICAgeyUgZWxzZSAl fQorICAgICAgICA8bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNo ZWV0IiBocmVmPSJ7eyB1cmxfZm9yKCdzdGF0aWMnLCBmaWxlbmFtZT0nZGlz dC9vdmVycmlkZXMuY3NzJyl9fSIvPgorICAgIHslIGVuZGlmICV9CiAgICAg eyUgYmxvY2sgY3NzX2xpbmsgJX17JSBlbmRibG9jayAlfQogCiAgICAgPCEt LSBCYXNlIHRlbXBsYXRlIHNjcmlwdHMgLS0+CmRpZmYgLS1naXQgYS93ZWIv d2VicGFjay5jb25maWcuanMgYi93ZWIvd2VicGFjay5jb25maWcuanMKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDFiMTM2NQotLS0g L2Rldi9udWxsCisrKyBiL3dlYi93ZWJwYWNrLmNvbmZpZy5qcwpAQCAtMCww ICsxLDExMSBAQAorY29uc3QgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKSwKKyAg IGdydW50ID0gcmVxdWlyZSgnZ3J1bnQnKSwKKyAgIGNsZWFuV2VicGFja1Bs dWdpbiA9IHJlcXVpcmUoJ2NsZWFuLXdlYnBhY2stcGx1Z2luJyksCisgICBF eHRyYWN0VGV4dFBsdWdpbiA9IHJlcXVpcmUoJ2V4dHJhY3QtdGV4dC13ZWJw YWNrLXBsdWdpbicpLAorICAgT3B0aW1pemVDc3NBc3NldHNQbHVnaW4gPSBy ZXF1aXJlKCdvcHRpbWl6ZS1jc3MtYXNzZXRzLXdlYnBhY2stcGx1Z2luJyk7 CisKK2NvbnN0IGJhc2VEaXIgPSAnLi9wZ2FkbWluL3N0YXRpYy8nLAorICB2 ZW5kb3JEaXIgPSBiYXNlRGlyICsgJ3ZlbmRvci8nOworCitsZXQgY3NzUmVz b3VyY2VzID0gW10sCisgIGV4Y2x1ZGVzID0gWworICAgICAgJ21lcmdlLmNz cycsICdkcm9wem9uZS5jc3MnLCAnc2xpY2suaGVhZGVyYnV0dG9ucy5jc3Mn LAorICAgICAgJ3NsaWNrLmhlYWRlcm1lbnUuY3NzJywgJ3NlbWFudGljLmNz cycsICdkZWZhdWx0LmNzcycsCisgICAgICAnZGlhbG9nLmNzcycsICdmdWxs c2NyZWVuLmNzcycsICdmb2xkZ3V0dGVyLmNzcycsCisgICAgICAnc2hvdy1o aW50LmNzcycsICdsaW50LmNzcycsICdtZXJnZS5jc3MnLCAnbWF0Y2hlc29u c2Nyb2xsYmFyLmNzcycsCisgICAgICAndGVybi5jc3MnLCAnc2xpY2suY29s dW1ucGlja2VyLmNzcycsICdzbGljay5wYWdlci5jc3MnLAorICAgICAgJ2Jv b3RzdHJhcC1kYXRldGltZXBpY2tlci5taW4uY3NzJywgJ2Jvb3RzdHJhcC10 aGVtZS5jc3MnCisgIF07CisKKy8vIFBhdGgocykgdGhhdCBzaG91bGQgYmUg Y2xlYW5lZAorbGV0IHBhdGhzVG9DbGVhbiA9IFsnZGlzdCddOworCisvLyBD bGVhbiBvcHRpb25zIHRvIHVzZQorbGV0IGNsZWFuT3B0aW9ucyA9IHsKKyAg cm9vdDogcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJy4vcGdhZG1pbi9zdGF0 aWMvJyksCisgIHZlcmJvc2U6IHRydWUsCisgIGRyeTogZmFsc2UKK307CisK Ky8vIGV4dHJhY3QgdmVuZG9yIGNzcyBmaWxlcyBpbiBjc3NSZXNvdXJjZXMK K2dydW50LmZpbGUuZXhwYW5kKHsgY3dkOiB2ZW5kb3JEaXIgfSwgIioqLyou Y3NzIikuZm9yRWFjaChmdW5jdGlvbihwYWdlKSB7CisgICAgZmlsZV9uYW1l ID0gcGF0aC5iYXNlbmFtZShwYWdlKS5yZXBsYWNlKCcubWluJywgJycpLnJl cGxhY2UoJy5ydGwnLCAnJyk7CisgICAgaWYgKGV4Y2x1ZGVzLmluZGV4T2Yo ZmlsZV9uYW1lKSA9PT0gLTEpIHsKKyAgICAgIGV4Y2x1ZGVzLnB1c2goZmls ZV9uYW1lKTsKKyAgICAgIGNzc1Jlc291cmNlcy5wdXNoKCh2ZW5kb3JEaXIg KyAgcGFnZSkpOworICAgIH0KK30pOworCisvLyBBZGQgY3NzIGZpbGVzIGV4 cGxpY2l0bHkKK2Nzc1Jlc291cmNlcy5wdXNoKHZlbmRvckRpciArICdib290 c3RyYXAvY3NzL2Jvb3RzdHJhcC5taW4uY3NzJyk7Citjc3NSZXNvdXJjZXMu cHVzaCh2ZW5kb3JEaXIgKyAnYm9vdHN0cmFwL2Nzcy9ib290c3RyYXAtdGhl bWUubWluLmNzcycpOworY3NzUmVzb3VyY2VzLnB1c2goJy4vcGdhZG1pbi9i cm93c2VyL3N0YXRpYy92ZW5kb3IvYWNpVHJlZS9jc3MvYWNpVHJlZS5jc3Mn KTsKKworLy8gTWFpbiB3ZWJwYWNrIGNvbmZpZ3VyYXRpb25zIHN0YXJ0cyBo ZXJlCitjb25zdCBjb25maWcgPSB7CisgIC8vIENyZWF0ZSB0d28gZmlsZXMg bWFpbi5jc3MgYW5kIG92ZXJyaWRlcy5jc3MKKyAgZW50cnk6IHsKKyAgICBt YWluOiBjc3NSZXNvdXJjZXMsCisgICAgb3ZlcnJpZGVzOiBbCisgICAgICBi YXNlRGlyICsgJ2Nzcy9ib290c3RyYXAub3ZlcnJpZGVzLmNzcycsCisgICAg ICBiYXNlRGlyICsgJ2Nzcy9wZ2FkbWluLmNzcycsCisgICAgXQorICB9LAor ICBvdXRwdXQ6IHsKKyAgICBwYXRoOiBwYXRoLnJlc29sdmUoX19kaXJuYW1l LCAnLi9wZ2FkbWluL3N0YXRpYy9kaXN0LycpLCAvLyBwYXRoIHRvIGRpc3Qg ZGlyZWN0b3J5CisgICAgZmlsZW5hbWU6ICdbbmFtZV0uY3NzJyAvLyBvdXRw dXQganMgZmlsZSBuYW1lIGlzIGlkZW50aWNhbCB0byBjc3MgZmlsZSBuYW1l CisgIH0sCisgIG1vZHVsZTogeworICAgIHJ1bGVzOiBbCisgICAgICB7Cisg ICAgICAgIHRlc3Q6IC9cLmNzcyQvLAorICAgICAgICB1c2U6IEV4dHJhY3RU ZXh0UGx1Z2luLmV4dHJhY3QoeworICAgICAgICAgIGZhbGxiYWNrOiAnc3R5 bGUtbG9hZGVyJywKKyAgICAgICAgICB1c2U6ICdjc3MtbG9hZGVyJworICAg ICAgICB9KSwKKyAgICAgICAgZXhjbHVkZTogL25vZGVfbW9kdWxlcy8KKyAg ICAgIH0sCisgICAgICB7CisgICAgICAgIHRlc3Q6IC9cLihqcGU/Z3xwbmd8 Z2lmfHN2ZykkL2ksCisgICAgICAgIGxvYWRlcnM6IFsKKyAgICAgICAgICAg ICdmaWxlLWxvYWRlcj9oYXNoPXNoYTUxMiZkaWdlc3Q9aGV4Jm5hbWU9aW1n L1tuYW1lXS5bZXh0XScsIHsKKyAgICAgICAgICAgIGxvYWRlcjogJ2ltYWdl LXdlYnBhY2stbG9hZGVyJywKKyAgICAgICAgICAgIHF1ZXJ5OiB7CisgICAg ICAgICAgICAgIGJ5cGFzc09uRGVidWc6IHRydWUsCisgICAgICAgICAgICAg IG1vempwZWc6IHsKKyAgICAgICAgICAgICAgICBwcm9ncmVzc2l2ZTogdHJ1 ZSwKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgZ2lmc2ljbGU6 IHsKKyAgICAgICAgICAgICAgICBpbnRlcmxhY2VkOiBmYWxzZSwKKyAgICAg ICAgICAgICAgfSwKKyAgICAgICAgICAgICAgb3B0aXBuZzogeworICAgICAg ICAgICAgICAgIG9wdGltaXphdGlvbkxldmVsOiA3LAorICAgICAgICAgICAg ICB9LAorICAgICAgICAgICAgICBwbmdxdWFudDogeworICAgICAgICAgICAg ICAgIHF1YWxpdHk6ICc3NS05MCcsCisgICAgICAgICAgICAgICAgc3BlZWQ6 IDMKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIH0KKyAgICAgICAg ICB9CisgICAgICAgIF0sCisgICAgICAgIGV4Y2x1ZGU6IC9ub2RlX21vZHVs ZXMvCisgICAgIH0sCisgICAgIHsKKyAgICAgICAgdGVzdDogL1wuKGVvdHxz dmd8dHRmfHdvZmZ8d29mZjIpJC8sCisgICAgICAgIGxvYWRlcjogJ2ZpbGUt bG9hZGVyP25hbWU9Zm9udHMvW25hbWVdLltleHRdJywKKyAgICAgICAgZXhj bHVkZTogL25vZGVfbW9kdWxlcy8KKyAgICAgfQorICAgIF0KKyAgfSwKKyAg cGx1Z2luczogWworICAgIG5ldyBjbGVhbldlYnBhY2tQbHVnaW4ocGF0aHNU b0NsZWFuLCBjbGVhbk9wdGlvbnMpLCAvLyBjbGVhbiBkaXN0IGRpcmVjdG9y eQorICAgIG5ldyBFeHRyYWN0VGV4dFBsdWdpbignW25hbWVdLmNzcycpLAor ICAgIG5ldyBPcHRpbWl6ZUNzc0Fzc2V0c1BsdWdpbih7CisgICAgICBhc3Nl dE5hbWVSZWdFeHA6IC9cLmNzcyQvZywKKyAgICAgIGNzc1Byb2Nlc3Nvcjog cmVxdWlyZSgnY3NzbmFubycpLAorICAgICAgY3NzUHJvY2Vzc29yT3B0aW9u czogeyBkaXNjYXJkQ29tbWVudHM6IHtyZW1vdmVBbGw6IHRydWUgfSB9LAor ICAgICAgY2FuUHJpbnQ6IHRydWUKKyAgICB9KQorICBdCit9OworbW9kdWxl LmV4cG9ydHMgPSBjb25maWc7Cg== --001a1145ecc66bc3c40551715e26 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 --001a1145ecc66bc3c40551715e26--