From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Aidan Beggs Newsgroups: gmane.emacs.bugs Subject: bug#40529: 26.3; global-display-line-numbers-mode and flymake-show-diagnostics-buffer error Date: Sun, 12 Apr 2020 16:45:18 -0400 Message-ID: References: <83v9m7n98j.fsf@gnu.org> <83r1wvmt7k.fsf@gnu.org> <83ftdbmjan.fsf@gnu.org> <837dyklszu.fsf@gnu.org> <833698lq9o.fsf@gnu.org> <83wo6kk4mb.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="00000000000087f74305a31e0d26" Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="65016"; mail-complaints-to="usenet@ciao.gmane.io" Cc: =?UTF-8?Q?Jo=C3=A3o_?= =?UTF-8?Q?T=C3=A1vora?= , 40529@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Mon Apr 13 00:08:15 2020 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jNkly-000GnS-FH for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 13 Apr 2020 00:08:14 +0200 Original-Received: from localhost ([::1]:37450 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jNklx-0004I7-Ha for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 12 Apr 2020 18:08:13 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:45179) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jNklo-0004G6-Nd for bug-gnu-emacs@gnu.org; Sun, 12 Apr 2020 18:08:06 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jNkln-0006sL-1F for bug-gnu-emacs@gnu.org; Sun, 12 Apr 2020 18:08:04 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:47439) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jNklm-0006sG-Uw for bug-gnu-emacs@gnu.org; Sun, 12 Apr 2020 18:08:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jNklm-0004dU-PW for bug-gnu-emacs@gnu.org; Sun, 12 Apr 2020 18:08:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Aidan Beggs Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 12 Apr 2020 22:08:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 40529 X-GNU-PR-Package: emacs Original-Received: via spool by 40529-submit@debbugs.gnu.org id=B40529.158672925717769 (code B ref 40529); Sun, 12 Apr 2020 22:08:02 +0000 Original-Received: (at 40529) by debbugs.gnu.org; 12 Apr 2020 22:07:37 +0000 Original-Received: from localhost ([127.0.0.1]:58983 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jNklN-0004cX-0w for submit@debbugs.gnu.org; Sun, 12 Apr 2020 18:07:37 -0400 Original-Received: from mail-qt1-f175.google.com ([209.85.160.175]:38445) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jNjUO-0002kD-Q4 for 40529@debbugs.gnu.org; Sun, 12 Apr 2020 16:46:01 -0400 Original-Received: by mail-qt1-f175.google.com with SMTP id f13so5687089qti.5 for <40529@debbugs.gnu.org>; Sun, 12 Apr 2020 13:46:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=XGqfIQNmXRnLRXXKmkXAOQ4RDzribOekC3FqaGZ+LbA=; b=USIdhia7w8hqbr3xurmGrtUN3RToAFcmWi3jMlZ1aDyaqcMU+IC3JSOvSn8Ia8AiBh RqXM5ICUIYhKPitqBhaklHQ22j4l2B7+St/kpHdw4W3m7iGhfNg2yhvGhY4mr7BhYKg8 UbomCKvtE7uOuvcBuoBjX1p8tApDAetDm+UHrRPNoKX6rJHJaSfeum7kKILAxLE5RM/9 ef3rHXPlvN/nww5V3p5EUSfc3sba8h/waB8BDvgEnROtbBDMWIE3Zsre6hdtg5CrypZ3 ObFd6JOAgAF05ymxEsEsUPf2NScmdJ9pN63/EUCYzQGI/DiN/5SKobiw7vSfpr/9+Ffd bOUw== 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=XGqfIQNmXRnLRXXKmkXAOQ4RDzribOekC3FqaGZ+LbA=; b=TMmv1V8Es7wTgEVECmK8mP8k9SI4bRHp2KX5YSQGHK78+Ba5tzy29Vnj6F4yP7BXQu 8yFFwgHam/Zdol+b3O0uRPA50Y6OLSzYH95jnVrCfjRgo1pUoWZxt1PoVqpv0mEo3qQN 7rDnOl/1pFhcRP5ur5K8u7I4pIEDD4tIrFOb39doM5iyYRNJzBMXSraVEpvLEQZz2oTM K1YqAPmya5okIgrfRSOiLNL+G7vzSF87M2GcQ5tE1+W9dicdnNtcBeAf+i7R9m9Eze+d lS+K4B7YZcUu1DHFHSpHivgjVOLRqW9bSmQ2hO6yCH76qIvRU7Wkawvyj2yUXGOtxMPH L5mg== X-Gm-Message-State: AGi0PuYdvv3oxxNTok4O/9cHDCdlMwopbpX3rR53NgL9FWiN+7Cw3nIZ 4jmPjGSo3BCItrbBmtz/34lKVle5dEwVu4XXkP8= X-Google-Smtp-Source: APiQypJvBDSrEEmKyi9PHMbimlylNMyw2ZgwafJcCjtEIf0K24+oHYEyAafiI8NqCnOOHhEX7va6JUS0vWqbA9Rh9LU= X-Received: by 2002:aed:25e2:: with SMTP id y31mr2544890qtc.325.1586724354912; Sun, 12 Apr 2020 13:45:54 -0700 (PDT) In-Reply-To: <83wo6kk4mb.fsf@gnu.org> X-Mailman-Approved-At: Sun, 12 Apr 2020 18:07:36 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:178280 Archived-At: --00000000000087f74305a31e0d26 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable That patch seems to do the trick for me. I don't make particularly extensive use of the flymake diagnostics buffer, but for regular use it seems to work as expected. Thanks, Aidan On Sun, Apr 12, 2020 at 1:15 PM Eli Zaretskii wrote: > > From: Jo=C3=A3o T=C3=A1vora > > Date: Sun, 12 Apr 2020 17:58:16 +0100 > > Cc: Aidan Beggs , 40529@debbugs.gnu.org > > > > > I'm sure a simple solution for Flymake can be found. E.g., what abou= t > > > skipping the entire body of flymake--diagnostics-buffer-entries if > > > flymake--diagnostics-buffer-source is nil > > > > Maybe that works, yes. Feel free to try it and commit it > > to Emacs 27, I have little time and I'm booted into a machine > > with no Emacs. > > OK. > > Aidan, can you try the patch below and see if it solves the problem? > The initial error in the recipe you posted is definitely gone after > applying the patch, but please also try this after that and see that > flymake-show-diagnostics-buffer also works after that, in real-life > use. > > Thanks. > > diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el > index 25a2152..b37b72e 100644 > --- a/lisp/progmodes/flymake.el > +++ b/lisp/progmodes/flymake.el > @@ -1321,35 +1321,36 @@ flymake-goto-diagnostic > (flymake-show-diagnostic (if (button-type pos) (button-start pos) > pos)))) > > (defun flymake--diagnostics-buffer-entries () > - (with-current-buffer flymake--diagnostics-buffer-source > - (cl-loop for diag in > - (cl-sort (flymake-diagnostics) #'< :key > #'flymake-diagnostic-beg) > - for (line . col) =3D > - (save-excursion > - (goto-char (flymake--diag-beg diag)) > - (cons (line-number-at-pos) > - (- (point) > - (line-beginning-position)))) > - for type =3D (flymake--diag-type diag) > - collect > - (list (list :diagnostic diag > - :line line > - :severity (flymake--lookup-type-property > - type > - 'severity (warning-numeric-level > :error))) > - `[,(format "%s" line) > - ,(format "%s" col) > - ,(propertize (format "%s" > - (flymake--lookup-type-property > - type 'flymake-type-name type)= ) > - 'face (flymake--lookup-type-property > - type 'mode-line-face > 'flymake-error)) > - (,(format "%s" (flymake--diag-text diag)) > - mouse-face highlight > - help-echo "mouse-2: visit this diagnostic" > - face nil > - action flymake-goto-diagnostic > - mouse-action flymake-goto-diagnostic)])))) > + (when (bufferp flymake--diagnostics-buffer-source) > + (with-current-buffer flymake--diagnostics-buffer-source > + (cl-loop for diag in > + (cl-sort (flymake-diagnostics) #'< :key > #'flymake-diagnostic-beg) > + for (line . col) =3D > + (save-excursion > + (goto-char (flymake--diag-beg diag)) > + (cons (line-number-at-pos) > + (- (point) > + (line-beginning-position)))) > + for type =3D (flymake--diag-type diag) > + collect > + (list (list :diagnostic diag > + :line line > + :severity (flymake--lookup-type-property > + type > + 'severity (warning-numeric-level > :error))) > + `[,(format "%s" line) > + ,(format "%s" col) > + ,(propertize (format "%s" > + (flymake--lookup-type-proper= ty > + type 'flymake-type-name > type)) > + 'face (flymake--lookup-type-property > + type 'mode-line-face > 'flymake-error)) > + (,(format "%s" (flymake--diag-text diag)) > + mouse-face highlight > + help-echo "mouse-2: visit this diagnostic" > + face nil > + action flymake-goto-diagnostic > + mouse-action flymake-goto-diagnostic)]))))) > > (define-derived-mode flymake-diagnostics-buffer-mode tabulated-list-mode > "Flymake diagnostics" --00000000000087f74305a31e0d26 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: base64 PGRpdiBkaXI9Imx0ciI+PGRpdiBkaXI9Imx0ciI+VGhhdCBwYXRjaCBzZWVtcyB0byBkbyB0aGUg dHJpY2sgZm9yIG1lLiBJIGRvbiYjMzk7dCBtYWtlIHBhcnRpY3VsYXJseSBleHRlbnNpdmUgdXNl IG9mIHRoZSBmbHltYWtlIGRpYWdub3N0aWNzIGJ1ZmZlciwgYnV0IGZvciByZWd1bGFyIHVzZSBp dCBzZWVtcyB0byB3b3JrIGFzIGV4cGVjdGVkLjxkaXY+PGJyPjwvZGl2PjxkaXY+VGhhbmtzLDwv ZGl2PjxkaXY+QWlkYW48L2Rpdj48L2Rpdj48YnI+PGRpdiBjbGFzcz0iZ21haWxfcXVvdGUiPjxk aXYgZGlyPSJsdHIiIGNsYXNzPSJnbWFpbF9hdHRyIj5PbiBTdW4sIEFwciAxMiwgMjAyMCBhdCAx OjE1IFBNIEVsaSBaYXJldHNraWkgJmx0OzxhIGhyZWY9Im1haWx0bzplbGl6QGdudS5vcmciIHRh cmdldD0iX2JsYW5rIj5lbGl6QGdudS5vcmc8L2E+Jmd0OyB3cm90ZTo8YnI+PC9kaXY+PGJsb2Nr cXVvdGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFyZ2luOjBweCAwcHggMHB4IDAuOGV4 O2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2IoMjA0LDIwNCwyMDQpO3BhZGRpbmctbGVmdDoxZXgi PiZndDsgRnJvbTogSm/Do28gVMOhdm9yYSAmbHQ7PGEgaHJlZj0ibWFpbHRvOmpvYW90YXZvcmFA Z21haWwuY29tIiB0YXJnZXQ9Il9ibGFuayI+am9hb3Rhdm9yYUBnbWFpbC5jb208L2E+Jmd0Ozxi cj4NCiZndDsgRGF0ZTogU3VuLCAxMiBBcHIgMjAyMCAxNzo1ODoxNiArMDEwMDxicj4NCiZndDsg Q2M6IEFpZGFuIEJlZ2dzICZsdDs8YSBocmVmPSJtYWlsdG86bmFkaWFzZ2dlYjAwMUBnbWFpbC5j b20iIHRhcmdldD0iX2JsYW5rIj5uYWRpYXNnZ2ViMDAxQGdtYWlsLmNvbTwvYT4mZ3Q7LCA8YSBo cmVmPSJtYWlsdG86NDA1MjlAZGViYnVncy5nbnUub3JnIiB0YXJnZXQ9Il9ibGFuayI+NDA1MjlA ZGViYnVncy5nbnUub3JnPC9hPjxicj4NCiZndDsgPGJyPg0KJmd0OyAmZ3Q7IEkmIzM5O20gc3Vy ZSBhIHNpbXBsZSBzb2x1dGlvbiBmb3IgRmx5bWFrZSBjYW4gYmUgZm91bmQuwqAgRS5nLiwgd2hh dCBhYm91dDxicj4NCiZndDsgJmd0OyBza2lwcGluZyB0aGUgZW50aXJlIGJvZHkgb2YgZmx5bWFr ZS0tZGlhZ25vc3RpY3MtYnVmZmVyLWVudHJpZXMgaWY8YnI+DQomZ3Q7ICZndDsgZmx5bWFrZS0t ZGlhZ25vc3RpY3MtYnVmZmVyLXNvdXJjZSBpcyBuaWw8YnI+DQomZ3Q7IDxicj4NCiZndDsgTWF5 YmUgdGhhdCB3b3JrcywgeWVzLiBGZWVsIGZyZWUgdG8gdHJ5IGl0IGFuZCBjb21taXQgaXQgPGJy Pg0KJmd0OyB0byBFbWFjcyAyNywgSSBoYXZlIGxpdHRsZSB0aW1lIGFuZCBJJiMzOTttIGJvb3Rl ZCBpbnRvIGEgbWFjaGluZSA8YnI+DQomZ3Q7IHdpdGggbm8gRW1hY3MuPGJyPg0KPGJyPg0KT0su PGJyPg0KPGJyPg0KQWlkYW4sIGNhbiB5b3UgdHJ5IHRoZSBwYXRjaCBiZWxvdyBhbmQgc2VlIGlm IGl0IHNvbHZlcyB0aGUgcHJvYmxlbT88YnI+DQpUaGUgaW5pdGlhbCBlcnJvciBpbiB0aGUgcmVj aXBlIHlvdSBwb3N0ZWQgaXMgZGVmaW5pdGVseSBnb25lIGFmdGVyPGJyPg0KYXBwbHlpbmcgdGhl IHBhdGNoLCBidXQgcGxlYXNlIGFsc28gdHJ5IHRoaXMgYWZ0ZXIgdGhhdCBhbmQgc2VlIHRoYXQ8 YnI+DQpmbHltYWtlLXNob3ctZGlhZ25vc3RpY3MtYnVmZmVyIGFsc28gd29ya3MgYWZ0ZXIgdGhh dCwgaW4gcmVhbC1saWZlPGJyPg0KdXNlLjxicj4NCjxicj4NClRoYW5rcy48YnI+DQo8YnI+DQpk aWZmIC0tZ2l0IGEvbGlzcC9wcm9nbW9kZXMvZmx5bWFrZS5lbCBiL2xpc3AvcHJvZ21vZGVzL2Zs eW1ha2UuZWw8YnI+DQppbmRleCAyNWEyMTUyLi5iMzdiNzJlIDEwMDY0NDxicj4NCi0tLSBhL2xp c3AvcHJvZ21vZGVzL2ZseW1ha2UuZWw8YnI+DQorKysgYi9saXNwL3Byb2dtb2Rlcy9mbHltYWtl LmVsPGJyPg0KQEAgLTEzMjEsMzUgKzEzMjEsMzYgQEAgZmx5bWFrZS1nb3RvLWRpYWdub3N0aWM8 YnI+DQrCoCDCoCAoZmx5bWFrZS1zaG93LWRpYWdub3N0aWMgKGlmIChidXR0b24tdHlwZSBwb3Mp IChidXR0b24tc3RhcnQgcG9zKSBwb3MpKSkpPGJyPg0KPGJyPg0KwqAoZGVmdW4gZmx5bWFrZS0t ZGlhZ25vc3RpY3MtYnVmZmVyLWVudHJpZXMgKCk8YnI+DQotwqAgKHdpdGgtY3VycmVudC1idWZm ZXIgZmx5bWFrZS0tZGlhZ25vc3RpY3MtYnVmZmVyLXNvdXJjZTxicj4NCi3CoCDCoCAoY2wtbG9v cCBmb3IgZGlhZyBpbjxicj4NCi3CoCDCoCDCoCDCoCDCoCDCoCDCoChjbC1zb3J0IChmbHltYWtl LWRpYWdub3N0aWNzKSAjJiMzOTsmbHQ7IDprZXkgIyYjMzk7Zmx5bWFrZS1kaWFnbm9zdGljLWJl Zyk8YnI+DQotwqAgwqAgwqAgwqAgwqAgwqAgwqBmb3IgKGxpbmUgLiBjb2wpID08YnI+DQotwqAg wqAgwqAgwqAgwqAgwqAgwqAoc2F2ZS1leGN1cnNpb248YnI+DQotwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAoZ290by1jaGFyIChmbHltYWtlLS1kaWFnLWJlZyBkaWFnKSk8YnI+DQotwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAoY29ucyAobGluZS1udW1iZXItYXQtcG9zKTxicj4NCi3CoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCgtIChwb2ludCk8YnI+DQotwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkpKTxicj4NCi3CoCDC oCDCoCDCoCDCoCDCoCDCoGZvciB0eXBlID0gKGZseW1ha2UtLWRpYWctdHlwZSBkaWFnKTxicj4N Ci3CoCDCoCDCoCDCoCDCoCDCoCDCoGNvbGxlY3Q8YnI+DQotwqAgwqAgwqAgwqAgwqAgwqAgwqAo bGlzdCAobGlzdCA6ZGlhZ25vc3RpYyBkaWFnPGJyPg0KLcKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgOmxpbmUgbGluZTxicj4NCi3CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoDpzZXZlcml0eSAoZmx5bWFrZS0tbG9va3VwLXR5cGUtcHJvcGVydHk8YnI+ DQotwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg dHlwZTxicj4NCi3CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCAmIzM5O3NldmVyaXR5ICh3YXJuaW5nLW51bWVyaWMtbGV2ZWwgOmVycm9yKSkpPGJy Pg0KLcKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgYFssKGZvcm1hdCAmcXVvdDslcyZxdW90 OyBsaW5lKTxicj4NCi3CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCwoZm9ybWF0ICZx dW90OyVzJnF1b3Q7IGNvbCk8YnI+DQotwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAs KHByb3BlcnRpemUgKGZvcm1hdCAmcXVvdDslcyZxdW90Ozxicj4NCi3CoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAoZmx5bWFrZS0t bG9va3VwLXR5cGUtcHJvcGVydHk8YnI+DQotwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB0eXBlICYjMzk7Zmx5bWFrZS10eXBl LW5hbWUgdHlwZSkpPGJyPg0KLcKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgICYjMzk7ZmFjZSAoZmx5bWFrZS0tbG9va3VwLXR5cGUtcHJvcGVydHk8YnI+ DQotwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqB0eXBlICYjMzk7bW9kZS1saW5lLWZhY2UgJiMzOTtmbHltYWtlLWVycm9yKSk8YnI+ DQotwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAoLChmb3JtYXQgJnF1b3Q7JXMmcXVv dDsgKGZseW1ha2UtLWRpYWctdGV4dCBkaWFnKSk8YnI+DQotwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgbW91c2UtZmFjZSBoaWdobGlnaHQ8YnI+DQotwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgaGVscC1lY2hvICZxdW90O21vdXNlLTI6IHZpc2l0IHRoaXMgZGlhZ25v c3RpYyZxdW90Ozxicj4NCi3CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBmYWNlIG5p bDxicj4NCi3CoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBhY3Rpb24gZmx5bWFrZS1n b3RvLWRpYWdub3N0aWM8YnI+DQotwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgbW91 c2UtYWN0aW9uIGZseW1ha2UtZ290by1kaWFnbm9zdGljKV0pKSkpPGJyPg0KK8KgICh3aGVuIChi dWZmZXJwIGZseW1ha2UtLWRpYWdub3N0aWNzLWJ1ZmZlci1zb3VyY2UpPGJyPg0KK8KgIMKgICh3 aXRoLWN1cnJlbnQtYnVmZmVyIGZseW1ha2UtLWRpYWdub3N0aWNzLWJ1ZmZlci1zb3VyY2U8YnI+ DQorwqAgwqAgwqAgKGNsLWxvb3AgZm9yIGRpYWcgaW48YnI+DQorwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAoY2wtc29ydCAoZmx5bWFrZS1kaWFnbm9zdGljcykgIyYjMzk7Jmx0OyA6a2V5ICMmIzM5 O2ZseW1ha2UtZGlhZ25vc3RpYy1iZWcpPGJyPg0KK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgZm9y IChsaW5lIC4gY29sKSA9PGJyPg0KK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgKHNhdmUtZXhjdXJz aW9uPGJyPg0KK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgKGdvdG8tY2hhciAoZmx5bWFrZS0t ZGlhZy1iZWcgZGlhZykpPGJyPg0KK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgKGNvbnMgKGxp bmUtbnVtYmVyLWF0LXBvcyk8YnI+DQorwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAoLSAocG9pbnQpPGJyPg0KK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikpKSk8YnI+DQorwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqBmb3IgdHlwZSA9IChmbHltYWtlLS1kaWFnLXR5cGUgZGlhZyk8YnI+DQorwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqBjb2xsZWN0PGJyPg0KK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgKGxpc3QgKGxp c3QgOmRpYWdub3N0aWMgZGlhZzxicj4NCivCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoDpsaW5lIGxpbmU8YnI+DQorwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqA6c2V2ZXJpdHkgKGZseW1ha2UtLWxvb2t1cC10eXBlLXByb3BlcnR5PGJyPg0K K8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IHR5cGU8YnI+DQorwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgJiMzOTtzZXZlcml0eSAod2FybmluZy1udW1lcmljLWxldmVsIDplcnJvcikp KTxicj4NCivCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGBbLChmb3JtYXQgJnF1b3Q7 JXMmcXVvdDsgbGluZSk8YnI+DQorwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAs KGZvcm1hdCAmcXVvdDslcyZxdW90OyBjb2wpPGJyPg0KK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgLChwcm9wZXJ0aXplIChmb3JtYXQgJnF1b3Q7JXMmcXVvdDs8YnI+DQorwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgKGZseW1ha2UtLWxvb2t1cC10eXBlLXByb3BlcnR5PGJyPg0KK8KgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgdHlw ZSAmIzM5O2ZseW1ha2UtdHlwZS1uYW1lIHR5cGUpKTxicj4NCivCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAmIzM5O2ZhY2UgKGZseW1ha2UtLWxv b2t1cC10eXBlLXByb3BlcnR5PGJyPg0KK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgdHlwZSAmIzM5O21vZGUtbGluZS1mYWNl ICYjMzk7Zmx5bWFrZS1lcnJvcikpPGJyPg0KK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgKCwoZm9ybWF0ICZxdW90OyVzJnF1b3Q7IChmbHltYWtlLS1kaWFnLXRleHQgZGlhZykp PGJyPg0KK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIG1vdXNlLWZhY2UgaGln aGxpZ2h0PGJyPg0KK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIGhlbHAtZWNo byAmcXVvdDttb3VzZS0yOiB2aXNpdCB0aGlzIGRpYWdub3N0aWMmcXVvdDs8YnI+DQorwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgZmFjZSBuaWw8YnI+DQorwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgYWN0aW9uIGZseW1ha2UtZ290by1kaWFnbm9zdGljPGJy Pg0KK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIG1vdXNlLWFjdGlvbiBmbHlt YWtlLWdvdG8tZGlhZ25vc3RpYyldKSkpKSk8YnI+DQo8YnI+DQrCoChkZWZpbmUtZGVyaXZlZC1t b2RlIGZseW1ha2UtZGlhZ25vc3RpY3MtYnVmZmVyLW1vZGUgdGFidWxhdGVkLWxpc3QtbW9kZTxi cj4NCsKgIMKgJnF1b3Q7Rmx5bWFrZSBkaWFnbm9zdGljcyZxdW90OzwvYmxvY2txdW90ZT48L2Rp dj4NCjwvZGl2Pg0K --00000000000087f74305a31e0d26--