From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Radon Rosborough Newsgroups: gmane.emacs.devel Subject: [PATCH] Only signal package.el warnings when needed Date: Sun, 13 Jan 2019 21:17:58 -0700 Message-ID: NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="0000000000008bc58b057f6356df" X-Trace: blaine.gmane.org 1547448963 8059 195.159.176.226 (14 Jan 2019 06:56:03 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 14 Jan 2019 06:56:03 +0000 (UTC) To: emacs-devel Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Jan 14 07:55:59 2019 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1giwAB-0001wN-3O for ged-emacs-devel@m.gmane.org; Mon, 14 Jan 2019 07:55:59 +0100 Original-Received: from localhost ([127.0.0.1]:39831 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1giwCI-0003cd-6K for ged-emacs-devel@m.gmane.org; Mon, 14 Jan 2019 01:58:10 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:37672) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1githu-0005Df-MF for emacs-devel@gnu.org; Sun, 13 Jan 2019 23:18:39 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1githt-0000Mb-Oy for emacs-devel@gnu.org; Sun, 13 Jan 2019 23:18:38 -0500 Original-Received: from mail-vk1-xa43.google.com ([2607:f8b0:4864:20::a43]:39859) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1githt-0000JB-HU for emacs-devel@gnu.org; Sun, 13 Jan 2019 23:18:37 -0500 Original-Received: by mail-vk1-xa43.google.com with SMTP id s184so4572379vkd.6 for ; Sun, 13 Jan 2019 20:18:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=MKE+ZmYPXCltvmlAAoLWclj/jOG05H5/cF8BIV+4fEc=; b=OAJjW4gRlkWE0szP/Soyn/hiDktzHm2oZPn/ffatPqf3bocVEzJzMOwUOY1dfKO4mV M9SAMKscyz/qE3cGscwBNEilxLJuMfRtdrYMABhaZf7UbRCd+tjm0cjtwQdqqxbgvxku 5WQ5CtSjWAjSNoOpvaaN1KDshVbmQxrbFudnoSxUYC/7e9MxipYuN65I2hg4VTptJwP4 7o5nMWJ6wnm3tVIXW+Cc7ELizdnBGD9W9M1Irry9eWqJ7g6jq26ZjxgG8jyLbPfWyZlw /pw2jFgUqVDCkU3CenCYyqBpCF/09ba9Laj2aQWU9Hll8L0ZZbwPjd/ko33ioWb1S/OF tACQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=MKE+ZmYPXCltvmlAAoLWclj/jOG05H5/cF8BIV+4fEc=; b=n7w70B1raKWvtHvHZhwM5qRhQVCVwNlUisZgMP4t+4bwzMHBWhz/7vMSEyaExKsuVL 2yD9vJxOqT6he9kwMJ1pJ5GH138mt5eFh8IauO5KoA6apHJ7tPpiij3vilhCZ1nRSZQG LfrCkas9ab8Xph/iHeWsy0H6Q5JkiDL8z45caOJ0jDSoB2IZnTUc+va7VBM/U0hCZ7EX r58dmhCYtcXR+jqvwsyTUBqxH7yshWhEa0x/mIt0RY3WdG3LrNlaDpEvCdwSOJ7LsxTI Boyvy3l9e3Kua35cpNPbTXjeFkFZZDGHKnCjRr/pCzVmXEpzG7qNssPHqzQfj48Or/Ay gibg== X-Gm-Message-State: AJcUukc98uzZC6BKh44N95aCMGZTLMt4eaFcOBZH9Dw5z6TWDI57jstu mU+1As0rNtBYy8bZSaVx9CvDMD70u45JqxDSMw9V6w== X-Google-Smtp-Source: ALg8bN6SPxURNm5Tdv7dScDxp83xo4s5njFeYAqw61nqtqRwNxN1sUwSk6Qf3Myq4eeaSNdu0cstU81mg25sSYF9ilI= X-Received: by 2002:a1f:3d10:: with SMTP id k16mr8901373vka.13.1547439514030; Sun, 13 Jan 2019 20:18:34 -0800 (PST) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::a43 X-Mailman-Approved-At: Mon, 14 Jan 2019 01:58:03 -0500 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:232334 Archived-At: --0000000000008bc58b057f6356df Content-Type: multipart/alternative; boundary="0000000000008bc585057f6356dd" --0000000000008bc585057f6356dd Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Dear all, In January 2018, we added support for an early init-file to Emacs 27, and adjusted Emacs startup to invoke `package-initialize' before loading the standard init-file (but after loading the early init-file). This change was adopted, at my suggestion, in order to obviate the need for `package-initialize' being called in the user's init-file, and to remove the feature by which Emacs added the call automatically (which had various disadvantages). The problem with this change is that many existing init-files contain a call to `package-initialize', meaning that the function is called twice during startup. Currently, a warning is emitted when this occurs. However, there is a better way to solve the problem: simply do nothing the second time `package-initialize' is invoked. The problem with this approach is that sometimes it will change the behavior of an existing Emacs configuration. If an advanced user changes the values of `package-load-list', `package-user-dir', and/or `package-directory-list' in their init-file, and they subsequently call `package-initialize', then ignoring this call will lead to wrong behavior. However, it is easy to address this complication: simply keep track of the values of these user options. If one or more of them has changed since the last time `package-initialize' was invoked, then perform the initialization a second time (and signal a warning). This strategy should be an improvement in user experience for every use case of package.el, but especially for inexperienced users who may not even be aware that the package system requires initialization. I have attached a patch which implements the behavior described above. The new warning looks like this: Warning (package): Package.el reinitialized with changed value for =E2=80=98package-user-dir=E2=80=99 ("~/.emacs.d/elpa" -> "~/.emacs.d/elpa-a= lt") Feedback is welcome. Please copy me on replies, since I am not subscribed to emacs-devel. Best regards, Radon Rosborough --0000000000008bc585057f6356dd Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Dear all,

In January 2018, we added sup= port for an early init-file to Emacs 27,
and adjusted Emacs start= up to invoke `package-initialize' before
loading the standard= init-file (but after loading the early
init-file). This change w= as adopted, at my suggestion, in order to
obviate the need for `p= ackage-initialize' being called in the user's
init-file, = and to remove the feature by which Emacs added the call
automatic= ally (which had various disadvantages).

The problem with this= change is that many existing init-files contain
a call to `packa= ge-initialize', meaning that the function is called
twice dur= ing startup. Currently, a warning is emitted when this
occurs. Ho= wever, there is a better way to solve the problem: simply do
noth= ing the second time `package-initialize' is invoked.

The = problem with this approach is that sometimes it will change the
b= ehavior of an existing Emacs configuration. If an advanced user
c= hanges the values of `package-load-list', `package-user-dir', and/o= r
`package-directory-list' in their init-file, and they subse= quently
call `package-initialize', then ignoring this call wi= ll lead to wrong
behavior.

However, it is easy to a= ddress this complication: simply keep track of
the values of thes= e user options. If one or more of them has changed
since the last= time `package-initialize' was invoked, then perform the
init= ialization a second time (and signal a warning).

This strateg= y should be an improvement in user experience for every
use case = of package.el, but especially for inexperienced users who may
not= even be aware that the package system requires initialization.

I have attached a patch which implements the behavior described above.
The new warning looks like this:

Warning (package): = Package.el reinitialized with changed value for =E2=80=98package-user-dir= =E2=80=99 ("~/.emacs.d/elpa" -> "~/.emacs.d/elpa-alt"= ;)

Feedback is welcome. Please copy me on replies, since I am= not
subscribed to emacs-devel.

Best regards,
=
Radon Rosborough

--0000000000008bc585057f6356dd-- --0000000000008bc58b057f6356df Content-Type: application/octet-stream; name="0001-Only-signal-package.el-warnings-when-needed.patch" Content-Disposition: attachment; filename="0001-Only-signal-package.el-warnings-when-needed.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jqvth9rm0 RnJvbSA3MzYyNjc0YmI2OWQwMjA2YzlkNTVlNzI3NjAyYTViYTUxOWRkZTRiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSYWRvbiBSb3Nib3JvdWdoIDxyYWRvbi5uZW9uQGdtYWlsLmNv bT4KRGF0ZTogU3VuLCAxMyBKYW4gMjAxOSAyMDo0NDoxNSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hd IE9ubHkgc2lnbmFsIHBhY2thZ2UuZWwgd2FybmluZ3Mgd2hlbiBuZWVkZWQKClByZXZpb3VzbHks IGBwYWNrYWdlLWluaXRpYWxpemUnIHNpZ25hbGVkIGEgd2FybmluZyB3aGVuZXZlciBpdCB3YXMK Y2FsbGVkIG1vcmUgdGhhbiBvbmNlIGR1cmluZyBzdGFydHVwLiAgVGhpcyB3YXMgYW5ub3lpbmcg dG8gdXNlcnMuCk5vdywgYHBhY2thZ2UtaW5pdGlhbGl6ZScgc2ltcGx5IGRvZXMgbm90aGluZyBv biBhIHNlY29uZCBjYWxsLCBzbyBpdAoianVzdCB3b3JrcyIgd2l0aG91dCBhbnkgY29uZmlndXJh dGlvbiBjaGFuZ2VzIGJ5IHVzZXJzLgoKQWR2YW5jZWQgdXNlcnMgbWF5IGhhdmUgY3VzdG9taXpl ZCBgcGFja2FnZS1sb2FkLWxpc3QnLApgcGFja2FnZS11c2VyLWRpcicsIG9yIGBwYWNrYWdlLWRp cmVjdG9yeS1saXN0JyBpbiB0aGVpciBpbml0LWZpbGUKYmVmb3JlIGNhbGxpbmcgYHBhY2thZ2Ut aW5pdGlhbGl6ZScsIGluIHdoaWNoIGNhc2UgdGhpcyBuZXcgYmVoYXZpb3IKd291bGQgYmUgaW5j b3JyZWN0LiAgVG8gcmVtZWR5IHRoYXQgcHJvYmxlbSwgd2Ugc3RpbGwgc2lnbmFsIGEgd2Fybmlu Zwp3aGVuIHRoZSB2YWx1ZSBvZiBvbmUgb2YgdGhvc2UgdmFyaWFibGVzIGhhcyBjaGFuZ2VkIHNp bmNlIHRoZSBsYXN0CnRpbWUgYHBhY2thZ2UtaW5pdGlhbGl6ZScgd2FzIGNhbGxlZCwgYnV0IHdl IGR1dGlmdWxseSBwZXJmb3JtIHRoZQpyZWluaXRpYWxpemF0aW9uIHNvIHRoYXQgdGhlaXIgY29u ZmlndXJhdGlvbiB3aWxsIGNvbnRpbnVlIHRvIHdvcmsuCgpTdWNoIGFkdmFuY2VkIHVzZXJzIHdp bGwgcHJvYmFibHkgd2FudCB0byBzZXQKYHBhY2thZ2UtZW5hYmxlLWF0LXN0YXJ0dXAnIHRvIG5p bCBpbiB0aGVpciBlYXJseSBpbml0LWZpbGUgKHNlZQpgZWFybHktaW5pdC1maWxlJykuICBUaGlz IHdpbGwgc3VwcHJlc3MgdGhlIHdhcm5pbmcgYXMgYSBieXByb2R1Y3QuCgoqIGxpc3AvZW1hY3Mt bGlzcC9wYWNrYWdlLmVsIChwYWNrYWdlLWluaXRpYWxpemUpOiBTa2lwCnJlaW5pdGlhbGl6YXRp b24gdW5sZXNzIHRoZSB2YWx1ZXMgb2YgcmVsZXZhbnQgdXNlciBvcHRpb25zIGhhdmUKY2hhbmdl ZCwgYW5kIHNpZ25hbCBhIHdhcm5pbmcgaW4gdGhhdCBjYXNlIChidXQgbm90IG90aGVyd2lzZSku CihwYWNrYWdlLS11c2VyLW9wdGlvbi12YWx1ZXMpOiBOZXcgdmFyaWFibGUsIHRvIGNoZWNrIHdo ZXRoZXIgdGhlCnZhbHVlcyBvZiByZWxldmFudCB1c2VyIG9wdGlvbnMgaGF2ZSBjaGFuZ2VkLgot LS0KIGxpc3AvZW1hY3MtbGlzcC9wYWNrYWdlLmVsIHwgNjEgKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0MiBpbnNlcnRpb25zKCspLCAxOSBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saXNwL2VtYWNzLWxpc3AvcGFja2FnZS5lbCBiL2xp c3AvZW1hY3MtbGlzcC9wYWNrYWdlLmVsCmluZGV4IGNmMzlmYTI4OTYuLjBiYjQ1YWRkZDUgMTAw NjQ0Ci0tLSBhL2xpc3AvZW1hY3MtbGlzcC9wYWNrYWdlLmVsCisrKyBiL2xpc3AvZW1hY3MtbGlz cC9wYWNrYWdlLmVsCkBAIC0xNDQ1LDYgKzE0NDUsMTEgQEAgcGFja2FnZS1yZWFkLWFsbC1hcmNo aXZlLWNvbnRlbnRzCiA7OyBhdmFpbGFibGUgb24gZGlzay4KIChkZWZ2YXIgcGFja2FnZS0taW5p dGlhbGl6ZWQgbmlsKQogCisoZGVmdmFyIHBhY2thZ2UtLXVzZXItb3B0aW9uLXZhbHVlcyBuaWwK KyAgIlZhbHVlcyBvZiB1c2VyIG9wdGlvbnMgbGFzdCB0aW1lIGBwYWNrYWdlLWluaXRpYWxpemUn IHdhcyBjYWxsZWQuCitUaGlzIGlzIGFuIGFsaXN0IHdob3NlIGtleXMgYXJlIHN5bWJvbHMgbmFt aW5nIHVzZXIgb3B0aW9ucyBhbmQKK3dob3NlIHZhbHVlcyBhcmUgdGhlIHByZXZpb3VzIHZhbHVl cyBvZiB0aG9zZSBzeW1ib2xzLiIpCisKIDs7OyMjI2F1dG9sb2FkCiAoZGVmdW4gcGFja2FnZS1p bml0aWFsaXplICgmb3B0aW9uYWwgbm8tYWN0aXZhdGUpCiAgICJMb2FkIEVtYWNzIExpc3AgcGFj a2FnZXMsIGFuZCBhY3RpdmF0ZSB0aGVtLgpAQCAtMTQ1OCwyNiArMTQ2Myw0NCBAQCBwYWNrYWdl LWluaXRpYWxpemUKIGluZGl2aWR1YWwgcGFja2FnZXMgYWZ0ZXIgY2FsbGluZyBgcGFja2FnZS1p bml0aWFsaXplJyAtLSB0aGlzIGlzCiB0YWtlbiBjYXJlIG9mIGJ5IGBwYWNrYWdlLWluaXRpYWxp emUnLgogCi1JZiBgcGFja2FnZS1pbml0aWFsaXplJyBpcyBjYWxsZWQgdHdpY2UgZHVyaW5nIEVt YWNzIHN0YXJ0dXAsCi1zaWduYWwgYSB3YXJuaW5nLCBzaW5jZSB0aGlzIGlzIGEgYmFkIGlkZWEg ZXhjZXB0IGluIGhpZ2hseQotYWR2YW5jZWQgdXNlIGNhc2VzLiAgVG8gc3VwcHJlc3MgdGhlIHdh cm5pbmcsIHJlbW92ZSB0aGUKLXN1cGVyZmx1b3VzIGNhbGwgdG8gYHBhY2thZ2UtaW5pdGlhbGl6 ZScgZnJvbSB5b3VyIGluaXQtZmlsZS4gIElmCi15b3UgaGF2ZSBjb2RlIHdoaWNoIG11c3QgcnVu IGJlZm9yZSBgcGFja2FnZS1pbml0aWFsaXplJywgcHV0Ci10aGF0IGNvZGUgaW4gdGhlIGVhcmx5 IGluaXQtZmlsZS4iCitJZiBgcGFja2FnZS1pbml0aWFsaXplJyBpcyBjYWxsZWQgbW9yZSB0aGFu IG9uY2Ugd2l0aCBkaWZmZXJlbnQKK3ZhbHVlcyBmb3IgdGhlIHVzZXIgb3B0aW9uIGBwYWNrYWdl LWxvYWQtbGlzdCcsCitgcGFja2FnZS11c2VyLWRpcicsIG9yIGBwYWNrYWdlLWRpcmVjdG9yeS1s aXN0Jywgc2lnbmFsIGEKK3dhcm5pbmcuICBUaGUgbW9zdCBsaWtlbHkgY2F1c2Ugb2YgdGhpcyB3 YXJuaW5nIGlzIHRoYXQgRW1hY3MKK2NhbGxzIGBwYWNrYWdlLWluaXRpYWxpemUnIGJlZm9yZSBs b2FkaW5nIHRoZSBlYXJseSBpbml0LWZpbGUsCit0aGVuIHlvdSBhZGp1c3Qgb25lIG9yIG1vcmUg b2YgdGhlc2UgdXNlciBvcHRpb25zIGFuZCBjYWxsCitgcGFja2FnZS1pbml0aWFsaXplJyBhZ2Fp bi4gIFRvIHByZXZlbnQgRW1hY3MgZnJvbSBjYWxsaW5nCitgcGFja2FnZS1pbml0aWFsaXplJyB3 aXRoIHRoZSB3cm9uZyBvcHRpb25zIGJlZm9yZSBsb2FkaW5nIHlvdXIKK2luaXQtZmlsZSwgc2V0 IGBwYWNrYWdlLWVuYWJsZS1hdC1zdGFydHVwJyB0byBuaWwgaW4geW91ciBlYXJseQoraW5pdC1m aWxlIChzZWUgYGVhcmx5LWluaXQtZmlsZScpLiIKICAgKGludGVyYWN0aXZlKQotICAod2hlbiAo YW5kIHBhY2thZ2UtLWluaXRpYWxpemVkIChub3QgYWZ0ZXItaW5pdC10aW1lKSkKLSAgICAobHdh cm4gJyhwYWNrYWdlIHJlaW5pdGlhbGl6YXRpb24pIDp3YXJuaW5nCi0gICAgICAgICAgICJVbm5l Y2Vzc2FyeSBjYWxsIHRvIGBwYWNrYWdlLWluaXRpYWxpemUnIGluIGluaXQgZmlsZSIpKQotICAo c2V0cSBwYWNrYWdlLWFsaXN0IG5pbCkKLSAgKHNldHEgcGFja2FnZS1lbmFibGUtYXQtc3RhcnR1 cCBuaWwpCi0gIChwYWNrYWdlLWxvYWQtYWxsLWRlc2NyaXB0b3JzKQotICAocGFja2FnZS1yZWFk LWFsbC1hcmNoaXZlLWNvbnRlbnRzKQotICAoc2V0cSBwYWNrYWdlLS1pbml0aWFsaXplZCB0KQot ICAodW5sZXNzIG5vLWFjdGl2YXRlCi0gICAgKHBhY2thZ2UtYWN0aXZhdGUtYWxsKSkKLSAgOzsg VGhpcyB1c2VzIGBwYWNrYWdlLS1tYXBjJyBzbyBpdCBtdXN0IGJlIGNhbGxlZCBhZnRlcgotICA7 OyBgcGFja2FnZS0taW5pdGlhbGl6ZWQnIGlzIHQuCi0gIChwYWNrYWdlLS1idWlsZC1jb21wYXRp YmlsaXR5LXRhYmxlKSkKKyAgKGxldCAoKHZhcmlhYmxlLWNoYW5nZWQKKyAgICAgICAgIChjbC1k b2xpc3QgKGxpbmsgcGFja2FnZS0tdXNlci1vcHRpb24tdmFsdWVzIG5pbCkKKyAgICAgICAgICAg KHVubGVzcyAoZXF1YWwgKHN5bWJvbC12YWx1ZSAoY2FyIGxpbmspKSAoY2RyIGxpbmspKQorICAg ICAgICAgICAgIChjbC1yZXR1cm4gKGNhciBsaW5rKSkpKSkpCisgICAgKHdoZW4gKGFuZCBwYWNr YWdlLS1pbml0aWFsaXplZCB2YXJpYWJsZS1jaGFuZ2VkKQorICAgICAgKGx3YXJuCisgICAgICAg JyhwYWNrYWdlIHJlaW5pdGlhbGl6YXRpb24pIDp3YXJuaW5nCisgICAgICAgIlBhY2thZ2UuZWwg cmVpbml0aWFsaXplZCB3aXRoIGNoYW5nZWQgdmFsdWUgZm9yIGAlUycgKCVTIC0+ICVTKSIKKyAg ICAgICB2YXJpYWJsZS1jaGFuZ2VkCisgICAgICAgKGFsaXN0LWdldCB2YXJpYWJsZS1jaGFuZ2Vk IHBhY2thZ2UtLXVzZXItb3B0aW9uLXZhbHVlcykKKyAgICAgICAoc3ltYm9sLXZhbHVlIHZhcmlh YmxlLWNoYW5nZWQpKSkKKyAgICAodW5sZXNzIChhbmQgcGFja2FnZS0taW5pdGlhbGl6ZWQgKG5v dCB2YXJpYWJsZS1jaGFuZ2VkKSkKKyAgICAgIChzZXRxIHBhY2thZ2UtYWxpc3QgbmlsKQorICAg ICAgKHNldHEgcGFja2FnZS1lbmFibGUtYXQtc3RhcnR1cCBuaWwpCisgICAgICAocGFja2FnZS1s b2FkLWFsbC1kZXNjcmlwdG9ycykKKyAgICAgIChwYWNrYWdlLXJlYWQtYWxsLWFyY2hpdmUtY29u dGVudHMpCisgICAgICAoc2V0cSBwYWNrYWdlLS1pbml0aWFsaXplZCB0KQorICAgICAgKHVubGVz cyBuby1hY3RpdmF0ZQorICAgICAgICAocGFja2FnZS1hY3RpdmF0ZS1hbGwpKQorICAgICAgOzsg VGhpcyB1c2VzIGBwYWNrYWdlLS1tYXBjJyBzbyBpdCBtdXN0IGJlIGNhbGxlZCBhZnRlcgorICAg ICAgOzsgYHBhY2thZ2UtLWluaXRpYWxpemVkJyBpcyB0LgorICAgICAgKHBhY2thZ2UtLWJ1aWxk LWNvbXBhdGliaWxpdHktdGFibGUpCisgICAgICAoZG9saXN0ICh2YXIgJyhwYWNrYWdlLWxvYWQt bGlzdAorICAgICAgICAgICAgICAgICAgICAgcGFja2FnZS11c2VyLWRpcgorICAgICAgICAgICAg ICAgICAgICAgcGFja2FnZS1kaXJlY3RvcnktbGlzdCkpCisgICAgICAgIChzZXRmIChhbGlzdC1n ZXQgdmFyIHBhY2thZ2UtLXVzZXItb3B0aW9uLXZhbHVlcykKKyAgICAgICAgICAgICAgKHN5bWJv bC12YWx1ZSB2YXIpKSkpKSkKIAogKGRlZnZhciBwYWNrYWdlLXF1aWNrc3RhcnQtZmlsZSkKIAot LSAKMi4yMC4xCgo= --0000000000008bc58b057f6356df--