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 1ghUcD-0005zv-8D for pgadmin-hackers@arkaria.postgresql.org; Thu, 10 Jan 2019 07:18:57 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1ghUcB-0003kY-PP for pgadmin-hackers@arkaria.postgresql.org; Thu, 10 Jan 2019 07:18:55 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1ghUcB-0003gQ-7v for pgadmin-hackers@lists.postgresql.org; Thu, 10 Jan 2019 07:18:55 +0000 Received: from mail-qt1-x844.google.com ([2607:f8b0:4864:20::844]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1ghUc7-0007RA-1A for pgadmin-hackers@postgresql.org; Thu, 10 Jan 2019 07:18:53 +0000 Received: by mail-qt1-x844.google.com with SMTP id l11so11412089qtp.0 for ; Wed, 09 Jan 2019 23:18:50 -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=IIFI6Y8qfQXrn491Hiro41ynSPYqL8CuVLs0q7WbMHI=; b=koPfiH4KEbvq2CRB+2amySxMICjb2bJzJka3WNPWdPWg7SpleKCQkIM7rPAEWbNui5 cv/9QxHbUqD+25qYkZI6t+sAr7xOGqc8wV6bPm2TRFsnwmuC8EZUuU9FeXm+0nCn6fXD Bq5UelqCJfMWWEBszxDVvY8kSoJiNVlBswlp9DSM96zN0y4fKBfapOZnH4XrH/JN8Gs2 kOZ77og824gcaRlAn+4SrhsHKjNe5CThl2bWbaxmPrVjfW2RfkQJiOyo+y9M+0XWKcCv 7F6ehbQiYGkcYcUfncn3ysAAtX5SRqq7HbWNhzj15WCFRMRmuzfA2I54Jphon+sJ7fQH poTQ== 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=IIFI6Y8qfQXrn491Hiro41ynSPYqL8CuVLs0q7WbMHI=; b=g+35/h+YmlYemJ684yE0WGLXhOo6LPr7COBvsK/vRvYE+DbFwPWWpaddL7jN1weNds 1dxVVKLdgOXze6T5FKngRo7myJ/GWqsydbW/x+H69sRTP1N8mYEYavXfbnVwaQSEHt8Z bq4PL9uQ/7xfhN8+ohOwKiQzdWlNTiSRs2hM//fzfl09E/Mw3AOE19gzz8G+YnAuDAeQ K/nK9RjZkeYbMvyijpltwMwYZAgvedxlISesYfmayriObemOBj9ENCBC45LWy0C0LpPu pemUKlRw2W5b7qldI5qzOkupCqXAnLawuc/rr6d91E0Xqze94qrUVocXHFMnzAwEZPZb Tcig== X-Gm-Message-State: AJcUukdkF4vdjbLm2VRffCuws9AMLD+g7WVqGs8/rpJLNoTSyAc7+uyP i+qsChD8OoofBpN8IQ5kq0C2OZ2StFCf6GdHKfsPbA== X-Google-Smtp-Source: ALg8bN575TrnnDHLuaMe87Q4/Y6w5SzFqh0sz7iJHrjaJh2v0eIFqklIr96fb7t72xcfoFeW3hDh4muM+q9rqxNCbJM= X-Received: by 2002:a0c:9aca:: with SMTP id k10mr8879429qvf.185.1547104729882; Wed, 09 Jan 2019 23:18:49 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Akshay Joshi Date: Thu, 10 Jan 2019 12:48:38 +0530 Message-ID: Subject: Re: [pgAdmin4][Patch] - RM 3836 VACUUM FULL FREEZE ANALYZE VERBOSE syntax error on PostgreSQL 11 To: Dave Page Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary="000000000000db0ec0057f156317" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --000000000000db0ec0057f156317 Content-Type: multipart/alternative; boundary="000000000000db0ebb057f156315" --000000000000db0ebb057f156315 Content-Type: text/plain; charset="UTF-8" Hi Attached is the modified patch. I have fixed the similar code for Backup and Restore as well along with this patch. On Thu, Jan 10, 2019 at 12:26 PM Dave Page wrote: > Hi > > On Wed, Jan 9, 2019 at 6:46 PM Akshay Joshi > wrote: > >> Hi Hackers, >> >> Attached is the patch to fix RM #3836 VACUUM FULL FREEZE ANALYZE VERBOSE >> syntax error on PostgreSQL 11. Order of commands has been changed in >> PostgreSQL 11 "https://github.com/postgres/postgres >> /commit/921059bd66c7fb1230c705d3b1a65940800c4cbb" >> >> Please review it. >> > > I tried to test this, and got what looks like the same issue that we > looked at the other day with Import/Export. Can you look at it please? > > 2019-01-10 12:25:02,044: INFO werkzeug: 127.0.0.1 - - [10/Jan/2019 > 12:25:02] "POST /maintenance/job/2/12669 HTTP/1.1" 500 - > 2019-01-10 12:25:02,051: ERROR werkzeug: Error on request: > Traceback (most recent call last): > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", > line 270, in run_wsgi > execute(self.server.app) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", > line 258, in execute > application_iter = app(environ, start_response) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/flask/app.py", > line 1997, in __call__ > return self.wsgi_app(environ, start_response) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/flask/app.py", > line 1985, in wsgi_app > response = self.handle_exception(e) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/flask/app.py", > line 1540, in handle_exception > reraise(exc_type, exc_value, tb) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/flask/_compat.py", > line 33, in reraise > raise value > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/flask/app.py", > line 1982, in wsgi_app > response = self.full_dispatch_request() > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/flask/app.py", > line 1614, in full_dispatch_request > rv = self.handle_user_exception(e) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/flask/app.py", > line 1517, in handle_user_exception > reraise(exc_type, exc_value, tb) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/flask/_compat.py", > line 33, in reraise > raise value > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/flask/app.py", > line 1612, in full_dispatch_request > rv = self.dispatch_request() > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/flask/app.py", > line 1598, in dispatch_request > return self.view_functions[rule.endpoint](**req.view_args) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/flask_login.py", > line 792, in decorated_view > return func(*args, **kwargs) > File > "/Users/dpage/git/pgadmin4/web/pgadmin/tools/maintenance/__init__.py", line > 179, in create_maintenance_job > data = json.loads(data['data'][0], encoding='utf-8') > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/simplejson/__init__.py", > line 535, in loads > return cls(encoding=encoding, **kw).decode(s) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/simplejson/decoder.py", > line 370, in decode > obj, end = self.raw_decode(s) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/simplejson/decoder.py", > line 400, in raw_decode > return self.scan_once(s, idx=_w(s, idx).end()) > simplejson.errors.JSONDecodeError: Expecting property name enclosed in > double quotes or '}': line 1 column 2 (char 1) > > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > -- *Akshay Joshi* *Sr. Software Architect * *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* --000000000000db0ebb057f156315 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi=C2=A0

Attached is the modified patch= . I have fixed the similar code for Backup and Restore as well along with t= his patch.=C2=A0=C2=A0

On Thu, Jan 10, 2019 at 12:26 PM Dave Page <dpage@pgadmin.org> wrote:
Hi

On Wed, = Jan 9, 2019 at 6:46 PM Akshay Joshi <akshay.joshi@enterprisedb.com> wrote= :
Hi Hackers,

=
Attached is the patch to fix RM #3836=C2=A0VACU= UM FULL FREEZE ANALYZE VERBOSE syntax error on PostgreSQL 11. Order = of commands has been changed in PostgreSQL 11 "https://github.com/postgres/postgres/commit/921059bd66c7fb1230c705d3= b1a65940800c4cbb"

Please review it.

I tried to test this, and go= t what looks like the same issue that we looked at the other day with Impor= t/Export. Can you look at it please?

2019-01-10 12= :25:02,044: INFO werkzeug: 127.0.0.1 - - [10/Jan/2019 12:25:02= ] "POST /maintenance/job/2/12669 HTTP/1.1" 500 -
2019-0= 1-10 12:25:02,051: ERROR werkze= ug: Error on request:
Traceback (most recent call last):
=C2=A0 File "/Users/dpag= e/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py&quo= t;, line 270, in run_wsgi
=C2=A0 =C2=A0 execute(self.server.app)<= /div>
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.= 6/site-packages/werkzeug/serving.py", line 258, in execute
= =C2=A0 =C2=A0 application_iter =3D app(environ, start_response)
= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-pac= kages/flask/app.py", line 1997, in __call__
=C2=A0 =C2=A0 re= turn self.wsgi_app(environ, start_response)
=C2=A0 File "/Us= ers/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/flask/app.py&qu= ot;, line 1985, in wsgi_app
=C2=A0 =C2=A0 response =3D self.handl= e_exception(e)
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmi= n4/lib/python3.6/site-packages/flask/app.py", line 1540, in handle_exc= eption
=C2=A0 =C2=A0 reraise(exc_type, exc_value, tb)
= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-pac= kages/flask/_compat.py", line 33, in reraise
=C2=A0 =C2=A0 r= aise value
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/l= ib/python3.6/site-packages/flask/app.py", line 1982, in wsgi_app
=
=C2=A0 =C2=A0 response =3D self.full_dispatch_request()
=C2= =A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packag= es/flask/app.py", line 1614, in full_dispatch_request
=C2=A0= =C2=A0 rv =3D self.handle_user_exception(e)
=C2=A0 File "/U= sers/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/flask/app.py&q= uot;, line 1517, in handle_user_exception
=C2=A0 =C2=A0 reraise(e= xc_type, exc_value, tb)
=C2=A0 File "/Users/dpage/.virtualen= vs/pgadmin4/lib/python3.6/site-packages/flask/_compat.py", line 33, in= reraise
=C2=A0 =C2=A0 raise value
=C2=A0 File "/U= sers/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/flask/app.py&q= uot;, line 1612, in full_dispatch_request
=C2=A0 =C2=A0 rv =3D se= lf.dispatch_request()
=C2=A0 File "/Users/dpage/.virtualenvs= /pgadmin4/lib/python3.6/site-packages/flask/app.py", line 1598, in dis= patch_request
=C2=A0 =C2=A0 return self.view_functions[rule.endpo= int](**req.view_args)
=C2=A0 File "/Users/dpage/.virtualenvs= /pgadmin4/lib/python3.6/site-packages/flask_login.py", line 792, in de= corated_view
=C2=A0 =C2=A0 return func(*args, **kwargs)
=C2=A0 File "/Users/dpage/git/pgadmin4/web/pgadmin/tools/maintenance/= __init__.py", line 179, in create_maintenance_job
=C2=A0 =C2= =A0 data =3D json.loads(data['data'][0], encoding=3D'utf-8'= )
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python= 3.6/site-packages/simplejson/__init__.py", line 535, in loads
=C2=A0 =C2=A0 return cls(encoding=3Dencoding, **kw).decode(s)
= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-pac= kages/simplejson/decoder.py", line 370, in decode
=C2=A0 =C2= =A0 obj, end =3D self.raw_decode(s)
=C2=A0 File "/Users/dpag= e/.virtualenvs/pgadmin4/lib/python3.6/site-packages/simplejson/decoder.py&q= uot;, line 400, in raw_decode
=C2=A0 =C2=A0 return self.scan_once= (s, idx=3D_w(s, idx).end())
simplejson.errors.JSONDecodeError: Ex= pecting property name enclosed in double quotes or '}': line 1 colu= mn 2 (char 1)
=C2=A0

--


--
Akshay Joshi
Sr. S= oftware Architect
=

Phone: +91 20-3058-9517
Mobile: +91 976-788-8246
=
--000000000000db0ebb057f156315-- --000000000000db0ec0057f156317 Content-Type: text/x-patch; charset="US-ASCII"; name="RM_3836_v2.patch" Content-Disposition: attachment; filename="RM_3836_v2.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jqqa79ch0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL2JhY2t1cC9fX2luaXRfXy5weSBiL3dlYi9w Z2FkbWluL3Rvb2xzL2JhY2t1cC9fX2luaXRfXy5weQppbmRleCBjNTUzOTBkYi4uNjBiZmQ1YmYg MTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL2JhY2t1cC9fX2luaXRfXy5weQorKysgYi93 ZWIvcGdhZG1pbi90b29scy9iYWNrdXAvX19pbml0X18ucHkKQEAgLTI3Niw5ICsyNzYsNyBAQCBk ZWYgY3JlYXRlX2JhY2t1cF9vYmplY3RzX2pvYihzaWQpOgogICAgICAgICBOb25lCiAgICAgIiIi CiAgICAgaWYgcmVxdWVzdC5mb3JtOgotICAgICAgICAjIENvbnZlcnQgSW1tdXRhYmxlRGljdCB0 byBkaWN0Ci0gICAgICAgIGRhdGEgPSBkaWN0KHJlcXVlc3QuZm9ybSkKLSAgICAgICAgZGF0YSA9 IGpzb24ubG9hZHMoZGF0YVsnZGF0YSddWzBdLCBlbmNvZGluZz0ndXRmLTgnKQorICAgICAgICBk YXRhID0ganNvbi5sb2FkcyhyZXF1ZXN0LmZvcm1bJ2RhdGEnXSwgZW5jb2Rpbmc9J3V0Zi04JykK ICAgICBlbHNlOgogICAgICAgICBkYXRhID0ganNvbi5sb2FkcyhyZXF1ZXN0LmRhdGEsIGVuY29k aW5nPSd1dGYtOCcpCiAKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL21haW50ZW5hbmNl L19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vdG9vbHMvbWFpbnRlbmFuY2UvX19pbml0X18ucHkK aW5kZXggMGU4MDZkOTcuLjZhZTAxNTllIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi90b29scy9t YWludGVuYW5jZS9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi90b29scy9tYWludGVuYW5j ZS9fX2luaXRfXy5weQpAQCAtMTc0LDkgKzE3NCw3IEBAIGRlZiBjcmVhdGVfbWFpbnRlbmFuY2Vf am9iKHNpZCwgZGlkKToKICAgICAgICAgTm9uZQogICAgICIiIgogICAgIGlmIHJlcXVlc3QuZm9y bToKLSAgICAgICAgIyBDb252ZXJ0IEltbXV0YWJsZURpY3QgdG8gZGljdAotICAgICAgICBkYXRh ID0gZGljdChyZXF1ZXN0LmZvcm0pCi0gICAgICAgIGRhdGEgPSBqc29uLmxvYWRzKGRhdGFbJ2Rh dGEnXVswXSwgZW5jb2Rpbmc9J3V0Zi04JykKKyAgICAgICAgZGF0YSA9IGpzb24ubG9hZHMocmVx dWVzdC5mb3JtWydkYXRhJ10sIGVuY29kaW5nPSd1dGYtOCcpCiAgICAgZWxzZToKICAgICAgICAg ZGF0YSA9IGpzb24ubG9hZHMocmVxdWVzdC5kYXRhLCBlbmNvZGluZz0ndXRmLTgnKQogCmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9tYWludGVuYW5jZS90ZW1wbGF0ZXMvbWFpbnRlbmFu Y2Uvc3FsL2NvbW1hbmQuc3FsIGIvd2ViL3BnYWRtaW4vdG9vbHMvbWFpbnRlbmFuY2UvdGVtcGxh dGVzL21haW50ZW5hbmNlL3NxbC9jb21tYW5kLnNxbAppbmRleCA1NTMyZDZjYy4uZGZhYWI3MjUg MTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL21haW50ZW5hbmNlL3RlbXBsYXRlcy9tYWlu dGVuYW5jZS9zcWwvY29tbWFuZC5zcWwKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvbWFpbnRlbmFu Y2UvdGVtcGxhdGVzL21haW50ZW5hbmNlL3NxbC9jb21tYW5kLnNxbApAQCAtMSw1ICsxLDUgQEAK IHslIGlmIGRhdGEub3AgPT0gIlZBQ1VVTSIgJX0KLVZBQ1VVTXslIGlmIGRhdGEudmFjdXVtX2Z1 bGwgJX0gRlVMTHslIGVuZGlmICV9eyUgaWYgZGF0YS52YWN1dW1fZnJlZXplICV9IEZSRUVaRXsl IGVuZGlmICV9eyUgaWYgZGF0YS52YWN1dW1fYW5hbHl6ZSAlfSBBTkFMWVpFeyUgZW5kaWYgJX17 JSBpZiBkYXRhLnZlcmJvc2UgJX0gVkVSQk9TRXslIGVuZGlmICV9eyUgaWYgZGF0YS5zY2hlbWEg JX0ge3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hKSB9fS57eyBjb25ufHF0SWRlbnQoZGF0YS50 YWJsZSkgfX17JSBlbmRpZiAlfTsKK1ZBQ1VVTXslIGlmIGRhdGEudmFjdXVtX2Z1bGwgJX0gRlVM THslIGVuZGlmICV9eyUgaWYgZGF0YS52YWN1dW1fZnJlZXplICV9IEZSRUVaRXslIGVuZGlmICV9 eyUgaWYgZGF0YS52ZXJib3NlICV9IFZFUkJPU0V7JSBlbmRpZiAlfXslIGlmIGRhdGEudmFjdXVt X2FuYWx5emUgJX0gQU5BTFlaRXslIGVuZGlmICV9eyUgaWYgZGF0YS5zY2hlbWEgJX0ge3sgY29u bnxxdElkZW50KGRhdGEuc2NoZW1hKSB9fS57eyBjb25ufHF0SWRlbnQoZGF0YS50YWJsZSkgfX17 JSBlbmRpZiAlfTsKIHslIGVuZGlmICV9CiB7JSBpZiBkYXRhLm9wID09ICJBTkFMWVpFIiAlfQog QU5BTFlaRXslIGlmIGRhdGEudmVyYm9zZSAlfSBWRVJCT1NFeyUgZW5kaWYgJX17JSBpZiBkYXRh LnNjaGVtYSAlfSB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEudGFibGUpIH19eyUg ZW5kaWYgJX07CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9yZXN0b3JlL19faW5pdF9f LnB5IGIvd2ViL3BnYWRtaW4vdG9vbHMvcmVzdG9yZS9fX2luaXRfXy5weQppbmRleCA1MGVhY2Mx NC4uYmNhZjFkYTIgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL3Jlc3RvcmUvX19pbml0 X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvcmVzdG9yZS9fX2luaXRfXy5weQpAQCAtMTgz LDkgKzE4Myw3IEBAIGRlZiBjcmVhdGVfcmVzdG9yZV9qb2Ioc2lkKToKICAgICAgICAgTm9uZQog ICAgICIiIgogICAgIGlmIHJlcXVlc3QuZm9ybToKLSAgICAgICAgIyBDb252ZXJ0IEltbXV0YWJs ZURpY3QgdG8gZGljdAotICAgICAgICBkYXRhID0gZGljdChyZXF1ZXN0LmZvcm0pCi0gICAgICAg IGRhdGEgPSBqc29uLmxvYWRzKGRhdGFbJ2RhdGEnXVswXSwgZW5jb2Rpbmc9J3V0Zi04JykKKyAg ICAgICAgZGF0YSA9IGpzb24ubG9hZHMocmVxdWVzdC5mb3JtWydkYXRhJ10sIGVuY29kaW5nPSd1 dGYtOCcpCiAgICAgZWxzZToKICAgICAgICAgZGF0YSA9IGpzb24ubG9hZHMocmVxdWVzdC5kYXRh LCBlbmNvZGluZz0ndXRmLTgnKQogCg== --000000000000db0ec0057f156317--