From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Ergus Newsgroups: gmane.emacs.bugs Subject: bug#36858: 27.0.50; display bugs with display-fill-column-indicator-mode Date: Wed, 7 Aug 2019 18:20:33 +0200 Message-ID: <20190807162033.hpphf2pbfo4p6vam@Ergus> References: <83wofwexkr.fsf@gnu.org> <20190805152747.4vyzejqoiy33l4ou@Ergus> <83tvatavmh.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="wjax6rc3szr63pja" Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="133609"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: NeoMutt/20180716 Cc: 36858@debbugs.gnu.org, rotim.davor@gmail.com To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Wed Aug 07 18:21:13 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1hvOgb-000YbG-FK for geb-bug-gnu-emacs@m.gmane.org; Wed, 07 Aug 2019 18:21:13 +0200 Original-Received: from localhost ([::1]:43342 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hvOga-0007MI-GK for geb-bug-gnu-emacs@m.gmane.org; Wed, 07 Aug 2019 12:21:12 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:40771) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hvOgR-0007Cx-AI for bug-gnu-emacs@gnu.org; Wed, 07 Aug 2019 12:21:04 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hvOgQ-0002I0-3O for bug-gnu-emacs@gnu.org; Wed, 07 Aug 2019 12:21:03 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:58690) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hvOgP-0002H6-VG for bug-gnu-emacs@gnu.org; Wed, 07 Aug 2019 12:21:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1hvOgP-0001yb-No for bug-gnu-emacs@gnu.org; Wed, 07 Aug 2019 12:21:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Ergus Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 07 Aug 2019 16:21:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 36858 X-GNU-PR-Package: emacs Original-Received: via spool by 36858-submit@debbugs.gnu.org id=B36858.15651948457555 (code B ref 36858); Wed, 07 Aug 2019 16:21:01 +0000 Original-Received: (at 36858) by debbugs.gnu.org; 7 Aug 2019 16:20:45 +0000 Original-Received: from localhost ([127.0.0.1]:39278 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hvOg8-0001xn-RO for submit@debbugs.gnu.org; Wed, 07 Aug 2019 12:20:45 -0400 Original-Received: from sonic303-20.consmr.mail.ir2.yahoo.com ([77.238.178.201]:42326) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hvOg7-0001xY-9c for 36858@debbugs.gnu.org; Wed, 07 Aug 2019 12:20:43 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aol.com; s=a2048; t=1565194837; bh=zQ1P7SHjNLh56PZnUioh9IYDkd4HnHuxUX/1Gmp9Xh0=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From:Subject; b=Ykq5pI8cgBoTiFrjVQ9hw55q0Wb7YpC8LoCP8Fszjwajvm5GAZ2s7ednNmkTMCVLvCrg/CGvZJbxwTBO3YL3IjT8A7eijMegdI46/Yy3yzZnEPjODbo20tUXsH4uiAuQl48f8sCgSb5JPlkpfzOO8t5KBx/gigkPTZtF0Fk9hxrITf0uH/GziNwwyMQ1aB2w1jwUPCrUCQ5fjIDlZ0VFY3Zasw1/hbbBWMuU3QsH0A4u6TX3GAyvv8rMK94kd2jujLEZrhXHMGmyMV7J+05Ca1giB94t9NCYTFodgNX+NC1W2X5UdWvB7r7FL2CC/bLM7KIPck6VzUZQrBayXR1ZlQ== X-YMail-OSG: JUrmJhsVM1lUTZ_8H28FslquTGFQqXwz4JwEhXCOujWGEO.0Uk1es0bq31Xsqqk 8aTpQzBhQIvABG2ro65O3wQ0Wuh9Es.56LxjkW6hb7wNJgXWZtoswTtwLqINYUMN.Fjb2i7CHeKG SA5rsauLGzXxcNTIKRzUFICWd4GLOtdNuA_XNtCN1drunygkXz2F8ODOgwzBniwCi4Pf71zGCnjh Micsli9hM_CltLsK2gU9lTvBcEl_9nSYog_YQcShjzroGtE.Ij7uC2U5EsbUTkM1UNHeedvL410c 7ssaoIeBDDcaARrJ1GSkhszfcw5iVTuXdn3nYeRSjxI3CceDWlgUNiMw0_NkjUUzhUg3Wh5usYYh hh28tsDxAZpHaXWbbzZbVrtGoj7fzlp8S2BflthbPj3tNdcyXLMoLejndcUCsb8A3NzjPHypEGo5 nYqS.Yrn1e0djb1TBpb3puh2KPN0RbhvBCUcdswZgd5ZNquAwZzqDwSraCVFOwCbyrTQTr88Anez Yd5qsg8v0bPuGJuUcQOBiMuLcl0aMRNVj40IqNAKJ6S3vLNAGQsAZrH.eACQbroCnEBGom2fMz0w v_TB38REbH1vgAI01w0pd1CrRDbrOmODWtsnIp8Yn6CtzAlgyWka07ju2wxNxGDktLoh1rmufeUR OFqUONwRcrKES9mpnFxEvOWy.zNbO_qoyjxZndWVMtPXrBsIJkinYa0hEQ_BTJ0Xp9bzx5FZv8zu SUFbI9bdiJ4m5BGCUKRxDRTu4WDq739esHAlr64CqG_Wi6qEyEKHN95ikPhgdEEAo6yJ_4GUkkwv yOYv_c8M84F2Mqunm9Ehut5DzFpbslp48zgUeCuYso Original-Received: from sonic.gate.mail.ne1.yahoo.com by sonic303.consmr.mail.ir2.yahoo.com with HTTP; Wed, 7 Aug 2019 16:20:37 +0000 Original-Received: by smtp427.mail.ir2.yahoo.com (Oath Hermes SMTP Server) with ESMTPA ID 45d712692afa99a2170666831e3bfe24; Wed, 07 Aug 2019 16:20:36 +0000 (UTC) Content-Disposition: inline In-Reply-To: <83tvatavmh.fsf@gnu.org> 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.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:164723 Archived-At: --wjax6rc3szr63pja Content-Type: text/plain; charset=us-ascii; format=flowed Content-Disposition: inline On Wed, Aug 07, 2019 at 05:38:30PM +0300, Eli Zaretskii wrote: >> Date: Mon, 5 Aug 2019 17:27:47 +0200 >> From: Ergus >> Cc: 36858@debbugs.gnu.org, Davor Rotim >> >> 1) The condition ends_at_zv_p didn't work as expected, I don't know If >> this is an issue somewhere else, but at least in my tests, the condition >> was always false. (for all the lines implied before and after ZV, where >> there was company window or not) >> >> So the filter condition I am using now is: >> >> IT_CHARPOS (*it) < ZV >> >> which seems to work fine. >> >> 2) There is a corner case because the indicator is never generated for >> the latest line in the buffer. So a \n is required always at the end of >> the buffer if there is text, which for me is fine (unix format), but I >> don't know if I should correct that, should I? > >Unix format has nothing to do with this, as in a buffer we always have >only \n characters at end of line. But notr having the indicator show >in the last line of a buffer that doesn't end in a newline is >unfortunate. Which is why I suggested to test the ends_at_zv_p flag. >What exactly didn't work with it? Can you show me a test case where >the glyph rows past ZV don't have this flag set? Maybe you should >test the enabled_p flag as well? > Hi Eli: I just made this test: in this code (in xdisp.c): if (it->current_x < indicator_column_x) { it->face_id = merge_faces (it->w, Qextend_to_end_of_line, 0, extend_face_merged_id); it->char_to_display = XFIXNAT (Vdisplay_fill_column_indicator_character); PRODUCE_GLYPHS (it); it->face_id = extend_face_merged_id; } I changed char_to_display: it->char_to_display = (it->glyph_row->ends_at_zv_p) ? '1' : '0'; And then I obtained the attached image. As you can see the condition returns 0 for lines before zv, for the last text line and for the company extra lines. >> In terminal emacs, in the original emacs-26 code, in the function: >> extend_face_to_end_of_line the code was: >> >> ``` >> face = FACE_FROM_ID (f, (it->face_before_selective_p >> ? it->saved_face_id >> : it->face_id)); >> (...) >> >> if (it->glyph_row->ends_at_zv_p) >> it->face_id = default_face->id; >> else >> it->face_id = face->id; >> PRODUCE_GLYPHS (it); >> >> while (it->current_x <= it->last_visible_x) >> PRODUCE_GLYPHS (it); >> ``` >> >> So the rest of the line was filled with the last face, (so this issue was >> already there since then, because the rest of the line is filled with an >> underlined face) >> >> I can change the code to fill the rest of the line with a new merged >> face (as I do for graphical emacs), but I think that this fix is >> unrelated with dfci, so maybe someone else must give a look before to >> prevent me breaking anything. > >This is a more general issue, and I will respond to your question on >emacs-devel. > >Thanks. --wjax6rc3szr63pja Content-Type: image/png Content-Disposition: attachment; filename="Screenshot_2019-08-07_18-10-20.png" Content-Transfer-Encoding: base64 iVBORw0KGgoAAAANSUhEUgAAAuYAAADxCAIAAAAIt+UOAAAABGdBTUEAALGPC/xhBQAAACBj SFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+g vaeTAAAAEGNhTnYAABIsAAAEOAAADnsAAAAhmU1PIwAAHFRJREFUeNrt3Xt0VNXd8PHfmUsm ITOZmVyBQARsEKNJDFEuEQlPCSAvAkKwFaFLLG0XfSNIaRtQdMkrFtAKLtGuqjy1QEMfi9fQ WgvFQo0JgkYSgpJA7iE3MmSSTJLJTGZy3j8GA0WIiIZngO9nZbH27HPOnjO/c5L5sc/Z+4gA AAAAAAAAAAAAAAAAAAAAAAAAAAAAwBWk9FO7MTEx0dHRQUFBXq+3tbW1tLS0vb2dcAMA/F9G RsbixYvNZvOBAwcyMzPr6uqIybUsKioqNDQ0MDAwODg4Pj7+rrvu0mg0hAUA4OfS09Orqqrm zJkzatSod99997333iMm1xGTyZSWlhYcHEwoAAB+7q9//evmzZtHjBixevXqW265pba2NiEh gbD4g37v+dBqtdHR0S6Xy+l0Em4AgD/TarXx8fF5eXlJSUljx4794osvXC4XKYuf0PVf0yEh IcnJyVqttrOzMz8/v6enh3ADAPyZyWTS6/V2u3348OGRkZGqqtrt9oiICCLjD/qxl6W9vf3j jz/+5JNPOjs7ExISuJcFAODnFOXMqBRVVbVabW+ZyPiDfkwjenp6nE5na2trUVFRcHBwZGQk 4QYA+LO2trbu7u6wsLCGhgabzaYoitVqtdlsRMYfXImeD1VVVVWllwUA4Oe8Xm9RUVFycnJB QUF+fn5cXJzBYDhy5AiRuZaNHDnSYrEEBASYTKaEhIRJkyYZDAbCAgDwc75Bzvfeey+DnP1N f00ll5CQEBISYjAYPB6Pw+EoLS1ta2sj3AAA/5eRkfGTn/zEbDbn5eUxlRwAAAAAAAAAAAAA AACA8ynX84e/2OxAvVMJAQAAP8FcKQAA4CrgXylLUlLSxx9/rNfrv2U7EyZIVBQHFwAAXLoV Ivki8y5p3bfffnvhwoXf8g1NJsnPl7i4r19TvQgOGgBczzIyMj777LOysrKsrKzBgwcTkOvD HSI7RD6+pJQlPj6+vLzcZDJ9y/ckZQEAXDbf7Ldz5sxh9lt/058XhkwiT4j8P5FLywHmzJlz 8OBBh8NxbqWiyM9/Ln//uxw4ILt2yQ9/eHbRAw/Irl2Smyvbt0tysohIVJTk58v+/SIif/qT 5OdLfr74UiCtVlatkpwc2bNH7rlHDhyQ+HiOPgDgfIsWLcrOzi4sLExPT1+9evVtt92WkJBA WK51vxH5qYiIHLikXpb33ntv5cqV51VOnSr790tyskRFye23yz33nKlfuFA++EBSUiQyUubO ldxcGThQNBqxWCQ6WvLzZcwYsVjEYhHf6J8f/Ug++EDGjJHYWMnKkvx8iY+nlwUA8B+0Wm1l ZeX999+fnp6+a9cuRVHKy8u//R0L+E70Wy/L3SLDRV77BlsMGTKkvr7+vMrBg6W5WQoKpLFR Pv1U/vY3ERFFkQcflM2bJS9PTp2St9+WY8dk6lTp6ZGWFvE9y6i9XVpapKVFfBlIerr8z//I oUNy4oT87nccdwDABZhMJr1eb7fbIyIiIiMjVVX1lYmMP9D1S6sRIr8U+b8i3m+wkcFgcLlc 51X+858yf768/bZ8/LEcPix794rHIxEREhoqK1fKr399ZrWAACkru2jLGo1ER0tp6ZmXx49z 3AEAF9A7L5eqqlqttrdMZPxB/6Qso0RCRf785UuNyEqRqSI/62uj5uZmi8VyXmVtrdx7r4wd K7ffLqtWyfTp8sgj4vGIiDz22H8kHx0dF21Zo5FzJ4djojgAwAW1tbV1d3eHhYU1NDTYbDZF UaxWq81mIzL+oH9Slk9F0s95+brIayK7vmajo0ePjho16qv1Tqfs3y/798vhw7Jhg2g00tws drsMHnzmTtvzdHeLiOjO+WQej9TXy/e+d2b9732P4w4AuACv11tUVJScnLx58+b8/Py4uDiD wXDkyBEi4w/6J2VxilSe81IVaRZp+JqN9u3bt2zZsvMqZ84UjUYKCkRVZepUOXFCenpERP77 v2XJEmltlcOHJTxcUlPlwAH59FMRka4usdlk2jSpr5fubmltFVWV7Gy5/34pLJSWFsnI4LgD AC5s69atmzZtysnJycrK2rBhQ0FBASnL9eTSRgwNGDCguLg4KSnp3Mq0NPnTnyQnR/79b3nx RbnhhjP1iiIPPCDvvCMHD8qePbJxo8TEnN3qv/5L3n1XPvnk7CBnjUYefVQ++kh275Z58xgx BAC4qIyMjMOHD5eXlzOVHM7XmyMsX75cvVD9d1seMICUBQAAXBb1y3+XLl2qXqj+u/2XlAUA AFwm9UqVBwwQVUhZAAC4mlzX430vlp0oDIMGAMDP+MV3c1paGkfif9HevXsJAgDAz2kIAQAA 8H/XZspiG2XrsnRxdAEAuGZcgymLJ8hT8FCB2+jm6N5zzz3btm1LSUkhFABw6TIyMj777LOy sjLmZfErXBi6Zt11112zZs0iDgDwjaSnp2dmZq5du3bGjBlGo3HLli3ExE/o/H0HFSmbUlZ3 e113cLehzRCTEzM0b6hvSfWE6po7a9wmd3BjcOx7sdZyq8vsynksx7f00NJDvsKkNZN0Tp2q UUtmldSPrte6tbHvxx6beyz5lWRztflaPa7R0dEPPvjgiy++uGLFCs5yALh0ixYtys7OLiws nD9//urVq/fs2ZOQkMCc/f7A31OWxoTGmpSaxO2JA04P6Azv7L1DpWpiVeWkylv/cquxwWgb ZSv4ccH458YbWg2pT6V6DJ7clbmjt4w21ZtERNelE5HqCdWNCY2J2xMDOgK+uO+LHl3PtX1c a2trn3nmmRMnTnCKA8Cl02q18fHxO3bsSEpKGjt27Lp161wuFymLn/D3C0NOqzOgPcBSaTG0 Gqxl1kH5g0REFKlKrYp9PzasJMzQaog+GG06aWpMbFRURd+h1zv1IqLr0uk79PoOvW8Kudpx tTG5MaGlocZ6443/uPF6OLTkKwDwTZlMJr1eb7fbIyIiIiMjVVX1lYmMP/D3XpaoI1E1E2ry fpUXdiLMUmGJKopSvIorxOU2uotnF5fMKvGt1qPrMTYaL9aIqlGdVqex4cwKvt4XAADO0zuV qKqqWq22t0xk/IG/pyxBzUEpz6Y0xzbbR9iL7y1uSGq47Y+3KV5FROL/HG+sP5um6FwX/yyK qIraO2O/Kpx8AIALaGtr6+7uDgsLa2hosNlsiqJYrVabzUZk/MFVMGJI69ZGfB4x8q8j496K O33TaVWjBrQHBHQEOEOdQfag3h99p963vuJRRETVns1LFK8S1BLUPqjd97K3AADAubxeb1FR UXJyckFBQX5+flxcnMFg4EYWP+HvvSx1t9eJIpZKi6jSmNBorDcqPYqIDP9geNmUMn2n3lJh cYe4m+Kawo6HWcusIqLt1hochobEhkB7oMar0XfqRZXBnwyuubPGXGkO6Awom1Z27R9XnW7g wIG+cmho6JAhQ1pbWx0OB2c8APRt69atmzZtysnJycrK2rBhQ0FBASmLn9D6w06MGDHiYouc Yc7qCdUV36+oG1MX0B4Q92acrzfFfNKs8WiqJ1ZXTK5oimvSeDSRRyN7O1qCmoNqx9eWTymv nFQZ81GMxqOxVFm6rF2l00tPJZyK+SjGdrMt+pPowNbAa/W4RkVFrV+/fvLkySJyyy23TJ48 2el0lpSUXHDl8vJyfhMAwOfYsWPd3d0rVqxYvHhxWVnZsmXL+P+en7geH4voDfDuW7vvjt/d cQ3Py/KN8FhEAID/Y/ZbAABwFSBlAQAAVwG/n7C/H2jd2rSVadfhBwcA4OpFLwsAALgKkLIA AICrwLWZsthG2XofoPjtRUVFbdu2LTw8/GvXHDhw4JNPPvnaa69t27bNZLqcxwI8/vjj27Zt 27Zt25w5c766NDExMTQ0lLMWAHAdugbvZfEEeQoeKhjz4pjAlis97cqcOXNaWlpeeOEFr9fb 3n45c+xu3LhRp9M98sgjX100YMCAFStWrFmzprm5+WvbmT59ekpKSlRUVFdX19GjR3fu3NnS 0sLpDgCXIiMjY/HixWaz+cCBA5mZmXV1dcTEH3Bh6Ls0cODA4uLilpYWh8NxeY/RcjqdDofD 6/V+yz1JSEj44IMPnnzyyU2bNkVHR18wBwIAfFV6enpmZubatWtnzJhhNBq3bNlCTPyE3/ey KFI2pazu9rru4G5DmyEmJ2Zo3lDfkuoJ1TV31rhN7uDG4Nj3Yq3lVpfZlfNYjm/poaWHfIVJ aybpnDpVo5bMKqkfXa91a2Pfjz0291jyK8l9TCUXGBj40EMPjR49uq2tbffu3ecumjZt2pQp U8xmc21t7euvv15cXCwiv/3tbyMjI0Vk2LBhDzzwgIg8/PDDDocjPj5+5syZQ4YMEZHS0tKd O3eePHlSRJYuXepwOLZu3SoiJpPppZdeeuKJJ6qrqy+4M6Ghoc8//7yvvGbNGl/h5z//eWdn 58X2/9lnn+3NmXbt2rVs2TKLxUJHCwB8rUWLFmVnZxcWFs6fP3/16tV79uxJSEhgzn5/4O8p S2NCY01KTeL2xAGnB3SGd/beoVI1sapyUuWtf7nV2GC0jbIV/Lhg/HPjDa2G1KdSPQZP7src 0VtGm+pNIqLr0olI9YTqxoTGxO2JAR0BX9z3RY+up+/3nTdv3o033rh27VpVVTMyMnrrp0+f PmPGjFdeeeXkyZOJiYm//OUvV61adfr06TVr1mg0mlWrVh08eHDfvn0i4rswFBISkpeXd+LE Cbfbfffdd69atWrFihVut/sbBcFutz/88MOBgYHPPffcM888U1NTIyJOp7OPTc7t4zGbzV6v 95u+KQBch7RabXx8/I4dO5KSksaOHbtu3TqXy0XK4if8/cKQ0+oMaA+wVFoMrQZrmXVQ/iAR EUWqUqti348NKwkztBqiD0abTpoaExsVVdF36PVOvYjounT6Dr2+Qy+qiEjtuNqY3JjQ0lBj vfHGf9zY95sqijJx4sTs7Ozq6uqamprs7Oze+unTp+/cubOoqMhut+/fv7+iomLs2LEi0tHR 4XA4enp6XC6Xw+HovTCUm5u7f//+2trapqamN954w2Qy+XpcvhFVVR0OR0dHh3x55ejSLzwF BgZOmzYtJyenjy4ZAICPyWTS6/V2uz0iIiIyMlJVVV+ZyPgDf+9liToSVTOhJu9XeWEnwiwV lqiiKMWruEJcbqO7eHZxyawzz/nr0fUYG40Xa0TVqE6r09hwZgVf74vPggULUlNTz115yZIl ISEhBoPBdwVHRHy9GiJisVjMZvOPfvSjhQsXngmfTldbW9vH/oeHh8+bN2/YsGFWq1VRFBEJ DLxyNwVrtdolS5Z0dnbu2LGDcx0AvpbvD7WIqKqq1Wp7y0TGH/h7yhLUHJTybEpzbLN9hL34 3uKGpIbb/nib4lVEJP7P8cb6s2mKznXxz6KIqqjy5Sl3tiSSnZ193q0qPT09FztHfXfF/v73 vz/3ppOurr5GUy9fvtx3z8rp06f1ev369et9vw/nNq7R9Etfl6IoP/3pTyMjI9etW8dVIQC4 FG1tbd3d3WFhYQ0NDTabTVEUq9Vqs9mIjD+4CgY5a93aiM8jIj6PsFRaihYUqRo1oD0goCPA GeqM+OICnXWKRxERVXs2J1C8SlBLUPugdt/67YPODj9ub2//6mjktrY2p9M5dOjQyspKEem9 lNPW1uZwOCIiIj777LNLCq5ON3To0KeffvrEiRMiMnLkSPkyQens7DQaz+RbgwYNOm9Dl8ul 1+vPq/R4PCLSm/X3TVGUhx56aOjQoRs2bLi84dYAcB3yer1FRUXJycmbN2/Oz8+Pi4szGAzc yOIn/D1lqbu9ThSxVFpElcaERmO9UelRRGT4B8PLppTpO/WWCos7xN0U1xR2PMxaZhURbbfW 4DA0JDYE2gM1Xo2+Uy+qDP5kcM2dNeZKc0BnQNm0sr7ftKenJzc3d/bs2VVVVT09PbNnz+5d lJ2dPXfu3Pb29pKSEovFkpSUdPTo0WPHjl2wHY/H09jYOHHiRLvdbjabH3jgAbfbHRQUJCLl 5eXz58+/5ZZbHA7Hue37VFRUjBs37sMPP+zo6Ojs7PT17rjd7paWlnHjxtlsNt+8L330VS5Y sCAuLm7jxo2qqvomtettBwDQh61bt27atCknJycrK2vDhg0FBQWkLH7C31MWnUtXOamyZFaJ 0qOYq8zxO+J99UPzhqqKWjG5wml16jv15mrz4E8G925107s3lf6f0pPjT6oa1TfIedi+Ya4Q V+GiQp1LN3zv8LYhbX2/7+uvvx4SEvLEE084HI633nrrZz/7ma9+7969Go1m9uzZ4eHh7e3t paWlH374YR/tvPzyyw8++OCGDRsaGxvffPPNqVOnDh8+/NChQ7m5uTfffPOyZctaW1u3bds2 atSoc7favXv3DTfc8PTTT+v1+jVr1lRUVPjqt2/f/sMf/nDy5MkajabvQc533XVXYGDghg0b emt+85vfHD9+nDMeAPr21ltv+aYyN5vNeXl5mZmZxMRPKP6wE2lpV/S5yt4A7761++743R19 zMtyXdm7dy9BAAD4OWa/BQAAVwFSFgAAcBW4Bh+L+LW0bm3ayrTr8IMDAHD1opcFAABcBUhZ AADAVeDavDBkG2UzNhgDWy5/avzHH388NjZWRN5999133nnnO9/D/m4fAIBrzDWYsniCPAUP FYx5ccy3SVk2btyo0+keeeSRftrJ/m7/7rvvTk1NDQ8P7+7uLi0t3blzZ+8jkwAAfcvIyFi8 eLHZbD5w4EBmZmZdXR0x8QdcGLow3wOT+2+62P5u3263Z2VlPfroo2vXrnW5XL/+9a91uuvx VmsA+KbS09MzMzPXrl07Y8YMo9G4ZcsWYuIn/P5rTJGyKWV1t9d1B3cb2gwxOTFD84b6llRP qK65s8Ztcgc3Bse+F2stt7rMrpzHcnxLDy095Cv4Zr9VNWrJrJL60fVatzb2/dhjc48lv5J8 GVPJabXa++6778477xwwYEBpaen27dt7n+Q8atSo9PT0YcOGOZ3Oo0eP/uEPf/B6vfHx8TNn zvQ9pehK9nYcPHiwt/y3v/3tqaeeioqK6vuh0wAAEVm0aFF2dnZhYeH8+fNXr169Z8+ehIQE 5uz3B/6esjQmNNak1CRuTxxwekBneGeX5cxjk6smVlVOqrz1L7caG4y2UbaCHxeMf268odWQ +lSqx+DJXZk7estoU71JRHRdOhGpnlDdmNCYuD0xoCPgi/u+6NH1XN7+TJ06deLEia+88sqp U6d+8IMfLF++fNWqVV6v94YbbsjMzPz73//+6quvBgYGpqamarVar9cbEhKSl5d34sQJt9t9 9913r1q1asWKFVfyucqBgYGTJk2y2+1NTU2c7gDQN61WGx8fv2PHjqSkpLFjx65bt87lcpGy +Al/T1mcVmdAe4Cl0qL0KIZWw5laRapSq2Lfjw0rCROR6IPR9Un1jYmNN/z7Bn2H3vfcRF2X Tt9x9mHIteNqY3JjQktDReTGf9x4ePHhy9uf73//+//85z8LCwtFZOvWrS+88MKtt95aWFg4 ffr048ePv/nmm77VsrKyfIXc3Nzebd944420tLQhQ4aUl5dfgdANHz780UcfNRgMjY2N69ev v5J5EgBcpUwmk16vt9vtw4cPj4yMVFXVbrdHREQQGX/g7ylL1JGomgk1eb/KCzsRZqmwRBVF KV7FFeJyG93Fs4tLZpX4VuvR9RgbjRdrRNWoTqvT2HBmBV/vi8+CBQtSU1PPXXnJkiU9PRfu g9FqteHh4dXV1b6Xra2tra2tUVFRIhITE1NQUPDVTcLDw+fNmzds2DCr1aooiogEBgZemdDV 1NQ89thjFotl1qxZS5cufeqpp8haAKBvvj/UIqKqqlar7S0TGX/g7ylLUHNQyrMpzbHN9hH2 4nuLG5IabvvjbYpXEZH4P8cb68+mKTrXxT+LIqqiypen3NmSSHZ29u7du89d92L5yqWc319d unz5cofDsXXr1tOnT+v1+vXr1/eu3988Ho/NZrPZbC+99NLLL7+cnJx84MABzngA6ENbW1t3 d3dYWFhDQ4PNZlMUxWq12mw2IuMProIRQ1q3NuLziJF/HRn3Vtzpm06rGjWgPSCgI8AZ6gyy B/X+6DvPXAZSPIqIqNqzCYTiVYJagtoHtfte9hZEpL293fafzn1rl8ul15+9uuT1em02W0xM jO+l2WwOCQk5deqUiFRXV48YMeK8PdfpdEOHDn377beLi4ubmpqMRqOIaDSai7XfT1RVVVWV EUMA8LW8Xm9RUVFycnJBQUF+fn5cXJzBYOBGFj+h9Yed+OqXfa+62+sc0Q5tt7Z7QHfNnTVK jzLk4yEiovFoyqeUG9oMui5dZ1TnyZSTiqoE2YNERNOjqR1Xqyqqqd6k6lStRysiXoO35s4a 00mTN9B7fNZxV4gr+pPowNavuUYzcODAMWPGHD16VFEUr9fr++KfPn36yZMnFUVZsGCBwWDI yspSVdVms6Wnp+v1+qamJqvVOmPGjOPHj3d3d6ekpBiNxpqamkGDBi1cuDA4OPjIkSO9I3e+ 2v53FdL58+e73W6PxxMVFbVgwYLw8PDXX3/d6XRecOUrc28NAFwV3G73L37xi4KCgn/961/r 169vamp6/vnnCYs/8PeUxRnmrJ5QXfH9iroxdQHtAXFvxvl6U8wnzRqPpnpidcXkiqa4Jo1H E3k0srejJag5qHZ8bfmU8spJlTEfxWg8GkuVpcvaVTq99FTCqZiPYmw32y4lZamurr7pppvu v//+mTNnHj58uKWlpaKiwmg0zpkzZ9q0aZ2dna+++mpLS4uItLS0lJaWpqamzp07d/z48Q6H 49NPP1VVtayszFc5cuTId955x3dHy+eff36x9r+rkE6aNGnq1KmzZ88eN25ce3v7li1b6uvr L7YyKQsA9Dp27Fh3d/eKFSsWL15cVla2bNkyh8NBWPyB4g87kZZ2RZ+r7A3w7lu7747f3XEZ 87Jck/bu3UsQAAB+jtlvAQDAVYCUBQAAXAWux1EkWrc2bWXadfjBAQAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4+v1/4r93 3Oi24toAAAAASUVORK5CYII= --wjax6rc3szr63pja--