From debbugs-submit-bounces@debbugs.gnu.org Sun Sep 13 20:43:43 2020 Received: (at submit) by debbugs.gnu.org; 14 Sep 2020 00:43:43 +0000 Received: from localhost ([127.0.0.1]:52161 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kHcas-0000Ok-Q3 for submit@debbugs.gnu.org; Sun, 13 Sep 2020 20:43:43 -0400 Received: from lists.gnu.org ([209.51.188.17]:38524) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kHcan-0000OL-BI for submit@debbugs.gnu.org; Sun, 13 Sep 2020 20:43:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:48596) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kHcan-0005uC-3s for bug-gnu-emacs@gnu.org; Sun, 13 Sep 2020 20:43:37 -0400 Received: from mout.web.de ([212.227.15.4]:34855) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kHcal-0008FX-Ck for bug-gnu-emacs@gnu.org; Sun, 13 Sep 2020 20:43:36 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1600044211; bh=mDMgiskbcE3HTgIeZgm60X+f4GeUEqji10Hinwgn5vU=; h=X-UI-Sender-Class:From:To:Subject:Date; b=Q2DLgX6xulnkKpKDPvIsTCg5pjFr3/zVIrb0gqD3QirP6Q1qyPHGnab82ip3c5tJN FRPo6PnwF4RNtQ2OVXO+35S5cn/GXolJ8kZkCO21ztU9zqLDiRK91LqAxvY0KFz3Fj DmlNBjqOXih1smL6syZkMvRO41ULMe2z9BC8I3Zw= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Received: from drachen.dragon ([94.218.220.78]) by smtp.web.de (mrweb004 [213.165.67.108]) with ESMTPSA (Nemesis) id 0LuIAZ-1kgXYa1F71-011h2N for ; Mon, 14 Sep 2020 02:43:31 +0200 From: Michael Heerdegen To: bug-gnu-emacs@gnu.org Subject: 28.0.50; Emacs memory leaks Date: Mon, 14 Sep 2020 02:43:30 +0200 Message-ID: <87r1r5428d.fsf@web.de> MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:Rxn3SZDCLMfBGDAva62egUaYD9aSUzq0lfkX0nRju/9n/QhpoNT E3ADQSkrTGR9NQRyzn/PQFvFU4JNiq/xY4AMQQ/wAPNbnFN4pdMDqXvwvUgOtAhXNREgDAy eaarJbe2adPzcFIi8XAq06qHorkBAyTf5TqhfiSYdn5gKrudDb6KnrhbcUBRYT8DT0LziTx jHBtV+0Pa69bf4B2go+yg== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:aJFlK64F6bk=:5+s4Xx0yOi42lCfCMY3lOz FmPDkcFUxmwwkkMcYRKnHrSpgQ1/umAoRWsG2GRs/9Dd7Z7sS7h6DzXy+ijKn1BOquC1KzffH jv3nR/ZP1+4EHnqUKwaMgJkmYeOUHbDdl/7InlfrbhDxhhA5vSc2CETWIcuHSxw3HDVB7yT8K 0rKki6oad1fLG7X6h0mG+C48uf7Z2JvzOoD77+axFlGyJsTWPKNCWL7PTnO3ij3nlwKQEHZkW QI8LU2/KrOiT/8yiWNUF16yOZtMgKekDqL4YVdINmyGw0DoultEacgoxx3sGQjVwpHvNcjByk zVENgiCWme8x/93IpmmnzepNfkw59GoEEM/qeuRV6Sae/rP8ShIlAz71/d4EZTy8z11CoUwtO vxYwuE5V7u42V0c+xK3C+1pY9FnsL3KZkC7NInFFPx9S7/ZmyiYfKEQbjo3hMrsYYnBn9kQ17 qXShODTuwnNV1B/+yQCNK+p9JNflFgESCM5kPuZTFmGguxJyObkRuGj1OK8YBW/6Dgu65fyHU Mimace2hfhXsncfkW/BWEUwNVDQEFw20gh832jdsp7xz/82mr4Kd0wXWUdnHhX4yFcghkJP3D pwbZ8pogzj1589f+VgrY9U46Ygc92Xy/6l4PCAGoZyOsZRHrYm77GFMUH0RVv5pRRxyHa8guq kOGfyZvQs03XuIUvHNwYLZuVgrio5mqdkia0cbv+vTCxX3ANkFQo+Tv9eLJbpjRR5d2aX9m9a 8igoUg9W9kPCvAwfOLkETnM2qaV8g8B1hUdcdHKOWImCtb7r/zH5S0x8/JwrZ4Llx7WLBvO+E oXgtsFdFSfm7A6bBPCGRX3OLpq2icAbjDjPWxlIjJpoGJSBjYcRJgq0qqZq8k+o6uJrVsQTvb chu2LdnL+PtrfFff7sEYjLfgQPoh+ivPYwYlE8L98Z0RmwaHkEpVcFnWlBRc4k3pCKQM0O7Xn LpeYZu20JUu75Iw+8ppiWBqcRdYbtViGKr3NS80jkDOzxzTsXhDc2sj3MLHmWIZQQ50rsVRJJ 3f5AaTw6lcBZpVe3cZOMd7+p9F/wQo5lDZoJYzUhU+2R6KMVbpBigwyvrGjvqls8QgvgGysnT ePX2CTcvMkzcPCP7/LcXPBMv28SnOt4mMRZxSQeZiCJwzYjtlX6Vaeb8MwqrduLcupUjqqT4H n3HGuW+xu3CFJ6d1xH7PurRqD2aPW7oNb3dcMHhldhjCjzasWcuK+/2oBWUnaZ5+UfT3rYUMM cQ6vMFRxbEpxTfQ5Gf/buMIFIhbLnmWdoEGO04A== Received-SPF: pass client-ip=212.227.15.4; envelope-from=michael_heerdegen@web.de; helo=mout.web.de X-detected-operating-system: by eggs.gnu.org: First seen = 2020/09/13 20:43:31 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 0.6 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.4 (--) Hello, from time to time my Emacs' memory usage grows above 4 GB for no obvious reason. I didn't investigate when that happened so far, will do the next time. Anybody who sees the same problem is invited to provide details! Thanks, Michael. From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 14 11:00:02 2020 Received: (at control) by debbugs.gnu.org; 14 Sep 2020 15:00:02 +0000 Received: from localhost ([127.0.0.1]:55783 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kHpxZ-0008UO-Kj for submit@debbugs.gnu.org; Mon, 14 Sep 2020 11:00:01 -0400 Received: from eggs.gnu.org ([209.51.188.92]:56448) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kHpxY-0008Tm-60 for control@debbugs.gnu.org; Mon, 14 Sep 2020 11:00:00 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:53578) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kHpxR-0006hl-Sa for control@debbugs.gnu.org; Mon, 14 Sep 2020 10:59:53 -0400 Received: from [176.228.60.248] (port=2306 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kHpxQ-000325-Nn for control@debbugs.gnu.org; Mon, 14 Sep 2020 10:59:53 -0400 Date: Mon, 14 Sep 2020 17:59:57 +0300 Message-Id: <83zh5s9zf6.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <87r1r5428d.fsf@web.de> (message from Michael Heerdegen on Mon, 14 Sep 2020 02:43:30 +0200) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> X-Spam-Score: -1.1 (-) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.1 (--) merge 43389 43395 thanks From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 14 15:25:54 2020 Received: (at 43389) by debbugs.gnu.org; 14 Sep 2020 19:25:54 +0000 Received: from localhost ([127.0.0.1]:56275 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kHu6r-00058m-QH for submit@debbugs.gnu.org; Mon, 14 Sep 2020 15:25:54 -0400 Received: from relay3-d.mail.gandi.net ([217.70.183.195]:50355) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kHu6p-00058H-El for 43389@debbugs.gnu.org; Mon, 14 Sep 2020 15:25:52 -0400 X-Originating-IP: 91.129.97.241 Received: from mail.gandi.net (m91-129-97-241.cust.tele2.ee [91.129.97.241]) (Authenticated sender: juri@linkov.net) by relay3-d.mail.gandi.net (Postfix) with ESMTPSA id A67BE60004; Mon, 14 Sep 2020 19:25:42 +0000 (UTC) From: Juri Linkov To: Michael Heerdegen Subject: Re: bug#43389: 28.0.50; Emacs memory leaks Organization: LINKOV.NET References: <87r1r5428d.fsf@web.de> Date: Mon, 14 Sep 2020 22:09:05 +0300 In-Reply-To: <87r1r5428d.fsf@web.de> (Michael Heerdegen's message of "Mon, 14 Sep 2020 02:43:30 +0200") Message-ID: <87mu1sry72.fsf@mail.linkov.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) > from time to time my Emacs' memory usage grows above 4 GB for no obvious > reason. I didn't investigate when that happened so far, will do the > next time. > > Anybody who sees the same problem is invited to provide details! Maybe manually evaluating (clear-image-cache) helps to free memory? From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 14 20:32:33 2020 Received: (at 43389) by debbugs.gnu.org; 15 Sep 2020 00:32:33 +0000 Received: from localhost ([127.0.0.1]:56685 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kHytd-0006lD-Ix for submit@debbugs.gnu.org; Mon, 14 Sep 2020 20:32:33 -0400 Received: from mout.web.de ([212.227.17.11]:60249) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kHytY-0006kq-9l for 43389@debbugs.gnu.org; Mon, 14 Sep 2020 20:32:32 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1600129941; bh=IfKAMqARP1oDjzy/cUaHT9RcgyTlB15qmYlFoiYvvoU=; h=X-UI-Sender-Class:From:To:Cc:Subject:References:Date:In-Reply-To; b=oRDZSG7f7wcqk7Xu3doRC+w6pgoYLh2JFP9M0Fq5EEV7RLKe3BE/OK29Bmd1u+NTu MsGD4Sh4SFh7HJ0UApvVhA12+uibMgUsZkImh44j5Xtot0FCRlDa5D9vMzA/GwrAAF 8lB+u11feQEkEk/81TEezEH2nA2hOeo60W9mQWZE= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Received: from drachen.dragon ([94.218.220.78]) by smtp.web.de (mrweb105 [213.165.67.124]) with ESMTPSA (Nemesis) id 1M43GU-1kHytQ3Zy4-0009Zi; Tue, 15 Sep 2020 02:32:20 +0200 From: Michael Heerdegen To: Juri Linkov Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <87mu1sry72.fsf@mail.linkov.net> Date: Tue, 15 Sep 2020 02:32:19 +0200 In-Reply-To: <87mu1sry72.fsf@mail.linkov.net> (Juri Linkov's message of "Mon, 14 Sep 2020 22:09:05 +0300") Message-ID: <875z8fc224.fsf@web.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:o4tulE/57OEcraCSvLCeFyCg01B+BGzUGpalom5z4EmrwnmMrme Ew+Q0wnSangEnb2K0czSc/UMAWpSu6SpiWK31rukFemeTA3oen+9/TIuHTv0Ijjh27zNlBZ tLHy2Q9Ngatak43PApJv0pfy2HKJNzEtFSG8Mo4gkHRtxGqx0Hwm2zrCywYwszgkD2169bQ GzTvo89CztfbMG9bG8f0g== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:7wZ601EDXsw=:viJqBPdk5NfWGf9Y3/TGZK yEY2Pjx2BAtBnHji5kpU1bnM7oSpNK22VTiggEBiW0bnaiKCUAv6ubUUnRjI8C0hDRFj2kcbV ZZwhknwlLblIZR0bSvL85OcSL65eeHBmEEN+e0wBFAAC3w7UAMXrfG142IjSSIxQdh+DvqTPI gfEeeTE+lkJY5yzlj79uiQQE1/lAUBBEVyegIi3nMcjUwjpB8bKHBFn+88Y00JosKXl74vJDt 2kcOmMseChqVzeiSX16PJkxMBl4+/yuEsJ2H81KjX535sQlkIgc254gmppF5EOhMv5XRmoyEH HJKNFIRDSR0Sm3PLW9Bmcs+q9oMLjntthHv261Sqbix8ZUZPfqTD0gYK4bvntXx/AJ9WYlQ9M +v7HDulFIkRgA22wcn1KPKdoo2YNpQYhLv3J+y5Fb8U2eQAhIkkvQv2Kcazaz2AngzDFM9hGs sI4RgGQVPDdgFup+4YrFeCew4/MQKtvlb/k4JIT9TfA78YvkGssKNmwnJIa1eJ68vNpZ3HaF7 6aoUYH6hiDe/7xpGXDzaq471GXiufoAEG3gaAMrtXdNAXaccFH7lvy+o5nUrTecsDcgVN+biH YPw5o14HWaVNXRxRufnBkjuDMLF/C08LqoInkEZX/gnyuDa/kneGhxYCZlLldpRTmBbt9uOkS GmhNpa2hP1BpDYLNWB+zAj6Y6WL7Rxy5aMiCPQqaR0Mjiw1Wj+a00RyKXUeS7aWuUEqnbnnbS d4Q5wGW43FrkdMCfoAjL/2oocy8PJ7ZouQuLmDXaiKPy3iEpYNBNHpMNZLv9V4wm89HF4P0hS 2puPaXMQyI9e4BAT8ibjkfCyj3hCcxxy84o9/G97ZTH5OkERpHmAkXiaYJz9s6jqamvwQnJTz IkgKgE2bXGU5AFKBtIE7u+dm/fYQf15P/Pvww58wihSDtlYoJtn8IqWK1CfSSyLTEpGsi0N2F ydVAOrieRZlzeCBmjhj/xlFmx6gPzds97FshMsnyKgBxY6KCLkPlplV2wIs3m2Olq8XqptMkf Wd3d8fUVHKCBTf4eKLhEME1rcYYS9r1osyDGIeB0z6ozsF67lxt+emneEjtsU0lwEkprMcrdj 7fUWRnmYabz7zGN7Yro0s8zCpawPEEW+TIQZhYEjqZSJq2H+Ei9beXlQUiVJbG7my2Kt+mUBe uf/JNnljDYGcAA2zXxaVfDFSPAr/cbUuasr01LwCqOqbX3RgFBRRrogtU1jxJypOSWCCO+PGZ ztXU4tKDJjC7qRfeuasR4+1fT2/A3yRzL+pAdRw== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Juri Linkov writes: > Maybe manually evaluating (clear-image-cache) helps to free memory? I'll try the next time when this happens. I would not expect the image cache to be the cause though: I don't view many images in Emacs, and I typically rebuild and restart Emacs daily. Thanks, Michael. From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 15 14:24:09 2020 Received: (at submit) by debbugs.gnu.org; 15 Sep 2020 18:24:09 +0000 Received: from localhost ([127.0.0.1]:60556 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kIFcc-00080J-Hf for submit@debbugs.gnu.org; Tue, 15 Sep 2020 14:24:08 -0400 Received: from lists.gnu.org ([209.51.188.17]:53022) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kIFCA-0007Kk-7T for submit@debbugs.gnu.org; Tue, 15 Sep 2020 13:56:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:54360) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kIFC9-0000N2-Nl for bug-gnu-emacs@gnu.org; Tue, 15 Sep 2020 13:56:45 -0400 Received: from se16.route25.eu ([185.95.31.95]:57076) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kIFC3-0000I9-IR for bug-gnu-emacs@gnu.org; Tue, 15 Sep 2020 13:56:44 -0400 Date: Tue, 15 Sep 2020 19:54:18 +0200 From: Russell Adams To: bug-gnu-emacs@gnu.org Subject: Re: bug#43389: 28.0.50; Emacs memory leaks Message-ID: <20200915175418.GV20869@maokai> References: <87r1r5428d.fsf@web.de> <87mu1sry72.fsf@mail.linkov.net> <875z8fc224.fsf@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <875z8fc224.fsf@web.de> X-Originating-IP: 185.87.184.57 X-SpamExperts-Domain: out.pcextreme.nl X-SpamExperts-Username: 185.87.184.57 Authentication-Results: route25.eu; auth=pass smtp.auth=185.87.184.57@out.pcextreme.nl X-SpamExperts-Outgoing-Class: ham X-SpamExperts-Outgoing-Evidence: Combined (0.04) X-Recommended-Action: accept X-Filter-ID: Mvzo4OR0dZXEDF/gcnlw0Z1apovzGPsYhEeBL1aoZmqpSDasLI4SayDByyq9LIhVYZgsGZdlg8/X 7HOmGsFLO0TNWdUk1Ol2OGx3IfrIJKywOmJyM1qr8uRnWBrbSAGD0VsY0HzEkBzUTjuObUvkgtQ5 3pMmTXeVbblO3cSIiVBmHnzib4qPkxwjLKTw23HFJODXbtOodkPED+RkHjVGH9gpfPe2lDQBFQc5 pWKjU8U1TnR+f0U9cu064nZcMieLAqdkk6hppCDsqsBwLjHur1XxB26GtR7aQdGQ3RxVouvcHykr Pyl3nQdByUhCbiQvaHwJ2eESrUp0Iw/gSJ3HqMuR600P9eQ3vodupN36MrkzGQZS068e3EYTgNAB jZkD8TzPF4eG61o+cxFZrUIXowfXJosMX5ZQSlYSVlCDu2na8Lc2iK0mXNgodhRh0E6+UMVFei1G 2PrSIU9EwioS70yFBF2moUWeHNDS4qZDIDBdjx85xQq9VD42UbTRudBo31/E3ahF5MMcDI7KdpjQ KULbtCr8aoTjHIUEuG3LCVsCW2UOyugPPaOGK1ZclZhyJ1oAKHx1qHjvOGXm6QB+mk6ZTzCPKsFf twxbkg5OTEJBSZDxFdMdjhWKQRs1y634ml6J02QLTAyUTKV7I0jE4h9ZHqYlazF4Aep3JB627Ayu ua6FsPyMIbQ1KHHlI1zeYu8C5mJ57ZG9g9QfbBpIF2o+aAI+IDjKMqLo+QDcwOuH+to72M/QpS+e gX0iIQ5z0z6bhalFEM/pjPCQA+BAliarbcyhnYf9GTlerAzRHZN69grz8ej5dy2YYel31/MJWnPy s1dXFpJmIHq3Qu8LKWfEqIIt9LNNqgzFi5X2tkdRXxKF5tPxTxfD0dMN+t5ZJWGWNNNyiNca2a3Z JdzTSfoPFZIShBSdpVJW5HbjQTAnC1PYnSgc+uNcEhwDf0aVA+O/xvrkPTGnkei6PbzPB13wAj1Q 9I3Ii/NI8GPErnjxJG7yzcfoHGlmY2l6KDJ6KdL65BimP4HoDlSIsZTwUZze41SyeXTE+1fVMg+Y M1KwDH7YITzl6JgvROCog9ka X-Report-Abuse-To: spam@semaster01.route25.eu Received-SPF: pass client-ip=185.95.31.95; envelope-from=rladams@adamsinfoserv.com; helo=se16.route25.eu X-detected-operating-system: by eggs.gnu.org: First seen = 2020/09/15 13:56:35 X-ACL-Warn: Detected OS = Linux 3.11 and newer [fuzzy] X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Tue, 15 Sep 2020 14:24:04 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) On Tue, Sep 15, 2020 at 02:32:19AM +0200, Michael Heerdegen wrote: > I'll try the next time when this happens. I would not expect the image > cache to be the cause though: I don't view many images in Emacs, and I > typically rebuild and restart Emacs daily. htop says my emacs RSS is now 5148MB. I ran M-x garbage-collect and it ran at 100% cpu for 5 minutes and released nothing. I also tried manually executing (clear-image-cache) and nothing. I run Emacs 27.1 as a daemon, uptime 4 days, 3 hours, 22 minutes, 53 seconds. Yesterday conki was reporting Emacs at 28% memory usage, today it's at 33%. No dramatically huge files loaded, just a few megabytes of text. No inline images (local or remote). In GNU Emacs 27.1 (build 2, x86_64-pc-linux-gnu, X toolkit, Xaw3d scroll bars) of 2020-08-17 built on maokai Windowing system distributor 'The X.Org Foundation', version 11.0.12008000 System Description: Gentoo/Linux Recent messages: Unable to load color "unspecified-fg" [4 times] 4 days, 3 hours, 22 minutes, 53 seconds Configured using: 'configure --prefix=/home/adamsrl/.local/stow/emacs-27.1 --without-libsystemd --without-dbus --with-x-toolkit=lucid' Configured features: XAW3D XPM JPEG TIFF GIF PNG RSVG SOUND GSETTINGS GLIB NOTIFY INOTIFY ACL GNUTLS LIBXML2 FREETYPE HARFBUZZ XFT ZLIB TOOLKIT_SCROLL_BARS LUCID X11 XDBE XIM MODULES THREADS JSON PDUMPER LCMS2 GMP Important settings: value of $LANG: en_US.utf8 locale-coding-system: utf-8-unix Major mode: Org Minor modes in effect: recentf-mode: t flyspell-mode: t pdf-occur-global-minor-mode: t helm-mode: t helm-ff-cache-mode: t helm--remap-mouse-mode: t async-bytecomp-package-mode: t shell-dirtrack-mode: t show-paren-mode: t savehist-mode: t global-hl-line-mode: t override-global-mode: t tooltip-mode: t global-eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t column-number-mode: t line-number-mode: t auto-fill-function: org-auto-fill-function abbrev-mode: t Load-path shadows: /home/adamsrl/.quicklisp/dists/quicklisp/software/slime-v2.24/slime-tests hides /home/adamsrl/.config/emacs/elpa/slime-20200810.224/slime-tests /home/adamsrl/.quicklisp/dists/quicklisp/software/slime-v2.24/slime hides /home/adamsrl/.config/emacs/elpa/slime-20200810.224/slime /home/adamsrl/.quicklisp/dists/quicklisp/software/slime-v2.24/slime-autoloads hides /home/adamsrl/.config/emacs/elpa/slime-20200810.224/slime-autoloads /home/adamsrl/.config/emacs/elpa/org-20200810/ob-stan hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-stan /home/adamsrl/.config/emacs/elpa/org-20200810/org-macs hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/org-macs /home/adamsrl/.config/emacs/elpa/org-20200810/ob-gnuplot hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-gnuplot /home/adamsrl/.config/emacs/elpa/org-20200810/org-num hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/org-num /home/adamsrl/.config/emacs/elpa/org-20200810/ob-sql hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-sql /home/adamsrl/.config/emacs/elpa/org-20200810/org-lint hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/org-lint /home/adamsrl/.config/emacs/elpa/org-20200810/ol hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ol /home/adamsrl/.config/emacs/elpa/org-20200810/org-indent hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/org-indent /home/adamsrl/.config/emacs/elpa/org-20200810/ob-perl hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-perl /home/adamsrl/.config/emacs/elpa/org-20200810/ob-lisp hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-lisp /home/adamsrl/.config/emacs/elpa/org-20200810/ob-maxima hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-maxima /home/adamsrl/.config/emacs/elpa/org-20200810/ob-tangle hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-tangle /home/adamsrl/.config/emacs/elpa/org-20200810/ob-vala hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-vala /home/adamsrl/.config/emacs/elpa/org-20200810/org-tempo hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/org-tempo /home/adamsrl/.config/emacs/elpa/org-20200810/ob-comint hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-comint /home/adamsrl/.config/emacs/elpa/org-20200810/org-list hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/org-list /home/adamsrl/.config/emacs/elpa/org-20200810/org-src hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/org-src /home/adamsrl/.config/emacs/elpa/org-20200810/ol-irc hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ol-irc /home/adamsrl/.config/emacs/elpa/org-20200810/ob-hledger hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-hledger /home/adamsrl/.config/emacs/elpa/org-20200810/org-goto hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/org-goto /home/adamsrl/.config/emacs/elpa/org-20200810/ox-latex hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ox-latex /home/adamsrl/.config/emacs/elpa/org-20200810/ob-latex hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-latex /home/adamsrl/.config/emacs/elpa/org-20200810/ob-org hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-org /home/adamsrl/.config/emacs/elpa/org-20200810/ob-exp hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-exp /home/adamsrl/.config/emacs/elpa/org-20200810/ob-abc hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-abc /home/adamsrl/.config/emacs/elpa/org-20200810/ox hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ox /home/adamsrl/.config/emacs/elpa/org-20200810/ob-groovy hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-groovy /home/adamsrl/.config/emacs/elpa/org-20200810/org-mouse hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/org-mouse /home/adamsrl/.config/emacs/elpa/org-20200810/ox-publish hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ox-publish /home/adamsrl/.config/emacs/elpa/org-20200810/ob-coq hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-coq /home/adamsrl/.config/emacs/elpa/org-20200810/ob-ocaml hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-ocaml /home/adamsrl/.config/emacs/elpa/org-20200810/org-version hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/org-version /home/adamsrl/.config/emacs/elpa/org-20200810/org-habit hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/org-habit /home/adamsrl/.config/emacs/elpa/org-20200810/org-agenda hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/org-agenda /home/adamsrl/.config/emacs/elpa/org-20200810/org-ctags hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/org-ctags /home/adamsrl/.config/emacs/elpa/org-20200810/org-attach hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/org-attach /home/adamsrl/.config/emacs/elpa/org-20200810/org-colview hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/org-colview /home/adamsrl/.config/emacs/elpa/org-20200810/ol-rmail hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ol-rmail /home/adamsrl/.config/emacs/elpa/org-20200810/ob-matlab hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-matlab /home/adamsrl/.config/emacs/elpa/org-20200810/org-install hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/org-install /home/adamsrl/.config/emacs/elpa/org-20200810/ol-bibtex hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ol-bibtex /home/adamsrl/.config/emacs/elpa/org-20200810/ob-eval hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-eval /home/adamsrl/.config/emacs/elpa/org-20200810/ob-makefile hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-makefile /home/adamsrl/.config/emacs/elpa/org-20200810/ob-calc hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-calc /home/adamsrl/.config/emacs/elpa/org-20200810/ob-python hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-python /home/adamsrl/.config/emacs/elpa/org-20200810/org-timer hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/org-timer /home/adamsrl/.config/emacs/elpa/org-20200810/org-crypt hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/org-crypt /home/adamsrl/.config/emacs/elpa/org-20200810/ox-org hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ox-org /home/adamsrl/.config/emacs/elpa/org-20200810/org-clock hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/org-clock /home/adamsrl/.config/emacs/elpa/org-20200810/ob-ruby hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-ruby /home/adamsrl/.config/emacs/elpa/org-20200810/ob-fortran hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-fortran /home/adamsrl/.config/emacs/elpa/org-20200810/ol-docview hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ol-docview /home/adamsrl/.config/emacs/elpa/org-20200810/org-pcomplete hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/org-pcomplete /home/adamsrl/.config/emacs/elpa/org-20200810/org-macro hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/org-macro /home/adamsrl/.config/emacs/elpa/org-20200810/org-element hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/org-element /home/adamsrl/.config/emacs/elpa/org-20200810/ob-ditaa hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-ditaa /home/adamsrl/.config/emacs/elpa/org-20200810/org-table hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/org-table /home/adamsrl/.config/emacs/elpa/org-20200810/ob hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob /home/adamsrl/.config/emacs/elpa/org-20200810/ob-mscgen hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-mscgen /home/adamsrl/.config/emacs/elpa/org-20200810/org-footnote hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/org-footnote /home/adamsrl/.config/emacs/elpa/org-20200810/ol-eww hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ol-eww /home/adamsrl/.config/emacs/elpa/org-20200810/ob-lob hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-lob /home/adamsrl/.config/emacs/elpa/org-20200810/ob-haskell hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-haskell /home/adamsrl/.config/emacs/elpa/org-20200810/org-faces hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/org-faces /home/adamsrl/.config/emacs/elpa/org-20200810/ox-md hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ox-md /home/adamsrl/.config/emacs/elpa/org-20200810/ob-table hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-table /home/adamsrl/.config/emacs/elpa/org-20200810/ob-awk hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-awk /home/adamsrl/.config/emacs/elpa/org-20200810/org-mobile hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/org-mobile /home/adamsrl/.config/emacs/elpa/org-20200810/org-archive hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/org-archive /home/adamsrl/.config/emacs/elpa/org-20200810/ob-ref hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-ref /home/adamsrl/.config/emacs/elpa/org-20200810/ob-emacs-lisp hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-emacs-lisp /home/adamsrl/.config/emacs/elpa/org-20200810/ob-dot hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-dot /home/adamsrl/.config/emacs/elpa/org-20200810/org-duration hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/org-duration /home/adamsrl/.config/emacs/elpa/org-20200810/ob-js hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-js /home/adamsrl/.config/emacs/elpa/org-20200810/org hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/org /home/adamsrl/.config/emacs/elpa/org-20200810/ox-beamer hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ox-beamer /home/adamsrl/.config/emacs/elpa/org-20200810/ox-ascii hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ox-ascii /home/adamsrl/.config/emacs/elpa/org-20200810/org-loaddefs hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/org-loaddefs /home/adamsrl/.config/emacs/elpa/org-20200810/ob-shell hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-shell /home/adamsrl/.config/emacs/elpa/org-20200810/ob-scheme hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-scheme /home/adamsrl/.config/emacs/elpa/org-20200810/org-entities hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/org-entities /home/adamsrl/.config/emacs/elpa/org-20200810/ob-ebnf hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-ebnf /home/adamsrl/.config/emacs/elpa/org-20200810/ob-plantuml hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-plantuml /home/adamsrl/.config/emacs/elpa/org-20200810/org-keys hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/org-keys /home/adamsrl/.config/emacs/elpa/org-20200810/ob-lilypond hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-lilypond /home/adamsrl/.config/emacs/elpa/org-20200810/ob-C hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-C /home/adamsrl/.config/emacs/elpa/org-20200810/ob-J hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-J /home/adamsrl/.config/emacs/elpa/org-20200810/ol-mhe hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ol-mhe /home/adamsrl/.config/emacs/elpa/org-20200810/ol-info hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ol-info /home/adamsrl/.config/emacs/elpa/org-20200810/ob-sed hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-sed /home/adamsrl/.config/emacs/elpa/org-20200810/ob-lua hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-lua /home/adamsrl/.config/emacs/elpa/org-20200810/ob-octave hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-octave /home/adamsrl/.config/emacs/elpa/org-20200810/org-attach-git hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/org-attach-git /home/adamsrl/.config/emacs/elpa/org-20200810/ob-forth hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-forth /home/adamsrl/.config/emacs/elpa/org-20200810/ol-w3m hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ol-w3m /home/adamsrl/.config/emacs/elpa/org-20200810/ob-ledger hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-ledger /home/adamsrl/.config/emacs/elpa/org-20200810/ob-screen hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-screen /home/adamsrl/.config/emacs/elpa/org-20200810/ob-java hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-java /home/adamsrl/.config/emacs/elpa/org-20200810/org-datetree hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/org-datetree /home/adamsrl/.config/emacs/elpa/org-20200810/ob-sqlite hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-sqlite /home/adamsrl/.config/emacs/elpa/org-20200810/ob-shen hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-shen /home/adamsrl/.config/emacs/elpa/org-20200810/org-id hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/org-id /home/adamsrl/.config/emacs/elpa/org-20200810/ob-asymptote hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-asymptote /home/adamsrl/.config/emacs/elpa/org-20200810/ox-html hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ox-html /home/adamsrl/.config/emacs/elpa/org-20200810/ob-io hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-io /home/adamsrl/.config/emacs/elpa/org-20200810/ox-man hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ox-man /home/adamsrl/.config/emacs/elpa/org-20200810/org-feed hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/org-feed /home/adamsrl/.config/emacs/elpa/org-20200810/org-protocol hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/org-protocol /home/adamsrl/.config/emacs/elpa/org-20200810/ob-eshell hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-eshell /home/adamsrl/.config/emacs/elpa/org-20200810/ox-texinfo hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ox-texinfo /home/adamsrl/.config/emacs/elpa/org-20200810/ob-core hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-core /home/adamsrl/.config/emacs/elpa/org-20200810/ob-clojure hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-clojure /home/adamsrl/.config/emacs/elpa/org-20200810/ob-R hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-R /home/adamsrl/.config/emacs/elpa/org-20200810/ox-icalendar hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ox-icalendar /home/adamsrl/.config/emacs/elpa/org-20200810/ob-picolisp hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-picolisp /home/adamsrl/.config/emacs/elpa/org-20200810/org-plot hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/org-plot /home/adamsrl/.config/emacs/elpa/org-20200810/org-compat hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/org-compat /home/adamsrl/.config/emacs/elpa/org-20200810/org-capture hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/org-capture /home/adamsrl/.config/emacs/elpa/org-20200810/ol-bbdb hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ol-bbdb /home/adamsrl/.config/emacs/elpa/org-20200810/org-inlinetask hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/org-inlinetask /home/adamsrl/.config/emacs/elpa/org-20200810/ol-eshell hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ol-eshell /home/adamsrl/.config/emacs/elpa/org-20200810/ob-css hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-css /home/adamsrl/.config/emacs/elpa/org-20200810/ob-processing hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-processing /home/adamsrl/.config/emacs/elpa/org-20200810/ob-sass hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ob-sass /home/adamsrl/.config/emacs/elpa/org-20200810/ox-odt hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ox-odt /home/adamsrl/.config/emacs/elpa/org-20200810/ol-gnus hides /home/adamsrl/.local/stow/emacs-27.1/share/emacs/27.1/lisp/org/ol-gnus Features: (shadow sort mail-extr warnings emacsbug time org-num org-tempo tempo org-protocol org-mouse org-mobile org-indent org-goto org-feed org-crypt org-attach lisp-mnt mm-archive org-archive timezone gnutls network-stream url-cache org-clock conf-mode image-file ffap cal-move tabify dabbrev ob-org help-fns radix-tree sh-script executable log-edit pcvs-util add-log smerge-mode diff vc helm-command helm-elisp helm-eval edebug backtrace mule-util misearch multi-isearch vc-git sendmail term/rxvt term/screen term/xterm xterm rx mhtml-mode css-mode-expansions css-mode smie eww mm-url url-queue js-mode-expansions js cc-mode-expansions cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs html-mode-expansions sgml-mode winner recentf tree-widget helm-x-files org-duration cal-iso vc-dispatcher vc-hg diff-mode flyspell ispell ol-eww ol-rmail ol-mhe ol-irc ol-info ol-gnus nnir ol-docview doc-view ol-bibtex bibtex ol-bbdb ol-w3m face-remap org-agenda server company-oddmuse company-keywords company-etags company-gtags company-dabbrev-code company-dabbrev company-files company-clang company-capf company-cmake company-semantic company-template company-bbdb org-caldav org-id url-dav url-http url-auth url-gw nsm pdf-occur ibuf-ext ibuffer ibuffer-loaddefs tablist tablist-filter semantic/wisent/comp semantic/wisent semantic/wisent/wisent semantic/util-modes semantic/util semantic semantic/tag semantic/lex semantic/fw mode-local cedet pdf-isearch let-alist pdf-misc imenu pdf-tools cus-edit cus-start cus-load pdf-view jka-compr pdf-cache pdf-info tq pdf-util image-mode exif org-noter ox-odt rng-loc rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex ox-icalendar ox-html table ox-ascii ox-publish ox org-element avl-tree gnus-icalendar org-capture gnus-art mm-uu mml2015 mm-view mml-smime smime dig gnus-sum shr svg dom gnus-group gnus-undo gnus-start gnus-cloud nnimap nnmail mail-source utf7 netrc nnoo gnus-spec gnus-int gnus-range message rmc puny dired dired-loaddefs rfc822 mml mml-sec epa derived epg epg-config mailabbrev mailheader gnus-win gnus nnheader gnus-util rmail rmail-loaddefs mail-utils wid-edit mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr gmm-utils icalendar ob-sql ob-shell skeleton appt diary-lib diary-loaddefs slime-fancy slime-indentation slime-cl-indent cl-indent slime-trace-dialog slime-fontifying-fu slime-package-fu slime-references slime-compiler-notes-tree slime-scratch slime-presentations bridge slime-macrostep macrostep slime-mdot-fu slime-enclosing-context slime-fuzzy slime-fancy-trace slime-fancy-inspector slime-c-p-c slime-editing-commands slime-autodoc slime-repl slime-parse slime compile etags fileloop generator xref project arc-mode archive-mode hyperspec orgalist the-org-mode-expansions org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-footnote org-src ob-comint org-pcomplete org-list org-faces org-entities noutline outline org-version ob-emacs-lisp ob-core ob-eval org-table ol org-keys org-compat org-macs org-loaddefs find-func cal-menu calendar cal-loaddefs helm-recoll helm-for-files helm-bookmark helm-adaptive helm-info bookmark text-property-search pp helm-external helm-net xml url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf url-util mailcap ido helm-mode helm-files helm-buffers helm-occur helm-tags helm-locate helm-grep helm-regexp helm-utils helm-help helm-types helm async-bytecomp helm-global-bindings helm-easymenu helm-source eieio-compat helm-multi-match helm-lib async helm-config vc-fossil expand-region text-mode-expansions er-basic-expansions expand-region-core expand-region-custom company pcase multiple-cursors mc-hide-unmatched-lines-mode mc-separate-operations rectangular-region-mode mc-mark-pop mc-mark-more thingatpt mc-cycle-cursors mc-edit-lines multiple-cursors-core advice rect paredit htmlize monky tramp tramp-loaddefs trampver tramp-integration files-x tramp-compat shell pcomplete comint ansi-color ring parse-time iso8601 time-date ls-lisp format-spec view ediff ediff-merg ediff-mult ediff-wind ediff-diff ediff-help ediff-init ediff-util bindat cl color rainbow-delimiters cl-extra help-mode paren edmacro kmacro savehist dracula-theme hl-line use-package use-package-ensure use-package-delight use-package-diminish use-package-bind-key bind-key easy-mmode use-package-core finder-inf slime-autoloads info package easymenu browse-url url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs password-cache json subr-x map url-vars seq byte-opt gv bytecomp byte-compile cconv cl-loaddefs cl-lib tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite charscript charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote threads inotify lcms2 dynamic-setting system-font-setting font-render-setting x-toolkit x multi-tty make-network-process emacs) Memory information: ((conses 16 1997471 1645948) (symbols 48 52500 1) (strings 32 328202 267401) (string-bytes 1 10837531) (vectors 16 133457) (vector-slots 8 2460308 965956) (floats 8 808 4810) (intervals 56 184154 78227) (buffers 1000 129)) ------------------------------------------------------------------ Russell Adams RLAdams@AdamsInfoServ.com PGP Key ID: 0x1160DCB3 http://www.adamsinfoserv.com/ Fingerprint: 1723 D8CA 4280 1EC9 557F 66E8 1154 E018 1160 DCB3 From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 15 14:52:46 2020 Received: (at 43389) by debbugs.gnu.org; 15 Sep 2020 18:52:46 +0000 Received: from localhost ([127.0.0.1]:60585 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kIG4M-0000EW-Dn for submit@debbugs.gnu.org; Tue, 15 Sep 2020 14:52:46 -0400 Received: from eggs.gnu.org ([209.51.188.92]:60580) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kIG4K-0000EH-OC for 43389@debbugs.gnu.org; Tue, 15 Sep 2020 14:52:45 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:51467) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kIG4E-0007hw-Fn; Tue, 15 Sep 2020 14:52:38 -0400 Received: from [176.228.60.248] (port=1517 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kIG4D-0005lM-W2; Tue, 15 Sep 2020 14:52:38 -0400 Date: Tue, 15 Sep 2020 21:52:45 +0300 Message-Id: <838sda98jm.fsf@gnu.org> From: Eli Zaretskii To: Russell Adams In-Reply-To: <20200915175418.GV20869@maokai> (message from Russell Adams on Tue, 15 Sep 2020 19:54:18 +0200) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <87mu1sry72.fsf@mail.linkov.net> <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Tue, 15 Sep 2020 19:54:18 +0200 > From: Russell Adams > > htop says my emacs RSS is now 5148MB. I ran M-x garbage-collect and it ran > at 100% cpu for 5 minutes and released nothing. I also tried manually > executing (clear-image-cache) and nothing. Can you use some utility that produces a memory map of an application, and see how much of those 5GB are actually free for allocation by Emacs? Also, do you see any libraries used by Emacs that have high memory usage? > I run Emacs 27.1 as a daemon, uptime 4 days, 3 hours, 22 minutes, 53 > seconds. Yesterday conki was reporting Emacs at 28% memory usage, > today it's at 33%. 28% and 33% of what amount? If your RSS is 5GB after 4 days of uptime, and the memory footprint grows at a constant rate, it would mean more than 1GB per day. But I'm guessing that 33% - 28% = 5% of your total memory is much less than 1GB. In which case the memory footprint must sometimes jump by very large amounts, not grow slowly and monotonically each day. Right? So which events cause those sudden increases in RSS? Also, what is your value of gc-cons-threshold, and do you have some customizations that change its value under some conditions? If so, please tell the details. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 15 17:12:24 2020 Received: (at submit) by debbugs.gnu.org; 15 Sep 2020 21:12:24 +0000 Received: from localhost ([127.0.0.1]:60702 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kIIFU-0003bH-3C for submit@debbugs.gnu.org; Tue, 15 Sep 2020 17:12:24 -0400 Received: from lists.gnu.org ([209.51.188.17]:47610) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kIIFS-0003b9-0a for submit@debbugs.gnu.org; Tue, 15 Sep 2020 17:12:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43416) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kIIFR-00054K-Ro for bug-gnu-emacs@gnu.org; Tue, 15 Sep 2020 17:12:21 -0400 Received: from se13.route25.eu ([2a00:f10:121:a00:1c00:efff:fe00:1854]:52756) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kIIFO-0000X7-C1 for bug-gnu-emacs@gnu.org; Tue, 15 Sep 2020 17:12:21 -0400 Date: Tue, 15 Sep 2020 23:12:09 +0200 From: Russell Adams To: bug-gnu-emacs@gnu.org Subject: Re: bug#43389: 28.0.50; Emacs memory leaks Message-ID: <20200915211209.GW20869@maokai> References: <87r1r5428d.fsf@web.de> <87mu1sry72.fsf@mail.linkov.net> <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <838sda98jm.fsf@gnu.org> X-Originating-IP: 185.87.184.57 X-SpamExperts-Domain: out.pcextreme.nl X-SpamExperts-Username: 185.87.184.57 Authentication-Results: route25.eu; auth=pass smtp.auth=185.87.184.57@out.pcextreme.nl X-SpamExperts-Outgoing-Class: ham X-SpamExperts-Outgoing-Evidence: Combined (0.13) X-Recommended-Action: accept X-Filter-ID: Mvzo4OR0dZXEDF/gcnlw0Z1apovzGPsYhEeBL1aoZmqpSDasLI4SayDByyq9LIhVEmGyau1Uyelx X/cKZEiXTUTNWdUk1Ol2OGx3IfrIJKywOmJyM1qr8uRnWBrbSAGD0VsY0HzEkBzUTjuObUvkgtQ5 3pMmTXeVbblO3cSIiVBLT1RndkM5nmOQAIq8n7jKJODXbtOodkPED+RkHjVGH9gpfPe2lDQBFQc5 pWKjU8U1TnR+f0U9cu064nZcMieLAqdkk6hppCDsqsBwLjHur1XxB26GtR7aQdGQ3RxVouuEZ9Nq eiQHl0oUF/vn0ZGBaHwJ2eESrUp0Iw/gSJ3HqMuR600P9eQ3vodupN36MrkzGQZS068e3EYTgNAB jZkD8TzPF4eG61o+cxFZrUIXowfXJosMX5ZQSlYSVlCDu2na8Lc2iK0mXNgodhRh0E6+UMVFei1G 2PrSIU9EwioS70yFBF2moUWeHNDS4qZDIDBdjx85xQq9VD42UbTRudBo31/E3ahF5MMcDI7KdpjQ KULbtCr8aoTjHIUEuG3LCVsCW2UOyugPPaOGK1ZclZhyJ1oAKHx1qHjvOGXm6QB+mk6ZTzCPKsFf twxbkg5OTEJBSZDxFdMdjhWKQRs1y634PNxyi5hJyfZTqqCPnGEeWnCZYEPFJ9jPhhI9UQAFTdDr MKKTH7ka+rJhvkWIY195B5hQ6nsDvccjqgmDvD9Wh3hTQMCZFfPbwKEtSeDoMAHujwN5vAr2fQEN gxhN/KmvEyoAEK4rsNWk4mvtBc9RUVZYb+q6sUBKbKRJ7t2JzkiGuP0YIX8qMA5MLNz4roJ5/dHN uNB9bmpAJjm56srzOup6Sq1ZDctSmRBRqdBOjJhm4zuNRcgRKiGg7nXFaZTxgU2GYuFGsyYan9g/ rMdRGcvAcA8+rx4YwgeE+t2FESF6coSh1XA3fOLJ37wDhYziv06NVNr5OEQYW/2Y/CoVJPIjQKAZ fI/jcX6o1g9K5ZwJhmYqJ0PIxX89f7dLTMqse5FhVBQaO03dzx9rAMZnZXrgXdZHl2vqCbCSy9Ix 3eltOv8yJ5cKtwxhveW3ZWTI X-Report-Abuse-To: spam@semaster01.route25.eu Received-SPF: pass client-ip=2a00:f10:121:a00:1c00:efff:fe00:1854; envelope-from=rladams@adamsinfoserv.com; helo=se13.route25.eu X-detected-operating-system: by eggs.gnu.org: First seen = 2020/09/15 17:12:12 X-ACL-Warn: Detected OS = ??? X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) On Tue, Sep 15, 2020 at 09:52:45PM +0300, Eli Zaretskii wrote: > > htop says my emacs RSS is now 5148MB. I ran M-x garbage-collect and it ran > > Can you use some utility that produces a memory map of an application, > and see how much of those 5GB are actually free for allocation by > Emacs? Any suggestions? I still have it running. I used htop because it shows a sane total value. > Also, do you see any libraries used by Emacs that have high > memory usage? Emacs is the top memory usage on my laptop, firefox is second at 2GB. The rest are <1G. > 28% and 33% of what amount? 16GB > If your RSS is 5GB after 4 days of uptime, and the memory footprint > grows at a constant rate, it would mean more than 1GB per day. But > I'm guessing that 33% - 28% = 5% of your total memory is much less > than 1GB. No, 33% is ~5GB. ;] > In which case the memory footprint must sometimes jump by > very large amounts, not grow slowly and monotonically each day. > Right? So which events cause those sudden increases in RSS? I can't say. I have a few megs total in buffers open, and I've run org-caldav a few times to upload. Mostly org-mode buffers open, a few mail buffers (not gnus, just mail-mode editing mutt files), package list, and cruft. Not actively doing any development, just editing Org files. I don't recall having edited any huge files in the last 4 days. > Also, what is your value of gc-cons-threshold, and do you have some > customizations that change its value under some conditions? If so, > please tell the details. gc-cons-threshold is 800000 (#o3032400, #xc3500). No customization that I'm aware of to memory. The only thing that may be relative is my savehist settings, but that file is only 98k (down from 500meg in emacs 26). I've now limited my savehists. ------------------------------------------------------------------ Russell Adams RLAdams@AdamsInfoServ.com PGP Key ID: 0x1160DCB3 http://www.adamsinfoserv.com/ Fingerprint: 1723 D8CA 4280 1EC9 557F 66E8 1154 E018 1160 DCB3 From debbugs-submit-bounces@debbugs.gnu.org Wed Sep 16 10:52:47 2020 Received: (at 43389) by debbugs.gnu.org; 16 Sep 2020 14:52:47 +0000 Received: from localhost ([127.0.0.1]:35669 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kIYne-0000z7-OR for submit@debbugs.gnu.org; Wed, 16 Sep 2020 10:52:46 -0400 Received: from eggs.gnu.org ([209.51.188.92]:44534) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kIYnd-0000yq-Fs for 43389@debbugs.gnu.org; Wed, 16 Sep 2020 10:52:45 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:41935) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kIYnX-0000Vk-Rn; Wed, 16 Sep 2020 10:52:39 -0400 Received: from [176.228.60.248] (port=3115 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kIYnX-0004rS-9n; Wed, 16 Sep 2020 10:52:39 -0400 Date: Wed, 16 Sep 2020 17:52:48 +0300 Message-Id: <83pn6l7ozj.fsf@gnu.org> From: Eli Zaretskii To: Russell Adams In-Reply-To: <20200915211209.GW20869@maokai> (message from Russell Adams on Tue, 15 Sep 2020 23:12:09 +0200) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <87mu1sry72.fsf@mail.linkov.net> <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Tue, 15 Sep 2020 23:12:09 +0200 > From: Russell Adams > > > Can you use some utility that produces a memory map of an application, > > and see how much of those 5GB are actually free for allocation by > > Emacs? > > Any suggestions? Your Internet search is as good as mine. This page offers some possibilities: https://stackoverflow.com/questions/36523584/how-to-see-memory-layout-of-my-program-in-c-during-run-time > > Also, do you see any libraries used by Emacs that have high > > memory usage? > > Emacs is the top memory usage on my laptop, firefox is second at > 2GB. The rest are <1G. No, I meant the shared libraries that Emacs loads. Maybe one of them has a leak, not Emacs's own code. > > 28% and 33% of what amount? > > 16GB > > > If your RSS is 5GB after 4 days of uptime, and the memory footprint > > grows at a constant rate, it would mean more than 1GB per day. But > > I'm guessing that 33% - 28% = 5% of your total memory is much less > > than 1GB. > > No, 33% is ~5GB. ;] > > > In which case the memory footprint must sometimes jump by > > very large amounts, not grow slowly and monotonically each day. > > Right? So which events cause those sudden increases in RSS? > > I can't say. Well, actually the above seems to indicate that your memory footprint grows by about 1GB each day: 5% of 16GB is 0.8GB. So maybe my guess is wrong, and the memory does increase roughly linearly with time. Hmm... We had a discussion several times regarding the possible effects of the fact that glibc doesn't return malloc'ed memory to the system. I don't think we reached any firm conclusions about that, but it could be that some usage patterns cause memory fragmentation, whereby small chunks of free'd memory gets "trapped" between regions of used memory, and cannot be reallocated. We used to use some specialized malloc features to prevent this, but AFAIU they are no longer supported on modern GNU/Linux systems. Not sure whether this is relevant to what you see. Anyway, I think the way forward is to try to understand which code "owns" the bulk of the 5GB memory. Then maybe we will have some ideas. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Thu Sep 17 16:47:23 2020 Received: (at submit) by debbugs.gnu.org; 17 Sep 2020 20:47:23 +0000 Received: from localhost ([127.0.0.1]:39231 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kJ0oM-0008Mo-RZ for submit@debbugs.gnu.org; Thu, 17 Sep 2020 16:47:23 -0400 Received: from lists.gnu.org ([209.51.188.17]:40962) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kJ0oK-0008Mg-US for submit@debbugs.gnu.org; Thu, 17 Sep 2020 16:47:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41420) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kJ0oK-0006md-M1 for bug-gnu-emacs@gnu.org; Thu, 17 Sep 2020 16:47:20 -0400 Received: from se18.route25.eu ([2a00:f10:400:4:1c00:18ff:fe00:1617]:46938) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kJ0oH-0003vJ-Dy for bug-gnu-emacs@gnu.org; Thu, 17 Sep 2020 16:47:19 -0400 Date: Thu, 17 Sep 2020 22:47:04 +0200 From: Russell Adams To: bug-gnu-emacs@gnu.org Subject: Re: bug#43389: 28.0.50; Emacs memory leaks Message-ID: <20200917204704.GA20217@maokai> Mail-Followup-To: bug-gnu-emacs@gnu.org References: <87r1r5428d.fsf@web.de> <87mu1sry72.fsf@mail.linkov.net> <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <83pn6l7ozj.fsf@gnu.org> X-Originating-IP: 185.87.185.80 X-SpamExperts-Domain: out.pcextreme.nl X-SpamExperts-Username: 185.87.185.80 Authentication-Results: route25.eu; auth=pass smtp.auth=185.87.185.80@out.pcextreme.nl X-SpamExperts-Outgoing-Class: ham X-SpamExperts-Outgoing-Evidence: Combined (0.06) X-Recommended-Action: accept X-Filter-ID: Mvzo4OR0dZXEDF/gcnlw0Z1apovzGPsYhEeBL1aoZmqpSDasLI4SayDByyq9LIhVqOqq8Ti9qF2j i9mwAZgzUETNWdUk1Ol2OGx3IfrIJKywOmJyM1qr8uRnWBrbSAGD0VsY0HzEkBzUTjuObUvkgtQ5 3pMmTXeVbblO3cSIiVBwurRQwueIlD8Q3PoA2bFNJODXbtOodkPED+RkHjVGH9gpfPe2lDQBFQc5 pWKjU8U1TnR+f0U9cu064nZcMieLAqdkk6hppCDsqsBwLjHur1XxB26GtR7aQdGQ3RxVouttwXp1 RdEU8VHZI5KGZSviaHwJ2eESrUp0Iw/gSJ3HqMuR600P9eQ3vodupN36MrkzGQZS068e3EYTgNAB jZkD8TzPF4eG61o+cxFZrUIXowfXJosMX5ZQSlYSVlCDu2na8Lc2iK0mXNgodhRh0E6+UMVFei1G 2PrSIU9EwioS70yFBF2moUWeHNDS4qZDIDBdjx85xQq9VD42UbTRudBo31/E3ahF5MMcDI7KdpjQ KULbtCr8aoTjHIUEuG3LCVsCW2UOyugPPaOGK1ZclZhyJ1oAKHx1qHjvOGXm6QB+mk6ZTzCPKsFf twxbkg5OTEJBSZDxFdMdjhWKQRs1y634NtkDir044XKUvwzb23wQ7pgpf21taAxkVvyytXnHYuTG Mh1g5HXdBRwJg2prqic/B5hQ6nsDvccjqgmDvD9Wh0yFsY2Z2oGTB2IF2g6y44/ujwN5vAr2fQEN gxhN/KmvEyoAEK4rsNWk4mvtBc9RUW7Qh3gWh36mDf/2VxyYC7eGuP0YIX8qMA5MLNz4roJ5J6JM aVBtU1EL4T/AS1KgRZoZYGJ52/Vlsv3ubha/F0Rm4zuNRcgRKiGg7nXFaZTxVtvfGUGUq3gP3sz9 6chjQ/thtU3VbZiduO40Yo9l2XF6coSh1XA3fOLJ37wDhYziT8A73IOjFaUxVIYlf6k/MfIjQKAZ fI/jcX6o1g9K5ZwJhmYqJ0PIxX89f7dLTMqse5FhVBQaO03dzx9rAMZnZXrgXdZHl2vqCbCSy9Ix 3eltOv8yJ5cKtwxhveW3ZWTI X-Report-Abuse-To: spam@semaster01.route25.eu Received-SPF: pass client-ip=2a00:f10:400:4:1c00:18ff:fe00:1617; envelope-from=rladams@adamsinfoserv.com; helo=se18.route25.eu X-detected-operating-system: by eggs.gnu.org: First seen = 2020/09/17 16:47:09 X-ACL-Warn: Detected OS = ??? X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) >From Emacs memory-usage package: Garbage collection stats: ((conses 16 1912248 251798) (symbols 48 54872 19) (strings 32 327552 81803) (string-bytes 1 12344346) (vectors 16 158994) (vector-slots 8 2973919 339416) (floats 8 992 4604) (intervals 56 182607 7492) (buffers 1000 195)) => 29.2MB (+ 3.84MB dead) in conses 2.51MB (+ 0.89kB dead) in symbols 10.00MB (+ 2.50MB dead) in strings 11.8MB in string-bytes 2.43MB in vectors 22.7MB (+ 2.59MB dead) in vector-slots 7.75kB (+ 36.0kB dead) in floats 9.75MB (+ 410kB dead) in intervals 190kB in buffers Total in lisp objects: 97.9MB (live 88.5MB, dead 9.36MB) Buffer ralloc memory usage: 81 buffers 4.71MB total (1007kB in gaps) ---------------------------------------------------------------------- And /proc/PID/smaps which is huge so I pastebinned it. https://termbin.com/2sx5 Of interest is: 56413d24a000-5642821c6000 rw-p 00000000 00:00 0 [heap] Size: 5324272 kB KernelPageSize: 4 kB MMUPageSize: 4 kB Rss: 5245496 kB Pss: 5245496 kB Shared_Clean: 0 kB Shared_Dirty: 0 kB Private_Clean: 0 kB Private_Dirty: 5245496 kB Referenced: 5245496 kB Anonymous: 5245496 kB LazyFree: 0 kB AnonHugePages: 0 kB ShmemPmdMapped: 0 kB FilePmdMapped: 0 kB Shared_Hugetlb: 0 kB Private_Hugetlb: 0 kB Swap: 0 kB SwapPss: 0 kB Locked: 0 kB THPeligible: 0 VmFlags: rd wr mr mw me ac ------------------------------------------------------------------ Russell Adams RLAdams@AdamsInfoServ.com PGP Key ID: 0x1160DCB3 http://www.adamsinfoserv.com/ Fingerprint: 1723 D8CA 4280 1EC9 557F 66E8 1154 E018 1160 DCB3 From debbugs-submit-bounces@debbugs.gnu.org Thu Sep 17 18:41:25 2020 Received: (at submit) by debbugs.gnu.org; 17 Sep 2020 22:41:25 +0000 Received: from localhost ([127.0.0.1]:39967 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kJ2ai-0002lK-Ez for submit@debbugs.gnu.org; Thu, 17 Sep 2020 18:41:24 -0400 Received: from lists.gnu.org ([209.51.188.17]:55628) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kJ2ag-0002lB-QG for submit@debbugs.gnu.org; Thu, 17 Sep 2020 18:41:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:55610) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kJ2ac-0004Di-33 for bug-gnu-emacs@gnu.org; Thu, 17 Sep 2020 18:41:19 -0400 Received: from mx1.dismail.de ([2a01:4f8:c17:e5e::2]:35447) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kJ2aK-0006CM-75 for bug-gnu-emacs@gnu.org; Thu, 17 Sep 2020 18:41:17 -0400 Received: from mx1.dismail.de (localhost [127.0.0.1]) by mx1.dismail.de (OpenSMTPD) with ESMTP id 9fc91dc5 for ; Thu, 17 Sep 2020 23:58:47 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=dismail.de; h=from:to :subject:references:date:in-reply-to:message-id:mime-version :content-type; s=20190914; bh=g5RYd/O/TA3kDyKx60Jekx1M2GwWXrWKJB UQWk3yexQ=; b=BnIusVOkZi3vQotasTmLqJUWXBmEpJi0Zw9T16bADsnV7DpIOC /1JFYd4RsyhQj4tKJZIKUgmeRHCseiyGaFpLQvtRFLgljj6TFCfdVjRwytao2mAn 6YcpPxQRmUC2VUJEopVBuWGZY0wbxZnrY/AY5NSAK+dtVNcwKibONBNHMaO/Er2f U20q6y8xWeCEdkDXx2TML12aUEteMgkry4bK5Rzl3PGScOWZgyk3bV73X0BYp/7C msEsFqmfpS7q05rJ/TVEIQa13VUhLpYtUR4CBNxdDtNKqPpsof5FWHgdxNzkPV9y 7hPwx9PIXZFRJFMdpMhJPN/ZCdmlPHOocBFA== Received: from smtp2.dismail.de ( [10.240.26.12]) by mx1.dismail.de (OpenSMTPD) with ESMTP id 545cc54a for ; Thu, 17 Sep 2020 23:58:46 +0200 (CEST) Received: from smtp2.dismail.de (localhost [127.0.0.1]) by smtp2.dismail.de (OpenSMTPD) with ESMTP id e0a652de for ; Thu, 17 Sep 2020 23:58:46 +0200 (CEST) Received: by dismail.de (OpenSMTPD) with ESMTPSA id c2d31c78 (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256:NO) for ; Thu, 17 Sep 2020 23:58:45 +0200 (CEST) From: Joshua Branson To: bug-gnu-emacs@gnu.org Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <87mu1sry72.fsf@mail.linkov.net> <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> Date: Thu, 17 Sep 2020 17:58:51 -0400 In-Reply-To: <20200917204704.GA20217@maokai> (Russell Adams's message of "Thu, 17 Sep 2020 22:47:04 +0200") Message-ID: <87ft7gjc9w.fsf@dismail.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=2a01:4f8:c17:e5e::2; envelope-from=jbranso@dismail.de; helo=mx1.dismail.de X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.4 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.4 (--) Over in #guix irc, the guix people seemed to think it was a memory leak with helm. I was watching my emacs consume about 0.1% more system memory every 2 or 3 seconds. Setting (setq helm-ff-keep-cached-candidates nil) Seemed to make the problem go away. I also made a video, where I watched this memory usage continually go up and then stay steady after I turned off helm-ff-keep-cached-candidates. This happens at about the 35 minute mark. https://video.hardlimit.com/videos/watch/3069e16a-d75c-4e40-8686-9102e40e333f And here's the bug report on guix system: https://issues.guix.gnu.org/43406#10 -- Joshua Branson Sent from Emacs and Gnus From debbugs-submit-bounces@debbugs.gnu.org Thu Sep 17 18:45:03 2020 Received: (at 43389) by debbugs.gnu.org; 17 Sep 2020 22:45:03 +0000 Received: from localhost ([127.0.0.1]:39978 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kJ2eD-0002ql-6v for submit@debbugs.gnu.org; Thu, 17 Sep 2020 18:45:03 -0400 Received: from mail-io1-f66.google.com ([209.85.166.66]:38479) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kJ100-0000B0-Q5 for 43389@debbugs.gnu.org; Thu, 17 Sep 2020 16:59:25 -0400 Received: by mail-io1-f66.google.com with SMTP id h4so3853981ioe.5 for <43389@debbugs.gnu.org>; Thu, 17 Sep 2020 13:59:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mtu.edu; s=google; h=to:from:subject:message-id:date:user-agent:mime-version :content-transfer-encoding:content-language; bh=izAc/TO1J5a2bvNziyXgvt4cLFnIG9su8yQ9wOWAH08=; b=Eb6oVEuDzwvxiQfoZN+PKuF65i+v+RUIrqPuX7Imqcrq6TqtEqgNPSfXS5cIg7IpZ7 ne8upfxd5WlDnTNmKwpjb70RKkpkSAhUutt16HeZPn1EsRDh0xkm8DcE5r5QkooY7g7z PAd9cG2WVgnhAo9dPLyKFVWwou0poHu4iIIdewH7OHn2gGlxH2HWAjbhBee3jcU0Zbed +BfogAHncwZS7BkPfAfg+u1LzSqOKenHPLpZv6b0NVpSwz/8uiYrivrrHvZZn/E3EmNG q6Jr7P9Qi5rXpDEWarsjtd3M5WAPrYPUpkp53Z+XbxQU0kgUxmMhstYpb8QutsSfNFoc bDtA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:to:from:subject:message-id:date:user-agent :mime-version:content-transfer-encoding:content-language; bh=izAc/TO1J5a2bvNziyXgvt4cLFnIG9su8yQ9wOWAH08=; b=aVzc/GlddOASDY7pZyFq3WKBdqnfoLp10sReE8o+a3tiW1ODL+FZIYTofrKRV6pa4g CwzulL0CHX3OZIB+wMKavS1f5pgyfPZ/p2Z8dETLSy1lAsej/i9YAvytQHhprvOs93uV yxquqzobIbhE40HwdeeVmuOeObrQyPJ690jQXHnzoAksTc/uFsToa50kqK8d1/wDOq1h VuvqSMS4UM/ZjmasitzSyNgfg/QIYr2j9eWfKQHJY8Kbn1GJ8AgBm2kr2zJINT4TeAoq sMwMv0TWQ9ftIXKPZb0fEzn78Bp84jZ0Ln8XA5A6IG+I0tOGGdVi9KoG/hkBNDprldyz HrIA== X-Gm-Message-State: AOAM533kojgu6mQVRu3YMrB2QEbrWIwPrDgTA0yY5G0IF5Drlu0UI9tN GFjrK4xDenIKsWdA3FjZdr0hw9rnFBRAEJKb X-Google-Smtp-Source: ABdhPJyGtO6l6LrRbdc5PZ0afElNKqARMA5ZYYUs+OlMcah7g14UK4NtUxGlmA1sz5ZlXZs17ICmQA== X-Received: by 2002:a02:c789:: with SMTP id n9mr26892878jao.36.1600376358118; Thu, 17 Sep 2020 13:59:18 -0700 (PDT) Received: from ?IPv6:2601:402:680:7b50::74e5? ([2601:402:680:7b50::74e5]) by smtp.gmail.com with ESMTPSA id m19sm465444ila.40.2020.09.17.13.59.17 for <43389@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 17 Sep 2020 13:59:17 -0700 (PDT) To: 43389@debbugs.gnu.org From: Thomas Ingram Subject: Re: bug#43389: 28.0.50; Emacs memory leaks Message-ID: Date: Thu, 17 Sep 2020 16:59:16 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 X-Mailman-Approved-At: Thu, 17 Sep 2020 18:44:59 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello. I experienced something similar today, I noticed Emacs was using 3.6GB of memory under light org mode usage (dozen buffers, all files smaller half a MB). I had to close Emacs as my computer was locking up, but here is my emacs-report-bug output with roughly the same workload open. I'll try to gather more information next time I notice unusual memory usage. Thanks. In GNU Emacs 27.1 (build 1, x86_64-redhat-linux-gnu, GTK+ Version 3.24.21, cairo version 1.16.0)  of 2020-08-20 built on buildvm-x86-24.iad2.fedoraproject.org Windowing system distributor 'Fedora Project', version 11.0.12008000 System Description: Fedora 32 (Workstation Edition) Recent messages: org-babel-exp process emacs-lisp at position 9286... org-babel-exp process nil at position 9867... org-babel-exp process make at position 10150... Setting up indent for shell type bash Indentation variables are now local. Indentation setup for shell type bash Saving file /home/thomas/Documents/taingram.org/html/blog/org-mode-blog.html... Wrote /home/thomas/Documents/taingram.org/html/blog/org-mode-blog.html Mark saved where search started Making completion list... Configured using:  'configure --build=x86_64-redhat-linux-gnu  --host=x86_64-redhat-linux-gnu --program-prefix=  --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr  --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc  --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64  --libexecdir=/usr/libexec --localstatedir=/var  --sharedstatedir=/var/lib --mandir=/usr/share/man  --infodir=/usr/share/info --with-dbus --with-gif --with-jpeg --with-png  --with-rsvg --with-tiff --with-xft --with-xpm --with-x-toolkit=gtk3  --with-gpm=no --with-xwidgets --with-modules --with-harfbuzz  --with-cairo --with-json build_alias=x86_64-redhat-linux-gnu  host_alias=x86_64-redhat-linux-gnu 'CFLAGS=-DMAIL_USE_LOCKF -O2 -g  -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2  -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong  -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1  -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic  -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection'  LDFLAGS=-Wl,-z,relro  PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig' Configured features: XPM JPEG TIFF GIF PNG RSVG CAIRO SOUND DBUS GSETTINGS GLIB NOTIFY INOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE HARFBUZZ M17N_FLT LIBOTF ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM MODULES THREADS XWIDGETS LIBSYSTEMD JSON PDUMPER GMP Important settings:   value of $LANG: en_US.UTF-8   value of $XMODIFIERS: @im=ibus   locale-coding-system: utf-8-unix Major mode: Org Minor modes in effect:   flyspell-mode: t   shell-dirtrack-mode: t   global-company-mode: t   company-mode: t   override-global-mode: t   recentf-mode: t   tooltip-mode: t   global-eldoc-mode: t   electric-indent-mode: t   mouse-wheel-mode: t   menu-bar-mode: t   file-name-shadow-mode: t   global-font-lock-mode: t   font-lock-mode: t   blink-cursor-mode: t   auto-composition-mode: t   auto-encryption-mode: t   auto-compression-mode: t   column-number-mode: t   line-number-mode: t   auto-fill-function: org-auto-fill-function   transient-mark-mode: t Load-path shadows: /home/thomas/.config/emacs/elpa/xref-1.0.3/xref hides /usr/share/emacs/27.1/lisp/progmodes/xref /home/thomas/.config/emacs/elpa/flymake-1.0.9/flymake hides /usr/share/emacs/27.1/lisp/progmodes/flymake /home/thomas/.config/emacs/elpa/project-0.5.2/project hides /usr/share/emacs/27.1/lisp/progmodes/project /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-screen hides /usr/share/emacs/27.1/lisp/org/ob-screen /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/org-table hides /usr/share/emacs/27.1/lisp/org/org-table /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-lisp hides /usr/share/emacs/27.1/lisp/org/ob-lisp /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-core hides /usr/share/emacs/27.1/lisp/org/ob-core /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ox-md hides /usr/share/emacs/27.1/lisp/org/ox-md /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-calc hides /usr/share/emacs/27.1/lisp/org/ob-calc /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/org-crypt hides /usr/share/emacs/27.1/lisp/org/org-crypt /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/org-plot hides /usr/share/emacs/27.1/lisp/org/org-plot /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-awk hides /usr/share/emacs/27.1/lisp/org/ob-awk /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-perl hides /usr/share/emacs/27.1/lisp/org/ob-perl /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ox-org hides /usr/share/emacs/27.1/lisp/org/ox-org /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ox-odt hides /usr/share/emacs/27.1/lisp/org/ox-odt /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-ebnf hides /usr/share/emacs/27.1/lisp/org/ob-ebnf /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-ditaa hides /usr/share/emacs/27.1/lisp/org/ob-ditaa /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-ocaml hides /usr/share/emacs/27.1/lisp/org/ob-ocaml /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/org-install hides /usr/share/emacs/27.1/lisp/org/org-install /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-sql hides /usr/share/emacs/27.1/lisp/org/ob-sql /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-js hides /usr/share/emacs/27.1/lisp/org/ob-js /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-org hides /usr/share/emacs/27.1/lisp/org/ob-org /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/org-pcomplete hides /usr/share/emacs/27.1/lisp/org/org-pcomplete /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-exp hides /usr/share/emacs/27.1/lisp/org/ob-exp /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/org-src hides /usr/share/emacs/27.1/lisp/org/org-src /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-java hides /usr/share/emacs/27.1/lisp/org/ob-java /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-stan hides /usr/share/emacs/27.1/lisp/org/ob-stan /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-mscgen hides /usr/share/emacs/27.1/lisp/org/ob-mscgen /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ol-gnus hides /usr/share/emacs/27.1/lisp/org/ol-gnus /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-shell hides /usr/share/emacs/27.1/lisp/org/ob-shell /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-matlab hides /usr/share/emacs/27.1/lisp/org/ob-matlab /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-lilypond hides /usr/share/emacs/27.1/lisp/org/ob-lilypond /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ol-bibtex hides /usr/share/emacs/27.1/lisp/org/ol-bibtex /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/org-num hides /usr/share/emacs/27.1/lisp/org/org-num /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-coq hides /usr/share/emacs/27.1/lisp/org/ob-coq /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-ruby hides /usr/share/emacs/27.1/lisp/org/ob-ruby /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/org-compat hides /usr/share/emacs/27.1/lisp/org/org-compat /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-J hides /usr/share/emacs/27.1/lisp/org/ob-J /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/org-ctags hides /usr/share/emacs/27.1/lisp/org/org-ctags /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/org-goto hides /usr/share/emacs/27.1/lisp/org/org-goto /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/org-archive hides /usr/share/emacs/27.1/lisp/org/org-archive /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-clojure hides /usr/share/emacs/27.1/lisp/org/ob-clojure /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/org-macro hides /usr/share/emacs/27.1/lisp/org/org-macro /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-picolisp hides /usr/share/emacs/27.1/lisp/org/ob-picolisp /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-haskell hides /usr/share/emacs/27.1/lisp/org/ob-haskell /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/org-attach-git hides /usr/share/emacs/27.1/lisp/org/org-attach-git /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/org-agenda hides /usr/share/emacs/27.1/lisp/org/org-agenda /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/org-tempo hides /usr/share/emacs/27.1/lisp/org/org-tempo /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/org-inlinetask hides /usr/share/emacs/27.1/lisp/org/org-inlinetask /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-forth hides /usr/share/emacs/27.1/lisp/org/ob-forth /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ox-latex hides /usr/share/emacs/27.1/lisp/org/ox-latex /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-vala hides /usr/share/emacs/27.1/lisp/org/ob-vala /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/org-protocol hides /usr/share/emacs/27.1/lisp/org/org-protocol /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ol hides /usr/share/emacs/27.1/lisp/org/ol /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-emacs-lisp hides /usr/share/emacs/27.1/lisp/org/ob-emacs-lisp /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ox-icalendar hides /usr/share/emacs/27.1/lisp/org/ox-icalendar /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/org-element hides /usr/share/emacs/27.1/lisp/org/org-element /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ox-texinfo hides /usr/share/emacs/27.1/lisp/org/ox-texinfo /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-tangle hides /usr/share/emacs/27.1/lisp/org/ob-tangle /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-fortran hides /usr/share/emacs/27.1/lisp/org/ob-fortran /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-ledger hides /usr/share/emacs/27.1/lisp/org/ob-ledger /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ol-eww hides /usr/share/emacs/27.1/lisp/org/ol-eww /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-sqlite hides /usr/share/emacs/27.1/lisp/org/ob-sqlite /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ox-publish hides /usr/share/emacs/27.1/lisp/org/ox-publish /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-C hides /usr/share/emacs/27.1/lisp/org/ob-C /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-octave hides /usr/share/emacs/27.1/lisp/org/ob-octave /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/org-attach hides /usr/share/emacs/27.1/lisp/org/org-attach /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-hledger hides /usr/share/emacs/27.1/lisp/org/ob-hledger /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/org-entities hides /usr/share/emacs/27.1/lisp/org/org-entities /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ox hides /usr/share/emacs/27.1/lisp/org/ox /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/org-mobile hides /usr/share/emacs/27.1/lisp/org/org-mobile /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/org-indent hides /usr/share/emacs/27.1/lisp/org/org-indent /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/org-list hides /usr/share/emacs/27.1/lisp/org/org-list /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/org-keys hides /usr/share/emacs/27.1/lisp/org/org-keys /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-lob hides /usr/share/emacs/27.1/lisp/org/ob-lob /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ol-rmail hides /usr/share/emacs/27.1/lisp/org/ol-rmail /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/org-macs hides /usr/share/emacs/27.1/lisp/org/org-macs /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ol-w3m hides /usr/share/emacs/27.1/lisp/org/ol-w3m /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ol-mhe hides /usr/share/emacs/27.1/lisp/org/ol-mhe /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-maxima hides /usr/share/emacs/27.1/lisp/org/ob-maxima /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-lua hides /usr/share/emacs/27.1/lisp/org/ob-lua /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-css hides /usr/share/emacs/27.1/lisp/org/ob-css /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/org-lint hides /usr/share/emacs/27.1/lisp/org/org-lint /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ol-irc hides /usr/share/emacs/27.1/lisp/org/ol-irc /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/org hides /usr/share/emacs/27.1/lisp/org/org /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-shen hides /usr/share/emacs/27.1/lisp/org/ob-shen /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ol-bbdb hides /usr/share/emacs/27.1/lisp/org/ol-bbdb /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/org-datetree hides /usr/share/emacs/27.1/lisp/org/org-datetree /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-plantuml hides /usr/share/emacs/27.1/lisp/org/ob-plantuml /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/org-feed hides /usr/share/emacs/27.1/lisp/org/org-feed /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/org-capture hides /usr/share/emacs/27.1/lisp/org/org-capture /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/org-habit hides /usr/share/emacs/27.1/lisp/org/org-habit /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-sass hides /usr/share/emacs/27.1/lisp/org/ob-sass /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/org-footnote hides /usr/share/emacs/27.1/lisp/org/org-footnote /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/org-timer hides /usr/share/emacs/27.1/lisp/org/org-timer /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/org-duration hides /usr/share/emacs/27.1/lisp/org/org-duration /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-R hides /usr/share/emacs/27.1/lisp/org/ob-R /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/org-faces hides /usr/share/emacs/27.1/lisp/org/org-faces /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-comint hides /usr/share/emacs/27.1/lisp/org/ob-comint /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ol-docview hides /usr/share/emacs/27.1/lisp/org/ol-docview /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ox-man hides /usr/share/emacs/27.1/lisp/org/ox-man /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ox-ascii hides /usr/share/emacs/27.1/lisp/org/ox-ascii /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-eval hides /usr/share/emacs/27.1/lisp/org/ob-eval /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/org-version hides /usr/share/emacs/27.1/lisp/org/org-version /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob hides /usr/share/emacs/27.1/lisp/org/ob /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-table hides /usr/share/emacs/27.1/lisp/org/ob-table /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/org-colview hides /usr/share/emacs/27.1/lisp/org/org-colview /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/org-clock hides /usr/share/emacs/27.1/lisp/org/org-clock /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-eshell hides /usr/share/emacs/27.1/lisp/org/ob-eshell /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-sed hides /usr/share/emacs/27.1/lisp/org/ob-sed /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-ref hides /usr/share/emacs/27.1/lisp/org/ob-ref /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-io hides /usr/share/emacs/27.1/lisp/org/ob-io /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ox-html hides /usr/share/emacs/27.1/lisp/org/ox-html /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-abc hides /usr/share/emacs/27.1/lisp/org/ob-abc /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/org-id hides /usr/share/emacs/27.1/lisp/org/org-id /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-asymptote hides /usr/share/emacs/27.1/lisp/org/ob-asymptote /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-scheme hides /usr/share/emacs/27.1/lisp/org/ob-scheme /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-python hides /usr/share/emacs/27.1/lisp/org/ob-python /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ol-info hides /usr/share/emacs/27.1/lisp/org/ol-info /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-groovy hides /usr/share/emacs/27.1/lisp/org/ob-groovy /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-latex hides /usr/share/emacs/27.1/lisp/org/ob-latex /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-dot hides /usr/share/emacs/27.1/lisp/org/ob-dot /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/org-loaddefs hides /usr/share/emacs/27.1/lisp/org/org-loaddefs /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ox-beamer hides /usr/share/emacs/27.1/lisp/org/ox-beamer /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/org-mouse hides /usr/share/emacs/27.1/lisp/org/org-mouse /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ol-eshell hides /usr/share/emacs/27.1/lisp/org/ol-eshell /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-processing hides /usr/share/emacs/27.1/lisp/org/ob-processing /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-gnuplot hides /usr/share/emacs/27.1/lisp/org/ob-gnuplot /home/thomas/.config/emacs/elpa/org-plus-contrib-20200907/ob-makefile hides /usr/share/emacs/27.1/lisp/org/ob-makefile /home/thomas/.config/emacs/elpa/eldoc-1.10.0/eldoc hides /usr/share/emacs/27.1/lisp/emacs-lisp/eldoc Features: (misearch multi-isearch mhtml-mode css-mode eww mm-url url-queue color js cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs sgml-mode url-http url-auth url-gw nsm sh-script smie executable htmlize mule-util ibuf-ext ibuffer ibuffer-loaddefs pp shadow sort mail-extr eieio-opt speedbar sb-image ezimage dframe help-fns radix-tree emacsbug sendmail imenu man go-mode find-file ffap rx vc-git diff-mode org-eldoc flyspell ispell ol-eww ol-rmail ol-mhe ol-irc ol-info ol-gnus nnir gnus-sum url url-proxy url-privacy url-expand url-methods url-history mailcap shr url-cookie url-domsuf url-util svg dom gnus-group gnus-undo gnus-start gnus-cloud nnimap nnmail mail-source utf7 netrc nnoo parse-time iso8601 gnus-spec gnus-int gnus-range message rmc puny rfc822 mml mml-sec epa derived epg epg-config mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader gnus-win gnus nnheader gnus-util rmail rmail-loaddefs rfc2047 rfc2045 ietf-drums text-property-search mail-utils mm-util mail-prsvr ol-docview doc-view jka-compr image-mode exif ol-bibtex bibtex ol-bbdb ol-w3m org-tempo tempo ox-odt rng-loc rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex ox-icalendar ox-html table ox-ascii ox-publish ox org-element avl-tree ob-latex ob-shell shell org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-footnote org-src ob-comint org-pcomplete pcomplete org-list org-faces org-entities noutline outline org-version ob-emacs-lisp ob-core ob-eval org-table ol org-keys org-compat advice org-macs org-loaddefs format-spec find-func cal-menu calendar cal-loaddefs dired dired-loaddefs time-date checkdoc lisp-mnt flymake-proc flymake compile comint ansi-color warnings thingatpt modus-operandi-theme company-oddmuse company-keywords company-etags etags fileloop generator xref project ring company-gtags company-dabbrev-code company-dabbrev company-files company-clang company-capf company-cmake company-semantic company-template company-bbdb company pcase delight cl-extra help-mode use-package use-package-ensure use-package-delight use-package-diminish use-package-bind-key bind-key easy-mmode use-package-core finder-inf edmacro kmacro recentf tree-widget wid-edit clang-rename clang-include-fixer let-alist clang-format xml info package easymenu browse-url url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs password-cache json subr-x map url-vars seq byte-opt gv bytecomp byte-compile cconv cl-loaddefs cl-lib tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite charscript charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote threads dbusbind inotify dynamic-setting system-font-setting font-render-setting xwidget-internal cairo move-toolbar gtk x-toolkit x multi-tty make-network-process emacs) Memory information: ((conses 16 468606 317258)  (symbols 48 38138 118)  (strings 32 160466 36787)  (string-bytes 1 4836226)  (vectors 16 59254)  (vector-slots 8 1357600 343876)  (floats 8 443 1316)  (intervals 56 2105 1619)  (buffers 1000 37)) From debbugs-submit-bounces@debbugs.gnu.org Thu Sep 17 19:09:46 2020 Received: (at submit) by debbugs.gnu.org; 17 Sep 2020 23:09:46 +0000 Received: from localhost ([127.0.0.1]:40029 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kJ32A-0003U0-EZ for submit@debbugs.gnu.org; Thu, 17 Sep 2020 19:09:46 -0400 Received: from lists.gnu.org ([209.51.188.17]:41566) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kJ327-0003Ts-RH for submit@debbugs.gnu.org; Thu, 17 Sep 2020 19:09:44 -0400 Received: from eggs.gnu.org ([209.51.188.92]:37448) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kJ327-0003Pe-LE for bug-gnu-emacs@gnu.org; Thu, 17 Sep 2020 19:09:43 -0400 Received: from se05.route25.eu ([2a00:f10:121:b00:43f:e2ff:fe00:1cfb]:52989) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kJ324-0000Fo-Vr for bug-gnu-emacs@gnu.org; Thu, 17 Sep 2020 19:09:42 -0400 Date: Fri, 18 Sep 2020 01:09:33 +0200 From: Russell Adams To: bug-gnu-emacs@gnu.org Subject: Re: bug#43389: 28.0.50; Emacs memory leaks Message-ID: <20200917230933.GC20217@maokai> Mail-Followup-To: bug-gnu-emacs@gnu.org References: <87r1r5428d.fsf@web.de> <87mu1sry72.fsf@mail.linkov.net> <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> <87ft7gjc9w.fsf@dismail.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <87ft7gjc9w.fsf@dismail.de> X-Originating-IP: 2a00:f10:400:2:446:66ff:fe00:2ce X-SpamExperts-Domain: out.pcextreme.nl X-SpamExperts-Username: 2a00:f10:400:2:446:66ff:fe00:2ce Authentication-Results: route25.eu; auth=pass smtp.auth=2a00:f10:400:2:446:66ff:fe00:2ce@out.pcextreme.nl X-SpamExperts-Outgoing-Class: ham X-SpamExperts-Outgoing-Evidence: Combined (0.15) X-Recommended-Action: accept X-Filter-ID: Mvzo4OR0dZXEDF/gcnlw0Z1apovzGPsYhEeBL1aoZmqpSDasLI4SayDByyq9LIhVUZbR67CQ7/vm /hHDJU4RXkTNWdUk1Ol2OGx3IfrIJKywOmJyM1qr8uRnWBrbSAGD0VsY0HzEkBzUTjuObUvkgtQ5 3pMmTXeVbblO3cSIiVDdjEIGnVqVFPXTuVAc5Zz8JODXbtOodkPED+RkHjVGH9gpfPe2lDQBFQc5 pWKjU8U1TnR+f0U9cu064nZcMieLAqdkk6hppCDsqsBwLjHur1XxB26GtR7aQdGQ3RxVouves6kz rlSgqbQ9LKX3ylukaHwJ2eESrUp0Iw/gSJ3HqMuR600P9eQ3vodupN36MrkzGQZS068e3EYTgNAB jZkD8TzPF4eG61o+cxFZrUIXowfXJosMX5ZQSlYSVlCDu2na8Lc2iK0mXNgodhRh0E6+UMVFei1G 2PrSIU9EwioS70yFBF2moUWeHNDS4qZDIDBdjx85xQq9VD42UbTRudBo31/E3ahF5MMcDI7KdpjQ KULbtCr8aoTjHIUEuG3LCVsCW2UOyugPPaOGK1ZclZhyJ1oAKHx1qHjvOGXm6QB+mk6ZTzCPKsFf twxbkg5OTEJBSZDxFdMdjhWKQRs1y634DGvlQu7vYJkMGKfUhQOlQ1pBpqUEddayCxics1Zh6GHP yuOh/PJ9pv0rl5NQbiuhVBsYczJrVm+mfF7fTQudNOONseKqGmwL/BYz7HZwmfg2umh3fGg1jVW+ Z2FkFYGti1raB7pyujnAjQNYFYtQW01m5bTT/XyrgLjJrWvnYd+i3OVn4utWL+XKWGD4tqKj6abO yKlLsxs8P4CT3FEuG+e1xpIIew+ItoucsoiUu/klk+nkyhKXBoJdL3EK4/k20RtMeAV6rvcnt3y4 sZIl0BCOZElyr6vvHzpX+LXF3wnIUfXflhw+3XtbSM7ZRev6jr2bCnF9in92BEWHwZ7e1bC6kNMb HJg2WHiMnJf3UB/rjuU3A3io6xJmD59iFVkb0N4DsCfcKRnFjI50VDFAuXbq0Ja1UFGvDgurTtyp e9pcC9ELPwddetNQ5IJa/7LUF1pltLw8grTuGXRUBFGQc9NUcnbrbm01NE0GPgA0GAcQoyxTv0/n qKq1/6bSiVclirWf06kevKuzXnAqzryB8w== X-Report-Abuse-To: spam@semaster01.route25.eu Received-SPF: pass client-ip=2a00:f10:121:b00:43f:e2ff:fe00:1cfb; envelope-from=rladams@adamsinfoserv.com; helo=se05.route25.eu X-detected-operating-system: by eggs.gnu.org: First seen = 2020/09/17 19:09:37 X-ACL-Warn: Detected OS = ??? X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) I haven't tried to recreate yet, I still have it open. Monitoring if it grows, and hoping to find something useful in the existing process. On Thu, Sep 17, 2020 at 05:58:51PM -0400, Joshua Branson via Bug reports for GNU Emacs, the Swiss army knife of text editors wrote: > > Over in #guix irc, the guix people seemed to think it was a memory leak with helm. > > I was watching my emacs consume about 0.1% more system memory every 2 or 3 seconds. Setting > > (setq helm-ff-keep-cached-candidates nil) > > Seemed to make the problem go away. > > I also made a video, where I watched this memory usage continually go up > and then stay steady after I turned off helm-ff-keep-cached-candidates. > This happens at about the 35 minute mark. > > https://video.hardlimit.com/videos/watch/3069e16a-d75c-4e40-8686-9102e40e333f > > And here's the bug report on guix system: > > https://issues.guix.gnu.org/43406#10 > > > -- > Joshua Branson > Sent from Emacs and Gnus > > > ------------------------------------------------------------------ Russell Adams RLAdams@AdamsInfoServ.com PGP Key ID: 0x1160DCB3 http://www.adamsinfoserv.com/ Fingerprint: 1723 D8CA 4280 1EC9 557F 66E8 1154 E018 1160 DCB3 From debbugs-submit-bounces@debbugs.gnu.org Fri Sep 18 02:56:12 2020 Received: (at 43389) by debbugs.gnu.org; 18 Sep 2020 06:56:12 +0000 Received: from localhost ([127.0.0.1]:40502 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kJAJY-0004u8-17 for submit@debbugs.gnu.org; Fri, 18 Sep 2020 02:56:12 -0400 Received: from eggs.gnu.org ([209.51.188.92]:49386) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kJAJT-0004tq-W3 for 43389@debbugs.gnu.org; Fri, 18 Sep 2020 02:56:08 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:57164) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kJAJN-0008Gj-LI; Fri, 18 Sep 2020 02:56:01 -0400 Received: from [176.228.60.248] (port=3409 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kJAJM-0000YV-S3; Fri, 18 Sep 2020 02:56:01 -0400 Date: Fri, 18 Sep 2020 09:56:14 +0300 Message-Id: <83d02j60a9.fsf@gnu.org> From: Eli Zaretskii To: Joshua Branson In-Reply-To: <87ft7gjc9w.fsf@dismail.de> (bug-gnu-emacs@gnu.org) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <87mu1sry72.fsf@mail.linkov.net> <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> <87ft7gjc9w.fsf@dismail.de> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Thu, 17 Sep 2020 17:58:51 -0400 > From: Joshua Branson via "Bug reports for GNU Emacs, > the Swiss army knife of text editors" > > > Over in #guix irc, the guix people seemed to think it was a memory leak with helm. Thanks. But if it's due to helm, why doesn't the huge memory usage show in the report produced by GC? That report should show all the Lisp object that we allocate and manage, no? Where does helm-ff-cache keeps those "candidates"? (And what is this cache, if someone could be kind enough to describe it?) From debbugs-submit-bounces@debbugs.gnu.org Fri Sep 18 03:54:10 2020 Received: (at 43389) by debbugs.gnu.org; 18 Sep 2020 07:54:10 +0000 Received: from localhost ([127.0.0.1]:40729 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kJBDd-0006aJ-Rj for submit@debbugs.gnu.org; Fri, 18 Sep 2020 03:54:10 -0400 Received: from mail-wr1-f53.google.com ([209.85.221.53]:37191) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kJBDb-0006Zv-NO for 43389@debbugs.gnu.org; Fri, 18 Sep 2020 03:54:08 -0400 Received: by mail-wr1-f53.google.com with SMTP id z4so4601778wrr.4 for <43389@debbugs.gnu.org>; Fri, 18 Sep 2020 00:54:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :mime-version:content-transfer-encoding; bh=LF1Y1otrw5hIt3ln5d5ISdZH19xStBrrpOnnD4p9s3Q=; b=n0Pqs5tzJaoxKbDA0JUb9q/h9xdVqhr2KPndQ4c+74v7h1dW4XpkHtgoVJ8dUvegoU zxk0qDtD2h9xvfE1ZCCaFv1eoZVz0EGtOANISMKy6rtIaaVn/5ZXMyLwOjDOHryog4Dv 3lPDQuWja1ulC3xaE9CHHd+z//IpPaL9IxdgDMcd2ncFEYbiYh8esShCqUbpykoWCk5E xhQQ3H2f0WmS7W1EzIB0AHzFI/P7h4xKjRufmBmmMD/gSAiSsZ8POkQbGHkEMK9Zxw5n lt8kOkhoPRN2Mi/vB77LEpdrvBE+rNGY9xcOG3x+lWxXJLK18P5OCtK+tDZtauibaQCv P/6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:mime-version:content-transfer-encoding; bh=LF1Y1otrw5hIt3ln5d5ISdZH19xStBrrpOnnD4p9s3Q=; b=ubH+JWNJ5X8yiRmjsJpedpAbKEdyDUJpJ9UAJwIMiwG3oJQthV3sDvUeTizYdvxLmu 6c7BdoAD9wYUieJx2OJ7v2cEqk2zl8PpEFtWz+zP50idZ1E2xnZWiIDlXOf76lo4Iayj pJOzE7EK9KUa/waZy3cEztnwF/uOL22fZJ9FCC+8vUBf75BMbKfQRbfxZhjI1kHdoaq6 QVZKpzOgJCuydq5G0nmTWTtP7w1juIwBr+dDWUYlHTkStffCR3AoTjIDEwqcpvEhMTFt jhC8mwUnm+UKsJijCIL7NfrWn38e9qSc9RpC36Cua2PjWoV6BPvHmX6ciKuf0gNx5Cbw gs2Q== X-Gm-Message-State: AOAM531HwAapBc6xs/V9dPPfjg7pkOyqIwfvOL7jFjOhlQQ71zj84Crn iIEXSyzAXchBtSIFkW1zvP8fdS3te5U= X-Google-Smtp-Source: ABdhPJx3INrva2xi5A+yYq9ovmMXfzqi4tg0hh5FRRFyi1y1GEfddx/dl2T8H/dYm1lA1Fvl0lF3+g== X-Received: by 2002:adf:a18c:: with SMTP id u12mr37955917wru.90.1600415641381; Fri, 18 Sep 2020 00:54:01 -0700 (PDT) Received: from rpluim-mac ([2a01:e34:ecfc:a860:2902:b2ff:ec42:6baa]) by smtp.gmail.com with ESMTPSA id e13sm3944677wre.60.2020.09.18.00.54.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 18 Sep 2020 00:54:00 -0700 (PDT) From: Robert Pluim To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <87mu1sry72.fsf@mail.linkov.net> <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> <87ft7gjc9w.fsf@dismail.de> <83d02j60a9.fsf@gnu.org> Date: Fri, 18 Sep 2020 09:53:59 +0200 In-Reply-To: <83d02j60a9.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 18 Sep 2020 09:56:14 +0300") Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org, Joshua Branson X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) >>>>> On Fri, 18 Sep 2020 09:56:14 +0300, Eli Zaretskii said: >> Date: Thu, 17 Sep 2020 17:58:51 -0400 >> From: Joshua Branson via "Bug reports for GNU Emacs, >> the Swiss army knife of text editors" >>=20 >>=20 >> Over in #guix irc, the guix people seemed to think it was a memory l= eak with helm. Eli> Thanks. Eli> But if it's due to helm, why doesn't the huge memory usage show in= the Eli> report produced by GC? That report should show all the Lisp object Eli> that we allocate and manage, no? Where does helm-ff-cache keeps t= hose Eli> "candidates"? (And what is this cache, if someone could be kind Eli> enough to describe it?) It=CA=BCs a hash table. It caches directory contents, as far as I can tell. Robert From debbugs-submit-bounces@debbugs.gnu.org Fri Sep 18 04:13:02 2020 Received: (at 43389) by debbugs.gnu.org; 18 Sep 2020 08:13:02 +0000 Received: from localhost ([127.0.0.1]:40754 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kJBVt-00074P-N2 for submit@debbugs.gnu.org; Fri, 18 Sep 2020 04:13:01 -0400 Received: from eggs.gnu.org ([209.51.188.92]:50958) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kJBVs-000740-7H for 43389@debbugs.gnu.org; Fri, 18 Sep 2020 04:13:00 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:58429) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kJBVl-0003lr-WC; Fri, 18 Sep 2020 04:12:54 -0400 Received: from [176.228.60.248] (port=4144 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kJBVl-00048H-29; Fri, 18 Sep 2020 04:12:53 -0400 Date: Fri, 18 Sep 2020 11:13:05 +0300 Message-Id: <831riz5wq6.fsf@gnu.org> From: Eli Zaretskii To: Robert Pluim In-Reply-To: (message from Robert Pluim on Fri, 18 Sep 2020 09:53:59 +0200) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <87mu1sry72.fsf@mail.linkov.net> <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> <87ft7gjc9w.fsf@dismail.de> <83d02j60a9.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org, jbranso@dismail.de X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Robert Pluim > Cc: Joshua Branson , 43389@debbugs.gnu.org > Date: Fri, 18 Sep 2020 09:53:59 +0200 > > Eli> But if it's due to helm, why doesn't the huge memory usage show in the > Eli> report produced by GC? That report should show all the Lisp object > Eli> that we allocate and manage, no? Where does helm-ff-cache keeps those > Eli> "candidates"? (And what is this cache, if someone could be kind > Eli> enough to describe it?) > > Itʼs a hash table. It caches directory contents, as far as I can tell. Then its memory usage should be part of the GC report, no? I guess, if this helm feature is really the culprit, then the growth of memory footprint is not due to the hash-table itself, but to something else, which is not a Lisp object and gets allocated via direct calls to malloc or something? From debbugs-submit-bounces@debbugs.gnu.org Fri Sep 18 04:22:51 2020 Received: (at 43389) by debbugs.gnu.org; 18 Sep 2020 08:22:51 +0000 Received: from localhost ([127.0.0.1]:40760 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kJBfO-0007K5-NQ for submit@debbugs.gnu.org; Fri, 18 Sep 2020 04:22:50 -0400 Received: from eggs.gnu.org ([209.51.188.92]:53342) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kJBfN-0007Js-2z for 43389@debbugs.gnu.org; Fri, 18 Sep 2020 04:22:49 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:58610) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kJBfH-00050f-5K; Fri, 18 Sep 2020 04:22:43 -0400 Received: from [176.228.60.248] (port=4837 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kJBfF-0004xR-U5; Fri, 18 Sep 2020 04:22:42 -0400 Date: Fri, 18 Sep 2020 11:22:54 +0300 Message-Id: <83zh5n4hpd.fsf@gnu.org> From: Eli Zaretskii To: Russell Adams In-Reply-To: <20200917204704.GA20217@maokai> (message from Russell Adams on Thu, 17 Sep 2020 22:47:04 +0200) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <87mu1sry72.fsf@mail.linkov.net> <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Thu, 17 Sep 2020 22:47:04 +0200 > From: Russell Adams > > >From Emacs memory-usage package: > > Garbage collection stats: > ((conses 16 1912248 251798) (symbols 48 54872 19) (strings 32 327552 81803) (string-bytes 1 12344346) (vectors 16 158994) (vector-slots 8 2973919 339416) (floats 8 992 4604) (intervals 56 182607 7492) (buffers 1000 195)) > > => 29.2MB (+ 3.84MB dead) in conses > 2.51MB (+ 0.89kB dead) in symbols > 10.00MB (+ 2.50MB dead) in strings > 11.8MB in string-bytes > 2.43MB in vectors > 22.7MB (+ 2.59MB dead) in vector-slots > 7.75kB (+ 36.0kB dead) in floats > 9.75MB (+ 410kB dead) in intervals > 190kB in buffers > > Total in lisp objects: 97.9MB (live 88.5MB, dead 9.36MB) > > Buffer ralloc memory usage: > 81 buffers > 4.71MB total (1007kB in gaps) > > ---------------------------------------------------------------------- > > And /proc/PID/smaps which is huge so I pastebinned it. > > https://termbin.com/2sx5 Thanks. > 56413d24a000-5642821c6000 rw-p 00000000 00:00 0 [heap] > Size: 5324272 kB > KernelPageSize: 4 kB > MMUPageSize: 4 kB > Rss: 5245496 kB > Pss: 5245496 kB > Shared_Clean: 0 kB > Shared_Dirty: 0 kB > Private_Clean: 0 kB > Private_Dirty: 5245496 kB > Referenced: 5245496 kB > Anonymous: 5245496 kB > LazyFree: 0 kB > AnonHugePages: 0 kB > ShmemPmdMapped: 0 kB > FilePmdMapped: 0 kB > Shared_Hugetlb: 0 kB > Private_Hugetlb: 0 kB > Swap: 0 kB > SwapPss: 0 kB > Locked: 0 kB > THPeligible: 0 > VmFlags: rd wr mr mw me ac So it seems to be our heap that takes most of the 5GB. It might be interesting to see which operations/commands cause this part to increase. From debbugs-submit-bounces@debbugs.gnu.org Sun Sep 20 16:08:27 2020 Received: (at 43389) by debbugs.gnu.org; 20 Sep 2020 20:08:27 +0000 Received: from localhost ([127.0.0.1]:52752 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kK5dL-0002Vz-Es for submit@debbugs.gnu.org; Sun, 20 Sep 2020 16:08:27 -0400 Received: from mx1.dismail.de ([78.46.223.134]:30811) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kK5dI-0002Vi-FY for 43389@debbugs.gnu.org; Sun, 20 Sep 2020 16:08:25 -0400 Received: from mx1.dismail.de (localhost [127.0.0.1]) by mx1.dismail.de (OpenSMTPD) with ESMTP id 8f1ce196; Sun, 20 Sep 2020 22:08:18 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=dismail.de; h= mime-version:date:content-type:content-transfer-encoding:from :message-id:subject:to:cc:in-reply-to:references; s=20190914; bh=WD0qgObU4N/dTZpCugSUrlxk/afLcF94xTAV+irSw44=; b=AX74b4bFS14o g+Zwqe5WwOk93IxEDlcQdxcS9b7lyJwk9GKfcANtMHgDmK6VnuGvfE70yx5MxVsY ZxahjY1/ym3eSDtq97rVjp/Vl4K8nT3fyt+PMnKUlslIfdQzjJbJrfgw3p05enmY /CmplNGDD4snKF6+wmO343y3QGZ5G9+5+GP7Md68x7V/q8LjNyAR53sAfPN4wbgG VPhf2HBSvlxzwy6FJU2r4VdouAT/wAL9tFQxzqv5MtEX0VMnU0wpNID8Q1ezOjw4 hdDHW+HTIAHRdOKjCa2RPLbA6uVsEsh7Mstv1q48G83q+eOA5CZozjYdKrZ0niEK rTsqoU6q2A== Received: from smtp1.dismail.de ( [10.240.26.11]) by mx1.dismail.de (OpenSMTPD) with ESMTP id 27ae586d; Sun, 20 Sep 2020 22:08:17 +0200 (CEST) Received: from smtp1.dismail.de (localhost [127.0.0.1]) by smtp1.dismail.de (OpenSMTPD) with ESMTP id 5b0f0c26; Sun, 20 Sep 2020 22:08:17 +0200 (CEST) Received: by dismail.de (OpenSMTPD) with ESMTPSA id b40e79d0 (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256:NO); Sun, 20 Sep 2020 22:08:17 +0200 (CEST) MIME-Version: 1.0 Date: Sun, 20 Sep 2020 20:08:17 +0000 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Mailer: RainLoop/1.14.0a From: jbranso@dismail.de Message-ID: Subject: Re: bug#43389: 28.0.50; Emacs memory leaks To: "Eli Zaretskii" , "Robert Pluim" In-Reply-To: <831riz5wq6.fsf@gnu.org> References: <831riz5wq6.fsf@gnu.org> <87r1r5428d.fsf@web.de> <87mu1sry72.fsf@mail.linkov.net> <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> <87ft7gjc9w.fsf@dismail.de> <83d02j60a9.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Maybe I spoke a little too soon. I just saw two related bug reports and t= hought I would connect them. Ludo actually closed the bug in Guix System.= He confirmed that for him, helm seemed to be the problem. =0A=0ASeptem= ber 18, 2020 4:12 AM, "Eli Zaretskii" wrote:=0A=0A>> From:= Robert Pluim =0A>> Cc: Joshua Branson , 43389@debbugs.gnu.org=0A>> Date: Fri, 18 Sep 2020 09:53:59 +0200=0A= >> =0A>> Eli> But if it's due to helm, why doesn't the huge memory usage = show in the=0A>> Eli> report produced by GC? That report should show all = the Lisp object=0A>> Eli> that we allocate and manage, no? Where does hel= m-ff-cache keeps those=0A>> Eli> "candidates"? (And what is this cache, i= f someone could be kind=0A>> Eli> enough to describe it?)=0A>> =0A>> It= =CA=BCs a hash table. It caches directory contents, as far as I can tell.= =0A> =0A> Then its memory usage should be part of the GC report, no?=0A> = =0A> I guess, if this helm feature is really the culprit, then the growth= =0A> of memory footprint is not due to the hash-table itself, but to=0A> = something else, which is not a Lisp object and gets allocated via=0A> dir= ect calls to malloc or something? From debbugs-submit-bounces@debbugs.gnu.org Fri Oct 09 02:58:45 2020 Received: (at control) by debbugs.gnu.org; 9 Oct 2020 06:58:45 +0000 Received: from localhost ([127.0.0.1]:33984 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kQmMX-00076i-6I for submit@debbugs.gnu.org; Fri, 09 Oct 2020 02:58:45 -0400 Received: from eggs.gnu.org ([209.51.188.92]:51442) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kQmMS-00076Q-Ra; Fri, 09 Oct 2020 02:58:43 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:54365) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kQmMN-0002ng-HI; Fri, 09 Oct 2020 02:58:35 -0400 Received: from [176.228.60.248] (port=1210 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kQmME-0004GS-SS; Fri, 09 Oct 2020 02:58:29 -0400 Date: Fri, 09 Oct 2020 09:58:24 +0300 Message-Id: <831ri77unj.fsf@gnu.org> From: Eli Zaretskii To: Naveed Chehrazi In-Reply-To: (message from Naveed Chehrazi on Thu, 8 Oct 2020 19:53:02 -0500) Subject: Re: bug#43876: Emacs uses excessive memory References: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: control Cc: 43876@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) merge 43876 43389 thanks > From: Naveed Chehrazi > Date: Thu, 8 Oct 2020 19:53:02 -0500 > > I had two instances where my emacs was using an excessive amount of memory (once about 45GiB, and > once using 94GiB). I have the memory-profiler report below. It appears that helm package is the cause, Please disregard the profiler results: it doesn't measure memory consumption, not at all. What would be beneficial for this and similar bug reports (see bug#43389) is to describe what you are doing when memory footprint of the Emacs process grows significantly. That might give some ideas about where to look for the culprit(s). Do you have some customizations that change gc-cons-threshold? From debbugs-submit-bounces@debbugs.gnu.org Thu Oct 29 17:41:06 2020 Received: (at 43389) by debbugs.gnu.org; 29 Oct 2020 21:41:06 +0000 Received: from localhost ([127.0.0.1]:55186 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kYFfK-0004Pv-LE for submit@debbugs.gnu.org; Thu, 29 Oct 2020 17:41:06 -0400 Received: from mail.trevorbentley.com ([37.187.5.80]:34580) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kYEMS-0006Te-0z for 43389@debbugs.gnu.org; Thu, 29 Oct 2020 16:17:28 -0400 Received: from localhost (c188-150-0-48.bredband.comhem.se [188.150.0.48]) by mail.trevorbentley.com (Postfix) with ESMTPSA id 4593760256 for <43389@debbugs.gnu.org>; Thu, 29 Oct 2020 21:17:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mail.trevorbentley.com; s=mail; t=1604002641; bh=9XkacWxhPnQ31RMALBowpOW2JfGEFRFzL/yBHrOZubo=; h=From:To:Cc:Subject:Date:From; b=pqMx2SGp3/MUxsX/OJcRNKfXlgxakRy+fv5ROqSO5Pt4eWJC5lvJRtQzjsZfOebik XZE7imzM+/PXmi+/QF6fFxRW3oUkA2n3r6vkZuZQ5N2d/HjEIvLlgkCCdxqAqj2sqR fRjTBcjksnOD4/fuMkm2lTKqP5ukYe9vvUHuGCwc= From: Trevor Bentley To: 43389@debbugs.gnu.org Subject: Re: bug#43389: 28.0.50; Emacs memory leaks Date: Thu, 29 Oct 2020 21:17:20 +0100 Message-ID: <874kmcvlbj.fsf@mail.trevorbentley.com> MIME-Version: 1.0 Content-Type: text/plain; format=flowed X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 X-Mailman-Approved-At: Thu, 29 Oct 2020 17:41:02 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) I'm regularly encountering a bug that might be this one. As with the previous posters, one of my emacs instances regularly grows up to 7-10 GB. Garbage collection shows emacs is only aware of ~250MB and has nothing to collect, and /proc//smaps shows all of the usage in the heap. The only emacs instance that hits this is the one I use the "emacs-slack" package in, which means long-lived HTTPS connections. I'm aware that this is a relatively unusual use of emacs. It doesn't start leaking until it has been active for 2-3 days. It might depends on other factors, such as suspending or losing network connectivity. Once the leak triggers, it grows at a rate of about 1MB every few seconds. My machine has 32GB, so it gets pretty far before I notice and kill it. I'm not sure if there is a limit. I built emacs with debug symbols and dumped some strace logs last time it happened. This is from the "native-comp" branch, since it's the only one I had built with debug symbols: GNU Emacs 28.0.50, commit feed53f8b5da0e58cce412cd41a52883dba6c1be. I see the same with the version installed from my package manager (Arch, GNU Emacs 27.1), and the strace log looks about the same, though without symbols. I waited until it was actively leaking, and then ran the following command to print a stack trace whenever the heap is extended with brk(): $ sudo strace -p $PID -k -r --trace="?brk" --signal="SIGTERM" The findings: this particular leak is triggered in libgnutls. I get large batches of the following (truncated) stack trace --- SNIP --- > /usr/lib/libc-2.32.so(brk+0xb) [0xf6e7b] > /usr/lib/libc-2.32.so(__sbrk+0x84) [0xf6f54] > /usr/lib/libc-2.32.so(__default_morecore+0xd) [0x8d80d] > /usr/lib/libc-2.32.so(sysmalloc+0x372) [0x890e2] > /usr/lib/libc-2.32.so(_int_malloc+0xd9e) [0x8ad6e] > /usr/lib/libc-2.32.so(__libc_malloc+0x1c1) [0x8be51] > /usr/lib/libgnutls.so.30.28.1(gnutls_session_ticket_send+0x566) > [0x3cc36] > /usr/lib/libgnutls.so.30.28.1(gnutls_record_check_corked+0xc0a) > [0x3e42a] > /usr/lib/libgnutls.so.30.28.1(gnutls_transport_get_int+0x11b1) > [0x34d31] > /usr/lib/libgnutls.so.30.28.1(gnutls_transport_get_int+0x3144) > [0x36cc4] > /home/trevor/applications/opt/bin/emacs-28.0.50(emacs_gnutls_read+0x5d) > [0x2e40a7] > /home/trevor/applications/opt/bin/emacs-28.0.50(read_process_output+0x28e) > [0x2def18] --- SNIP --- A larger log file is available here: http://trevorbentley.com/emacs_strace.log I'm not sure if gnutls is giving back buffers that emacs is supposed to free, or if the leak is entirely contained within gnutls, but something in that path is hanging on to a lot of allocations indefinitely. Hope this is useful, and let me know if I can provide any other information that would be helpful. -Trevor From debbugs-submit-bounces@debbugs.gnu.org Fri Oct 30 04:00:56 2020 Received: (at 43389) by debbugs.gnu.org; 30 Oct 2020 08:00:56 +0000 Received: from localhost ([127.0.0.1]:55957 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kYPLE-0001OK-E3 for submit@debbugs.gnu.org; Fri, 30 Oct 2020 04:00:56 -0400 Received: from eggs.gnu.org ([209.51.188.92]:42350) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kYPLC-0001O8-PW for 43389@debbugs.gnu.org; Fri, 30 Oct 2020 04:00:55 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:56217) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kYPL6-0006m5-65; Fri, 30 Oct 2020 04:00:49 -0400 Received: from [176.228.60.248] (port=1181 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kYPL5-0007lE-Ku; Fri, 30 Oct 2020 04:00:48 -0400 Date: Fri, 30 Oct 2020 10:00:29 +0200 Message-Id: <83imasb0te.fsf@gnu.org> From: Eli Zaretskii To: Trevor Bentley In-Reply-To: <874kmcvlbj.fsf@mail.trevorbentley.com> (message from Trevor Bentley on Thu, 29 Oct 2020 21:17:20 +0100) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <874kmcvlbj.fsf@mail.trevorbentley.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Trevor Bentley > Date: Thu, 29 Oct 2020 21:17:20 +0100 > > It doesn't start leaking until it has been active for 2-3 days. > It might depends on other factors, such as suspending or losing > network connectivity. Once the leak triggers, it grows at a rate > of about 1MB every few seconds. My machine has 32GB, so it gets > pretty far before I notice and kill it. I'm not sure if there is a > limit. > > I built emacs with debug symbols and dumped some strace logs last > time it happened. This is from the "native-comp" branch, since > it's the only one I had built with debug symbols: GNU Emacs > 28.0.50, commit feed53f8b5da0e58cce412cd41a52883dba6c1be. I see > the same with the version installed from my package manager (Arch, > GNU Emacs 27.1), and the strace log looks about the same, though > without symbols. > > I waited until it was actively leaking, and then ran the following > command to print a stack trace whenever the heap is extended with > brk(): > > $ sudo strace -p $PID -k -r --trace="?brk" --signal="SIGTERM" > > The findings: this particular leak is triggered in libgnutls. I > get large batches of the following (truncated) stack trace Thanks. This trace doesn't show how many bytes were allocated, does it? Without that it is hard to judge whether these GnuTLS calls could be the culprit. Because the full trace shows other calls to malloc, for example this: > /usr/lib/libc-2.32.so(brk+0xb) [0xf6e7b] > /usr/lib/libc-2.32.so(__sbrk+0x84) [0xf6f54] > /usr/lib/libc-2.32.so(__default_morecore+0xd) [0x8d80d] > /usr/lib/libc-2.32.so(sysmalloc+0x372) [0x890e2] > /usr/lib/libc-2.32.so(_int_malloc+0xd9e) [0x8ad6e] > /usr/lib/libc-2.32.so(_int_memalign+0x3f) [0x8b01f] > /usr/lib/libc-2.32.so(_mid_memalign+0x13c) [0x8c12c] > /home/trevor/applications/opt/bin/emacs-28.0.50(lisp_align_malloc+0x2e) [0x2364ee] > /home/trevor/applications/opt/bin/emacs-28.0.50(Fcons+0x65) [0x237f74] > /home/trevor/applications/opt/bin/emacs-28.0.50(store_in_alist+0x5f) [0x5c9a3] > /home/trevor/applications/opt/bin/emacs-28.0.50(gui_report_frame_params+0x46a) [0x607f1] > /home/trevor/applications/opt/bin/emacs-28.0.50(Fframe_parameters+0x499) [0x5d88b] > /home/trevor/applications/opt/bin/emacs-28.0.50(Fframe_parameter+0x381) [0x5dc9c] > /home/trevor/applications/opt/bin/emacs-28.0.50(eval_sub+0x7a7) [0x26f964] > /home/trevor/applications/opt/bin/emacs-28.0.50(Fif+0x1f) [0x26b590] > /home/trevor/applications/opt/bin/emacs-28.0.50(eval_sub+0x38b) [0x26f548] > /home/trevor/applications/opt/bin/emacs-28.0.50(Feval+0x7a) [0x26ef45] > /home/trevor/applications/opt/bin/emacs-28.0.50(funcall_subr+0x257) [0x271463] > /home/trevor/applications/opt/bin/emacs-28.0.50(Ffuncall+0x192) [0x270fe9] > /home/trevor/applications/opt/bin/emacs-28.0.50(internal_condition_case_n+0xa1) [0x26d81a] > /home/trevor/applications/opt/bin/emacs-28.0.50(safe__call+0x211) [0x73943] > /home/trevor/applications/opt/bin/emacs-28.0.50(safe__call1+0xba) [0x73b47] > /home/trevor/applications/opt/bin/emacs-28.0.50(safe__eval+0x35) [0x73bd7] > /home/trevor/applications/opt/bin/emacs-28.0.50(display_mode_element+0xe32) [0xb5515] This seems to indicate some mode-line element that uses :eval, but without knowing what it does it is hard to say anything more specific. I also see this: > /home/trevor/applications/opt/bin/emacs-28.0.50(_start+0x2e) [0x4598e] 2.870962 brk(0x55f5ed9a4000) = 0x55f5ed9a4000 > /usr/lib/libc-2.32.so(brk+0xb) [0xf6e7b] > /usr/lib/libc-2.32.so(__sbrk+0x84) [0xf6f54] > /usr/lib/libc-2.32.so(__default_morecore+0xd) [0x8d80d] > /usr/lib/libc-2.32.so(sysmalloc+0x372) [0x890e2] > /usr/lib/libc-2.32.so(_int_malloc+0xd9e) [0x8ad6e] > /usr/lib/libc-2.32.so(_int_memalign+0x3f) [0x8b01f] > /usr/lib/libc-2.32.so(_mid_memalign+0x13c) [0x8c12c] > /home/trevor/applications/opt/bin/emacs-28.0.50(lisp_align_malloc+0x2e) [0x2364ee] > /home/trevor/applications/opt/bin/emacs-28.0.50(Fcons+0x65) [0x237f74] > /home/trevor/applications/opt/bin/emacs-28.0.50(Fmake_list+0x4f) [0x238544] > /home/trevor/applications/opt/bin/emacs-28.0.50(concat+0x5c3) [0x2792f6] > /home/trevor/applications/opt/bin/emacs-28.0.50(Fcopy_sequence+0x16a) [0x278d2a] > /home/trevor/applications/opt/bin/emacs-28.0.50(timer_check+0x33) [0x1b79dd] > /home/trevor/applications/opt/bin/emacs-28.0.50(readable_events+0x1a) [0x1b5d00] > /home/trevor/applications/opt/bin/emacs-28.0.50(get_input_pending+0x2f) [0x1bcf3a] > /home/trevor/applications/opt/bin/emacs-28.0.50(detect_input_pending_run_timers+0x2e) [0x1c4eb1] > /home/trevor/applications/opt/bin/emacs-28.0.50(wait_reading_process_output+0x14ec) [0x2de0c0] > /home/trevor/applications/opt/bin/emacs-28.0.50(sit_for+0x211) [0x53e78] > /home/trevor/applications/opt/bin/emacs-28.0.50(read_char+0x1019) [0x1b3f62] This indicates some timer that runs; again, without knowing which timer and what it does, it is hard to proceed. Etc. etc. -- the bottom line is that I think we need to know how many bytes are allocated in each call to make some progress. It would be even more useful if we could somehow know which of the allocated buffers are free'd soon and which aren't. That's because Emacs calls memory allocation functions _a_lot_, and it is completely normal to see a lot of these calls. What we need is to find allocations that don't get free'd, and whose byte counts come close to explaining the rate of 1MB every few seconds. So these calls need to be filtered somehow, otherwise we will not see the forest for the gazillion trees. > I'm not sure if gnutls is giving back buffers that emacs is > supposed to free, or if the leak is entirely contained within > gnutls, but something in that path is hanging on to a lot of > allocations indefinitely. The GnuTLS functions we call in emacs_gnutls_read are: gnutls_record_recv emacs_gnutls_handle_error The latter is only called if there's an error, so I'm guessing it is not part of your trace. And the former doesn't say in its documentation that Emacs should free any buffers after calling it, so I'm not sure how Emacs could be the culprit here. If GnuTLS is the culprit (and as explained above, this is not certain at this point), perhaps upgrading to a newer GnuTLS version or reporting this to GnuTLS developers would allow some progress. From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 09 15:46:27 2020 Received: (at 43389) by debbugs.gnu.org; 9 Nov 2020 20:46:27 +0000 Received: from localhost ([127.0.0.1]:35705 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcE3X-0000Wk-Fo for submit@debbugs.gnu.org; Mon, 09 Nov 2020 15:46:27 -0500 Received: from mout.web.de ([212.227.17.12]:43219) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcE3U-0000WU-IB for 43389@debbugs.gnu.org; Mon, 09 Nov 2020 15:46:25 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1604954773; bh=MA0OG7cbYG/RiqNxzUpE1Nc8FE3wc4hEmw+4f9q3c5M=; h=X-UI-Sender-Class:From:To:Cc:Subject:References:Date:In-Reply-To; b=DgUIQGWIe+DPqi458stNhcFQvhOVFXm6xDftP3HD0bAg1A6pnqigloC8tei4wVy+h okX+Ptj6qPdbnwghC40nqhQJ9gRYmMrbFj+MhMZyVwE9EPIjp+qHbRu3faSb2++QaG T6PiG+aAxkv4bqByqnNEEr+Kiiic++odQ/VVzX9o= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Received: from drachen.dragon ([94.218.215.213]) by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MeDMb-1k4Gg60g7j-00arha; Mon, 09 Nov 2020 21:46:13 +0100 From: Michael Heerdegen To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <87mu1sry72.fsf@mail.linkov.net> <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> <83zh5n4hpd.fsf@gnu.org> Date: Mon, 09 Nov 2020 21:46:11 +0100 In-Reply-To: <83zh5n4hpd.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 18 Sep 2020 11:22:54 +0300") Message-ID: <878sbagsx8.fsf@web.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:AFIMyI2ahDYZGUR4gS76FNBZHrn8gTjOSNRE9/eIQQeG/Je/m9G TnjeBRcjzV7ARnofiywWwJRwtrHwz+CQzNxz/EF2sFLOIElrGvnVyy1/tE7XdOWLR9aNcES LTjg2tWvaXawG7/5SuPOa03lI/+zzT6cZW8gyERpzWFQbxQYdKK5b2s90EJirOjTZessoSp FwSej8TQ7fJXEulF1TkeQ== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:kcPkp8Fu3GM=:XcqtGpLbMKf86bbjVfn8Bc Jl2oPGXNgscKzev0uP8A/puvwo8Z8WQLwDMslzs3RpDXCc2ojzE0gzKyCs3+4hCkW2/dcKn51 /a8pczXb8nP3XsUx1lATqCPDz8BMCDcNkKLN9kdmfB5j8WhYSMY/nbOoa9PHNiQNuVMQu6aTC mtM9b0HsPnnmyBJwC9QC0r2unNHIrQALERJCKF4GOVBbt7VEay7zxv369xX/q6bLQOHsqovti mqctm0/GOm/8kXcO/KI/C88NZN8PB6RlJ9QL/kJ1rHugcvSPT4NhlMSI55LzjZVxxuYqNYVIB ntU8xwwmBL3ty/vCfdUUkbUJonV4nqbkquDAU/b3He8pY+KEj3jaJD8Tp6sRAHFb0GCl6YNP5 SBCWZcQaVrXBItP9Q5mTNHEMKJt41xEesozwMHI6PxUYgSG7uR//DIJ9t9ys47I/kIeW4r7NK mOFLlH2peoobEVvbsZ4UK6U2/39LOeRSR57yA+OHTj5sYsNKwT36/PtW8LIghMbwpGWWxlRtC qbbIOrumPO0pNGKfNEC1dZxXohQPGtcNiQJcDO4jrOWxOrniN9cYUFcIZ0Pjp3YWsz9YjX8xd iUQTClwza90l7VxmEPlEJ4j/+g8HVstZDTeAXAwLn4Bq1P6/Ru3+2+UrZPsgTgA8jKuGCwRVD tNoubg4YDAk7Iz8T7NjFosus8gH6pHnxPPaDbJwqSQTTNOxV3BxOzOTiActQMDHGwaCMRxrQE 5TOxhHQ51vGAu7XzjBXBOMW7ANZbj6swL71xxkjy2BvjejdplXia2RjAQoptfWLBQZc3g5dNU ftdwidvBMN0Z0uyUSv0TFWQRraJk6pj/d3jvh4r4Qit+6sLJIRwi5B4dSJETZIjEnqcd6oneC jfY3wZsE2JujGYIEnVqNHW7cVNjF74irj2cyovRoI= X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org, Russell Adams X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Eli Zaretskii writes: > So it seems to be our heap that takes most of the 5GB. Today it happened again to me. I'm writing from an Emacs session using more than 5 GB of memory. I've started it some hours ago and have no clue why today had been special. I didn't do anything exceptional. Here is output from memory-usage: Garbage collection stats: ((conses 16 2645730 3784206) (symbols 48 68678 724) (strings 32 528858 451889) (string-bytes 1 18127696) (vectors 16 213184) (vector-slots 8 3704641 2189052) (floats 8 2842 5514) (intervals 56 264780 87057) (buffers 992 119)) => 40.4MB (+ 57.7MB dead) in conses 3.14MB (+ 33.9kB dead) in symbols 16.1MB (+ 13.8MB dead) in strings 17.3MB in string-bytes 3.25MB in vectors 28.3MB (+ 16.7MB dead) in vector-slots 22.2kB (+ 43.1kB dead) in floats 14.1MB (+ 4.65MB dead) in intervals 115kB in buffers Total in lisp objects: 216MB (live 123MB, dead 93.0MB) Buffer ralloc memory usage: 119 buffers 16.1MB total (1.71MB in gaps) Anything I can do to find out more? I dunno how long I can keep this session open. Tried `clear-image-cache', it does not release any memory. Michael. From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 09 16:25:08 2020 Received: (at 43389) by debbugs.gnu.org; 9 Nov 2020 21:25:08 +0000 Received: from localhost ([127.0.0.1]:35717 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcEex-0001Xv-Pm for submit@debbugs.gnu.org; Mon, 09 Nov 2020 16:25:07 -0500 Received: from mout.web.de ([212.227.15.4]:41767) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcEew-0001XJ-LD for 43389@debbugs.gnu.org; Mon, 09 Nov 2020 16:25:07 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1604957096; bh=XwaYKFG6lsMbKsIEAgrgI37CxnC1RhlgWF9tGAk2Grk=; h=X-UI-Sender-Class:From:To:Cc:Subject:References:Date:In-Reply-To; b=Kv6Dnd9bWpxRs41pS2axhizvv5jzQsjiEBcVZ7KNpHD90Pvo0Jw2vXQ+dK6TI6f+c jvHDff8CzMty34DenNoTRkE3SZxqamxc+rgwfMuillbdlqrsR81oeVm+8Z4y8Y7WyS xQzbOkJyCaomQfRtQwdWCgsxrCx3dHFywWtw5vOc= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Received: from drachen.dragon ([94.218.215.213]) by smtp.web.de (mrweb004 [213.165.67.108]) with ESMTPSA (Nemesis) id 0Lkm1c-1k40Im216S-00aYjt; Mon, 09 Nov 2020 22:24:56 +0100 From: Michael Heerdegen To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <87mu1sry72.fsf@mail.linkov.net> <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> <83zh5n4hpd.fsf@gnu.org> <878sbagsx8.fsf@web.de> Date: Mon, 09 Nov 2020 22:24:55 +0100 In-Reply-To: <878sbagsx8.fsf@web.de> (Michael Heerdegen's message of "Mon, 09 Nov 2020 21:46:11 +0100") Message-ID: <87imaefck8.fsf@web.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:6ueIp602rRjE4Q1sKYDCqKkeDdWjkYuLiGNva/StQWTciw1Dtfp NWcIwZvS84Mngfd22TfiMKKE4b6vurvHFeWN94HXgSOtVHVsMLXIKmZZm3+zDgT1MlFAJ0a 9TjxSr65uTI2HH9qWMbZX3ufbRWm5JM9PuUE93XAfX40Vr8maPLIuAhncohtWs+bTvlGiYH lmcNR3e1KYzpSCH7BPeoA== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:YcGpL9XwDq0=:bUvZQhX3C5jKdXuG/Rtnup jUS3UCyg+L4YiQpNa15w3JITmsXwxmtqw1B+tIpK3nCMahBycAatC8yomb4MXeGJpLk3RNThL RL1kKMrvV13zgvq58DEVWfpo3p31Sew/tYQmNF7c7Vmq+EHzt1X8Z1FSvPUYHnzCwyYWSe3SQ lyi+WWlxF5oa0pzPME64Z1r5vPNpr5+bZxAXRV7usCctzqzD8kkSK0+7hdrJEHw69+HYKE68K r2TkBM2Zgk0MflemG+F0o02ERBHNRjygELTzRiAAEpO7rN73R5Y7FfGenlMY9nE4pNrlZOxNe 2cH5cwD5+rarGi1m7GYe5MBUWlqkMGXOOCcCeyZJrcC3aF7X5WavWbIR7hqem7AIaIq5gq6Cu fvWdzoQC4zRQrjUuygSX2PlnujIekMFZwdm1TlDvbSwxiDOR+PiHOGtnQtbc8Q4YEa2qfdVOf c2bYneDQfgPRYzUc5tF7tbjkV6O8ar03E4Yi7OOo3+uF+NacX0pruRUhYYNcibuBFIgvc+L1F fACjIxFVIUNOF4JBKoY5cBzuXv5i3MR8cz3iHdX7Q9mXR35YaO/4lULRNy6Ylxf3co3oDYpIw pz4oZ3hu+IMFVMK5f0Lmslhicb3jekWsuHosNzyS67SKJ53rEBMBqkHy7SRMoWQgZ9M75Rk7M LVgNDCsVoMiYRm6t7e8HbVoROwea1p7BHFEf3xbncyD+OD6JyBJZv7Becf+DoDH0YrosoUxKa EK54XPLgEYVZzbC9bFmCLrNYXuqW7amAZXBflj9PVCg7z2ekbzMf7+zYTPCQY7ZtKPrBC7PvY Urvafe7mNFUHKVOxeqN6n8GsIHxYCw6epIc7ehs4KGqRxmWLi6bRZmAfLQKMBwTfYxs3egi/w l7q7LhHjfviSXvqO/E4qnwOJWmdfmK2LHnIX0Q9Gw= X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org, Russell Adams X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Michael Heerdegen writes: > Anything I can do to find out more? I dunno how long I can keep this > session open. Tried `clear-image-cache', it does not release any > memory. I found this line in pmap output: 0000557322314000 6257824K rw--- [ anon ] Is it relevant? Thanks, Michael. From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 09 16:51:21 2020 Received: (at 43389) by debbugs.gnu.org; 9 Nov 2020 21:51:22 +0000 Received: from localhost ([127.0.0.1]:35737 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcF4L-0002I5-LB for submit@debbugs.gnu.org; Mon, 09 Nov 2020 16:51:21 -0500 Received: from mout.web.de ([212.227.15.3]:47413) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcF4K-0002Hp-Ao for 43389@debbugs.gnu.org; Mon, 09 Nov 2020 16:51:20 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1604958671; bh=1Hok2Lj/3uVnyxTte2luLs7afcPfYnXaQ9/C/DEmpTc=; h=X-UI-Sender-Class:From:To:Cc:Subject:References:Date:In-Reply-To; b=B2YzmT0YgxHmC0JLbUHnV3X1CaINox+sfh1iIKNvhkI2HIS+zpOqWqCQTG5Rk+OE2 ZyqsQqAIi5lbIHLsHSrARYOjAxJcoWgndj6sPbDM4oQgF20gdCHqRorVFleusn7pVe 7rH2FT9pvM2j9DZiVvz3Kq/fZwkfJo4pyrLqOEZg= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Received: from drachen.dragon ([94.218.215.213]) by smtp.web.de (mrweb006 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MpU1w-1jxLoh2y7g-00pxJ2; Mon, 09 Nov 2020 22:51:11 +0100 From: Michael Heerdegen To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <87mu1sry72.fsf@mail.linkov.net> <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> <83zh5n4hpd.fsf@gnu.org> <878sbagsx8.fsf@web.de> <87imaefck8.fsf@web.de> Date: Mon, 09 Nov 2020 22:51:10 +0100 In-Reply-To: <87imaefck8.fsf@web.de> (Michael Heerdegen's message of "Mon, 09 Nov 2020 22:24:55 +0100") Message-ID: <87wnyudws1.fsf@web.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:NuJ0wL3ergMPTjXsRLEXDjy6sl26TuNz1eQUXmtDS9fqoXQo6Mc /6N0iQObtzyyx/yIPxKHNNira08n9kQc7Kq6ZdEDtE3h1xXwMx8WgScmM8MoRmD920puhV2 cXi3QOJHeqDS2logTk7Ik/Hrc69l1y0prJcM1SdaTNPuPXl3ZBRDXlKEzX2vHThD5Q9Z0Fo Fqldj8ldSJW7R7CM2vyOQ== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:DxenHurNwiI=:htJ92NVIAz/nhsFimT2uzj jxRgod2kc6Qc+9RF2eiGeXWRbMJ7MpeiJw5KzCWBVQdXnvPv8flqDkX6Yg7iF71jGaFzF2hIs qWcuVRj36f51RYmyXvNbxZVni242v2s12vUyyjMyOk2Ablo5BoX9y6ba7wYJHI5BEpthn5eyL 3wZUQru++SxlGypUr0mixAPL2iZKbbBySlJnS/0HzL9nqvC6EwEHJuvFX4247GrCdJOEqArqj 7i2pJVrO7uwnuyZ88yg2qNG31QbperGmwD2fm3Uj6HCNnNqoM8EhmmEnyhiTQQTDIDNKdYso7 PleGFmHdFDmm6G54k8DiyjTBLuuFPNuxRKCKF8zAygTcJur+dlllDw5keJJHPUjmDXMD9yRLa 9vu7oqytIyCsKjVFUUm2brxy0QZr0DN5+UTMCGDp6lrs9bY17aKI1JWvTE7TpmaEhojbbLZAP TYArzZ1zPx77sQNjRkC6SECXUPoFjGSIT5OtrR4Hk2zAl6ZEJEdHT0h3emVVSVngqwi8qHljz L4pE7dq8HHM5a8r1/oGeNggOJixX359z6bWiajVzs/gIiPnfOzgHi0xnZ0/wl82YDC3UyA9F4 e+7LSCREh8rQbXXT/4g/FYGqabIAdM3puzjTYI1q2belGDCEDpzfjZFxld2NETD6Q+CFYCBXa T5J3sV/XAeXQWvZy1VdUN5l3Oj8qCxWmW0qu86clvp0Xp2EdxH+e1yDDck7jIdPSNfIAKcltx y0YJjhXr8oplN7LFjsDe+Oys4UbgYhm1/CjANc0A7TnEGrYm1ktHHybg4wQjaM6KlGgNt0VB1 LAJAsfdKSe+HhFVLfh7/pfakBdAFffaPCrlaqUD3LCc5BfIxavV5on+KznzaQ2aMFtYW6mVJy z0saZ+ixsUFZwXhruC4yNWp0A0NCVDMt/7y3OTz8o= X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org, Russell Adams X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Michael Heerdegen writes: > I found this line in pmap output: > > 0000557322314000 6257824K rw--- [ anon ] I guess that's the heap again. Michael. From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 09 22:30:53 2020 Received: (at 43389) by debbugs.gnu.org; 10 Nov 2020 03:30:53 +0000 Received: from localhost ([127.0.0.1]:36041 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcKMv-0003O9-EZ for submit@debbugs.gnu.org; Mon, 09 Nov 2020 22:30:53 -0500 Received: from eggs.gnu.org ([209.51.188.92]:42666) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcKMt-0003Nu-OP for 43389@debbugs.gnu.org; Mon, 09 Nov 2020 22:30:52 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:54577) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kcKMn-0005wI-SZ; Mon, 09 Nov 2020 22:30:45 -0500 Received: from [176.228.60.248] (port=3768 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kcKMn-0005V4-55; Mon, 09 Nov 2020 22:30:45 -0500 Date: Tue, 10 Nov 2020 05:30:53 +0200 Message-Id: <83sg9h3n2q.fsf@gnu.org> From: Eli Zaretskii To: Michael Heerdegen In-Reply-To: <878sbagsx8.fsf@web.de> (message from Michael Heerdegen on Mon, 09 Nov 2020 21:46:11 +0100) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <87mu1sry72.fsf@mail.linkov.net> <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> <83zh5n4hpd.fsf@gnu.org> <878sbagsx8.fsf@web.de> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org, RLAdams@AdamsInfoServ.Com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Michael Heerdegen > Cc: Russell Adams , 43389@debbugs.gnu.org > Date: Mon, 09 Nov 2020 21:46:11 +0100 > > Garbage collection stats: > ((conses 16 2645730 3784206) (symbols 48 68678 724) (strings 32 528858 451889) (string-bytes 1 18127696) (vectors 16 213184) (vector-slots 8 3704641 2189052) (floats 8 2842 5514) (intervals 56 264780 87057) (buffers 992 119)) > > => 40.4MB (+ 57.7MB dead) in conses > 3.14MB (+ 33.9kB dead) in symbols > 16.1MB (+ 13.8MB dead) in strings > 17.3MB in string-bytes > 3.25MB in vectors > 28.3MB (+ 16.7MB dead) in vector-slots > 22.2kB (+ 43.1kB dead) in floats > 14.1MB (+ 4.65MB dead) in intervals > 115kB in buffers > > Total in lisp objects: 216MB (live 123MB, dead 93.0MB) > > Buffer ralloc memory usage: > 119 buffers > 16.1MB total (1.71MB in gaps) Once again, the memory managed by GC doesn't explain the overall footprint. > Anything I can do to find out more? If you have some tool that can produce a detailed memory map, stating which part and which library uses what memory, please do. Otherwise, the most important thing is to try to describe what you did from the beginning of the session, including the files you visited and other features/commands you invoked that could at some point consume memory. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 09 22:36:14 2020 Received: (at 43389) by debbugs.gnu.org; 10 Nov 2020 03:36:14 +0000 Received: from localhost ([127.0.0.1]:36045 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcKS6-0003XO-41 for submit@debbugs.gnu.org; Mon, 09 Nov 2020 22:36:14 -0500 Received: from eggs.gnu.org ([209.51.188.92]:43634) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcKS4-0003X9-DL for 43389@debbugs.gnu.org; Mon, 09 Nov 2020 22:36:12 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:54622) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kcKRy-0006Z3-Eg; Mon, 09 Nov 2020 22:36:06 -0500 Received: from [176.228.60.248] (port=4099 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kcKRx-00013g-Qv; Mon, 09 Nov 2020 22:36:06 -0500 Date: Tue, 10 Nov 2020 05:36:15 +0200 Message-Id: <83pn4l3mts.fsf@gnu.org> From: Eli Zaretskii To: Michael Heerdegen In-Reply-To: <87wnyudws1.fsf@web.de> (message from Michael Heerdegen on Mon, 09 Nov 2020 22:51:10 +0100) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <87mu1sry72.fsf@mail.linkov.net> <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> <83zh5n4hpd.fsf@gnu.org> <878sbagsx8.fsf@web.de> <87imaefck8.fsf@web.de> <87wnyudws1.fsf@web.de> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org, RLAdams@AdamsInfoServ.Com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Michael Heerdegen > Cc: 43389@debbugs.gnu.org, Russell Adams > Date: Mon, 09 Nov 2020 22:51:10 +0100 > > Michael Heerdegen writes: > > > I found this line in pmap output: > > > > 0000557322314000 6257824K rw--- [ anon ] > > I guess that's the heap again. Yes, the heap. So it more and more looks like this is the result of glibc not releasing memory to the system, which with some usage patterns causes the memory footprint grow to ludicrous size. We need to find an expert on this and bring him aboard for finding a solution. From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 10 01:33:50 2020 Received: (at 43389) by debbugs.gnu.org; 10 Nov 2020 06:33:50 +0000 Received: from localhost ([127.0.0.1]:36186 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcNDx-0000TK-Vx for submit@debbugs.gnu.org; Tue, 10 Nov 2020 01:33:50 -0500 Received: from static.rcdrun.com ([95.85.24.50]:50761) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcNDs-0000T9-Lh for 43389@debbugs.gnu.org; Tue, 10 Nov 2020 01:33:48 -0500 Received: from localhost ([::ffff:197.157.34.177]) (AUTH: PLAIN admin, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by static.rcdrun.com with ESMTPSA id 00000000002C0005.000000005FAA3446.00007672; Tue, 10 Nov 2020 06:33:42 +0000 Date: Tue, 10 Nov 2020 01:33:17 +0300 From: Jean Louis To: Michael Heerdegen Subject: Re: bug#43389: 28.0.50; Emacs memory leaks Message-ID: References: <87r1r5428d.fsf@web.de> <87mu1sry72.fsf@mail.linkov.net> <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> <83zh5n4hpd.fsf@gnu.org> <878sbagsx8.fsf@web.de> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: <878sbagsx8.fsf@web.de> User-Agent: Mutt/2.0 (3d08634) (2020-11-07) X-Spam-Score: 1.1 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: * Michael Heerdegen [2020-11-09 23:47]: > Eli Zaretskii writes: > > > So it seems to be our heap that takes most of the 5GB. > > Today it happened again to me [...] Content analysis details: (1.1 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record 1.1 DATE_IN_PAST_06_12 Date: is 6 to 12 hours before Received: date X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org, Eli Zaretskii , Russell Adams X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.1 (/) * Michael Heerdegen [2020-11-09 23:47]: > Eli Zaretskii writes: > > > So it seems to be our heap that takes most of the 5GB. > > Today it happened again to me. I'm writing from an Emacs session using > more than 5 GB of memory. I've started it some hours ago and have no > clue why today had been special. I didn't do anything exceptional. I may confirm having similar issue. It was happening regularly under EXWM. Memory get occupied more and more and more until it does not go any more, swapping becomes tedious and computer becomes non-responsive. Then I had to kill it. By using symon-mode I could see swapping of 8 GB and more. My memory is 4 GB plus 8 GB swap currently. This similar condition takes place only after keeping Emacs long in memory like maybe 5-8 hours. After putting laptop to sleep it happens more often. When I changed to IceWM this happened only once. From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 10 03:22:25 2020 Received: (at 43389) by debbugs.gnu.org; 10 Nov 2020 08:22:25 +0000 Received: from localhost ([127.0.0.1]:36258 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcOv3-000348-6B for submit@debbugs.gnu.org; Tue, 10 Nov 2020 03:22:25 -0500 Received: from mail-out.m-online.net ([212.18.0.9]:45181) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcOv1-00033z-JM for 43389@debbugs.gnu.org; Tue, 10 Nov 2020 03:22:24 -0500 Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 4CVgp55ldRz1qskR; Tue, 10 Nov 2020 09:22:21 +0100 (CET) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 4CVgp553Mpz1qyXv; Tue, 10 Nov 2020 09:22:21 +0100 (CET) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id NoWFB7jqPjOH; Tue, 10 Nov 2020 09:22:20 +0100 (CET) X-Auth-Info: yHUSOR88iKdEDCV9WpyJvLgVzrKRhbGiVXsnY//NgsXpCjhKK9u3rfEsqm7EDoh5 Received: from igel.home (ppp-46-244-173-48.dynamic.mnet-online.de [46.244.173.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPSA; Tue, 10 Nov 2020 09:22:20 +0100 (CET) Received: by igel.home (Postfix, from userid 1000) id 42FCD2C35D5; Tue, 10 Nov 2020 09:22:20 +0100 (CET) From: Andreas Schwab To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <87mu1sry72.fsf@mail.linkov.net> <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> <83zh5n4hpd.fsf@gnu.org> <878sbagsx8.fsf@web.de> <87imaefck8.fsf@web.de> <87wnyudws1.fsf@web.de> <83pn4l3mts.fsf@gnu.org> X-Yow: I want to dress you up as TALLULAH BANKHEAD and cover you with VASELINE and WHEAT THINS.. Date: Tue, 10 Nov 2020 09:22:20 +0100 In-Reply-To: <83pn4l3mts.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 10 Nov 2020 05:36:15 +0200") Message-ID: <87v9edk4eb.fsf@igel.home> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.4 (/) X-Debbugs-Envelope-To: 43389 Cc: Michael Heerdegen , 43389@debbugs.gnu.org, RLAdams@AdamsInfoServ.Com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.4 (-) On Nov 10 2020, Eli Zaretskii wrote: >> From: Michael Heerdegen >> Cc: 43389@debbugs.gnu.org, Russell Adams >> Date: Mon, 09 Nov 2020 22:51:10 +0100 >> >> Michael Heerdegen writes: >> >> > I found this line in pmap output: >> > >> > 0000557322314000 6257824K rw--- [ anon ] >> >> I guess that's the heap again. > > Yes, the heap. So it more and more looks like this is the result of > glibc not releasing memory to the system, which with some usage > patterns causes the memory footprint grow to ludicrous size. The heap can only shrink if you free memory at the end of it, so there is nothing wrong here. You can call malloc_info (0, stdout) to see the state of the heap. Andreas. -- Andreas Schwab, schwab@linux-m68k.org GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1 "And now for something completely different." From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 10 05:25:32 2020 Received: (at 43389) by debbugs.gnu.org; 10 Nov 2020 10:25:32 +0000 Received: from localhost ([127.0.0.1]:36478 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcQqB-0008Ff-UX for submit@debbugs.gnu.org; Tue, 10 Nov 2020 05:25:32 -0500 Received: from mout.web.de ([212.227.17.12]:34291) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcQqA-0008FS-6m for 43389@debbugs.gnu.org; Tue, 10 Nov 2020 05:25:31 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1605003920; bh=xCDInXd3bI2/PWJEhEH8kf4Y7d5Ix3D/oJlleHOhpC4=; h=X-UI-Sender-Class:From:To:Cc:Subject:References:Date:In-Reply-To; b=iDte71lRM3JhWoazWn1xhZqO58Pbxq5S83Fdw+V6YSdhNo7ZnObdbyFy9gTNdm9s4 aKzOsOS59K10l99VJ5/sq2f0M98y7E0zxcrT8R6MrfQI3i6/JDC5qwvEAYDcdD3vEt /a1jTaCFPf+GjDIQUOmKOuyAhsjnfvQswkjGNt74= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Received: from drachen.dragon ([94.218.215.213]) by smtp.web.de (mrweb103 [213.165.67.124]) with ESMTPSA (Nemesis) id 0MN4Oy-1kedlP1tPs-006ebn; Tue, 10 Nov 2020 11:25:20 +0100 From: Michael Heerdegen To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <87mu1sry72.fsf@mail.linkov.net> <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> <83zh5n4hpd.fsf@gnu.org> <878sbagsx8.fsf@web.de> <87imaefck8.fsf@web.de> <87wnyudws1.fsf@web.de> <83pn4l3mts.fsf@gnu.org> Date: Tue, 10 Nov 2020 11:25:15 +0100 In-Reply-To: <83pn4l3mts.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 10 Nov 2020 05:36:15 +0200") Message-ID: <87o8k5ecfo.fsf@web.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:+AoPTMXPRj+M5NbSxuxbrrss8pflSEmNmN35woRsnLjsoThnY4t 2lHYPzWFcYbmheYHFmNwY/HJWtctg2b0Z8xbqwiEclXbYAydYAssaKOjPS5LRUWpE3Xf9P0 ASMgUEFzACu+dnCtoFXxXSsZYMkUwLmxQM2rzW4ozSdNE3zGwMR+kmbyAnylL/gnYu5yyOF kDQI/8IE+DOrZqWNELQZw== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:9mnes5n0fQA=:8d+92oWfbi2dJsYfxdMqk1 Eyg72sK5WGrgdROEblpTrTLL764Z+sx/u8hP7prqXiH9LR/r6b6w/VMJr4F88iBfYMNIoT36F ygOGVsFtdbwxfNviu2qMJnWd+6HJgHmWsuK34kNkZVPgu13C5fxgitmI3rS8gbTP07mLUFoxZ nsoPKox+FcZRUyYhDDHPpb0ur34NJwn7zCqu2fB0YrKwMfvhD1JeVWEDm2P5+pEHLgSNTeTgU rP+XoovCWGapHl/4ElpAAULaleYPZOceHisUP35dV2Npk2hosWPAToHkbemkmkZjbJqD3kIYX g5eebHZXLy521X2Nzwi27BWgTlkut3yQnV7oA2g/hT6et39pqdBQY+KomLSrWOj1WnOtJ/+L6 y7Qo0kXdzk00e9eBCIGyun29y/x9yMFpbuoAI7fktGr6gnSee3MJDm8190I1ewAk2ja/3MzNz F9VRyxCUo3L78cKyLPeQIEQWuAwP3IAzownw5QxoKEglTE/XTtmKr4jNLtZxOdq13mccbMDjl rgMYRk/EYfhPmuNj9JSEzqE4+DzcsNZLOZ81wfSz16otJiQs1uecF9EWN2CFtUAKf0vAZ0yY2 Uc6bPwQz1iL5IAyA9WO+qiKmj/pNXmMoT+TehFgwSVTRhNUbkK/zjqxVKP/pf0Sn+fB1wuB/k sfFC5UjAZ9Ariup61LdvrmnkunaZRU2EaZhTpWkoqkQXJAEKOynHbrIXJJX6z4EQDQ6ebxlK7 /hqjKneAhH1kD2bGvXrtoJFVY7SQRBCAV45Gornm5XtiVTb5nnhX0kv45Vw0xVJytQ16W2wmT 5SjVObjGJ4op+0DT0nKBIKXgMWJAta2AG/A8bRCQZxRIGwbwL3yapqPnevX8fVmpWQnlIL2+E sjDMh/SjGxYwviTbh+KcblAgqJkUXpF1poT5fcgNg= X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org, RLAdams@AdamsInfoServ.Com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Eli Zaretskii writes: > Yes, the heap. So it more and more looks like this is the result of > glibc not releasing memory to the system, which with some usage > patterns causes the memory footprint grow to ludicrous size. FWIW, I'm still in that session, it's still running, and since yesterday, that session's memory use has shrunk a lot. Nearly half of the memory that had been in use yesterday apparently has been freed now. Michael. From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 10 07:59:31 2020 Received: (at 43389) by debbugs.gnu.org; 10 Nov 2020 12:59:31 +0000 Received: from localhost ([127.0.0.1]:36681 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcTFD-0005kG-3U for submit@debbugs.gnu.org; Tue, 10 Nov 2020 07:59:31 -0500 Received: from mout.web.de ([217.72.192.78]:50143) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcTFC-0005k1-5s for 43389@debbugs.gnu.org; Tue, 10 Nov 2020 07:59:30 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1605013157; bh=LzTOrIvqw23G/N/ko/WtMxeaaofpc65LvrBoUNpDGg8=; h=X-UI-Sender-Class:From:To:Cc:Subject:References:Date:In-Reply-To; b=WqYSShUfdldhPZH1IQmAQwuaG1ljrmH5sMk7r7Xwh7KmPAUOiN1eBxH+NBrwaX+fU DKOzvZQnBsDUSzXsEnP5+jhUDKF+sj84qCUcvoCJ/nex099Wl9U5D5bUS1nelD9Wp0 tTHnEkYJn0QG0oKJ4lHgAEHrhrvX3fBKkhvVvQfU= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Received: from drachen.dragon ([94.218.215.213]) by smtp.web.de (mrweb101 [213.165.67.124]) with ESMTPSA (Nemesis) id 0Ldn6l-1ju5ri03pz-00j5fp; Tue, 10 Nov 2020 13:59:17 +0100 From: Michael Heerdegen To: Andreas Schwab Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <87mu1sry72.fsf@mail.linkov.net> <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> <83zh5n4hpd.fsf@gnu.org> <878sbagsx8.fsf@web.de> <87imaefck8.fsf@web.de> <87wnyudws1.fsf@web.de> <83pn4l3mts.fsf@gnu.org> <87v9edk4eb.fsf@igel.home> Date: Tue, 10 Nov 2020 13:59:15 +0100 In-Reply-To: <87v9edk4eb.fsf@igel.home> (Andreas Schwab's message of "Tue, 10 Nov 2020 09:22:20 +0100") Message-ID: <87imadcqqk.fsf@web.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:rjneSSXP/+B1S51hXItblILjm5Y720VJvMqyw99WEzx4WVViWIH lq2swN4B3O/TEBc84qRBXdqdJ/m6ts2wOFuctBbRH98Uc75/AFDNwUPJtPRrsJJF5fRL3Uy vJZJFiDOUgWQfInT8o5/PyU0R8OBwcaM5QoBYi0YnjGjYjyn72zNqjAYCURa1Oy926G8xsl q5mylzqRVD/FdaLNcAo+A== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:1sv33n367Fs=:kHyeFCm/6Cj8bhKIGQf41Z yTP3DFqT6z3gz+lL3DsA9Ii+mG4ntJPHk9UKUnTWwsFRoiMC/GZ3te89+KKvhA+hhPLhMrhRG uQVtvJLZ5tChbGjIlLd1qxScqHwoYlwpFdhFKgmmcYhDwUa8BMqJJ9qdKjEKDz9b+RJqCy1Aq LVDJBO4xyenRUnSi4dnyfco8p70nDTtM4GBZ7ugVF9AF2gqfYg4wKgXkT9x65IVdF4b8bY/1D VvlLHLPCa2xuCx5qx77HLX/ATOc8HuS/C7uP6WN6a94WFr/NJcotv0rd+oK0GXn1e3sih+7O2 JVrH8jwLtlOnTaCKA8iSUw5T1JXRI7zeY+tu5FNOkxPheQqkuoUlrLegu1l47cg7sr6f4llmB hXzdzOf/oePgbFHk4lDkeusND9oTc7ERwis9cFR6KF9WuCLbk/C42eB6OGZh+J6OqBls4zFjv PGAVBRJirm6J2pCkOEhy6T0osbvpirZUfcA7+LKa27bRQsPg4QJwAG7YOh+MM+AHo2XgLtV27 5B8VP5Pp+AkShIIkVBy7G2y+2jbtj1RrVAGKz3LeW5zegzYgzrq+vl80okBh5Iy+Kfu+IToNh bgJEwb0mG2lQTifwwFPf/IJeS/L/VJ41pOUJ1iYmYwJrgXxDveO8e+rUOcSVPwFDnQkPoAAY5 6VcRmLWLfm0uBaaMSz/Ms1alncOkYpGIcDRcz7on5iW7oZl/AmvhjRzK3gZV/KfEGJiIkXINF M6T+moewoL/1EbtTOPlmRfFy/Qs/ADWlaX6hzQx6FVpgyi2IEDo6gp9LcF+4FGuju84NgDB9G 2qYpIDFSx0BkX2QHVQj6MByl7+rsOduX2SvbQF8KI4cc//pIxZlrLLSNlH6TXH5/kDfYRYsTW 54Q9L1n3SpydySukNgY/z7tAQwWUcuhXt+BlBNBDc= X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org, Eli Zaretskii , RLAdams@AdamsInfoServ.Com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Andreas Schwab writes: > You can call malloc_info (0, stdout) to see the state of the heap. Was that meant for me? If yes: where do I call this? gdb? Michael. From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 10 08:01:38 2020 Received: (at 43389) by debbugs.gnu.org; 10 Nov 2020 13:01:39 +0000 Received: from localhost ([127.0.0.1]:36693 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcTHE-0005pI-7R for submit@debbugs.gnu.org; Tue, 10 Nov 2020 08:01:38 -0500 Received: from mail-out.m-online.net ([212.18.0.9]:32814) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcTH8-0005p3-31 for 43389@debbugs.gnu.org; Tue, 10 Nov 2020 08:01:34 -0500 Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 4CVp082zMHz1qsZn; Tue, 10 Nov 2020 14:01:28 +0100 (CET) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 4CVp081n0tz1r56k; Tue, 10 Nov 2020 14:01:28 +0100 (CET) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id hga0z_y6jTXE; Tue, 10 Nov 2020 14:01:27 +0100 (CET) X-Auth-Info: t8A/bN3ScG+HE+iq9oYoIsJVHb4nw+CfEHPvX73ftCcSblSnpsmH8ZtqZh8m0B98 Received: from igel.home (ppp-46-244-173-48.dynamic.mnet-online.de [46.244.173.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPSA; Tue, 10 Nov 2020 14:01:27 +0100 (CET) Received: by igel.home (Postfix, from userid 1000) id 98D572C35DA; Tue, 10 Nov 2020 14:01:26 +0100 (CET) From: Andreas Schwab To: Michael Heerdegen Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <87mu1sry72.fsf@mail.linkov.net> <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> <83zh5n4hpd.fsf@gnu.org> <878sbagsx8.fsf@web.de> <87imaefck8.fsf@web.de> <87wnyudws1.fsf@web.de> <83pn4l3mts.fsf@gnu.org> <87v9edk4eb.fsf@igel.home> <87imadcqqk.fsf@web.de> X-Yow: Well, I'm INVISIBLE AGAIN.. I might as well pay a visit to the LADIES ROOM... Date: Tue, 10 Nov 2020 14:01:26 +0100 In-Reply-To: <87imadcqqk.fsf@web.de> (Michael Heerdegen's message of "Tue, 10 Nov 2020 13:59:15 +0100") Message-ID: <87h7pxjrh5.fsf@igel.home> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.4 (/) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org, Eli Zaretskii , RLAdams@AdamsInfoServ.Com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.4 (-) On Nov 10 2020, Michael Heerdegen wrote: > Andreas Schwab writes: > >> You can call malloc_info (0, stdout) to see the state of the heap. > > Was that meant for me? If yes: where do I call this? gdb? Yes, as long as you are not stopped inside malloc. Andreas. -- Andreas Schwab, schwab@linux-m68k.org GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1 "And now for something completely different." From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 10 08:10:34 2020 Received: (at 43389) by debbugs.gnu.org; 10 Nov 2020 13:10:34 +0000 Received: from localhost ([127.0.0.1]:36714 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcTPu-00062p-C5 for submit@debbugs.gnu.org; Tue, 10 Nov 2020 08:10:34 -0500 Received: from mout.web.de ([217.72.192.78]:54221) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcTPt-00062U-D3 for 43389@debbugs.gnu.org; Tue, 10 Nov 2020 08:10:33 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1605013822; bh=ypFPCFcnhJv2cSAfA9F5/iiuU0QO0ZkjiKbSbO5Qqmc=; h=X-UI-Sender-Class:From:To:Cc:Subject:References:Date:In-Reply-To; b=n9ztUl7vlwb8ZCgsdjR9TVnlvE1gvD/37zblQLJVsx1fcgVWgY4+uA+79+4UyPGEm MIPfImj2Zq9LlNsE0SzpdVJujKt5EgSdCrgKbLiPIHjs6qTZKAr6aPvRsq6XzQ0gTW 3djN/C7QvJuvEBVLHLK6y/lmnSIRRy4pmsik2pPY= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Received: from drachen.dragon ([94.218.215.213]) by smtp.web.de (mrweb101 [213.165.67.124]) with ESMTPSA (Nemesis) id 0MSJKJ-1kiuXN1XC7-00TTYo; Tue, 10 Nov 2020 14:10:22 +0100 From: Michael Heerdegen To: Andreas Schwab Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <87mu1sry72.fsf@mail.linkov.net> <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> <83zh5n4hpd.fsf@gnu.org> <878sbagsx8.fsf@web.de> <87imaefck8.fsf@web.de> <87wnyudws1.fsf@web.de> <83pn4l3mts.fsf@gnu.org> <87v9edk4eb.fsf@igel.home> <87imadcqqk.fsf@web.de> <87h7pxjrh5.fsf@igel.home> Date: Tue, 10 Nov 2020 14:10:20 +0100 In-Reply-To: <87h7pxjrh5.fsf@igel.home> (Andreas Schwab's message of "Tue, 10 Nov 2020 14:01:26 +0100") Message-ID: <87eel1cq83.fsf@web.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:jHvh8Qi7iSLhYqzo3igmKKeW1JkBUL3ieQMmIRj+MhrmGcdl17n jQNeoObnV0iRiLybFTQEq4+YIsPIh2a7t8v+kra5H22R9NV0NfTHZjQW6tyqDLG1q2NSYLx nvyR1vmrk8tZpMuopM6qBVjbnm29gX2t1+38ixSOqgxRlExoN2FIXB4nZ34PtPmYhEUKUfP f4CppOERLQM28j6IZN/Pw== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:yR2J9E1lhi8=:vN/IGUW38imhva2deCCelr y7OizwAYtRUAQ14EDzkd1wOWu5bkOhGxpK1n+Vhz2xjNO7F6vGnTGZ7UbNQ/2fokYUlJhH7yJ Js1jFObvFviwwMtByWTlMWecUJPAHGAmjWnugDhhnPgt3pfV/pEJIFN4Xkt6OvWcBKvlFd10h Q2P8VIXPi23n68bmihRWahNSJrooCRdCJuVqgRsfV2MhLgBvtl/DnFpS3Xrj7hzjuBSNj5hoP DBOv54HHCbwLGSLq5M/TEFd+R19yNljipu8eefMcgcuNwKyWQmbuD26PTrA0TNOZ/7tfKF/zM zl5Nk3tuaqh+6M8QrCtUR8j3LZCpJlRnx5rHUbXRPgiPp/UQwKnArnTKMtWlIJWWCq2++JuU7 XegiD9EGrEaUXAdHgm2CUfKc1kyQ50jpMNFYrwRbHIWj3fPicDxggZ75BbJ5SichaP3mlO08d ebkIpO0Jg620zFKzh+FsV/mo8E+qLFXfsr7aQXvVGflh5CU+UcdEXEI51WKSKwZtwcpGRdbsS Dgr9rOSy+M4ivoWFr2gc1+DmGKfokRt7yrLFZsBTKy3/7Xiulfaz5hchi/B55BOrYGtZAL5VF LzL+EpNBfDnbnTQNxejXRNjEtUv+Ld1pUtr1TpBb1hcUM7bdIi3Q2ch/hLuc1D0arNjj4a4WX LFE7bBPIswG7DdpYanTLPHqwR+U6I7khV43PFMpxwdVUaXvJnSv8QveGT08QFKpbZrbRn7ODp pLgzHnLu7WBPvuoXb57ycPev8X+lwzgt739PhI7IqO5Q8oBVkqt/rxB+JlXVp5BJ7yYMl3GpD pE9dSLw81MCQZ0CphY5EaHX26ghT3YPwCMDKLxrN+e1yIATP94A02LNpX4K6k8aK/Kxr59MQG PWro9dNAv24CGhLb/dhUPGrgAU4/eCSQtML+9lAkg= X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org, Eli Zaretskii , RLAdams@AdamsInfoServ.Com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Andreas Schwab writes: > Yes, as long as you are not stopped inside malloc. My gdb session looks like this: [...] Attaching to process 416219 [New LWP 416220] [New LWP 416221] [New LWP 416223] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". 0x00007f3eae76e926 in pselect () from /lib/x86_64-linux-gnu/libc.so.6 (gdb) malloc_info (0, stdout) Undefined command: "malloc_info". Try "help". I guess I have an optimized build. Anything I can do better than above? Thx, Michael. From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 10 08:20:32 2020 Received: (at 43389) by debbugs.gnu.org; 10 Nov 2020 13:20:32 +0000 Received: from localhost ([127.0.0.1]:36739 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcTZX-0006Io-Qp for submit@debbugs.gnu.org; Tue, 10 Nov 2020 08:20:32 -0500 Received: from eggs.gnu.org ([209.51.188.92]:48330) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcTZW-0006Ic-4H for 43389@debbugs.gnu.org; Tue, 10 Nov 2020 08:20:30 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:60555) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kcTZO-0006qn-4V; Tue, 10 Nov 2020 08:20:22 -0500 Received: from [2a02:14f:0:b180::1] (port=56798) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1kcTZE-0007wJ-0L; Tue, 10 Nov 2020 08:20:16 -0500 Date: Tue, 10 Nov 2020 15:20:07 +0200 User-Agent: K-9 Mail for Android In-Reply-To: <87eel1cq83.fsf@web.de> References: <87r1r5428d.fsf@web.de> <87mu1sry72.fsf@mail.linkov.net> <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> <83zh5n4hpd.fsf@gnu.org> <878sbagsx8.fsf@web.de> <87imaefck8.fsf@web.de> <87wnyudws1.fsf@web.de> <83pn4l3mts.fsf@gnu.org> <87v9edk4eb.fsf@igel.home> <87imadcqqk.fsf@web.de> <87h7pxjrh5.fsf@igel.home> <87eel1cq83.fsf@web.de> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Subject: Re: bug#43389: 28.0.50; Emacs memory leaks To: Michael Heerdegen , Andreas Schwab From: Eli Zaretskii Message-ID: <4788A848-D51C-4A25-B023-BA029874DBE5@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org, RLAdams@AdamsInfoServ.Com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) On November 10, 2020 3:10:20 PM GMT+02:00, Michael Heerdegen wrote: > Andreas Schwab writes: >=20 > > Yes, as long as you are not stopped inside malloc=2E >=20 > My gdb session looks like this: >=20 > [=2E=2E=2E] > Attaching to process 416219 > [New LWP 416220] > [New LWP 416221] > [New LWP 416223] > [Thread debugging using libthread_db enabled] > Using host libthread_db library > "/lib/x86_64-linux-gnu/libthread_db=2Eso=2E1"=2E > 0x00007f3eae76e926 in pselect () from /lib/x86_64-linux-gnu/libc=2Eso=2E= 6 > (gdb) malloc_info (0, stdout) > Undefined command: "malloc_info"=2E Try "help"=2E >=20 > I guess I have an optimized build=2E Anything I can do better than > above? Try this instead: (gdb) call malloc_info(0, stdout) From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 10 08:26:25 2020 Received: (at 43389) by debbugs.gnu.org; 10 Nov 2020 13:26:25 +0000 Received: from localhost ([127.0.0.1]:36755 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcTfF-0006Rw-HJ for submit@debbugs.gnu.org; Tue, 10 Nov 2020 08:26:25 -0500 Received: from mout.web.de ([212.227.15.14]:60879) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcTfD-0006Rg-1B for 43389@debbugs.gnu.org; Tue, 10 Nov 2020 08:26:23 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1605014772; bh=yq6XLS5nyu5bm7cftPT/ZMwUU7+QP632/x/5P6cww+E=; h=X-UI-Sender-Class:From:To:Cc:Subject:References:Date:In-Reply-To; b=g7+0RXM+HKvbws0N7yhyKGyS7NzZa5h1p7cQInjoWe5VyUJONbbKIDQwWSavmc9jS Eoa3TKUzRO18sX5QcC2iHkGx70jhRI2FiOc9IC8Dd6c5c9oKY/M1q4f17xZIDBvTa/ /tgVltaKOmEdNXkQtW0CmGH3vwP2aOF22BXYiK0I= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Received: from drachen.dragon ([94.218.215.213]) by smtp.web.de (mrweb001 [213.165.67.108]) with ESMTPSA (Nemesis) id 0MNLAn-1kewdG3iAL-006tqM; Tue, 10 Nov 2020 14:26:12 +0100 From: Michael Heerdegen To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <87mu1sry72.fsf@mail.linkov.net> <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> <83zh5n4hpd.fsf@gnu.org> <878sbagsx8.fsf@web.de> <87imaefck8.fsf@web.de> <87wnyudws1.fsf@web.de> <83pn4l3mts.fsf@gnu.org> <87v9edk4eb.fsf@igel.home> <87imadcqqk.fsf@web.de> <87h7pxjrh5.fsf@igel.home> <87eel1cq83.fsf@web.de> <4788A848-D51C-4A25-B023-BA029874DBE5@gnu.org> Date: Tue, 10 Nov 2020 14:26:10 +0100 In-Reply-To: <4788A848-D51C-4A25-B023-BA029874DBE5@gnu.org> (Eli Zaretskii's message of "Tue, 10 Nov 2020 15:20:07 +0200") Message-ID: <87a6vpcphp.fsf@web.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:3mEPDfviW8B8IuPMzdu0sOtgPs7OxGc8eOCzETLM93wh0W0HgW8 Qpsilj/vMxhQBO7wRHErOmLoO/bnaolyltsjES0xzYzFHTiiX8bOO2x+Y9Q9Qe58r1jQT6D phjYcdVHLm+SK9W0vCxU8Qu4xPE2hbUtYwBLd2B2tggB2QEuQIv5AjS3J2blgPh60I6cX8d /gKR90uYDavvqV7qfNJVw== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:q53WKoB0MP0=:CLFy44g7zpRXY9MuNWJN/E R+OpsuRE19mgFI9ptARliSmLvOJfhZRJ2FumUskrVCqtk0DYu0k1WfKvah0Ry23q93en4niej FR0BK58JOQz8w1svyGrZM7YAa1olC+Ntvr73qehECOfGgvQETPUBqZfoamGJQE+ofj8GI8CTl PAjPXx+y+0lurBu2He0wBdHaiKxl4mUsHZeAkZ6Vvos2Fh0v4ZgJCdr9IUvejDrS6LChk7w3N GLF4ezqBhy5WkegMRK4XlbNa2ceSGLVKl0M9n9gknOEK6QwpMmIRsGssLBGYQYXnUZHslnzD2 ZrjgP6CCmN/d7ZuCCk5VjW+XJSErYytpVNi99IHMYcV0Gs9iO9tMZLIm0s3TFlZxX/3Arp0rS gi6xLNngsZh99VKCtce5oJyHSdtWPSicV9kdRqZkj9jc6ow/QLpw1UWJq88Ly6ImUnPXajA0V UbZJUdxKiaL2DFYYy0pvVj4pbTiOUxAPWs06v3pC43FkHBrVR021wH3XzKpDZ+gXKvG0zGZXd 5B/iEC+N9Iljudy1NJB+72YScT42n1a3zVpCyXori8GTq+HQAxoCcWuh/r9PqBN4+PRxVDa/K i9nbBRaBsbKUJXsmObVb4/wwuThA9reU7hMjrmiPcj/PpDZrtu4OmOZDq5oDDA/8h8lw1Dvca n6hgw1PYb1mPDVih/AAKSIc+UAPDUhF5rAksANVZ+ja1kAQx2W0iq1qJhBLpAucFLqIpqpypX 9EVXyU6i0BC6v1p303kyxtEi/TuQO5yUdgKyJb1+Z6v6X1U9Uh/qRpktEZd0iQgFCo3mYWsAB WLFJa5bxyzRME6waCOUoW3yzu2oCJUtnpRyKayrVzejZAC4fGD5Aq252UvsbgH0USo6C3rAwC Y9lS5gN4ZEwBRU4EnuHauj2TeHMi8L1mpp8zcj7yI= X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org, RLAdams@AdamsInfoServ.Com, Andreas Schwab X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Eli Zaretskii writes: > Try this instead: > > (gdb) call malloc_info(0, stdout) Hmm: (gdb) call malloc_info(0, stdout) 'malloc_info' has unknown return type; cast the call to its declared return type Michael. From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 10 09:25:58 2020 Received: (at 43389) by debbugs.gnu.org; 10 Nov 2020 14:25:58 +0000 Received: from localhost ([127.0.0.1]:36875 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcUar-0003qr-TR for submit@debbugs.gnu.org; Tue, 10 Nov 2020 09:25:58 -0500 Received: from mout.web.de ([212.227.15.4]:49733) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcUaq-0003qa-03 for 43389@debbugs.gnu.org; Tue, 10 Nov 2020 09:25:56 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1605018345; bh=rjDGXMWKwXdj5z8qATbVbVYqYNVAFCISBj8BRfg4A3E=; h=X-UI-Sender-Class:From:To:Cc:Subject:References:Date:In-Reply-To; b=QBCDn64uMSA9ONlEAO3WPdsVJ+7BGHtbJht7ve1hzn+T739epGZ/BlNG73/7LYhjN APK84nmjzSayBOoIJCUNyw54b3STBxrGxzz0DAVKzydZDfExudh7Jsd8gp89wmRPd6 tV1W7ge6M8VUy7oCMZZ1H0HJ5X92Z2anACKUKzZE= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Received: from drachen.dragon ([94.218.215.213]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1Mfc4q-1k5NlR31qK-00ft9i; Tue, 10 Nov 2020 15:25:45 +0100 From: Michael Heerdegen To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <87mu1sry72.fsf@mail.linkov.net> <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> <83zh5n4hpd.fsf@gnu.org> <878sbagsx8.fsf@web.de> <87imaefck8.fsf@web.de> <87wnyudws1.fsf@web.de> <83pn4l3mts.fsf@gnu.org> <87v9edk4eb.fsf@igel.home> <87imadcqqk.fsf@web.de> <87h7pxjrh5.fsf@igel.home> <87eel1cq83.fsf@web.de> <4788A848-D51C-4A25-B023-BA029874DBE5@gnu.org> <87a6vpcphp.fsf@web.de> Date: Tue, 10 Nov 2020 15:25:44 +0100 In-Reply-To: <87a6vpcphp.fsf@web.de> (Michael Heerdegen's message of "Tue, 10 Nov 2020 14:26:10 +0100") Message-ID: <87y2j9b85z.fsf@web.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:LP8gOVyiH0Db//+/f9npMguCol0KBpqQGOQR9HQb/QjvvyLOxch ucmCY8LAws/0G+N7LD+fHMwFGmHkmA8/kCIUQRir3n0+rquMmus9s7Pc85WFrIXsHMUQ1lT PnnZiwsUXrMhod4M2thNhGWFITa3W230C6y+n5byhoqbLzMpAaU7KkwX8AItJ1hrkgUnMJF XHxVvDXfeFWfn3DSYgVeQ== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:xnDcQU8oZxE=:Io9DREN8g3fdLgypzPH/FS cLCP5OzS6ZT0805B08/tOBNFVI3L+9iCqpjndGGacUyJPq/OCzvOvtdD+Hd4k4Syy6PrWBXjZ 1PXeE7D+mQZ+weH6Vq9GABnOB6SfaViwFCmIdwcoQ5NT4SEyIN7YxJgo5UFGf1kt3/dO41wYC IOmR5cGMtNUB28/WfPqsEOE95kF6DXGgJnLZ0SD8CmVSTvQn9c1GudMCRKab4JcWQO8W9J/dg pCrw+7pcNSxhbKRRTHHHD7E5USEmNmNim5FbbD+v2y7MfIxgnh2yfOXDbaoRq/BAyY+TAYbpU COT4pd68Eu8DwMnCIHiS8uUVusqJCzr1+S+TVs1FoOllVoaIues7xTiVWg92HJ/EoX9dYuTGF o4W8GallPlAHEiIrWrgRdN4EQQMLiy4X+SjU7G7nUJ6UywXDixk86Pvs6h4lPLFtmaZZP+bEA MypiZAExDvsAGupi4T5aCFkTEMm3yOBdJ9XjuV9crEu4hDaapzU1xQ43mUsHn7B0/1teRoygW zwss0G5G4CgT6mXM8OkCCdI5DUzzXAVAyfFhWAlpBOeuLhsb/uTrWFrtEyLbAyNtNhjmD4HV8 BnOq1uWNObY9CO/qdk4DtzhBxlC1nyeJ2XaVz2zQo6AqLYbmWLsBKmrCoJfAKhPnj7G0n+QHC t/PD8FyorCaP5/SCAXZf8ar8AL2TU+olYranSEzFUWTqo85gw9yOQ6kZ8RVtzKZ5DAx68sjFy c/uLLxYqjKqVctBDSXkZ2BpzmwNIXQrT13lHdPnZ13WDKU1IzHSg1DZj38yBA1GV/8Y4uWy4f ADFd9SUmK0ox0Xc+ywZSpCou9vkXZBgrJ+zvfrAv7ZYqflbRDyR05lFG1eN2ALGrgE0rB7l2w +rc0bSqVQo7+87l5J6506XoDpTTfRMf/D5si07lyc= X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org, RLAdams@AdamsInfoServ.Com, Andreas Schwab X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Michael Heerdegen writes: > Hmm: > > (gdb) call malloc_info(0, stdout) > 'malloc_info' has unknown return type; cast the call to its declared > return type BTW, because I'm such a C noob, I can also offer to give me a (phone or Signal) call if you are interested, maybe that's more efficient. Maybe Andreas could do that if he speaks German (?) (I speak English to some degree: you can understand me and I will understand the most from you, but it's not good enough to prevent RMS making jokes about my language from time to time.) I'm also watching my mailbox all the time of course. Michael. From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 10 10:34:34 2020 Received: (at 43389) by debbugs.gnu.org; 10 Nov 2020 15:34:34 +0000 Received: from localhost ([127.0.0.1]:38673 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcVfF-00062e-RH for submit@debbugs.gnu.org; Tue, 10 Nov 2020 10:34:34 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52930) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcVfE-00062P-FH for 43389@debbugs.gnu.org; Tue, 10 Nov 2020 10:34:32 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:34565) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kcVf6-000257-Si; Tue, 10 Nov 2020 10:34:24 -0500 Received: from [176.228.60.248] (port=4474 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kcVey-0001hG-MQ; Tue, 10 Nov 2020 10:34:18 -0500 Date: Tue, 10 Nov 2020 17:34:27 +0200 Message-Id: <83ft5h2pks.fsf@gnu.org> From: Eli Zaretskii To: Michael Heerdegen In-Reply-To: <87a6vpcphp.fsf@web.de> (message from Michael Heerdegen on Tue, 10 Nov 2020 14:26:10 +0100) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <87mu1sry72.fsf@mail.linkov.net> <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> <83zh5n4hpd.fsf@gnu.org> <878sbagsx8.fsf@web.de> <87imaefck8.fsf@web.de> <87wnyudws1.fsf@web.de> <83pn4l3mts.fsf@gnu.org> <87v9edk4eb.fsf@igel.home> <87imadcqqk.fsf@web.de> <87h7pxjrh5.fsf@igel.home> <87eel1cq83.fsf@web.de> <4788A848-D51C-4A25-B023-BA029874DBE5@gnu.org> <87a6vpcphp.fsf@web.de> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org, RLAdams@AdamsInfoServ.Com, schwab@linux-m68k.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Michael Heerdegen > Cc: Andreas Schwab , 43389@debbugs.gnu.org, > RLAdams@AdamsInfoServ.Com > Date: Tue, 10 Nov 2020 14:26:10 +0100 > > (gdb) call malloc_info(0, stdout) > 'malloc_info' has unknown return type; cast the call to its declared return type Compliance! (gdb) call (int)malloc_info (0, stdout) (I would actually try stderr instead of stdout, but I yield to Andreas's expertise here.) From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 10 10:36:34 2020 Received: (at 43389) by debbugs.gnu.org; 10 Nov 2020 15:36:34 +0000 Received: from localhost ([127.0.0.1]:38677 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcVhC-00065u-6Z for submit@debbugs.gnu.org; Tue, 10 Nov 2020 10:36:34 -0500 Received: from eggs.gnu.org ([209.51.188.92]:53580) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcVhA-00065g-4A for 43389@debbugs.gnu.org; Tue, 10 Nov 2020 10:36:32 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:34605) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kcVh4-0002qq-A0; Tue, 10 Nov 2020 10:36:26 -0500 Received: from [176.228.60.248] (port=4612 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kcVh3-0004PG-NK; Tue, 10 Nov 2020 10:36:26 -0500 Date: Tue, 10 Nov 2020 17:36:35 +0200 Message-Id: <83eel12ph8.fsf@gnu.org> From: Eli Zaretskii To: Michael Heerdegen In-Reply-To: <87y2j9b85z.fsf@web.de> (message from Michael Heerdegen on Tue, 10 Nov 2020 15:25:44 +0100) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <87mu1sry72.fsf@mail.linkov.net> <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> <83zh5n4hpd.fsf@gnu.org> <878sbagsx8.fsf@web.de> <87imaefck8.fsf@web.de> <87wnyudws1.fsf@web.de> <83pn4l3mts.fsf@gnu.org> <87v9edk4eb.fsf@igel.home> <87imadcqqk.fsf@web.de> <87h7pxjrh5.fsf@igel.home> <87eel1cq83.fsf@web.de> <4788A848-D51C-4A25-B023-BA029874DBE5@gnu.org> <87a6vpcphp.fsf@web.de> <87y2j9b85z.fsf@web.de> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org, RLAdams@AdamsInfoServ.Com, schwab@linux-m68k.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Michael Heerdegen > Cc: Andreas Schwab , 43389@debbugs.gnu.org, > RLAdams@AdamsInfoServ.Com > Date: Tue, 10 Nov 2020 15:25:44 +0100 > > > (gdb) call malloc_info(0, stdout) > > 'malloc_info' has unknown return type; cast the call to its declared > > return type > > BTW, because I'm such a C noob, I can also offer to give me a (phone or > Signal) call if you are interested, maybe that's more efficient. If the information proves to be useful, maybe we should provide a Lisp command to call that function. It could be instrumental in asking people who see this problem report their results. From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 10 10:47:22 2020 Received: (at 43389) by debbugs.gnu.org; 10 Nov 2020 15:47:22 +0000 Received: from localhost ([127.0.0.1]:38698 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcVre-0006N3-07 for submit@debbugs.gnu.org; Tue, 10 Nov 2020 10:47:22 -0500 Received: from eggs.gnu.org ([209.51.188.92]:56252) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcVrc-0006Mi-6I for 43389@debbugs.gnu.org; Tue, 10 Nov 2020 10:47:20 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:34749) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kcVrV-0006p1-JT; Tue, 10 Nov 2020 10:47:13 -0500 Received: from [176.228.60.248] (port=1299 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kcVrV-0003ZZ-4U; Tue, 10 Nov 2020 10:47:13 -0500 Date: Tue, 10 Nov 2020 17:47:22 +0200 Message-Id: <83d00l2oz9.fsf@gnu.org> From: Eli Zaretskii To: Jean Louis In-Reply-To: (message from Jean Louis on Tue, 10 Nov 2020 01:33:17 +0300) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <87mu1sry72.fsf@mail.linkov.net> <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> <83zh5n4hpd.fsf@gnu.org> <878sbagsx8.fsf@web.de> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: michael_heerdegen@web.de, 43389@debbugs.gnu.org, RLAdams@AdamsInfoServ.Com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Tue, 10 Nov 2020 01:33:17 +0300 > From: Jean Louis > Cc: Eli Zaretskii , 43389@debbugs.gnu.org, > Russell Adams > > It was happening regularly under EXWM. Memory get occupied more and > more and more until it does not go any more, swapping becomes tedious > and computer becomes non-responsive. Then I had to kill it. By using > symon-mode I could see swapping of 8 GB and more. My memory is 4 GB > plus 8 GB swap currently. > > This similar condition takes place only after keeping Emacs long in > memory like maybe 5-8 hours. > > After putting laptop to sleep it happens more often. > > When I changed to IceWM this happened only once. If this was due to a WM, are you sure it was Emacs that was eating up memory, and not the WM itself? If it was Emacs, then I think the only way it could depend on the WM is if the WM feeds Emacs with many X events that somehow consume memory. Michael, what WM are you using. From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 10 10:53:39 2020 Received: (at 43389) by debbugs.gnu.org; 10 Nov 2020 15:53:39 +0000 Received: from localhost ([127.0.0.1]:38702 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcVxi-0006W0-Ol for submit@debbugs.gnu.org; Tue, 10 Nov 2020 10:53:39 -0500 Received: from eggs.gnu.org ([209.51.188.92]:57550) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcVxh-0006Vo-OP for 43389@debbugs.gnu.org; Tue, 10 Nov 2020 10:53:38 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:34852) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kcVxb-0000XQ-FQ; Tue, 10 Nov 2020 10:53:31 -0500 Received: from [176.228.60.248] (port=1678 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kcVxW-00044m-IF; Tue, 10 Nov 2020 10:53:27 -0500 Date: Tue, 10 Nov 2020 17:53:36 +0200 Message-Id: <83blg52oov.fsf@gnu.org> From: Eli Zaretskii To: Andreas Schwab In-Reply-To: <87v9edk4eb.fsf@igel.home> (message from Andreas Schwab on Tue, 10 Nov 2020 09:22:20 +0100) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <87mu1sry72.fsf@mail.linkov.net> <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> <83zh5n4hpd.fsf@gnu.org> <878sbagsx8.fsf@web.de> <87imaefck8.fsf@web.de> <87wnyudws1.fsf@web.de> <83pn4l3mts.fsf@gnu.org> <87v9edk4eb.fsf@igel.home> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: michael_heerdegen@web.de, 43389@debbugs.gnu.org, RLAdams@AdamsInfoServ.Com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Andreas Schwab > Cc: Michael Heerdegen , 43389@debbugs.gnu.org, > RLAdams@AdamsInfoServ.Com > Date: Tue, 10 Nov 2020 09:22:20 +0100 > > > Yes, the heap. So it more and more looks like this is the result of > > glibc not releasing memory to the system, which with some usage > > patterns causes the memory footprint grow to ludicrous size. > > The heap can only shrink if you free memory at the end of it, so there > is nothing wrong here. Yes. Except that some people say once this problem starts, the memory footprint starts growing very fast, and the question is why. Also, perhaps Emacs could do something to prevent large amounts of free memory from being trapped by a small allocation, by modifying something in how we allocate memory. (It is a pity that a problem which was solved decades ago by using ralloc.c is back, and on GNU/Linux of all the platforms, where such aspects of memory fragmentation aren't supposed to happen, and all the malloc knobs we could perhaps use to avoid that were deprecated and/or removed.) From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 10 10:55:57 2020 Received: (at 43389) by debbugs.gnu.org; 10 Nov 2020 15:55:57 +0000 Received: from localhost ([127.0.0.1]:38712 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcVzx-0006a9-Fo for submit@debbugs.gnu.org; Tue, 10 Nov 2020 10:55:57 -0500 Received: from eggs.gnu.org ([209.51.188.92]:58026) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcVzv-0006Zt-Bk for 43389@debbugs.gnu.org; Tue, 10 Nov 2020 10:55:56 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:34904) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kcVzq-0001Mz-1Z; Tue, 10 Nov 2020 10:55:50 -0500 Received: from [176.228.60.248] (port=1831 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kcVzp-0004UW-51; Tue, 10 Nov 2020 10:55:49 -0500 Date: Tue, 10 Nov 2020 17:55:59 +0200 Message-Id: <837dqt2okw.fsf@gnu.org> From: Eli Zaretskii To: Michael Heerdegen In-Reply-To: <87o8k5ecfo.fsf@web.de> (message from Michael Heerdegen on Tue, 10 Nov 2020 11:25:15 +0100) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <87mu1sry72.fsf@mail.linkov.net> <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> <83zh5n4hpd.fsf@gnu.org> <878sbagsx8.fsf@web.de> <87imaefck8.fsf@web.de> <87wnyudws1.fsf@web.de> <83pn4l3mts.fsf@gnu.org> <87o8k5ecfo.fsf@web.de> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org, RLAdams@AdamsInfoServ.Com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Michael Heerdegen > Cc: 43389@debbugs.gnu.org, RLAdams@AdamsInfoServ.Com > Date: Tue, 10 Nov 2020 11:25:15 +0100 > > FWIW, I'm still in that session, it's still running, and since > yesterday, that session's memory use has shrunk a lot. Nearly half of > the memory that had been in use yesterday apparently has been freed now. So the "leak" is not permanent, as some other people here reported? From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 10 11:36:52 2020 Received: (at 43389) by debbugs.gnu.org; 10 Nov 2020 16:36:52 +0000 Received: from localhost ([127.0.0.1]:38762 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcWdY-0007eH-8M for submit@debbugs.gnu.org; Tue, 10 Nov 2020 11:36:52 -0500 Received: from mout.web.de ([212.227.15.4]:38309) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcWdW-0007dz-Oq for 43389@debbugs.gnu.org; Tue, 10 Nov 2020 11:36:51 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1605026169; bh=lBLSxJFfl6XZWYj7B04lO8JJ8bN47pztSywmFaGU93g=; h=X-UI-Sender-Class:From:To:Cc:Subject:References:Date:In-Reply-To; b=Qdwj62crwGIaNpq8kJmw3s/sNuhP7GMJduxWwxRiUsvrYTKfbhfyHaiOsT/cCPH0J KK+J/KmfxSKh4BQcbBHEE+Vs251i4Sspr+sMHqvRpKWtDi1qyPePZFwsAq6EKVmYOq Liw7saiaPphiOjdAFxiUjCevIbz8HpVCy3sKFD08= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Received: from drachen.dragon ([94.218.215.213]) by smtp.web.de (mrweb003 [213.165.67.108]) with ESMTPSA (Nemesis) id 0Lhvko-1jyIJP2Zc2-00nBTv; Tue, 10 Nov 2020 17:36:09 +0100 From: Michael Heerdegen To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <87mu1sry72.fsf@mail.linkov.net> <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> <83zh5n4hpd.fsf@gnu.org> <878sbagsx8.fsf@web.de> <83d00l2oz9.fsf@gnu.org> Date: Tue, 10 Nov 2020 17:36:08 +0100 In-Reply-To: <83d00l2oz9.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 10 Nov 2020 17:47:22 +0200") Message-ID: <87361hjhjb.fsf@web.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:il0fo/6g5Che1J/XCug7jIK7rQy5IrVQaJIIIAOYdmEBNnYlGpB xNQqTJ246zsyhvq5VTSjuGZjoyDPGn6lkzFwixz8m2WR3GTUs7fVQBWaTFez3wETKtHZ+Sx 0jbkOoey32ldqvr58/dZFQvLxWmyJN4NjGYAXQJa3KKmPXNPS7XjDEVqbJdGYxWGlUNWAut e7WeyIVDO0MC1u1p3ekeg== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:/V+CdIyTfew=:J5kICedswB27gJIrIIkjt/ Tnm26cBYjflMohkIQVxl4RwrMT5KG0KMSSzPorcAg6CIJuKAiN6ZNWx2icpnuJ3GEQyCWcOIz Aoog9nbUwi3e68hVydj64FXUOX9VhJB4P3mK3oA761uTdOB+FZ46ipos6qMc90zQaY+QIk7LY KDZd+xbayBcqGfY/7sb753WSvaWDSoq8/Ug3TuG4L5CwjUIpK052zzMz28zxnmPFum9YJUksr esPTFjcIWrd+VMx6nhUCIC3W7DnHkWFXIxlA4II8YUYyFYZaBFB6V4/rtoFY2Ehs2X2r+Nyya /acJRhzXtpZod/NrI8jr5OuIRDXZsCo3MhLilrUiWzyVHxPsyVZQ1uNSb+Hqhp4GQRrO4JECM C0IVlWSkspj1tHb6nEHZlV5ud8SZxE+LfCpzZKGicAsKqKD0srBZVFGu7FyK31X03dHb3MWRE i01c7g4/vtt6TBEb2KnLlqR/R5zPpzsL82MYVkDmwia8h/mi0DbLXaVC7muEUgyiax8XOzgIx UMdN9I+HV+k0WnWRpHMgbN4lIBHLM8EY8AkitFmfGPSwfe73jJw5XY58Ml4mHh1oYk6wec/e4 LlA2CGjp9EysnVqvJG8/YEM8dIGWwFykNuOqvi3Vp5DWAUpygPqoPi3JKOH0Qpq1NyAAsktfy b+f6k32hp1Z0EcZ53t/sItXE/B7bTnhmcicYdBIJnkF9h5Hv78hH4cLgVjcmS2irkPj7VJ3jw HVII35HYheg4BtBPLRfr/nej+LUkEDr4TcDXltrOsifeLJ2HoG+mvVR0AzU4S2DoFMAD5TK51 A+AAhGII469MzCMg3C0NC3y27Z7WfYAqIVF8Rmvnat9CFroaY1iBXGT37WorGGnh1l2FpZNXd EndX2ti43uQVbZuuDAt+5syi5L7rAssbu74H6cmxk= X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org, RLAdams@AdamsInfoServ.Com, Jean Louis X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Eli Zaretskii writes: > If this was due to a WM, are you sure it was Emacs that was eating up > memory, and not the WM itself? If it was Emacs, then I think the only > way it could depend on the WM is if the WM feeds Emacs with many X > events that somehow consume memory. I'm using openbox here, comparably lightweight as icewm. I don't see an indication to blame the window manager to be related. Michael. From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 10 11:42:08 2020 Received: (at 43389) by debbugs.gnu.org; 10 Nov 2020 16:42:08 +0000 Received: from localhost ([127.0.0.1]:38766 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcWid-0007mA-Tc for submit@debbugs.gnu.org; Tue, 10 Nov 2020 11:42:08 -0500 Received: from mout.web.de ([217.72.192.78]:54667) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcWib-0007lb-Ap for 43389@debbugs.gnu.org; Tue, 10 Nov 2020 11:42:06 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1605026514; bh=ag61SdVKREzjyZxyBxbWfL9VvEo+Mu6G7Ndou0qlvb0=; h=X-UI-Sender-Class:From:To:Cc:Subject:References:Date:In-Reply-To; b=jwxzo/flPW+pCG6oHB43qqwE2XzTRqPNkQaxqAFvWbJ8kU0QAE2HAZEW/FDRfoIik 3cRXX7sXxNNsGzAa/ttKvKGRYG7BK7VUremXIprfyOccWgabSVNUrUY/ic7gJX2iAS FmV9MswwWMLvSJPOVZ4KWpfLpzD9YHXtkD9I6tz4= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Received: from drachen.dragon ([94.218.215.213]) by smtp.web.de (mrweb102 [213.165.67.124]) with ESMTPSA (Nemesis) id 0Lhvlm-1jyI5L41aM-00nCSE; Tue, 10 Nov 2020 17:41:54 +0100 From: Michael Heerdegen To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <87mu1sry72.fsf@mail.linkov.net> <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> <83zh5n4hpd.fsf@gnu.org> <878sbagsx8.fsf@web.de> <87imaefck8.fsf@web.de> <87wnyudws1.fsf@web.de> <83pn4l3mts.fsf@gnu.org> <87o8k5ecfo.fsf@web.de> <837dqt2okw.fsf@gnu.org> Date: Tue, 10 Nov 2020 17:41:51 +0100 In-Reply-To: <837dqt2okw.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 10 Nov 2020 17:55:59 +0200") Message-ID: <87y2j9i2pc.fsf@web.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:5a2xbKb2JZmPZ5WKmrlY8AMntv5FprXTYooyBiBkRg0jaVrH4kH mMwe8aGYs1bl3XdgZjChuKLuWR0srlHQKS6rIdrXOoIZdqbzPmoNequ2eK7u9wINQKYdQZp ZWG2P5lVEngz6kVbrolzIbd2tu42P102QZ0n/QWkLOzH3MQJz7KefygiAdgTC1cIcdC4ujm MJyxyzePe/QpbaKeb2u6g== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:gELZHMWNLKo=:PCKcPbTR8mkY6YQnEh6VNQ 6CYy4g2wzqeAlTmuV3B5FuRj3cGJP2OGO9NQXhBgaGynB13FRjc1zpjiwmWYFgyQyHkr+TRhg miId6lZzwwuTq9194LbnRTj8h/VKNFRTsztT4Bu+pLczxyJ8DIVgd2owsBNjVx7TgLz0a0xws JJXZwVTaC9z05xK1O4LTDqpQBWvALThXnwWHCMij1j0r4QNKt0nq/wqobmu9gPXAggonuH8Me AfiY2+rIcMtas4HTBcR1SaAqcokUnIKDMAQe1rS0kQYgHYIF4NkqGVozz9esu3d/23bDgUSWD INeeWrrRCNCjX96qCPYxcSwh3cMzoWDzLtS6mpZ50SDI/gvVaOgLWXwZhKhQF2yPP6IQ2d0Xr GB7oHKwsg4aWd7IWDsK1k9GiDZCoygcwodB+iUnqqCO1N9B1EDV6EbGFdlk2/DDhTANrLvgHf mMmJqhTI4kNaU3oGXUbClqBsSdRCTktrdUem4NsZVBAdM/x7mem612j0zH8nz3zFffRFR6YfL VONnlDuKw/KqfhCFMDm4Q5+oyKKn3ZFEQQlRe9pq2rBXVFOtd84KWaBkqy7eWjWv+yae1V3OR OzWj/YIxC/wabDA6bD+bTEUToy9Qf0X7+5XzTSSsqiskiFrGM28EtvY3DBVIOX8q0kUSmxCfO 6dGSqVdaFmp+GHa3SEmuaTA4kljYdklYjZOaknQKnpYpfpoLgwq71Rb3rGkn/Ziq5Ofgwe6Ty Rkrl9el9UWIb3wKPk6VXWIjJ4qXhoKi4lLPouvkK/3wIqOzJhZymurKDIpGR7m49s4pLWdKo4 te0n8QZBjCfvCb71/vBjfj2iXaRYyhUVJD5NgOggUd7UECR7D+oW5Vvx/gV3XlPRMcWq83Dbq eO0HZACPQ2d1eh6e1fN25msIdhBW74AyL+Om66SLw= X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org, RLAdams@AdamsInfoServ.Com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Eli Zaretskii writes: > > FWIW, I'm still in that session, it's still running, and since > > yesterday, that session's memory use has shrunk a lot. Nearly half of > > the memory that had been in use yesterday apparently has been freed now. > > So the "leak" is not permanent, as some other people here reported? Maybe not, or not completely. Memory usage still was gigantic, though. Most of the time people will recognize the problem when it causes trouble, and then they probably use to restart Emacs. Maybe most of them did not try to continue using such a session? Only guessing. But yes, mine did free say 2 GB of 7 GB used, without any intervention from my side. Michael. From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 10 11:49:31 2020 Received: (at 43389) by debbugs.gnu.org; 10 Nov 2020 16:49:31 +0000 Received: from localhost ([127.0.0.1]:38774 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcWpm-0007x3-VE for submit@debbugs.gnu.org; Tue, 10 Nov 2020 11:49:31 -0500 Received: from mout.web.de ([212.227.15.3]:54813) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcWpk-0007wo-FR for 43389@debbugs.gnu.org; Tue, 10 Nov 2020 11:49:29 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1605026957; bh=kIZI8BVp+L+zMONftCOJVwvnP8UcCuVB+M+Pc2pdyXA=; h=X-UI-Sender-Class:From:To:Cc:Subject:References:Date:In-Reply-To; b=UWsztpnFn8HYfDCJ6n6O8vXH9NN0CpIMj9qojpljdBUc1uUw8V0LokijeBj456uWT O7CjzvowxCPy9kPF37BNKHjpfNtpOo30CtLYdG/Z7oob0T7VviQvjiKZU6odr88eN+ JFqQ4M5t02r14v0Jo8P2ds5RytoAEuzVpDEeZLzM= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Received: from drachen.dragon ([94.218.215.213]) by smtp.web.de (mrweb003 [213.165.67.108]) with ESMTPSA (Nemesis) id 0MEEdU-1kVzOf2OOO-00FUav; Tue, 10 Nov 2020 17:49:17 +0100 From: Michael Heerdegen To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <87mu1sry72.fsf@mail.linkov.net> <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> <83zh5n4hpd.fsf@gnu.org> <878sbagsx8.fsf@web.de> <87imaefck8.fsf@web.de> <87wnyudws1.fsf@web.de> <83pn4l3mts.fsf@gnu.org> <87v9edk4eb.fsf@igel.home> <87imadcqqk.fsf@web.de> <87h7pxjrh5.fsf@igel.home> <87eel1cq83.fsf@web.de> <4788A848-D51C-4A25-B023-BA029874DBE5@gnu.org> <87a6vpcphp.fsf@web.de> <83ft5h2pks.fsf@gnu.org> Date: Tue, 10 Nov 2020 17:49:16 +0100 In-Reply-To: <83ft5h2pks.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 10 Nov 2020 17:34:27 +0200") Message-ID: <87tutxi2cz.fsf@web.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:kQ1vWCV/EPP8Ea1JpYq7o4O5tnWb61arYd56f0KI6JRXsIemOSx PsYTUSMWmQ6o+/FO/MzAKkSmbkG2yzQ5QVtKB53vf0HF5pyCTSktv48dUhVwp4dG3k9b8kC demvrCn4qXCz8sEd29JX9khkS3O7cbr7bg3sv6GUpKDLFJVzswWWJ+uxORXAEdxbHmGhA3W UuJfeDMGMroFMa6tDyPXg== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:Th9EpF1UczU=:l8W8d9pNPW6o9OcOBtzQVq MZvmC1RCutQmHB0gPGdnh7Z97puPnlXgyHc511REany48mIFk685Iu5aD7NZF1jon3yGL7xmE PGVlJs4+9vr/dNMeDpisR8byUTVEoL0ZwcwyJhC9sJUHnPD3UKglpFz7kPeIU0G1DmgBZGytw f8P7bsllnmbiYYD75tFUESh5Ye11ZXqC6SSGAxLPTv0GDUr7XYyyD2Kkxm7U1HX9Y9spca6ON l1rEXsptSa1HBNq9QGrSmFxUEteU/modHD7T55TvVPCXmayg5yjBUWHgTL5Php3AYFEdpKSgL /wz1/HQviQRc3pv9qJWUTqsuIfr6z3vEyiHRaOQlBiC5ldEqUm8STeN2uUaKTygwm0VVFAlr8 aDI5yLfiVJ1x58PrOpHVtL0FeDGexN+19+fPn6Uh3r7ZJa0Zz+dnVOGenxtzrRazwJMvf05S8 f4gvVJTshHcs3L35btuxgL8OurGsaYjTbcgY/kgGD413ykOR6gjKpEi4z/LP91ZfxSpRheWXz a7FaivtddUN64LZYH9ANhJJlPyuZahMxKktv6sIphXffsBRnPzWDbnQ1QZ68kSTKHuu9ojbW9 5ZNYdJvMs3nbU7VgT009UCM3MSqPMSKlValLZnK4QqisrWQHI6dFwOLrVGrYdM3Fc8sSTxEg+ u9ILdonRskuACkDsyuyztPyPKGe5cKh4L27/p4E6MjfXjv20UO+fDimJaFSidO122tLpyu9yl NjL9usoIJ+junUh5XOtz6yrSUVStaU7iHiW6VJa/1ztucmuBdn3DVH6lUluetuTlB8z9gA1GP 81Ho+n9Lc8H7jZadz3DMLRXJqE2fpmIH3wOkEdiyDjr2OY9XlSRmPJxAIP99zNZw6jp6zds8Y 6BfEMkRWsdR8qE9g4Plyl+Inl1fW1WXhO9w3prQOU= X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org, RLAdams@AdamsInfoServ.Com, schwab@linux-m68k.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Eli Zaretskii writes: > Compliance! > > (gdb) call (int)malloc_info (0, stdout) I'm very sorry, but it's gone. I used Magit in that session to show a log buffer. That lead to memory usage grow too much, and a daemon killed the session to avoid swapping. Maybe the problem is even related to Magit usage. But I had a second X session running at that moment so there was a lot less memory left on the system when that happened. FWIW, the only "exceptional" thing that happened yesterday had been that Gnus one time got stalled after starting. That also can be totally unrelated. I'll try to start some timer that will report me live about heavily growing memory usage so that I can recognize the problem directly when it happens. Regards, Michael. From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 10 12:13:44 2020 Received: (at 43389) by debbugs.gnu.org; 10 Nov 2020 17:13:44 +0000 Received: from localhost ([127.0.0.1]:38802 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcXDE-00005s-5f for submit@debbugs.gnu.org; Tue, 10 Nov 2020 12:13:44 -0500 Received: from eggs.gnu.org ([209.51.188.92]:49578) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcXDB-00005f-Jq for 43389@debbugs.gnu.org; Tue, 10 Nov 2020 12:13:42 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:36666) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kcXD3-00025K-1y; Tue, 10 Nov 2020 12:13:33 -0500 Received: from [176.228.60.248] (port=2664 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kcXD1-0002Qe-Cs; Tue, 10 Nov 2020 12:13:32 -0500 Date: Tue, 10 Nov 2020 19:13:37 +0200 Message-Id: <83v9ed16f2.fsf@gnu.org> From: Eli Zaretskii To: Michael Heerdegen In-Reply-To: <87tutxi2cz.fsf@web.de> (message from Michael Heerdegen on Tue, 10 Nov 2020 17:49:16 +0100) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <87mu1sry72.fsf@mail.linkov.net> <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> <83zh5n4hpd.fsf@gnu.org> <878sbagsx8.fsf@web.de> <87imaefck8.fsf@web.de> <87wnyudws1.fsf@web.de> <83pn4l3mts.fsf@gnu.org> <87v9edk4eb.fsf@igel.home> <87imadcqqk.fsf@web.de> <87h7pxjrh5.fsf@igel.home> <87eel1cq83.fsf@web.de> <4788A848-D51C-4A25-B023-BA029874DBE5@gnu.org> <87a6vpcphp.fsf@web.de> <83ft5h2pks.fsf@gnu.org> <87tutxi2cz.fsf@web.de> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org, RLAdams@AdamsInfoServ.Com, schwab@linux-m68k.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Michael Heerdegen > Cc: schwab@linux-m68k.org, 43389@debbugs.gnu.org, RLAdams@AdamsInfoServ.Com > Date: Tue, 10 Nov 2020 17:49:16 +0100 > > I'll try to start some timer that will report me live about heavily > growing memory usage so that I can recognize the problem directly when > it happens. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 10 12:44:17 2020 Received: (at 43389) by debbugs.gnu.org; 10 Nov 2020 17:44:17 +0000 Received: from localhost ([127.0.0.1]:38825 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcXgm-0000rR-Ug for submit@debbugs.gnu.org; Tue, 10 Nov 2020 12:44:17 -0500 Received: from eggs.gnu.org ([209.51.188.92]:57144) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcXgl-0000rC-8n for 43389@debbugs.gnu.org; Tue, 10 Nov 2020 12:44:15 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:37322) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kcXge-0003fe-Gg; Tue, 10 Nov 2020 12:44:08 -0500 Received: from [176.228.60.248] (port=4561 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kcXgd-0005AC-Qx; Tue, 10 Nov 2020 12:44:08 -0500 Date: Tue, 10 Nov 2020 19:44:16 +0200 Message-Id: <83sg9h14zz.fsf@gnu.org> From: Eli Zaretskii To: michael_heerdegen@web.de In-Reply-To: <83eel12ph8.fsf@gnu.org> (message from Eli Zaretskii on Tue, 10 Nov 2020 17:36:35 +0200) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <87mu1sry72.fsf@mail.linkov.net> <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> <83zh5n4hpd.fsf@gnu.org> <878sbagsx8.fsf@web.de> <87imaefck8.fsf@web.de> <87wnyudws1.fsf@web.de> <83pn4l3mts.fsf@gnu.org> <87v9edk4eb.fsf@igel.home> <87imadcqqk.fsf@web.de> <87h7pxjrh5.fsf@igel.home> <87eel1cq83.fsf@web.de> <4788A848-D51C-4A25-B023-BA029874DBE5@gnu.org> <87a6vpcphp.fsf@web.de> <87y2j9b85z.fsf@web.de> <83eel12ph8.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org, RLAdams@AdamsInfoServ.Com, schwab@linux-m68k.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Tue, 10 Nov 2020 17:36:35 +0200 > From: Eli Zaretskii > Cc: 43389@debbugs.gnu.org, RLAdams@AdamsInfoServ.Com, schwab@linux-m68k.org > > > > (gdb) call malloc_info(0, stdout) > > > 'malloc_info' has unknown return type; cast the call to its declared > > > return type > > > > BTW, because I'm such a C noob, I can also offer to give me a (phone or > > Signal) call if you are interested, maybe that's more efficient. > > If the information proves to be useful, maybe we should provide a Lisp > command to call that function. It could be instrumental in asking > people who see this problem report their results. I've now added such a command to the master branch. Redirect stderr to a file, and then invoke "M-x malloc-info RET" when you want a memory report. The command doesn't display anything, it just writes the info to the redirected file. HTH From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 10 13:55:32 2020 Received: (at 43389) by debbugs.gnu.org; 10 Nov 2020 18:55:32 +0000 Received: from localhost ([127.0.0.1]:38866 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcYnk-0002dt-3z for submit@debbugs.gnu.org; Tue, 10 Nov 2020 13:55:32 -0500 Received: from mout.web.de ([212.227.17.12]:54535) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcYnh-0002df-QY for 43389@debbugs.gnu.org; Tue, 10 Nov 2020 13:55:30 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1605034519; bh=ztDZKGqh2wF24D4EJPbo2h3JkMYHuuus5Vx/dfUFFAs=; h=X-UI-Sender-Class:From:To:Cc:Subject:References:Date:In-Reply-To; b=GqhLvaLP62YS3ivltmdmqhsRf5WrCl4J7AfPvX4jWuT76AC1Ln1K0crfJ/jraMR5l 93//fzHs7NKAGzfdn84vVNO5/WLlio9J89s2mXe79QIeW4E28qBb+CRL0mVT4D//WH vDv0jGeFJkOXNk26GaPZZnfvkhS/9ol7UFVUaG6Q= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Received: from drachen.dragon ([94.218.215.213]) by smtp.web.de (mrweb105 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MIL0Q-1kZFPm3fF6-00EJ53; Tue, 10 Nov 2020 19:55:19 +0100 From: Michael Heerdegen To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> <83zh5n4hpd.fsf@gnu.org> <878sbagsx8.fsf@web.de> <87imaefck8.fsf@web.de> <87wnyudws1.fsf@web.de> <83pn4l3mts.fsf@gnu.org> <87v9edk4eb.fsf@igel.home> <87imadcqqk.fsf@web.de> <87h7pxjrh5.fsf@igel.home> <87eel1cq83.fsf@web.de> <4788A848-D51C-4A25-B023-BA029874DBE5@gnu.org> <87a6vpcphp.fsf@web.de> <87y2j9b85z.fsf@web.de> <83eel12ph8.fsf@gnu.org> <83sg9h14zz.fsf@gnu.org> Date: Tue, 10 Nov 2020 19:55:12 +0100 In-Reply-To: <83sg9h14zz.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 10 Nov 2020 19:44:16 +0200") Message-ID: <87wnytghyn.fsf@web.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:w31mH5HNvXZFNIT/IcWZd6q8MUgkGYY7dVVYku302EVpRNqGhZZ ozGN0dB6wiac8F6d9Pu7gE5eARKdHGGlrARSuuuy1S7hHHflu6WxFlS9g/GXK9u6+BCzdeJ Mqw3UCXwlx6ctSs1DDD3l9Zi0Bk9I+eJgB1+hfM71Dar7AsbJ3h6EeOwftmnwCPnpP2ou43 6Aaji8COjM1UgswnHg5Yw== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:SNCbtavsY7I=:V+By7C2U0UAMDEQs3u5CI0 09XEaqTBhePne/y7Y2FG47kuaPCfvifcuyTfHzTWhe+/BV0b4P8n5qY6ECTMTmqnnSzMp6Ca7 3W4wfP/BGTk8enMDAz3rq+cADTZyq04nSPdFXlObzeW4DHujqn/jlut9TNO9QosHa2m548D9O Sqhd54VbH58eTWBkC4ibS3ay3S4exEwO3zB8BTaBNvRx8Hq9o/hR68p/qQf/u2o/YSHgD3t/A evQGHckRv/zqpHGBJLuqa52yKVixYsrZsbPSbX+pyGKpuMkj+Bh7y1isd5yty27L807bZ7U57 0oGUpLaHM3oHYgWeLDxz9zliD0KS/OZEnz36yjXFDhczgt4W00164hwn41AWszWbehBpKIfwD k3mxSi6XMd5suIarObfi/xJzP3PftWq1/Wg5HzIYzIqqMNM7iFsil8rGEKT01DU14OvWchoEH E7HvUG+ZgbnXwIOjUvJ/5eqqHhNMppENaL6C54DzX4TmkuMMZgC06vJcH0UtPCw+C0xTvo75j QVKm2lZoBm2IvxPa6VVikdbiSxmnTi2SLtB3hszwz72Due8TOHrg3gFQUEwXKioDt+iHQovr/ iqoupqpPCsAGpEH5IVz3tjRHLUC+zL1qJEGapJPQWPObjl5ffS+4I6h4farEXH6oD/jnFX4Gp 6u8F5BQxX4CK9Lowpy4wzX+kmwB7Tk++8vcCR/IyTNGiyT/X987JwmAQyQ9WkbKImCKupV1Kj 8E500dNVDgCjveoOrAJgE0v/s35VpkUzIRwhZSvba/5ND1i32k+wDUvsLLf88Dblv/+n23c33 tHxWMIKp5VSaCU34V0i9LyNc9+IxIu9/q7+o3ScYZ3pJGwrcxAZA1WNUHFcpT/aiQkXdmGNj9 gy/En0WY63f0pOyX0aUkp/2VAsBlYUO23k4HsBDag= X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org, RLAdams@AdamsInfoServ.Com, schwab@linux-m68k.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Eli Zaretskii writes: > I've now added such a command to the master branch. Redirect stderr > to a file, and then invoke "M-x malloc-info RET" when you want a > memory report. The command doesn't display anything, it just writes > the info to the redirected file. Great, thanks, I'll use it next time when the issue happens. Michael. From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 10 15:57:16 2020 Received: (at 43389) by debbugs.gnu.org; 10 Nov 2020 20:57:16 +0000 Received: from localhost ([127.0.0.1]:39093 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcahY-0005pd-4P for submit@debbugs.gnu.org; Tue, 10 Nov 2020 15:57:16 -0500 Received: from static.rcdrun.com ([95.85.24.50]:50723) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcahW-0005pU-4R for 43389@debbugs.gnu.org; Tue, 10 Nov 2020 15:57:15 -0500 Received: from localhost ([::ffff:197.157.34.177]) (AUTH: PLAIN admin, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by static.rcdrun.com with ESMTPSA id 00000000002C0005.000000005FAAFEA8.00001985; Tue, 10 Nov 2020 20:57:12 +0000 Date: Tue, 10 Nov 2020 22:51:16 +0300 From: Jean Louis To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks Message-ID: References: <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> <83zh5n4hpd.fsf@gnu.org> <878sbagsx8.fsf@web.de> <83d00l2oz9.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: <83d00l2oz9.fsf@gnu.org> User-Agent: Mutt/2.0 (3d08634) (2020-11-07) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: michael_heerdegen@web.de, 43389@debbugs.gnu.org, RLAdams@AdamsInfoServ.Com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * Eli Zaretskii [2020-11-10 18:47]: > > Date: Tue, 10 Nov 2020 01:33:17 +0300 > > From: Jean Louis > > Cc: Eli Zaretskii , 43389@debbugs.gnu.org, > > Russell Adams > > > > It was happening regularly under EXWM. Memory get occupied more and > > more and more until it does not go any more, swapping becomes tedious > > and computer becomes non-responsive. Then I had to kill it. By using > > symon-mode I could see swapping of 8 GB and more. My memory is 4 GB > > plus 8 GB swap currently. > > > > This similar condition takes place only after keeping Emacs long in > > memory like maybe 5-8 hours. > > > > After putting laptop to sleep it happens more often. > > > > When I changed to IceWM this happened only once. > > If this was due to a WM, are you sure it was Emacs that was eating up > memory, and not the WM itself? More often I could not do anything. So I have just hard reset computer without shutdown. For some reason not even the Magic SysRq key was enabled on Hyperbola GNU/Linux-libre, so I have enabled that one to at least synchronize disk data and unmount disks before the rest. How I know it was Emacs? I do not know, I am just assuming. I was using almost exclusively Emacs and sometimes sxiv image viewer which exits after viewing and browser. Then I switched to console and tried killing browser to see if system becomes responsive. Killing any other program did not make system responsive, so only killing Emacs gave me back responsiveness. Provided I could switch to console as responsiveness was terrible. From maybe 20 times I could switch maybe few times to console to actually get responsiveness. This happened more than 20 times and I was using symon-mode to monitor swapping. When I have seen that swapping is few gigabytes for no good reason I have tried killing everything to understand what is going on. I've end up killing Emacs and EXWM and restarting X to get into good shape. Because it was tedious over weeks not to be able to rely on computer under EXWM, I have switched to IceWM which is familiar to me. And I did not encounter anything like that regardless how long Emacs runs. Now after discussion of other bug where you suggested limiting rss and after limiting rss I could invoke ./a.out and get prompt, and maybe that ulimit -m or other tweaking could stop that type of behavior. I have to look into it. It could be again that Emacs is not responsible for that but rather liberal system settings. > If it was Emacs, then I think the only way it could depend on the WM > is if the WM feeds Emacs with many X events that somehow consume > memory. I was thinking to report to EXWM but I am unsure why it is happening and cannot easily find out what is really swapping. But because I used often Emacs exclusively that is how I know that it has to be Emacs swapping. From debbugs-submit-bounces@debbugs.gnu.org Wed Nov 11 16:15:31 2020 Received: (at 43389) by debbugs.gnu.org; 11 Nov 2020 21:15:31 +0000 Received: from localhost ([127.0.0.1]:43051 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcxSk-0003K0-OC for submit@debbugs.gnu.org; Wed, 11 Nov 2020 16:15:31 -0500 Received: from mail.trevorbentley.com ([37.187.5.80]:38555) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kcxSj-0003Jg-3Y for 43389@debbugs.gnu.org; Wed, 11 Nov 2020 16:15:29 -0500 Received: from localhost (c188-150-0-48.bredband.comhem.se [188.150.0.48]) by mail.trevorbentley.com (Postfix) with ESMTPSA id 6A8B4601C8; Wed, 11 Nov 2020 22:15:22 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mail.trevorbentley.com; s=mail; t=1605129322; bh=RaMVbx3Fbd4pJXWrUxDZ+jm7rUruI/3KHPqyAydqWu0=; h=From:To:Cc:Cc:Subject:In-Reply-To:References:Date:From; b=Nc4IHeLoD9yRzsI6u2aGIOcKEUavwW183po/Aycb6FEckrWlBWy23QK2lTow3HsyU ZOIuv+ti/4jVBa1aO8W/j+4h+BNLa9EADnYXKmJNTqxNqgpCn3UWSPYZgptTgpj7ti eluqYipQOQE+xOOz0TYrZsZ6KRS1+l9SEPB6sN80= From: Trevor Bentley To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks In-Reply-To: <83imasb0te.fsf@gnu.org> References: <87r1r5428d.fsf@web.de> <874kmcvlbj.fsf@mail.trevorbentley.com> <83imasb0te.fsf@gnu.org> Date: Wed, 11 Nov 2020 22:15:21 +0100 Message-ID: <871rgzvbme.fsf@mail.trevorbentley.com> MIME-Version: 1.0 Content-Type: text/plain; format=flowed X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org, X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) > Thanks. This trace doesn't show how many bytes were allocated, > does it? Without that it is hard to judge whether these GnuTLS > calls could be the culprit. Because the full trace shows other > calls to malloc, for example this: It doesn't show the size of the individual allocations, but it indirectly shows the size of the heap. Each brk() line like this one is the start of an entry: 0.000000 brk(0x55f5ed93e000) = 0x55f5ed93e000 Where the first field is relative time since the last brk() call, and the argument in parentheses is the size requested. Subtracting the argument to one call from the argument to the previous call shows how much the heap has been extended. In this capture, subtracting the first from the last shows that the heap grew by 8,683,520 bytes, and summing the relative timestamps shows that this happened in 90.71 seconds. It's growing at about 100KB/sec at this point. Also, keep in mind that this is brk(). There could have been any number of malloc() calls in between, zero or millions, but these are the ones that couldn't find any unused blocks and had to extend the heap. > I'm not sure how Emacs could be the culprit here. If GnuTLS is > the culprit (and as explained above, this is not certain at this > point), perhaps upgrading to a newer GnuTLS version or reporting > this to GnuTLS developers would allow some progress. I think you are right, GnuTLS was probably a symptom, not a cause. I took a while to respond because I tried running emacs in Valgrind's Massif heap debugging tool, and it took forever. Some results are in now, and it looks like GnuTLS wasn't present in the leak this time around. First of all, if you aren't familiar with Massif (as I wasn't), it captures occassional snapshots of the whole heap and all allocations, and lets you dump a tree-view of those allocations later with the "ms_print" tool. The timestamps are fairly useless, as they are in "number of instructions executed." Here are three files from my investigation: The raw massif output: http://trevorbentley.com/massif.out.3364630 The *full* tree output: http://trevorbentley.com/ms_print.3364630.txt The tree output showing only entries above 10% usage: http://trevorbentley.com/ms_print.thresh10.3364630.txt What you can see from the handy ASCII graph at the top is that memory usage was chugging along, growing upwards for a couple of days, and then spiked very quickly up to just over 4GB over a few hours. If you scroll down to the very last checkpoint (the 10% threshold file is better for this), you can see where most of the memory is used. Very large sums of memory, but from different sources. 1.7GB from lisp_align_malloc (nearly all from Fcons), 1.4GB from lmalloc (half from allocate_vector_block), 700MB from lrealloc (mostly from enlarge_buffer_text). There were no large buffers open, but there were long-lived network sockets and plenty of timers. I didn't check, but I'd say the largest buffer was up to a couple of megabytes, since emacs-slack logs fairly heavily. I'm not sure what to make of this, really. It seems like a general, sudden-onset, intense craving for more memory while not particularly doing much. I could blindly suggest extreme memory fragmentation problems, but that doesn't seem very likely. It's trivial to reproduce, but takes 3-5 days, so not exactly handy to debug. Let me know if you have any requests for the next iteration before I kill it. It's running in Valgrind again. Thanks, -Trevor From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 12 09:24:44 2020 Received: (at 43389) by debbugs.gnu.org; 12 Nov 2020 14:24:44 +0000 Received: from localhost ([127.0.0.1]:44043 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kdDWm-0004H9-CO for submit@debbugs.gnu.org; Thu, 12 Nov 2020 09:24:44 -0500 Received: from eggs.gnu.org ([209.51.188.92]:35322) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kdDWi-0004Gu-HS for 43389@debbugs.gnu.org; Thu, 12 Nov 2020 09:24:42 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:52757) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kdDWd-0006XR-3v; Thu, 12 Nov 2020 09:24:35 -0500 Received: from [176.228.60.248] (port=2708 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kdDWc-0002M8-Fj; Thu, 12 Nov 2020 09:24:34 -0500 Date: Thu, 12 Nov 2020 16:24:48 +0200 Message-Id: <83lff6zm8f.fsf@gnu.org> From: Eli Zaretskii To: Trevor Bentley In-Reply-To: <871rgzvbme.fsf@mail.trevorbentley.com> (message from Trevor Bentley on Wed, 11 Nov 2020 22:15:21 +0100) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <874kmcvlbj.fsf@mail.trevorbentley.com> <83imasb0te.fsf@gnu.org> <871rgzvbme.fsf@mail.trevorbentley.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Trevor Bentley > Cc: 43389@debbugs.gnu.org > Date: Wed, 11 Nov 2020 22:15:21 +0100 > > The raw massif output: > > http://trevorbentley.com/massif.out.3364630 > > The *full* tree output: > > http://trevorbentley.com/ms_print.3364630.txt > > The tree output showing only entries above 10% usage: > > http://trevorbentley.com/ms_print.thresh10.3364630.txt > > What you can see from the handy ASCII graph at the top is that > memory usage was chugging along, growing upwards for a couple of > days, and then spiked very quickly up to just over 4GB over a few > hours. When this pick happens, I see the following unusual circumstances: . ImageMagick functions are called and request a lot of (aligned) memory; . something called "gomp_thread_start" is called, and also allocates a lot of memory -- does this mean additional threads start running? Or am I reading the graphs incorrectly? Also, I see that you are using the native-compilation branch, and something called slack-image is being loaded? What is this about? And can you tell me whether src/config.h defines DOUG_LEA_MALLOC to a non-zero value on that system? > If you scroll down to the very last checkpoint (the 10% threshold > file is better for this), you can see where most of the memory is > used. Very large sums of memory, but from different sources. > 1.7GB from lisp_align_malloc (nearly all from Fcons), 1.4GB from > lmalloc (half from allocate_vector_block), 700MB from lrealloc > (mostly from enlarge_buffer_text). > > There were no large buffers open, but there were long-lived > network sockets and plenty of timers. I didn't check, but I'd say > the largest buffer was up to a couple of megabytes, since > emacs-slack logs fairly heavily. > > I'm not sure what to make of this, really. It seems like a > general, sudden-onset, intense craving for more memory while not > particularly doing much. I could blindly suggest extreme memory > fragmentation problems, but that doesn't seem very likely. It is important to understand what was going one when the memory started growing fast. You say there were no large buffers, but what about temporary buffers? what could cause gomp_thread_start, whatever that is, to start? We recently added a malloc-info command, maybe you could use it to show more information about the malloc arenas before and after it starts to eat up memory. From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 16 15:16:35 2020 Received: (at 43389) by debbugs.gnu.org; 16 Nov 2020 20:16:35 +0000 Received: from localhost ([127.0.0.1]:57411 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kekvS-0006lf-W0 for submit@debbugs.gnu.org; Mon, 16 Nov 2020 15:16:35 -0500 Received: from eggs.gnu.org ([209.51.188.92]:38612) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kekvO-0006lN-Up for 43389@debbugs.gnu.org; Mon, 16 Nov 2020 15:16:33 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:40825) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kekvI-0001Eo-R0; Mon, 16 Nov 2020 15:16:24 -0500 Received: from [176.228.60.248] (port=1578 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kekvD-0004Cu-8W; Mon, 16 Nov 2020 15:16:20 -0500 Date: Mon, 16 Nov 2020 22:16:12 +0200 Message-Id: <838sb1rrar.fsf@gnu.org> From: Eli Zaretskii To: fweimer@redhat.com, carlos@redhat.com, dj@redhat.com In-Reply-To: <83lff6zm8f.fsf@gnu.org> (message from Eli Zaretskii on Thu, 12 Nov 2020 16:24:48 +0200) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <874kmcvlbj.fsf@mail.trevorbentley.com> <83imasb0te.fsf@gnu.org> <871rgzvbme.fsf@mail.trevorbentley.com> <83lff6zm8f.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Bringing on board of this discussion glibc malloc experts: Florian Weimer, DJ Delorie, and Carlos O'Donell. For some time (several months, I think) we have reports from Emacs users that the memory footprints of their Emacs sessions sometimes start growing very quickly, from several hundreds of MBytes to several gigabytes in a day or even just few hours, and in some cases causing the OOMK to kick in and kill the Emacs process. Please refer to the details described in the discussions of this bug report: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=43389 and 3 other bugs merged to it, which describe what sounds like the same problem. The questions that I'd like to eventually be able to answer are: . is this indeed due to some malloc'ed chunk that is being used for prolonged periods of time, and prevents releasing parts of the heap to the system? IOW, is this pathological, but correct behavior, or is this some bug? . if this is correct behavior, can Emacs do something to avoid triggering it? For example, should we consider tuning glibc's malloc in some way, by changing the 3 calls to mallopt in init_alloc_once_for_pdumper? Your thoughts and help in investigating these problems will be highly appreciated. Please feel free to ask any questions you come up with, including about the details of Emacs's memory management and anything related. Thanks! From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 16 15:23:29 2020 Received: (at control) by debbugs.gnu.org; 16 Nov 2020 20:23:29 +0000 Received: from localhost ([127.0.0.1]:57440 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kel29-0006xc-B5 for submit@debbugs.gnu.org; Mon, 16 Nov 2020 15:23:29 -0500 Received: from eggs.gnu.org ([209.51.188.92]:41192) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kel27-0006xQ-O1 for control@debbugs.gnu.org; Mon, 16 Nov 2020 15:23:28 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:41327) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kel22-0004G5-7U for control@debbugs.gnu.org; Mon, 16 Nov 2020 15:23:22 -0500 Received: from [176.228.60.248] (port=2025 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kel21-0005W2-Gs for control@debbugs.gnu.org; Mon, 16 Nov 2020 15:23:22 -0500 Date: Mon, 16 Nov 2020 22:23:15 +0200 Message-Id: <835z65rqz0.fsf@gnu.org> From: Eli Zaretskii To: control@debbugs.gnu.org (GNU bug tracker automated control server) In-Reply-To: (control@debbugs.gnu.org) Subject: Re: Processed (with 1 errors): Re: bug#44666: 28.0.50; malloc-info: Emacs became not responsive, using hard disk all time References: <837dqlrr8z.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) severity 44666 normal merge 44666 43389 thanks From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 16 15:42:52 2020 Received: (at 43389) by debbugs.gnu.org; 16 Nov 2020 20:42:52 +0000 Received: from localhost ([127.0.0.1]:57469 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kelKt-00015d-TQ for submit@debbugs.gnu.org; Mon, 16 Nov 2020 15:42:52 -0500 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:47710) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kelKr-00015V-52 for 43389@debbugs.gnu.org; Mon, 16 Nov 2020 15:42:50 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1605559368; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=d8cLFNW8Tl6xYnQQcNYyT7LlqOLx5lsjYmTAh9zXTbc=; b=BJ/IgEg2LZ3DtYurQyYGSItZILUYUXKGxWkR2yUQbrFL4YQcXlSrF4nEekSL6JS8oM1BVI PAZUPctGMjItA+J4qAj3gwtczUF3qAZZDytiiIV/dWN6Y1Zj9HGYTSlV53qY00ZVyr3ngZ c6EP5pxNyHTa3ktC9TTFp1odWYl29c4= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-439-YaULm9ewPZC_qToDRn-mtQ-1; Mon, 16 Nov 2020 15:42:46 -0500 X-MC-Unique: YaULm9ewPZC_qToDRn-mtQ-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 8F0241007B26; Mon, 16 Nov 2020 20:42:45 +0000 (UTC) Received: from oldenburg2.str.redhat.com (ovpn-113-222.ams2.redhat.com [10.36.113.222]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 1AD2D5C1D7; Mon, 16 Nov 2020 20:42:40 +0000 (UTC) From: Florian Weimer To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <874kmcvlbj.fsf@mail.trevorbentley.com> <83imasb0te.fsf@gnu.org> <871rgzvbme.fsf@mail.trevorbentley.com> <83lff6zm8f.fsf@gnu.org> <838sb1rrar.fsf@gnu.org> Date: Mon, 16 Nov 2020 21:42:39 +0100 In-Reply-To: <838sb1rrar.fsf@gnu.org> (Eli Zaretskii's message of "Mon, 16 Nov 2020 22:16:12 +0200") Message-ID: <87wnylm3sw.fsf@oldenburg2.str.redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=fweimer@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: carlos@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * Eli Zaretskii: > For some time (several months, I think) we have reports from Emacs > users that the memory footprints of their Emacs sessions sometimes > start growing very quickly, from several hundreds of MBytes to several > gigabytes in a day or even just few hours, and in some cases causing > the OOMK to kick in and kill the Emacs process. The last time I saw this was a genuine memory leak in the Emacs C code. Just saying. 8-) > The questions that I'd like to eventually be able to answer are: > > . is this indeed due to some malloc'ed chunk that is being used for > prolonged periods of time, and prevents releasing parts of the > heap to the system? IOW, is this pathological, but correct > behavior, or is this some bug? > > . if this is correct behavior, can Emacs do something to avoid > triggering it? For example, should we consider tuning glibc's > malloc in some way, by changing the 3 calls to mallopt in > init_alloc_once_for_pdumper? > > Your thoughts and help in investigating these problems will be highly > appreciated. Please feel free to ask any questions you come up with, > including about the details of Emacs's memory management and anything > related. There is an issue with reusing posix_memalign allocations. On my system (running Emacs 27.1 as supplied by Fedora 32), I only see such allocations as the backing storage for the glib (sic) slab allocator. It gets exercised mostly when creating UI elements, as far as I can tell. In theory, these backing allocations should be really long-term and somewhat limited, so the fragmentation peculiar to aligned allocations issue should not be a concern. There is actually a glibc patch floating around that fixes the aligned allocation problem, at some (hopefully limited) performance cost to aligned allocations. We want to get it reviewed and integrated into upstream glibc. If there is a working reproducer, we could run it against a patched glibc. The other issue we have is that thread counts has exceeded in recent times more than system memory, and glibc basically scales RSS overhead with thread count, not memory. A use of libgomp suggests that many threads might indeed be spawned. If their lifetimes overlap, it would not be unheard of to end up with some RSS overhead in the order of peak-usage-per-thread times 8 times the number of hardware threads supported by the system. Setting MALLOC_ARENA_MAX to a small value counteracts that, so it's very simple to experiment with it if you have a working reproducer. Thanks, Florian -- Red Hat GmbH, https://de.redhat.com/ , Registered seat: Grasbrunn, Commercial register: Amtsgericht Muenchen, HRB 153243, Managing Directors: Charles Cachera, Brian Klemm, Laurie Krebs, Michael O'Neill From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 17 10:45:30 2020 Received: (at 43389) by debbugs.gnu.org; 17 Nov 2020 15:45:30 +0000 Received: from localhost ([127.0.0.1]:60928 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kf3Ag-00038M-8U for submit@debbugs.gnu.org; Tue, 17 Nov 2020 10:45:30 -0500 Received: from eggs.gnu.org ([209.51.188.92]:55356) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kf3Ac-00030G-Tt for 43389@debbugs.gnu.org; Tue, 17 Nov 2020 10:45:28 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:56339) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kf3AX-0000YO-A2; Tue, 17 Nov 2020 10:45:21 -0500 Received: from [176.228.60.248] (port=1300 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kf3AW-0005ys-H0; Tue, 17 Nov 2020 10:45:21 -0500 Date: Tue, 17 Nov 2020 17:45:15 +0200 Message-Id: <83r1osq96c.fsf@gnu.org> From: Eli Zaretskii To: Florian Weimer In-Reply-To: <87wnylm3sw.fsf@oldenburg2.str.redhat.com> (message from Florian Weimer on Mon, 16 Nov 2020 21:42:39 +0100) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <874kmcvlbj.fsf@mail.trevorbentley.com> <83imasb0te.fsf@gnu.org> <871rgzvbme.fsf@mail.trevorbentley.com> <83lff6zm8f.fsf@gnu.org> <838sb1rrar.fsf@gnu.org> <87wnylm3sw.fsf@oldenburg2.str.redhat.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: carlos@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Florian Weimer > Cc: carlos@redhat.com, dj@redhat.com, 43389@debbugs.gnu.org > Date: Mon, 16 Nov 2020 21:42:39 +0100 > > * Eli Zaretskii: > > > For some time (several months, I think) we have reports from Emacs > > users that the memory footprints of their Emacs sessions sometimes > > start growing very quickly, from several hundreds of MBytes to several > > gigabytes in a day or even just few hours, and in some cases causing > > the OOMK to kick in and kill the Emacs process. > > The last time I saw this was a genuine memory leak in the Emacs C code. That's always a possibility. However, 2 aspects of these bug reports seem to hint that there's more here than meets the eye: . the problem happens only to a small number of people, and it is hard to find an area in Emacs that would use memory in some special enough way to happen rarely . the Emacs sessions of the people who reported this would run for many days and even weeks on end with fairly normal memory footprint (around 500MB) that was very stable, and then suddenly begin growing by the minute to 10 or 20 times that > There is an issue with reusing posix_memalign allocations. On my system > (running Emacs 27.1 as supplied by Fedora 32), I only see such > allocations as the backing storage for the glib (sic) slab allocator. (By "backing storage" you mean malloc calls that request large chunks so that malloc obtains the memory from mmap? Or do you mean something else?) Are the problems with posix_memalign also relevant to calls to aligned_alloc? Emacs calls the latter _a_lot_, see lisp_align_malloc. > It gets exercised mostly when creating UI elements, as far as I can > tell. I guess your build uses GTK as the toolkit? > There is actually a glibc patch floating around that fixes the aligned > allocation problem, at some (hopefully limited) performance cost to > aligned allocations. We want to get it reviewed and integrated into > upstream glibc. If there is a working reproducer, we could run it > against a patched glibc. We don't have a reproducer, but several people said that the problem happens to them regularly enough in their normal usage. So I think we can ask them to try a patches glibc and see if the problem goes away. > The other issue we have is that thread counts has exceeded in recent > times more than system memory, and glibc basically scales RSS overhead > with thread count, not memory. A use of libgomp suggests that many > threads might indeed be spawned. If their lifetimes overlap, it would > not be unheard of to end up with some RSS overhead in the order of > peak-usage-per-thread times 8 times the number of hardware threads > supported by the system. Setting MALLOC_ARENA_MAX to a small value > counteracts that, so it's very simple to experiment with it if you have > a working reproducer. "Small value" being something like 2? Emacs doesn't use libgomp, I think that comes from ImageMagick, and most people who reported these problems use Emacs that wasn't built with ImageMagick. The only other source of threads in Emacs I know of is GTK, but AFAIK it starts a small number of them, like 4. In any case, experimenting with MALLOC_ARENA_MAX is easy, so I think we should ask the people who experience this to try that. Any other suggestions or thoughts? Thanks. From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 17 11:33:15 2020 Received: (at 43389) by debbugs.gnu.org; 17 Nov 2020 16:33:15 +0000 Received: from localhost ([127.0.0.1]:60986 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kf3ut-0005wC-5T for submit@debbugs.gnu.org; Tue, 17 Nov 2020 11:33:15 -0500 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:32216) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kf3us-0005w5-1p for 43389@debbugs.gnu.org; Tue, 17 Nov 2020 11:33:14 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1605630793; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=erOQzsveH/M9BZEGhH6Gl3mgYCj+V3jKWk6kHmTWCjk=; b=dEOOiaiapjOEyk73fzEaJtC6lmnyUtVuCMgcBO+YARUk+FvVFSTq9Xd3FfnlkYnfKpGc6z jp/BgD5HT4tH/coLdxP7uCoYqB1kvx60fjq90oSOlaWtSthrzHfCaMY1Hl3EuIcyXPeF0E GWYTVs6PHBZFLEs1k/rbVrUZLzHU3+4= Received: from mail-io1-f69.google.com (mail-io1-f69.google.com [209.85.166.69]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-408-dnXTTEcSN3mGXzvjPgs3QA-1; Tue, 17 Nov 2020 11:33:10 -0500 X-MC-Unique: dnXTTEcSN3mGXzvjPgs3QA-1 Received: by mail-io1-f69.google.com with SMTP id l15so4706494ioh.18 for <43389@debbugs.gnu.org>; Tue, 17 Nov 2020 08:33:10 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=erOQzsveH/M9BZEGhH6Gl3mgYCj+V3jKWk6kHmTWCjk=; b=okpkCrSdhESSCtNdf0FhQnnH4/jOTYAXX8zuB8i1LuXBhSeEAMKa3sQTTJREFYqOxB THw6n7nS+xAots3UwZKc6IGDOH47fz/j3y3OZBE6MT9BJwHfccxUylMiN0JaenuFlUUp +DbPRyLDMBuGAX1iuXB7sATf1FSDn+MOCkkyS2NYXiYyEVMvKQtTDKG5anhWHOBnw0S1 7TBTR82WAVCxvbtgLHRNdwbQdvD3Ek3bfGpQhVJwn6BfP1Gs7XbU2lmo9wTUr6e4if9D RMpIllodRjODkM3cuEiZpejFVVrW9ZZG/kudhsk/5Rkzm8y27f87SUau4tbsCGnnvXh4 lcGQ== X-Gm-Message-State: AOAM531s5/3cjFpGnYfneVmYiXyZMLG0Zm386/UtxYyexl31QHK/nzoT urTiIzKrz5KQBUeYjV37fvUpNKIOom4AUlVpjzVMYD05sFFkF1CxKk/L+bKBPxNitF+wV5Wte3M ElV+gqYZFFwF5OBXQEUgF2G/SI20bpRW92Uye7j2i/Ih21thmUykRT7iNj3Mo3LuS X-Received: by 2002:a05:6638:b30:: with SMTP id c16mr4284663jab.61.1605630789625; Tue, 17 Nov 2020 08:33:09 -0800 (PST) X-Google-Smtp-Source: ABdhPJxlX/G/RV088kx22nYk8unQlHz//IYv97CrWHlPGGJ9zinJahPpKTLlq4RTa8+QhL9MVjqImw== X-Received: by 2002:ac8:5901:: with SMTP id 1mr504960qty.350.1605630751640; Tue, 17 Nov 2020 08:32:31 -0800 (PST) Received: from [192.168.1.16] (198-84-214-74.cpe.teksavvy.com. [198.84.214.74]) by smtp.gmail.com with ESMTPSA id o16sm15354728qkg.27.2020.11.17.08.32.24 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 17 Nov 2020 08:32:26 -0800 (PST) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks To: Eli Zaretskii , Florian Weimer References: <87r1r5428d.fsf@web.de> <874kmcvlbj.fsf@mail.trevorbentley.com> <83imasb0te.fsf@gnu.org> <871rgzvbme.fsf@mail.trevorbentley.com> <83lff6zm8f.fsf@gnu.org> <838sb1rrar.fsf@gnu.org> <87wnylm3sw.fsf@oldenburg2.str.redhat.com> <83r1osq96c.fsf@gnu.org> From: Carlos O'Donell Organization: Red Hat Message-ID: Date: Tue, 17 Nov 2020 11:32:23 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.3.1 MIME-Version: 1.0 In-Reply-To: <83r1osq96c.fsf@gnu.org> Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=carlos@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org, dj@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 11/17/20 10:45 AM, Eli Zaretskii wrote: >> From: Florian Weimer >> Cc: carlos@redhat.com, dj@redhat.com, 43389@debbugs.gnu.org >> Date: Mon, 16 Nov 2020 21:42:39 +0100 >> There is an issue with reusing posix_memalign allocations. On my system >> (running Emacs 27.1 as supplied by Fedora 32), I only see such >> allocations as the backing storage for the glib (sic) slab allocator. > > (By "backing storage" you mean malloc calls that request large chunks > so that malloc obtains the memory from mmap? Or do you mean something > else?) In this case I expect Florian means that glib (sic), which is a slab allocator, needs to allocate an aligned slab (long lived) and so uses posix_memalign to create such an allocation. Therefore these long-lived aligned allocations should not cause significant internal fragmentation. > Are the problems with posix_memalign also relevant to calls to > aligned_alloc? Emacs calls the latter _a_lot_, see lisp_align_malloc. All aligned allocations suffer from an algorithmic defect that causes subsequent allocations of the same alignment to be unable to use previously free'd aligned chunks. This causes aligned allocations to internally fragment the heap and this internal fragmentation could spread to the entire heap and cause heap growth. The WIP glibc patch is here (June 2019): https://lists.fedoraproject.org/archives/list/glibc@lists.fedoraproject.org/thread/2PCHP5UWONIOAEUG34YBAQQYD7JL5JJ4/ >> The other issue we have is that thread counts has exceeded in recent >> times more than system memory, and glibc basically scales RSS overhead >> with thread count, not memory. A use of libgomp suggests that many >> threads might indeed be spawned. If their lifetimes overlap, it would >> not be unheard of to end up with some RSS overhead in the order of >> peak-usage-per-thread times 8 times the number of hardware threads >> supported by the system. Setting MALLOC_ARENA_MAX to a small value >> counteracts that, so it's very simple to experiment with it if you have >> a working reproducer. > > "Small value" being something like 2? The current code creates 8 arenas per core on a 64-bit system. You could set it to 1 arena per core to force more threads into the arenas and push them to reuse more chunks. export MALLOC_ARENA_MAX=$(nproc) And see if that helps. > Emacs doesn't use libgomp, I think that comes from ImageMagick, and > most people who reported these problems use Emacs that wasn't built > with ImageMagick. The only other source of threads in Emacs I know of > is GTK, but AFAIK it starts a small number of them, like 4. > > In any case, experimenting with MALLOC_ARENA_MAX is easy, so I think > we should ask the people who experience this to try that. > > Any other suggestions or thoughts? Yes, we have malloc trace utilities for capturing and simulating traces from applications: https://pagure.io/glibc-malloc-trace-utils If you can capture the application allocations with the tracer then we should be able to reproduce it locally and observe the problem. -- Cheers, Carlos. From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 17 11:33:25 2020 Received: (at 43389) by debbugs.gnu.org; 17 Nov 2020 16:33:25 +0000 Received: from localhost ([127.0.0.1]:60989 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kf3v3-0005wa-Hv for submit@debbugs.gnu.org; Tue, 17 Nov 2020 11:33:25 -0500 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:39940) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kf3v1-0005wS-BV for 43389@debbugs.gnu.org; Tue, 17 Nov 2020 11:33:24 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1605630803; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=USbkBOrWtA4dZ/Rfoh/2OrW8N4SqeW36zX6kNsB7MJE=; b=AHdvNpqaosHHWePPmID1XB3mOKBFMYm2qMC0F7PgjOT6FsVd3h8CTGR2TpL62VlYY/IWvk za59RGpRwFjWAZnBCYf4uCaHzSyvLa9+WXZ7isivhKazH+IvGlRAodgWfKqvQiJO23eRK7 IC4104xWyB+m+ZD2oZ0loTtNsfdJLjg= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-231-KlgeTIeLPc28UF0Nr7-swg-1; Tue, 17 Nov 2020 11:33:21 -0500 X-MC-Unique: KlgeTIeLPc28UF0Nr7-swg-1 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id F23388CD88D; Tue, 17 Nov 2020 16:33:19 +0000 (UTC) Received: from oldenburg2.str.redhat.com (ovpn-113-222.ams2.redhat.com [10.36.113.222]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 824285D9CC; Tue, 17 Nov 2020 16:33:15 +0000 (UTC) From: Florian Weimer To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <874kmcvlbj.fsf@mail.trevorbentley.com> <83imasb0te.fsf@gnu.org> <871rgzvbme.fsf@mail.trevorbentley.com> <83lff6zm8f.fsf@gnu.org> <838sb1rrar.fsf@gnu.org> <87wnylm3sw.fsf@oldenburg2.str.redhat.com> <83r1osq96c.fsf@gnu.org> Date: Tue, 17 Nov 2020 17:33:13 +0100 In-Reply-To: <83r1osq96c.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 17 Nov 2020 17:45:15 +0200") Message-ID: <87o8jwj646.fsf@oldenburg2.str.redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=fweimer@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: carlos@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * Eli Zaretskii: >> There is an issue with reusing posix_memalign allocations. On my system >> (running Emacs 27.1 as supplied by Fedora 32), I only see such >> allocations as the backing storage for the glib (sic) slab allocator. > > (By "backing storage" you mean malloc calls that request large chunks > so that malloc obtains the memory from mmap? Or do you mean something > else?) Larger chunks that are split up by the glib allocator. Whether they are allocated by mmap is unclear. > Are the problems with posix_memalign also relevant to calls to > aligned_alloc? Emacs calls the latter _a_lot_, see lisp_align_malloc. Ahh. I don't see many such calls, even during heavy Gnus usage. But opening really large groups triggers such calls. aligned_alloc is equally problematic. I don't know if the Emacs allocation pattern triggers the pathological behavior. I seem to suffer from the problem as well. glibc malloc currently maintains more than 200 MiB of unused memory: Total RSS is 1 GiB, but even 1 GiB minus 200 MiB would be excessive. It's possible to generate such statistics using GDB, by calling the malloc_info function. My Emacs process does not look like it suffered from the aligned_alloc issue. It would leave behind many smaller, unused allocations, not such large ones. >> It gets exercised mostly when creating UI elements, as far as I can >> tell. > > I guess your build uses GTK as the toolkit? I think so: GNU Emacs 27.1 (build 1, x86_64-redhat-linux-gnu, GTK+ Version 3.24.21, cairo version 1.16.0) of 2020-08-20 >> The other issue we have is that thread counts has exceeded in recent >> times more than system memory, and glibc basically scales RSS overhead >> with thread count, not memory. A use of libgomp suggests that many >> threads might indeed be spawned. If their lifetimes overlap, it would >> not be unheard of to end up with some RSS overhead in the order of >> peak-usage-per-thread times 8 times the number of hardware threads >> supported by the system. Setting MALLOC_ARENA_MAX to a small value >> counteracts that, so it's very simple to experiment with it if you have >> a working reproducer. > > "Small value" being something like 2? Yes, that would be a good start. But my Emacs process isn't affected by this, so this setting wouldn't help there. Thanks, Florian -- Red Hat GmbH, https://de.redhat.com/ , Registered seat: Grasbrunn, Commercial register: Amtsgericht Muenchen, HRB 153243, Managing Directors: Charles Cachera, Brian Klemm, Laurie Krebs, Michael O'Neill From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 17 12:08:38 2020 Received: (at 43389) by debbugs.gnu.org; 17 Nov 2020 17:08:38 +0000 Received: from localhost ([127.0.0.1]:32783 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kf4T8-0000RE-KP for submit@debbugs.gnu.org; Tue, 17 Nov 2020 12:08:38 -0500 Received: from eggs.gnu.org ([209.51.188.92]:47058) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kf4T6-0000R1-2I for 43389@debbugs.gnu.org; Tue, 17 Nov 2020 12:08:37 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:57601) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kf4Sz-0003nU-WE; Tue, 17 Nov 2020 12:08:30 -0500 Received: from [176.228.60.248] (port=2386 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kf4Sz-00082a-Bi; Tue, 17 Nov 2020 12:08:29 -0500 Date: Tue, 17 Nov 2020 19:08:24 +0200 Message-Id: <83o8jvrjw7.fsf@gnu.org> From: Eli Zaretskii To: Florian Weimer , Trevor Bentley michael_heerdegen@web.de, Jean Louis In-Reply-To: <87o8jwj646.fsf@oldenburg2.str.redhat.com> (message from Florian Weimer on Tue, 17 Nov 2020 17:33:13 +0100) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <874kmcvlbj.fsf@mail.trevorbentley.com> <83imasb0te.fsf@gnu.org> <871rgzvbme.fsf@mail.trevorbentley.com> <83lff6zm8f.fsf@gnu.org> <838sb1rrar.fsf@gnu.org> <87wnylm3sw.fsf@oldenburg2.str.redhat.com> <83r1osq96c.fsf@gnu.org> <87o8jwj646.fsf@oldenburg2.str.redhat.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: carlos@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Florian Weimer > Cc: carlos@redhat.com, dj@redhat.com, 43389@debbugs.gnu.org > Date: Tue, 17 Nov 2020 17:33:13 +0100 > > > > > > > Total RSS is 1 GiB, but even 1 GiB minus 200 MiB would be excessive. Yes, I wouldn't expect to see such a large footprint. How long is this session running? (You can use "M-x emacs-uptime" to answer that.) > It's possible to generate such statistics using GDB, by calling the > malloc_info function. Emacs 28 (from the master branch) has recently acquired the malloc-info command which will emit this to stderr. You can see one example of its output here: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=44666#5 which doesn't seem to show any significant amounts of free memory at all? I encourage all the people who reported similar problems to try the measures mentioned by Florian and Carlos, including malloc-info, and report the results. > My Emacs process does not look like it suffered from the aligned_alloc > issue. It would leave behind many smaller, unused allocations, not such > large ones. > [...] > >> supported by the system. Setting MALLOC_ARENA_MAX to a small value > >> counteracts that, so it's very simple to experiment with it if you have > >> a working reproducer. > > > > "Small value" being something like 2? > > Yes, that would be a good start. But my Emacs process isn't affected by > this, so this setting wouldn't help there. So both known problems seem to be not an issue in your case. What other reasons could cause that? From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 17 12:13:24 2020 Received: (at 43389) by debbugs.gnu.org; 17 Nov 2020 17:13:24 +0000 Received: from localhost ([127.0.0.1]:32803 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kf4Xk-0000ZI-9A for submit@debbugs.gnu.org; Tue, 17 Nov 2020 12:13:24 -0500 Received: from eggs.gnu.org ([209.51.188.92]:48118) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kf4Xh-0000Z5-Tw for 43389@debbugs.gnu.org; Tue, 17 Nov 2020 12:13:22 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:57829) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kf4Xc-0005V2-Dn; Tue, 17 Nov 2020 12:13:16 -0500 Received: from [176.228.60.248] (port=2690 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kf4XX-0000BA-AB; Tue, 17 Nov 2020 12:13:15 -0500 Date: Tue, 17 Nov 2020 19:13:06 +0200 Message-Id: <83mtzfrjod.fsf@gnu.org> From: Eli Zaretskii To: Carlos O'Donell In-Reply-To: (message from Carlos O'Donell on Tue, 17 Nov 2020 11:32:23 -0500) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <874kmcvlbj.fsf@mail.trevorbentley.com> <83imasb0te.fsf@gnu.org> <871rgzvbme.fsf@mail.trevorbentley.com> <83lff6zm8f.fsf@gnu.org> <838sb1rrar.fsf@gnu.org> <87wnylm3sw.fsf@oldenburg2.str.redhat.com> <83r1osq96c.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Cc: dj@redhat.com, 43389@debbugs.gnu.org > From: Carlos O'Donell > Date: Tue, 17 Nov 2020 11:32:23 -0500 > > > "Small value" being something like 2? > > The current code creates 8 arenas per core on a 64-bit system. > > You could set it to 1 arena per core to force more threads into the > arenas and push them to reuse more chunks. > > export MALLOC_ARENA_MAX=$(nproc) Isn't that too many? Emacs is a single-threaded program, with a small number of GTK threads that aren't supposed to allocate a lot of memory. Sounds like 2 should be enough, no? > > Any other suggestions or thoughts? > > Yes, we have malloc trace utilities for capturing and simulating traces > from applications: > > https://pagure.io/glibc-malloc-trace-utils > > If you can capture the application allocations with the tracer then we > should be able to reproduce it locally and observe the problem. You mean, trace all the memory allocations in Emacs with the tracer? That would produce huge amounts of data, as Emacs calls malloc at an insane frequency. Or maybe I don't understand what kind of tracing procedure you had in mind (I never used these tools, and didn't know they existed until you pointed to them). Thanks. From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 17 12:25:00 2020 Received: (at 43389) by debbugs.gnu.org; 17 Nov 2020 17:25:00 +0000 Received: from localhost ([127.0.0.1]:32834 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kf4iy-0000sE-GH for submit@debbugs.gnu.org; Tue, 17 Nov 2020 12:25:00 -0500 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:58983) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kf4ix-0000s7-Ep for 43389@debbugs.gnu.org; Tue, 17 Nov 2020 12:24:59 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1605633899; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=8DFOG8KLOw3jRNd3d8Hy9U0tVVqR7IYYkW4bbxxvvFI=; b=AW4wu6NZFykxFrMSJ5JlFETvcKZ6WM5+H012aGYFJcPSkQ/D6knJs8+bAiYYBgVJPqsri7 AIGjct/7TLb35S/5lKxLZbxJpJ8po4bjNbr6c5URu+7CbGg+f1bbVBNI4cpJobs+0kg3IL c7rnpHjK/Sap61hG+SZ52afMYoOPvzg= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-443-fxqLi623Mi2h8R34rCnC5A-1; Tue, 17 Nov 2020 12:24:55 -0500 X-MC-Unique: fxqLi623Mi2h8R34rCnC5A-1 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 959848030AD; Tue, 17 Nov 2020 17:24:53 +0000 (UTC) Received: from oldenburg2.str.redhat.com (ovpn-113-222.ams2.redhat.com [10.36.113.222]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 1424C60C04; Tue, 17 Nov 2020 17:24:51 +0000 (UTC) From: Florian Weimer To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <874kmcvlbj.fsf@mail.trevorbentley.com> <83imasb0te.fsf@gnu.org> <871rgzvbme.fsf@mail.trevorbentley.com> <83lff6zm8f.fsf@gnu.org> <838sb1rrar.fsf@gnu.org> <87wnylm3sw.fsf@oldenburg2.str.redhat.com> <83r1osq96c.fsf@gnu.org> <87o8jwj646.fsf@oldenburg2.str.redhat.com> <83o8jvrjw7.fsf@gnu.org> Date: Tue, 17 Nov 2020 18:24:50 +0100 In-Reply-To: <83o8jvrjw7.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 17 Nov 2020 19:08:24 +0200") Message-ID: <87h7pnkial.fsf@oldenburg2.str.redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=fweimer@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org, Jean Louis , dj@redhat.com, michael_heerdegen@web.de, Trevor Bentley , carlos@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * Eli Zaretskii: >> From: Florian Weimer >> Cc: carlos@redhat.com, dj@redhat.com, 43389@debbugs.gnu.org >> Date: Tue, 17 Nov 2020 17:33:13 +0100 >>=20 >> >>=20 >> >> >>=20 >> Total RSS is 1 GiB, but even 1 GiB minus 200 MiB would be excessive. > > Yes, I wouldn't expect to see such a large footprint. How long is > this session running? (You can use "M-x emacs-uptime" to answer > that.) 15 days. >> It's possible to generate such statistics using GDB, by calling the >> malloc_info function. > > Emacs 28 (from the master branch) has recently acquired the > malloc-info command which will emit this to stderr. You can see one > example of its output here: > > https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D44666#5 > > which doesn't seem to show any significant amounts of free memory at > all? No, these values look suspiciously good. But I seem to have this issue as well=E2=80=94with the 800 MiB that are act= ually in use. The glibc malloc pathological behavior comes on top of that. Is there something comparable to malloc-info to dump the Emacs allocator freelists? > So both known problems seem to be not an issue in your case. What > other reasons could cause that? Large allocations not getting forwarded to mmap, almost all of them freed, but a late allocation remained. This prevents returning memory from the main arena to the operating system. Thanks, Florian --=20 Red Hat GmbH, https://de.redhat.com/ , Registered seat: Grasbrunn, Commercial register: Amtsgericht Muenchen, HRB 153243, Managing Directors: Charles Cachera, Brian Klemm, Laurie Krebs, Michael O'N= eill From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 17 14:00:56 2020 Received: (at 43389) by debbugs.gnu.org; 17 Nov 2020 19:00:56 +0000 Received: from localhost ([127.0.0.1]:32935 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kf6Dk-0003EH-Qn for submit@debbugs.gnu.org; Tue, 17 Nov 2020 14:00:56 -0500 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:48862) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kf4f9-0000lb-7n for 43389@debbugs.gnu.org; Tue, 17 Nov 2020 12:21:06 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1605633631; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to; bh=K9A7xYtqLUMK923n8ubKHRyBsPl6JniUA7s9j5cD+Hk=; b=ffh8LKIpetMDqGVTthbJHjZE//V4H+nb6ASwaibOq1Sifg8xL60Qj33jt+B2Ky4zcEZg5n j4jSJE85ilUjJTcgoxo5Kf8Y7zBXLxxJUt3PJfuTtJp2rd43heR6DeyyXikgGKh9zb12Er ipFY0HnwNCfljT5VDgyVyg4ZC8LBwlY= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-401-dNmY_1TsOYinDYuM0h7kCA-1; Tue, 17 Nov 2020 12:20:29 -0500 X-MC-Unique: dNmY_1TsOYinDYuM0h7kCA-1 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 2A1D0804017; Tue, 17 Nov 2020 17:20:27 +0000 (UTC) Received: from greed.delorie.com (ovpn-112-249.rdu2.redhat.com [10.10.112.249]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 93E575D9CC; Tue, 17 Nov 2020 17:20:23 +0000 (UTC) Received: from greed.delorie.com.redhat.com (localhost [127.0.0.1]) by greed.delorie.com (8.14.7/8.14.7) with ESMTP id 0AHHKLFD032477; Tue, 17 Nov 2020 12:20:22 -0500 From: DJ Delorie To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks In-Reply-To: <83mtzfrjod.fsf@gnu.org> (message from Eli Zaretskii on Tue, 17 Nov 2020 19:13:06 +0200) Date: Tue, 17 Nov 2020 12:20:21 -0500 Message-ID: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=dj@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 X-Mailman-Approved-At: Tue, 17 Nov 2020 14:00:51 -0500 Cc: carlos@redhat.com, fweimer@redhat.com, 43389@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii writes: > You mean, trace all the memory allocations in Emacs with the tracer? > That would produce huge amounts of data, as Emacs calls malloc at an > insane frequency. Or maybe I don't understand what kind of tracing > procedure you had in mind That's exactly what it does, and yes, it easily generates gigabytes (sometimes terabytes) of trace information. But it also captures the most accurate view of what's going on, and lets us replay (via simulation) all the malloc API calls, so we can reproduce most malloc-related problems on a whim. From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 17 14:52:47 2020 Received: (at 43389) by debbugs.gnu.org; 17 Nov 2020 19:52:47 +0000 Received: from localhost ([127.0.0.1]:33003 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kf71z-0004UR-G1 for submit@debbugs.gnu.org; Tue, 17 Nov 2020 14:52:47 -0500 Received: from eggs.gnu.org ([209.51.188.92]:42292) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kf71x-0004UE-27 for 43389@debbugs.gnu.org; Tue, 17 Nov 2020 14:52:46 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:33300) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kf71r-0004Qx-JZ; Tue, 17 Nov 2020 14:52:39 -0500 Received: from [176.228.60.248] (port=1124 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kf71q-0000ur-4j; Tue, 17 Nov 2020 14:52:39 -0500 Date: Tue, 17 Nov 2020 21:52:34 +0200 Message-Id: <83h7pnrcal.fsf@gnu.org> From: Eli Zaretskii To: DJ Delorie In-Reply-To: (message from DJ Delorie on Tue, 17 Nov 2020 12:20:21 -0500) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: carlos@redhat.com, fweimer@redhat.com, 43389@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: DJ Delorie > Cc: carlos@redhat.com, fweimer@redhat.com, 43389@debbugs.gnu.org > Date: Tue, 17 Nov 2020 12:20:21 -0500 > > Eli Zaretskii writes: > > You mean, trace all the memory allocations in Emacs with the tracer? > > That would produce huge amounts of data, as Emacs calls malloc at an > > insane frequency. Or maybe I don't understand what kind of tracing > > procedure you had in mind > > That's exactly what it does, and yes, it easily generates gigabytes > (sometimes terabytes) of trace information. But it also captures the > most accurate view of what's going on, and lets us replay (via > simulation) all the malloc API calls, so we can reproduce most > malloc-related problems on a whim. Is it possible to start tracing only when the fast growth of memory footprint commences? Or is tracing from the very beginning a necessity for providing meaningful data? From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 17 15:00:10 2020 Received: (at 43389) by debbugs.gnu.org; 17 Nov 2020 20:00:10 +0000 Received: from localhost ([127.0.0.1]:33007 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kf798-0004gF-9w for submit@debbugs.gnu.org; Tue, 17 Nov 2020 15:00:10 -0500 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:49701) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kf794-0004f2-Ic for 43389@debbugs.gnu.org; Tue, 17 Nov 2020 15:00:08 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1605643206; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to; bh=esHczOjRPpa2OzL1v48AoQqnpmRi3gGAF0ZMIxdLsiQ=; b=D8rebv08AzaPiYbOZ1WeeJB1fWh5IC5G1ZlTxo23XGtWj9HQ7D/SdkivWHNMXNpqwswyQi A7t165dwKk8Yxv1RUvBHtiaYOITchMy1gXGfm41lo89kgI8OTY0F1zw4jNU+2GHLzQD2ui ftNEkrmeoVj8EFwRE3/2aEg38hqhL20= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-297-pHvgr3ZfPsq_f3pPV0jDHw-1; Tue, 17 Nov 2020 15:00:04 -0500 X-MC-Unique: pHvgr3ZfPsq_f3pPV0jDHw-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 2D75564147; Tue, 17 Nov 2020 20:00:03 +0000 (UTC) Received: from greed.delorie.com (ovpn-112-249.rdu2.redhat.com [10.10.112.249]) by smtp.corp.redhat.com (Postfix) with ESMTPS id B9D9C5C1CF; Tue, 17 Nov 2020 19:59:55 +0000 (UTC) Received: from greed.delorie.com.redhat.com (localhost [127.0.0.1]) by greed.delorie.com (8.14.7/8.14.7) with ESMTP id 0AHJxsW4002842; Tue, 17 Nov 2020 14:59:54 -0500 From: DJ Delorie To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks In-Reply-To: <83h7pnrcal.fsf@gnu.org> (message from Eli Zaretskii on Tue, 17 Nov 2020 21:52:34 +0200) Date: Tue, 17 Nov 2020 14:59:54 -0500 Message-ID: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=dj@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: carlos@redhat.com, fweimer@redhat.com, 43389@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii writes: > Is it possible to start tracing only when the fast growth of memory > footprint commences? Or is tracing from the very beginning a > necessity for providing meaningful data? Well, both. The API allows you to start/stop tracing whenever you like, but the state of your heap depends on the entire history of calls. So, for example, a trace during the "fast growth" period might show a pattern that helps us[*] debug the problem, but if we want to *reproduce* the problem, we'd need a full trace. [*] and by "us" I mostly mean "emacs developers who understand their code" ;-) From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 17 15:13:12 2020 Received: (at 43389) by debbugs.gnu.org; 17 Nov 2020 20:13:12 +0000 Received: from localhost ([127.0.0.1]:33017 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kf7Lj-0004yV-PM for submit@debbugs.gnu.org; Tue, 17 Nov 2020 15:13:12 -0500 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:57740) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kf7Li-0004yK-1X for 43389@debbugs.gnu.org; Tue, 17 Nov 2020 15:13:10 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1605643989; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=1VHw9HYKQtmcjEKx8Xxp7QnkIrjB45crPnp1eqXmmMs=; b=HE4jm46sXyKv+EOpHJvBIRm0yUM3UqyXZ/1GcY6t1qkxmPaqYcx7jUf/RXFeaHwZAXCBOB xa8hxGrTbqC9dQySv3yvhd6O88yHORO6Vj3OE08mcQjfsApQgvEFZs8VS4nlnDqPNAUF74 08yTDx5UxufP8xtIzndoKy0qgk/dinc= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-36-7dqYd_PaPoCoest6RicEow-1; Tue, 17 Nov 2020 15:13:07 -0500 X-MC-Unique: 7dqYd_PaPoCoest6RicEow-1 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 7E0045F9DE; Tue, 17 Nov 2020 20:13:06 +0000 (UTC) Received: from oldenburg2.str.redhat.com (ovpn-113-222.ams2.redhat.com [10.36.113.222]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 6231F5D9CD; Tue, 17 Nov 2020 20:13:02 +0000 (UTC) From: Florian Weimer To: DJ Delorie Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: Date: Tue, 17 Nov 2020 21:13:00 +0100 In-Reply-To: (DJ Delorie's message of "Tue, 17 Nov 2020 14:59:54 -0500") Message-ID: <87a6vfkaib.fsf@oldenburg2.str.redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=fweimer@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: carlos@redhat.com, 43389@debbugs.gnu.org, Eli Zaretskii X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * DJ Delorie: > Eli Zaretskii writes: >> Is it possible to start tracing only when the fast growth of memory >> footprint commences? Or is tracing from the very beginning a >> necessity for providing meaningful data? > > Well, both. The API allows you to start/stop tracing whenever you like, > but the state of your heap depends on the entire history of calls. > > So, for example, a trace during the "fast growth" period might show a > pattern that helps us[*] debug the problem, but if we want to > *reproduce* the problem, we'd need a full trace. > > [*] and by "us" I mostly mean "emacs developers who understand their > code" ;-) But how helpful would that be, given that malloc_info does not really show any inactive memory (discounting my 200 MiB hole)? We would need a comparable tracer for the Lisp-level allocator, I think. Thanks, Florian -- Red Hat GmbH, https://de.redhat.com/ , Registered seat: Grasbrunn, Commercial register: Amtsgericht Muenchen, HRB 153243, Managing Directors: Charles Cachera, Brian Klemm, Laurie Krebs, Michael O'Neill From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 17 15:16:19 2020 Received: (at 43389) by debbugs.gnu.org; 17 Nov 2020 20:16:19 +0000 Received: from localhost ([127.0.0.1]:33028 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kf7Ol-00053q-4E for submit@debbugs.gnu.org; Tue, 17 Nov 2020 15:16:19 -0500 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:48904) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kf7Ok-00053j-0A for 43389@debbugs.gnu.org; Tue, 17 Nov 2020 15:16:18 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1605644177; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to; bh=T1EYzdX0eyhAuf0sXITZgJdn9plWFW1Xj2vgz0Dz7bs=; b=aW8tR2L88uo/4SE44W5AG5ynOB8otmIXjytD6XwI0HrJqYahNzJQAdayonPzHW33wf46cz m67kIOdnTnV5/SD4erObFPwrqawl4GV4A4ZScCq/AeoA2pLXj3CpgOb11QLfL/4tAyMGuf gQifEQjaqtrAEv6e94ER8k/wWC08IOU= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-172-jemN5GTZN7Cn24EgOPyEJQ-1; Tue, 17 Nov 2020 15:16:15 -0500 X-MC-Unique: jemN5GTZN7Cn24EgOPyEJQ-1 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 173AC800D53; Tue, 17 Nov 2020 20:16:13 +0000 (UTC) Received: from greed.delorie.com (ovpn-112-249.rdu2.redhat.com [10.10.112.249]) by smtp.corp.redhat.com (Postfix) with ESMTPS id C131410013D7; Tue, 17 Nov 2020 20:16:12 +0000 (UTC) Received: from greed.delorie.com.redhat.com (localhost [127.0.0.1]) by greed.delorie.com (8.14.7/8.14.7) with ESMTP id 0AHKGBqZ003235; Tue, 17 Nov 2020 15:16:11 -0500 From: DJ Delorie To: Florian Weimer Subject: Re: bug#43389: 28.0.50; Emacs memory leaks In-Reply-To: <87a6vfkaib.fsf@oldenburg2.str.redhat.com> (message from Florian Weimer on Tue, 17 Nov 2020 21:13:00 +0100) Date: Tue, 17 Nov 2020 15:16:11 -0500 Message-ID: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=dj@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: carlos@redhat.com, 43389@debbugs.gnu.org, eliz@gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Florian Weimer writes: > But how helpful would that be, given that malloc_info does not really > show any inactive memory (discounting my 200 MiB hole)? One doesn't know how helpful until after looking at the data. If RSS is going up fast, something is calling either sbrk or mmap. If that thing is malloc, a trace tells us if there's a pattern. If that pattern blames the lisp allocator, my job here is done ;-) From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 17 15:27:40 2020 Received: (at 43389) by debbugs.gnu.org; 17 Nov 2020 20:27:40 +0000 Received: from localhost ([127.0.0.1]:33051 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kf7Zk-0005Li-2K for submit@debbugs.gnu.org; Tue, 17 Nov 2020 15:27:40 -0500 Received: from eggs.gnu.org ([209.51.188.92]:49410) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kf7Zi-0005LV-Tx for 43389@debbugs.gnu.org; Tue, 17 Nov 2020 15:27:39 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:33989) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kf7Zd-0000cT-JE; Tue, 17 Nov 2020 15:27:33 -0500 Received: from [176.228.60.248] (port=3250 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kf7Zc-0001FY-FJ; Tue, 17 Nov 2020 15:27:33 -0500 Date: Tue, 17 Nov 2020 22:27:27 +0200 Message-Id: <83ft57raog.fsf@gnu.org> From: Eli Zaretskii To: DJ Delorie In-Reply-To: (message from DJ Delorie on Tue, 17 Nov 2020 15:16:11 -0500) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, carlos@redhat.com, 43389@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: DJ Delorie > Cc: eliz@gnu.org, carlos@redhat.com, 43389@debbugs.gnu.org > Date: Tue, 17 Nov 2020 15:16:11 -0500 > > Florian Weimer writes: > > But how helpful would that be, given that malloc_info does not really > > show any inactive memory (discounting my 200 MiB hole)? > > One doesn't know how helpful until after looking at the data. If RSS is > going up fast, something is calling either sbrk or mmap. If that thing > is malloc, a trace tells us if there's a pattern. If that pattern > blames the lisp allocator, my job here is done ;-) I won't hold my breath for the lisp allocator to take the blame. A couple of people who were hit by the problem reported the statistics of Lisp objects as produced by GC (those reports are somewhere in the bug discussions, you should be able to find them). Those statistics indicated a very moderate amount of live Lisp objects, nowhere near the huge memory footprint. (It would be interesting to see the GC statistics from Florian's session, btw.) Given this data, it seems that if the Lisp allocator is involved, the real problem is in what happens with memory it frees when objects are GC'ed. From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 17 15:36:13 2020 Received: (at 43389) by debbugs.gnu.org; 17 Nov 2020 20:36:13 +0000 Received: from localhost ([127.0.0.1]:33061 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kf7hx-0007gq-6n for submit@debbugs.gnu.org; Tue, 17 Nov 2020 15:36:13 -0500 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:41254) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kf7hr-0007ga-PT for 43389@debbugs.gnu.org; Tue, 17 Nov 2020 15:36:08 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1605645363; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=JyJWdoQsfxJbkduh43NSjYnys4EjjXy2JwNgEaKQ9gc=; b=KuKoaoUUd081rOtYJHRianFOziCqDvN8t4UM088z++LxA9Z6FRIEsNZb5nXL2XDddTnYeu lETqPZdSC0ObIf1JGwzZ33iX5T/gKh5NfD442aLZYnv5YqOKsWNPTPY9DC4QQSZSVCFNdY dJIJkr6jNMtNogrpt8OLw7SzmugDROU= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-314-PqCKGoBuMBmVNb4dSyZMBg-1; Tue, 17 Nov 2020 15:36:01 -0500 X-MC-Unique: PqCKGoBuMBmVNb4dSyZMBg-1 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 3E431108E1A2; Tue, 17 Nov 2020 20:36:00 +0000 (UTC) Received: from oldenburg2.str.redhat.com (ovpn-113-222.ams2.redhat.com [10.36.113.222]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 522FC60C04; Tue, 17 Nov 2020 20:35:56 +0000 (UTC) From: Florian Weimer To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <83ft57raog.fsf@gnu.org> Date: Tue, 17 Nov 2020 21:35:54 +0100 In-Reply-To: <83ft57raog.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 17 Nov 2020 22:27:27 +0200") Message-ID: <871rgrk9g5.fsf@oldenburg2.str.redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=fweimer@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: carlos@redhat.com, 43389@debbugs.gnu.org, DJ Delorie X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * Eli Zaretskii: > (It would be interesting to see the GC statistics from Florian's > session, btw.) Is this the value of (garbage-collect)? ((conses 16 1877807 263442) (symbols 48 40153 113) (strings 32 164110 77752) (string-bytes 1 5874689) (vectors 16 64666) (vector-slots 8 1737780 331974) (floats 8 568 1115) (intervals 56 163746 19749) (buffers 1000 1092)) Thanks, Florian -- Red Hat GmbH, https://de.redhat.com/ , Registered seat: Grasbrunn, Commercial register: Amtsgericht Muenchen, HRB 153243, Managing Directors: Charles Cachera, Brian Klemm, Laurie Krebs, Michael O'Neill From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 17 15:37:09 2020 Received: (at 43389) by debbugs.gnu.org; 17 Nov 2020 20:37:10 +0000 Received: from localhost ([127.0.0.1]:33065 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kf7iv-0007iU-Le for submit@debbugs.gnu.org; Tue, 17 Nov 2020 15:37:09 -0500 Received: from eggs.gnu.org ([209.51.188.92]:51896) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kf7iu-0007iK-VC for 43389@debbugs.gnu.org; Tue, 17 Nov 2020 15:37:09 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:34188) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kf7ip-0003u1-H3; Tue, 17 Nov 2020 15:37:03 -0500 Received: from [176.228.60.248] (port=3829 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kf7io-0004Dw-6Y; Tue, 17 Nov 2020 15:37:02 -0500 Date: Tue, 17 Nov 2020 22:36:58 +0200 Message-Id: <83eekrra8l.fsf@gnu.org> From: Eli Zaretskii To: Trevor Bentley In-Reply-To: <87wnyju40z.fsf@mail.trevorbentley.com> (message from Trevor Bentley on Tue, 17 Nov 2020 21:22:52 +0100) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <874kmcvlbj.fsf@mail.trevorbentley.com> <83imasb0te.fsf@gnu.org> <871rgzvbme.fsf@mail.trevorbentley.com> <83lff6zm8f.fsf@gnu.org> <87wnyju40z.fsf@mail.trevorbentley.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) [Please use Reply All to keep the bug tracker on the CC list.] > From: Trevor Bentley > Cc: > Date: Tue, 17 Nov 2020 21:22:52 +0100 > > > . something called "gomp_thread_start" is called, and also > > allocates > > a lot of memory -- does this mean additional threads start > > running? > > > > Or am I reading the graphs incorrectly? > > You are right that they are present, but that path isn't > responsible for a significant percentage of the total memory usage > at the end. Doesn't look like gomp_thread_start is in the > bottom-most snapshot at all. It was reporting ~100MB allocated by > gomp_thread_start, out of 4GB. And those are related to images, > so 100MB is perhaps reasonable. AFAIK, glibc's malloc allocates a new heap arena for each thread that calls malloc. The arena is large, so having many threads could enlarge the footprint by a lot. That's hwy Florian suggested to set MALLOC_ARENA_MAX to a small value, to keep this path of footprint growth in check. > However, I'm now a bit suspicious of these log buffers. Last time > the usage spiked I had 15MB of reported buffers, and I was > watching the process RSS increase by 1MB every 5 seconds in top, > like a clockwork. I killed all of the large log buffers (3MB > each), and RSS stopped noticeably increasing. Not sure if that > _stopped_ the leak, or only slowed it down to beneath the > threshold top could show me. Either way, it should need 1.5GB of > RAM to track 15MB of text. Unless malloc somehow allocates buffer memory via sbrk and not mmap, buffers shouldn't be part of the footprint growth issue, because any mmap'ed memory can be munmap'ed without any restrictions, and returns to the OS. And you can see how many buffer memory you have by watching the statistics returned by garbage-collect. > gomp_thread_start appears to be triggered when images are > displayed. Yes, I believe ImageMagick starts them to scale images. From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 17 15:43:47 2020 Received: (at 43389) by debbugs.gnu.org; 17 Nov 2020 20:43:47 +0000 Received: from localhost ([127.0.0.1]:33069 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kf7pL-0007sA-Ew for submit@debbugs.gnu.org; Tue, 17 Nov 2020 15:43:47 -0500 Received: from eggs.gnu.org ([209.51.188.92]:53342) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kf7pK-0007rw-2T for 43389@debbugs.gnu.org; Tue, 17 Nov 2020 15:43:46 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:34282) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kf7pE-0006O4-L4; Tue, 17 Nov 2020 15:43:40 -0500 Received: from [176.228.60.248] (port=4243 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kf7pE-0004k8-4n; Tue, 17 Nov 2020 15:43:40 -0500 Date: Tue, 17 Nov 2020 22:43:35 +0200 Message-Id: <83d00br9xk.fsf@gnu.org> From: Eli Zaretskii To: Florian Weimer In-Reply-To: <871rgrk9g5.fsf@oldenburg2.str.redhat.com> (message from Florian Weimer on Tue, 17 Nov 2020 21:35:54 +0100) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <83ft57raog.fsf@gnu.org> <871rgrk9g5.fsf@oldenburg2.str.redhat.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: carlos@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Florian Weimer > Cc: DJ Delorie , carlos@redhat.com, 43389@debbugs.gnu.org > Date: Tue, 17 Nov 2020 21:35:54 +0100 > > * Eli Zaretskii: > > > (It would be interesting to see the GC statistics from Florian's > > session, btw.) > > Is this the value of (garbage-collect)? > > ((conses 16 1877807 263442) > (symbols 48 40153 113) > (strings 32 164110 77752) > (string-bytes 1 5874689) > (vectors 16 64666) > (vector-slots 8 1737780 331974) > (floats 8 568 1115) > (intervals 56 163746 19749) > (buffers 1000 1092)) Yes. "C-h f garbage-collect" will describe the meaning of the numbers. AFAICT, this barely explains 70 MBytes and change of Lisp data. (The "buffers" part excludes buffer text, but you should be able to add that by summing the sizes shown by "C-x C-b".) From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 17 15:49:07 2020 Received: (at 43389) by debbugs.gnu.org; 17 Nov 2020 20:49:07 +0000 Received: from localhost ([127.0.0.1]:33085 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kf7uU-00081W-UU for submit@debbugs.gnu.org; Tue, 17 Nov 2020 15:49:07 -0500 Received: from static.rcdrun.com ([95.85.24.50]:51217) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kf7uT-00080j-LN for 43389@debbugs.gnu.org; Tue, 17 Nov 2020 15:49:05 -0500 Received: from localhost ([::ffff:41.202.241.56]) (AUTH: PLAIN admin, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by static.rcdrun.com with ESMTPSA id 00000000002C0010.000000005FB4373B.000051BD; Tue, 17 Nov 2020 20:48:58 +0000 Date: Tue, 17 Nov 2020 23:39:41 +0300 From: Jean Louis To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks Message-ID: References: <87r1r5428d.fsf@web.de> <874kmcvlbj.fsf@mail.trevorbentley.com> <83imasb0te.fsf@gnu.org> <871rgzvbme.fsf@mail.trevorbentley.com> <83lff6zm8f.fsf@gnu.org> <838sb1rrar.fsf@gnu.org> <87wnylm3sw.fsf@oldenburg2.str.redhat.com> <83r1osq96c.fsf@gnu.org> <87o8jwj646.fsf@oldenburg2.str.redhat.com> <83o8jvrjw7.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: <83o8jvrjw7.fsf@gnu.org> User-Agent: Mutt/2.0 (3d08634) (2020-11-07) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: Florian Weimer , 43389@debbugs.gnu.org, Jean Louis , dj@redhat.com, michael_heerdegen@web.de, Trevor Bentley , carlos@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * Eli Zaretskii [2020-11-17 20:09]: > I encourage all the people who reported similar problems to try the > measures mentioned by Florian and Carlos, including malloc-info, and > report the results. For now I am doing with: export MALLOC_ARENA_MAX=4 After days I will tell more. From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 17 15:57:38 2020 Received: (at 43389) by debbugs.gnu.org; 17 Nov 2020 20:57:38 +0000 Received: from localhost ([127.0.0.1]:33095 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kf82k-0008Dm-50 for submit@debbugs.gnu.org; Tue, 17 Nov 2020 15:57:38 -0500 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:55161) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kf82h-0008De-Vm for 43389@debbugs.gnu.org; Tue, 17 Nov 2020 15:57:37 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1605646655; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to; bh=nP5/fp6oYi+fOte5sKZsCULi/UbZogLSKK18Fqtmoz8=; b=ZDxFIi2RiAtGQdWitZ29KxyGMCvVjQ6jg4c9xPSJIAGUxKpFgXYPZyexx6qjeHakCNRQI4 +eh/IaK4CqYDLjhSVMzPULmOvQ8HXQRevtDfvzK+lhQhlLeCV0sfldOzO1B/VmnrCw1fyG Sr+8KZCTeNGP1tGH0+y3IU0i1AIN5Es= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-344-Yn4H7KpcNeWHujChYUP1OA-1; Tue, 17 Nov 2020 15:57:32 -0500 X-MC-Unique: Yn4H7KpcNeWHujChYUP1OA-1 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id ACAA01007498; Tue, 17 Nov 2020 20:57:30 +0000 (UTC) Received: from greed.delorie.com (ovpn-112-249.rdu2.redhat.com [10.10.112.249]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 76C4D5D9CD; Tue, 17 Nov 2020 20:57:27 +0000 (UTC) Received: from greed.delorie.com.redhat.com (localhost [127.0.0.1]) by greed.delorie.com (8.14.7/8.14.7) with ESMTP id 0AHKvQTq003650; Tue, 17 Nov 2020 15:57:26 -0500 From: DJ Delorie To: Jean Louis Subject: Re: bug#43389: 28.0.50; Emacs memory leaks In-Reply-To: (message from Jean Louis on Tue, 17 Nov 2020 23:39:41 +0300) Date: Tue, 17 Nov 2020 15:57:26 -0500 Message-ID: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=dj@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com, eliz@gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Jean Louis writes: > After days I will tell more. Do we have any strong hints on things we (i.e. I) can do to cause this to happen faster? From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 17 15:59:08 2020 Received: (at 43389) by debbugs.gnu.org; 17 Nov 2020 20:59:08 +0000 Received: from localhost ([127.0.0.1]:33108 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kf84C-0008GY-8K for submit@debbugs.gnu.org; Tue, 17 Nov 2020 15:59:08 -0500 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:43125) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kf84A-0008GQ-Hl for 43389@debbugs.gnu.org; Tue, 17 Nov 2020 15:59:06 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1605646746; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=eR8y2uEAC3rWA8ScKPINJrPd/YYjIuVyokus9zxGcBw=; b=GxnvXr6rZuQYquWGLdM2ie7dfY3iHdxu9rZ7fDOjGnjV+dzkxOLJQUO94QXIbgHkHJyitL KkuiXRko1hQ59fM0cJVgWwEPnSW+Yt1QqUmQRGtzk9HjQ6HYDT3yAYtLQ+Vxnh9WNlEDUh lF7gS1sdx7mMEW8gdCWLYG806x5Izeg= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-7-eWVRhUyyMZ-9ME7sEDhRiQ-1; Tue, 17 Nov 2020 15:59:03 -0500 X-MC-Unique: eWVRhUyyMZ-9ME7sEDhRiQ-1 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id E1A801007B2A; Tue, 17 Nov 2020 20:59:02 +0000 (UTC) Received: from oldenburg2.str.redhat.com (ovpn-113-222.ams2.redhat.com [10.36.113.222]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D8CD519C78; Tue, 17 Nov 2020 20:58:58 +0000 (UTC) From: Florian Weimer To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <83ft57raog.fsf@gnu.org> <871rgrk9g5.fsf@oldenburg2.str.redhat.com> <83d00br9xk.fsf@gnu.org> Date: Tue, 17 Nov 2020 21:58:57 +0100 In-Reply-To: <83d00br9xk.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 17 Nov 2020 22:43:35 +0200") Message-ID: <87tutnitta.fsf@oldenburg2.str.redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=fweimer@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: carlos@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * Eli Zaretskii: >> From: Florian Weimer >> Cc: DJ Delorie , carlos@redhat.com, 43389@debbugs.gnu.o= rg >> Date: Tue, 17 Nov 2020 21:35:54 +0100 >>=20 >> * Eli Zaretskii: >>=20 >> > (It would be interesting to see the GC statistics from Florian's >> > session, btw.) >>=20 >> Is this the value of (garbage-collect)? >>=20 >> ((conses 16 1877807 263442) >> (symbols 48 40153 113) >> (strings 32 164110 77752) >> (string-bytes 1 5874689) >> (vectors 16 64666) >> (vector-slots 8 1737780 331974) >> (floats 8 568 1115) >> (intervals 56 163746 19749) >> (buffers 1000 1092)) > > Yes. "C-h f garbage-collect" will describe the meaning of the > numbers. AFAICT, this barely explains 70 MBytes and change of Lisp > data. (The "buffers" part excludes buffer text, but you should be > able to add that by summing the sizes shown by "C-x C-b".) I get this: (let ((size 0)) (dolist (buffer (buffer-list) size) (setq size (+ size (buffer-size buffer))))) =E2=87=92 98249826 So it's not a small number, but still far away from those 800 MiB. Thanks, Florian --=20 Red Hat GmbH, https://de.redhat.com/ , Registered seat: Grasbrunn, Commercial register: Amtsgericht Muenchen, HRB 153243, Managing Directors: Charles Cachera, Brian Klemm, Laurie Krebs, Michael O'N= eill From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 17 16:10:31 2020 Received: (at 43389) by debbugs.gnu.org; 17 Nov 2020 21:10:31 +0000 Received: from localhost ([127.0.0.1]:33131 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kf8FD-00007P-Hx for submit@debbugs.gnu.org; Tue, 17 Nov 2020 16:10:31 -0500 Received: from eggs.gnu.org ([209.51.188.92]:59050) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kf8FC-00007D-B0 for 43389@debbugs.gnu.org; Tue, 17 Nov 2020 16:10:30 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:34753) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kf8F6-0007XT-A6; Tue, 17 Nov 2020 16:10:25 -0500 Received: from [176.228.60.248] (port=1893 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kf8F5-0002bu-NB; Tue, 17 Nov 2020 16:10:24 -0500 Date: Tue, 17 Nov 2020 23:10:19 +0200 Message-Id: <83a6vfr8p0.fsf@gnu.org> From: Eli Zaretskii To: Florian Weimer In-Reply-To: <87tutnitta.fsf@oldenburg2.str.redhat.com> (message from Florian Weimer on Tue, 17 Nov 2020 21:58:57 +0100) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <83ft57raog.fsf@gnu.org> <871rgrk9g5.fsf@oldenburg2.str.redhat.com> <83d00br9xk.fsf@gnu.org> <87tutnitta.fsf@oldenburg2.str.redhat.com> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: carlos@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Florian Weimer > Cc: dj@redhat.com, carlos@redhat.com, 43389@debbugs.gnu.org > Date: Tue, 17 Nov 2020 21:58:57 +0100 > > (let ((size 0)) > (dolist (buffer (buffer-list) size) > (setq size (+ size (buffer-size buffer))))) > ⇒ 98249826 > > So it's not a small number, but still far away from those 800 MiB. Yes. I have a very similar value: 94642916 (in 376 buffers; you have more than 1000). This is in a session that runs for 17 days and whose VM size is 615 MB: a "normal" size for a long-living session, nowhere near 2GB, let alone 11GB someone reported. From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 17 16:46:11 2020 Received: (at 43389) by debbugs.gnu.org; 17 Nov 2020 21:46:11 +0000 Received: from localhost ([127.0.0.1]:33158 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kf8nj-00022E-2F for submit@debbugs.gnu.org; Tue, 17 Nov 2020 16:46:11 -0500 Received: from static.rcdrun.com ([95.85.24.50]:37495) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kf8nf-0001uF-N5 for 43389@debbugs.gnu.org; Tue, 17 Nov 2020 16:46:09 -0500 Received: from localhost ([::ffff:41.202.241.56]) (AUTH: PLAIN admin, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by static.rcdrun.com with ESMTPSA id 00000000002C0006.000000005FB44499.00005BE0; Tue, 17 Nov 2020 21:46:00 +0000 Date: Wed, 18 Nov 2020 00:45:48 +0300 From: Jean Louis To: DJ Delorie Subject: Re: bug#43389: 28.0.50; Emacs memory leaks Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: User-Agent: Mutt/2.0 (3d08634) (2020-11-07) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com, eliz@gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * DJ Delorie [2020-11-17 23:57]: > Jean Louis writes: > > After days I will tell more. > > Do we have any strong hints on things we (i.e. I) can do to cause this > to happen faster? This is because I cannot know when is it happening. In general it was taking place almost all the time under EXWM (Emacs X Window Manager) then I switched to IceWM just to see if it is problem that EXWM is invoking. Now in IceWM I got it 3 times, but much less times than in EXWM and I do not see that I anyhow have changed my habits of using Emacs. Today I had more than 10 hours session and then what I did? I do not know exactly. I have kept only XTerm and Emacs on X, at some point of time it starts using swap but it is unclear to me if it uses swap or does something else with the disk. Some minutes before that I was inspecting it with htop and found Emacs with 9.7 GB memory. Later system was unusable. All I could see during that time is hard disk LED turned on all the time. I cannot do almost nothing, I cannot interrupt Emacs or switch to console. Then I use Magic SysRq and do the necessary to at least synchronize hard disks, unmount and reboot. I am running it with this script: #!/bin/bash # CDPATH invokes bugs in eshell, not related to this unset CDPATH # I was trying to tune ulimit -m but it did not help # ulimit -m 3145728 # I am trying this now export MALLOC_ARENA_MAX=4 date >> /home/data1/protected/tmp/emacs-debug # This below is for M-x malloc-info emacs >> /home/data1/protected/tmp/emacs-debug 2>&1 Maybe some simple new and automatic function could be temporarily included to spit errors to output on what is Emacs doing when it starts swapping (if it is swapping), then such errors could at least be captured in a file even if I have to reboot computer. From debbugs-submit-bounces@debbugs.gnu.org Wed Nov 18 00:44:07 2020 Received: (at 43389) by debbugs.gnu.org; 18 Nov 2020 05:44:07 +0000 Received: from localhost ([127.0.0.1]:33796 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kfGGF-0000IM-3M for submit@debbugs.gnu.org; Wed, 18 Nov 2020 00:44:07 -0500 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:38025) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kfGGB-0000ID-NQ for 43389@debbugs.gnu.org; Wed, 18 Nov 2020 00:44:05 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1605678243; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=eJ9SKLrzsGvZOwdZheJxpsGq7+m2UNNMzlERIRYtzVA=; b=iIqKwt2WthSwjkirON65w1x2MORy13y88Fe9b3bdCcVMoTfpwX8y3VKKIdT4W8EUdzulh/ bEakUNliiXs2lKILhpymMaUwdYb+foa5izg5fdKi5pnKcPQovQ03gycryekOtUvchVhu89 a3Gv+IA7ZQay7W//hUc3TQ1Eyny3H0M= Received: from mail-il1-f200.google.com (mail-il1-f200.google.com [209.85.166.200]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-218-iuutKUPcNrC10Z6xFrAUUQ-1; Wed, 18 Nov 2020 00:43:59 -0500 X-MC-Unique: iuutKUPcNrC10Z6xFrAUUQ-1 Received: by mail-il1-f200.google.com with SMTP id o5so717448ilh.15 for <43389@debbugs.gnu.org>; Tue, 17 Nov 2020 21:43:58 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=eJ9SKLrzsGvZOwdZheJxpsGq7+m2UNNMzlERIRYtzVA=; b=PO50eQ5m5OSKvVoHex0nxlRco+m9NCBlbCdoMTQE+lC9W3GF2d+17theJ3hmEAhtPM 6L7pG5H38TZGFrgR0qt+hJCAfiSaFro7YALHI1q/0kcuonFPfE0E1YUd+jI2JORX1ALw e9YdnayNkVAK7dZYbQDdltWRZc4wFjuH57YTLX9gsCVF+EmtjKMwz5TcyyQjcZOkQebD nT40TuDW8vPhYIRe5Z4R0bsMAIyouK57BS2yEH+GN67uqMS2lCyVyRr5UP0sWFNPJ6Wc BfXcFZbeO+E/isuCBKyNxuO0TIDolC+BcFhD0lC1ODTys1/fiC+FyE30baA7F0Xbj7IE 2hZA== X-Gm-Message-State: AOAM530u4rANmpZ+kTZgblb1w3Pr+dUoiwW0rnlSUkcXPS1cXM7+uGbb QHuP4TJlKrbRSZmgmqvmCn3gJyEU0lW2KYo6aJsP8azLYN6eoMqmcGiU5NsCxBHvci+CXmQOT+Z 0fNXv72uAb97RTPyLGdjQ5K5NRa85pX7fwy8uO3IV6wXuYNeB+Z71C41iUMZb9Hss X-Received: by 2002:a92:4850:: with SMTP id v77mr15834026ila.229.1605678237954; Tue, 17 Nov 2020 21:43:57 -0800 (PST) X-Google-Smtp-Source: ABdhPJxkEZzKt6+E1bOeTY5rBjEdLcuugwLoAJwiryDkgq1T8zhLSRrtP/v2xmToP8mgFY69LSLUGQ== X-Received: by 2002:a92:4850:: with SMTP id v77mr15834017ila.229.1605678237744; Tue, 17 Nov 2020 21:43:57 -0800 (PST) Received: from [192.168.1.16] (198-84-214-74.cpe.teksavvy.com. [198.84.214.74]) by smtp.gmail.com with ESMTPSA id c66sm15518501ilg.46.2020.11.17.21.43.56 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 17 Nov 2020 21:43:57 -0800 (PST) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks To: Eli Zaretskii , Florian Weimer References: <83ft57raog.fsf@gnu.org> <871rgrk9g5.fsf@oldenburg2.str.redhat.com> <83d00br9xk.fsf@gnu.org> <87tutnitta.fsf@oldenburg2.str.redhat.com> <83a6vfr8p0.fsf@gnu.org> From: Carlos O'Donell Organization: Red Hat Message-ID: <4c760dd6-edb7-c6b1-f5de-f1bcae5ce63d@redhat.com> Date: Wed, 18 Nov 2020 00:43:55 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0 MIME-Version: 1.0 In-Reply-To: <83a6vfr8p0.fsf@gnu.org> Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=carlos@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org, dj@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 11/17/20 4:10 PM, Eli Zaretskii wrote: >> From: Florian Weimer >> Cc: dj@redhat.com, carlos@redhat.com, 43389@debbugs.gnu.org >> Date: Tue, 17 Nov 2020 21:58:57 +0100 >> >> (let ((size 0)) >> (dolist (buffer (buffer-list) size) >> (setq size (+ size (buffer-size buffer))))) >> ⇒ 98249826 >> >> So it's not a small number, but still far away from those 800 MiB. > > Yes. I have a very similar value: 94642916 (in 376 buffers; you have > more than 1000). This is in a session that runs for 17 days and whose > VM size is 615 MB: a "normal" size for a long-living session, nowhere > near 2GB, let alone 11GB someone reported. If you get us a data trace I will run it through the simulator and produce a report that includes graphs explaining the results of the trace and we'll see if a smoking gun shows up. The biggest smoking gun is a spike in RSS size without a matching Ideal RSS (integral of API calls). This would indicate an algorithmic issue. Usually though we can have ratcheting effects due to mixed object liftimes and those are harder to detect and we don't have tooling for that to look for such issues. We'd need to track chunk lifetimes. -- Cheers, Carlos. From debbugs-submit-bounces@debbugs.gnu.org Wed Nov 18 01:51:15 2020 Received: (at 43389) by debbugs.gnu.org; 18 Nov 2020 06:51:15 +0000 Received: from localhost ([127.0.0.1]:33844 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kfHJC-0002BP-O9 for submit@debbugs.gnu.org; Wed, 18 Nov 2020 01:51:15 -0500 Received: from static.rcdrun.com ([95.85.24.50]:47925) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kfHJ7-0002Aq-4H for 43389@debbugs.gnu.org; Wed, 18 Nov 2020 01:51:13 -0500 Received: from localhost ([::ffff:41.202.241.56]) (AUTH: PLAIN admin, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by static.rcdrun.com with ESMTPSA id 00000000002C0013.000000005FB4C456.000046F3; Wed, 18 Nov 2020 06:51:02 +0000 Date: Wed, 18 Nov 2020 09:09:22 +0300 From: Jean Louis To: Carlos O'Donell Subject: Re: bug#43389: 28.0.50; Emacs memory leaks Message-ID: References: <83ft57raog.fsf@gnu.org> <871rgrk9g5.fsf@oldenburg2.str.redhat.com> <83d00br9xk.fsf@gnu.org> <87tutnitta.fsf@oldenburg2.str.redhat.com> <83a6vfr8p0.fsf@gnu.org> <4c760dd6-edb7-c6b1-f5de-f1bcae5ce63d@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: <4c760dd6-edb7-c6b1-f5de-f1bcae5ce63d@redhat.com> User-Agent: Mutt/2.0 (3d08634) (2020-11-07) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: Florian Weimer , 43389@debbugs.gnu.org, Eli Zaretskii , dj@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Is it recommended to collect strace with this below? strace emacs > output 2>&1 From debbugs-submit-bounces@debbugs.gnu.org Wed Nov 18 03:32:27 2020 Received: (at 43389) by debbugs.gnu.org; 18 Nov 2020 08:32:28 +0000 Received: from localhost ([127.0.0.1]:33962 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kfIt9-0004kR-KF for submit@debbugs.gnu.org; Wed, 18 Nov 2020 03:32:27 -0500 Received: from mail-out.m-online.net ([212.18.0.10]:47836) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kfIt8-0004kK-4r for 43389@debbugs.gnu.org; Wed, 18 Nov 2020 03:32:26 -0500 Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 4Cbbf13pTjz1ryX5; Wed, 18 Nov 2020 09:32:25 +0100 (CET) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 4Cbbf13HNsz1t82D; Wed, 18 Nov 2020 09:32:25 +0100 (CET) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id DCBEdCqVu-wK; Wed, 18 Nov 2020 09:32:24 +0100 (CET) X-Auth-Info: A28JM8IviESqC9bdn8i7Dc+pFXUkWbhA5U67vNtwlUniFpJ7+KqQrq3loKZ/n/PH Received: from igel.home (ppp-46-244-182-78.dynamic.mnet-online.de [46.244.182.78]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPSA; Wed, 18 Nov 2020 09:32:24 +0100 (CET) Received: by igel.home (Postfix, from userid 1000) id 640362C32E2; Wed, 18 Nov 2020 09:32:24 +0100 (CET) From: Andreas Schwab To: Jean Louis Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <83ft57raog.fsf@gnu.org> <871rgrk9g5.fsf@oldenburg2.str.redhat.com> <83d00br9xk.fsf@gnu.org> <87tutnitta.fsf@oldenburg2.str.redhat.com> <83a6vfr8p0.fsf@gnu.org> <4c760dd6-edb7-c6b1-f5de-f1bcae5ce63d@redhat.com> X-Yow: ...I think I'm having an overnight sensation right now!! Date: Wed, 18 Nov 2020 09:32:24 +0100 In-Reply-To: (Jean Louis's message of "Wed, 18 Nov 2020 09:09:22 +0300") Message-ID: <873617hxpj.fsf@igel.home> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.4 (/) X-Debbugs-Envelope-To: 43389 Cc: Carlos O'Donell , Florian Weimer , dj@redhat.com, 43389@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.4 (-) On Nov 18 2020, Jean Louis wrote: > Is it recommended to collect strace with this below? > > strace emacs > output 2>&1 It is preferable to use the -o option to decouple the strace output from the inferior output. Andreas. -- Andreas Schwab, schwab@linux-m68k.org GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1 "And now for something completely different." From debbugs-submit-bounces@debbugs.gnu.org Wed Nov 18 04:15:48 2020 Received: (at 43389) by debbugs.gnu.org; 18 Nov 2020 09:15:48 +0000 Received: from localhost ([127.0.0.1]:34110 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kfJZ6-0006g2-BS for submit@debbugs.gnu.org; Wed, 18 Nov 2020 04:15:48 -0500 Received: from static.rcdrun.com ([95.85.24.50]:45435) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kfJZ3-0006YL-9z for 43389@debbugs.gnu.org; Wed, 18 Nov 2020 04:15:46 -0500 Received: from localhost ([::ffff:41.202.241.56]) (AUTH: PLAIN admin, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by static.rcdrun.com with ESMTPSA id 00000000002C1AE6.000000005FB4E63A.000063D9; Wed, 18 Nov 2020 09:15:38 +0000 Date: Wed, 18 Nov 2020 12:01:39 +0300 From: Jean Louis To: Andreas Schwab Subject: Re: bug#43389: 28.0.50; Emacs memory leaks Message-ID: References: <83ft57raog.fsf@gnu.org> <871rgrk9g5.fsf@oldenburg2.str.redhat.com> <83d00br9xk.fsf@gnu.org> <87tutnitta.fsf@oldenburg2.str.redhat.com> <83a6vfr8p0.fsf@gnu.org> <4c760dd6-edb7-c6b1-f5de-f1bcae5ce63d@redhat.com> <873617hxpj.fsf@igel.home> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: <873617hxpj.fsf@igel.home> User-Agent: Mutt/2.0 (3d08634) (2020-11-07) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: Carlos O'Donell , Florian Weimer , dj@redhat.com, 43389@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * Andreas Schwab [2020-11-18 11:32]: > On Nov 18 2020, Jean Louis wrote: > > > Is it recommended to collect strace with this below? > > > > strace emacs > output 2>&1 > > It is preferable to use the -o option to decouple the strace output from > the inferior output. Thank you, I have seen that in options and right now I am running it with: #!/bin/bash unset CDPATH # ulimit -m 3145728 #export MALLOC_ARENA_MAX=4 date >> /home/data1/protected/tmp/emacs-debug strace -o emacs.strace emacs >> /home/data1/protected/tmp/emacs-debug 2>&1 From debbugs-submit-bounces@debbugs.gnu.org Wed Nov 18 10:03:39 2020 Received: (at 43389) by debbugs.gnu.org; 18 Nov 2020 15:03:39 +0000 Received: from localhost ([127.0.0.1]:36023 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kfOzi-0004Vg-Ru for submit@debbugs.gnu.org; Wed, 18 Nov 2020 10:03:39 -0500 Received: from eggs.gnu.org ([209.51.188.92]:58354) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kfOze-0004VR-Vs for 43389@debbugs.gnu.org; Wed, 18 Nov 2020 10:03:37 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:54423) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kfOzY-00075F-R9; Wed, 18 Nov 2020 10:03:28 -0500 Received: from [176.228.60.248] (port=3633 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kfOzY-0004Gz-5H; Wed, 18 Nov 2020 10:03:28 -0500 Date: Wed, 18 Nov 2020 17:03:26 +0200 Message-Id: <837dqir9kx.fsf@gnu.org> From: Eli Zaretskii To: Jean Louis In-Reply-To: (message from Jean Louis on Wed, 18 Nov 2020 00:45:48 +0300) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Wed, 18 Nov 2020 00:45:48 +0300 > From: Jean Louis > Cc: eliz@gnu.org, fweimer@redhat.com, trevor@trevorbentley.com, > michael_heerdegen@web.de, carlos@redhat.com, 43389@debbugs.gnu.org > > Maybe some simple new and automatic function could be temporarily > included to spit errors to output on what is Emacs doing when it > starts swapping (if it is swapping), then such errors could at least > be captured in a file even if I have to reboot computer. Emacs doesn't know when the system starts swapping. But you can write a function that tracks the vsize of the Emacs process, using emacs-pid and process-attributes, and displays some prominent message when the vsize increments become larger than some threshold, or the vsize itself becomes larger than some fixed number. Then run this function off a timer that fires every 10 or 15 seconds, and wait for it to tell you when the fun starts. From debbugs-submit-bounces@debbugs.gnu.org Wed Nov 18 11:19:47 2020 Received: (at submit) by debbugs.gnu.org; 18 Nov 2020 16:19:47 +0000 Received: from localhost ([127.0.0.1]:36190 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kfQBO-00009J-Nk for submit@debbugs.gnu.org; Wed, 18 Nov 2020 11:19:47 -0500 Received: from lists.gnu.org ([209.51.188.17]:58142) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kfQBJ-000096-T2 for submit@debbugs.gnu.org; Wed, 18 Nov 2020 11:19:45 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:50762) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kfQBJ-0006RP-Nk for bug-gnu-emacs@gnu.org; Wed, 18 Nov 2020 11:19:41 -0500 Received: from se15.route25.eu ([2a00:f10:402:781:1c00:45ff:fe00:24f8]:34288) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kfQBG-00024q-SW for bug-gnu-emacs@gnu.org; Wed, 18 Nov 2020 11:19:41 -0500 Date: Wed, 18 Nov 2020 17:19:21 +0100 From: Russell Adams To: bug-gnu-emacs@gnu.org Subject: Re: bug#43389: 28.0.50; Emacs memory leaks Message-ID: <20201118161921.GE23810@maokai> Mail-Followup-To: bug-gnu-emacs@gnu.org References: <83ft57raog.fsf@gnu.org> <871rgrk9g5.fsf@oldenburg2.str.redhat.com> <83d00br9xk.fsf@gnu.org> <87tutnitta.fsf@oldenburg2.str.redhat.com> <83a6vfr8p0.fsf@gnu.org> <4c760dd6-edb7-c6b1-f5de-f1bcae5ce63d@redhat.com> <873617hxpj.fsf@igel.home> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Originating-IP: 2a00:f10:400:2:446:66ff:fe00:2ce X-SpamExperts-Domain: out.pcextreme.nl X-SpamExperts-Username: 2a00:f10:400:2:446:66ff:fe00:2ce Authentication-Results: route25.eu; auth=pass smtp.auth=2a00:f10:400:2:446:66ff:fe00:2ce@out.pcextreme.nl X-SpamExperts-Outgoing-Class: ham X-SpamExperts-Outgoing-Evidence: Combined (0.11) X-Recommended-Action: accept X-Filter-ID: Mvzo4OR0dZXEDF/gcnlw0eqVA/WXTLfz4EbZvfY3k3OpSDasLI4SayDByyq9LIhVESBt6QATKz8A dZfQIaNDGkTNWdUk1Ol2OGx3IfrIJKywOmJyM1qr8uRnWBrbSAGD0VsY0HzEkBzUTjuObUvkgtQ5 3pMmTXeVbblO3cSIiVCS7fAfhUHGNDOT4y3Kq7wFJODXbtOodkPED+RkHjVGH9gpfPe2lDQBFQc5 pWKjU8U1TnR+f0U9cu064nZcMieLAqdkk6hppCDsqsBwLjHur1XxB26GtR7aQdGQ3RxVousDFpkW mgyT/YeLVvI3HPYSaHwJ2eESrUp0Iw/gSJ3HqMuR600P9eQ3vodupN36MrkzGQZS068e3EYTgNAB jZkD8TzPF4eG61o+cxFZrUIXowfXJosMX5ZQSlYSVlCDu2na8Lc2iK0mXNgodhRh0E6+UMVFei1G 2PrSIU9EwioS70yFBF2moUWeHNDS4qZDIDBdjx85xQq9VD42UbTRudBo31/E3ahF5MMcDI7KdpjQ KULbtCr8aoTjHIUEuG3LCVsCW2UOyugPPaOGK1ZclZhyJ1oAKHx1qHjvOGXm6QB+mk6ZTzCPKsFf twxbkg5OTEJBSZDxFdMdjhWKQRs1y634iucKRTZNLEsithqHVyN9+hkdtWYX5nRoRrxsOqgOWUaa HHbqbJhh8ELrsll6w13+U34/WMvOa2MADyzbmruTAA2KTj4vNPNGVRbmE3txcoLBwxyPyHSqJVkB XxgxoavrR6NVjOweyWGOzLgT0nRBJCbnOWY3wUs0ORTLl1RD3zo0/x2Hb32c5ChNoMNbf6x3Uo4/ +EUytKrR9Md9I2Rs13IS4ZPThv2CxVYzb7gu4u1S7bPJFEUqiqjcW3G+BjWbdYu2pj2hGdt49YBQ oJ70y1FaK9tpMVFCfB+0BabD+vel2wSldXS9cOXdoAcG+aub+qgV8TGdW9MPe2C247QC83cugB7O J5M0JJjgA1DHzrbDqcigOvSxdRnthmhn8Zn6+UEXYUNkRlZOagJBnQy9L0xPoD8cjFwzBEDe33BG Qhm3oimrZRcOnj84HwvTLvZKiY+iEA53XaTEyq4Z4owzglCEfLxuBqL+5Gpq4UCvMQ6wZqMQxkt3 xRYr3xkGj2llypAvzJF1ox1GhqQvDvJWDQ== X-Report-Abuse-To: spam@semaster01.route25.eu Received-SPF: pass client-ip=2a00:f10:402:781:1c00:45ff:fe00:24f8; envelope-from=rladams@adamsinfoserv.com; helo=se15.route25.eu X-detected-operating-system: by eggs.gnu.org: First seen = 2020/11/18 11:19:30 X-ACL-Warn: Detected OS = ??? X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) I'd be happy to run my Emacs with debugging to try and troubleshoot this memory leak since it has happened twice to me. I can't yet consistently reproduce it though. I think it's somewhere between helm or org-caldav or slime, being in daemon mode. Can someone summarize what debug options I should run with, recompile with, etc to provide proper information for next time? I'd like to be able to make an effective report when it next occurs. On Wed, Nov 18, 2020 at 12:01:39PM +0300, Jean Louis wrote: > * Andreas Schwab [2020-11-18 11:32]: > > On Nov 18 2020, Jean Louis wrote: > > > > > Is it recommended to collect strace with this below? > > > > > > strace emacs > output 2>&1 > > > > It is preferable to use the -o option to decouple the strace output from > > the inferior output. > > Thank you, I have seen that in options and right now I am running it > with: > > #!/bin/bash > unset CDPATH > # ulimit -m 3145728 > #export MALLOC_ARENA_MAX=4 > date >> /home/data1/protected/tmp/emacs-debug > strace -o emacs.strace emacs >> /home/data1/protected/tmp/emacs-debug 2>&1 > > > ------------------------------------------------------------------ Russell Adams RLAdams@AdamsInfoServ.com PGP Key ID: 0x1160DCB3 http://www.adamsinfoserv.com/ Fingerprint: 1723 D8CA 4280 1EC9 557F 66E8 1154 E018 1160 DCB3 From debbugs-submit-bounces@debbugs.gnu.org Wed Nov 18 12:30:24 2020 Received: (at 43389) by debbugs.gnu.org; 18 Nov 2020 17:30:24 +0000 Received: from localhost ([127.0.0.1]:36367 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kfRHj-0002M5-O0 for submit@debbugs.gnu.org; Wed, 18 Nov 2020 12:30:24 -0500 Received: from eggs.gnu.org ([209.51.188.92]:41972) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kfRHh-0002EN-3j for 43389@debbugs.gnu.org; Wed, 18 Nov 2020 12:30:23 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:57803) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kfRHZ-0003XL-Nc; Wed, 18 Nov 2020 12:30:13 -0500 Received: from [176.228.60.248] (port=4658 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kfRHX-0006tD-Fr; Wed, 18 Nov 2020 12:30:12 -0500 Date: Wed, 18 Nov 2020 19:30:07 +0200 Message-Id: <83sg96po80.fsf@gnu.org> From: Eli Zaretskii To: Russell Adams In-Reply-To: <20201118161921.GE23810@maokai> (message from Russell Adams on Wed, 18 Nov 2020 17:19:21 +0100) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <83ft57raog.fsf@gnu.org> <871rgrk9g5.fsf@oldenburg2.str.redhat.com> <83d00br9xk.fsf@gnu.org> <87tutnitta.fsf@oldenburg2.str.redhat.com> <83a6vfr8p0.fsf@gnu.org> <4c760dd6-edb7-c6b1-f5de-f1bcae5ce63d@redhat.com> <873617hxpj.fsf@igel.home> <20201118161921.GE23810@maokai> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Wed, 18 Nov 2020 17:19:21 +0100 > From: Russell Adams > > I'd be happy to run my Emacs with debugging to try and troubleshoot > this memory leak since it has happened twice to me. I can't yet > consistently reproduce it though. I think it's somewhere between helm > or org-caldav or slime, being in daemon mode. > > Can someone summarize what debug options I should run with, recompile > with, etc to provide proper information for next time? I'd like to be > able to make an effective report when it next occurs. If you mean debug options for compiling Emacs, I don't think it matters. I suggest to try the tools pointed out here: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=43389#158 and when the issue happens, collect the data and ask here where and how to upload it for analysis. Thanks. P.S. Please CC the other people I added to the CC line, as I don't think they are subscribed to the bug list, and it is important for us to keep them in the loop, so they could help us investigate this. From debbugs-submit-bounces@debbugs.gnu.org Wed Nov 18 13:02:08 2020 Received: (at 43389) by debbugs.gnu.org; 18 Nov 2020 18:02:08 +0000 Received: from localhost ([127.0.0.1]:36429 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kfRmR-0004vJ-Qb for submit@debbugs.gnu.org; Wed, 18 Nov 2020 13:02:08 -0500 Received: from eggs.gnu.org ([209.51.188.92]:50734) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kfRmQ-0004uq-6V for 43389@debbugs.gnu.org; Wed, 18 Nov 2020 13:02:06 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:58538) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kfRmI-00088T-Vi; Wed, 18 Nov 2020 13:02:00 -0500 Received: from [176.228.60.248] (port=2617 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kfRm9-0005Nr-LW; Wed, 18 Nov 2020 13:01:55 -0500 Date: Wed, 18 Nov 2020 20:01:48 +0200 Message-Id: <83h7pmpmr7.fsf@gnu.org> From: Eli Zaretskii To: Carlos O'Donell In-Reply-To: <4c760dd6-edb7-c6b1-f5de-f1bcae5ce63d@redhat.com> (message from Carlos O'Donell on Wed, 18 Nov 2020 00:43:55 -0500) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <83ft57raog.fsf@gnu.org> <871rgrk9g5.fsf@oldenburg2.str.redhat.com> <83d00br9xk.fsf@gnu.org> <87tutnitta.fsf@oldenburg2.str.redhat.com> <83a6vfr8p0.fsf@gnu.org> <4c760dd6-edb7-c6b1-f5de-f1bcae5ce63d@redhat.com> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Cc: dj@redhat.com, 43389@debbugs.gnu.org > From: Carlos O'Donell > Date: Wed, 18 Nov 2020 00:43:55 -0500 > > >> (let ((size 0)) > >> (dolist (buffer (buffer-list) size) > >> (setq size (+ size (buffer-size buffer))))) > >> ⇒ 98249826 > >> > >> So it's not a small number, but still far away from those 800 MiB. > > > > Yes. I have a very similar value: 94642916 (in 376 buffers; you have > > more than 1000). This is in a session that runs for 17 days and whose > > VM size is 615 MB: a "normal" size for a long-living session, nowhere > > near 2GB, let alone 11GB someone reported. > > If you get us a data trace I will run it through the simulator and produce > a report that includes graphs explaining the results of the trace and > we'll see if a smoking gun shows up. If you asked Florian, then I agree that his data could be useful. If you were asking me, then my data is not useful, because the footprint is reasonable and never goes up to gigabyte range. From debbugs-submit-bounces@debbugs.gnu.org Wed Nov 18 13:27:33 2020 Received: (at 43389) by debbugs.gnu.org; 18 Nov 2020 18:27:33 +0000 Received: from localhost ([127.0.0.1]:36462 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kfSB3-0005XX-HJ for submit@debbugs.gnu.org; Wed, 18 Nov 2020 13:27:33 -0500 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:22163) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kfSB1-0005XO-7S for 43389@debbugs.gnu.org; Wed, 18 Nov 2020 13:27:32 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1605724050; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to; bh=NkRqd1u+gxDlDAQiJRQYjmrJE7IR9/bOQETQ6OXTrI8=; b=h3apx0AKJVc9CENQIqT75I2C3mkog0rprTV0V1ph3z6EaGJX2EwnZtzBWeTp2ZF+zkjvkr MD7h+b/VSy8iG5V10ygSeNg9lDsCsswTblSmyCkBIypgV/fmm+me9p2TcNajGUqKxqvH/j YXjGFzuC2X4Ut2fXp9ZukExqd/QiEtw= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-64-29EX7gNcNhiS7m_jA4m-ag-1; Wed, 18 Nov 2020 13:27:27 -0500 X-MC-Unique: 29EX7gNcNhiS7m_jA4m-ag-1 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id BDBFA8143EB; Wed, 18 Nov 2020 18:27:26 +0000 (UTC) Received: from greed.delorie.com (ovpn-112-249.rdu2.redhat.com [10.10.112.249]) by smtp.corp.redhat.com (Postfix) with ESMTPS id A385410016DB; Wed, 18 Nov 2020 18:27:23 +0000 (UTC) Received: from greed.delorie.com.redhat.com (localhost [127.0.0.1]) by greed.delorie.com (8.14.7/8.14.7) with ESMTP id 0AIIRMjr021481; Wed, 18 Nov 2020 13:27:22 -0500 From: DJ Delorie To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks In-Reply-To: <83h7pmpmr7.fsf@gnu.org> (message from Eli Zaretskii on Wed, 18 Nov 2020 20:01:48 +0200) Date: Wed, 18 Nov 2020 13:27:22 -0500 Message-ID: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=dj@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: carlos@redhat.com, fweimer@redhat.com, 43389@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii writes: > If you asked Florian, then I agree that his data could be useful. If > you were asking me, then my data is not useful, because the footprint > is reasonable and never goes up to gigabyte range. Yeah, the hard part here is capturing the actual problem. I'm running the latest Emacs too but haven't seen the growth. Traces tend to be more useful when the problem is reproducible in situ but really hard to reproduce in a test environment. From debbugs-submit-bounces@debbugs.gnu.org Wed Nov 18 17:08:20 2020 Received: (at submit) by debbugs.gnu.org; 18 Nov 2020 22:08:20 +0000 Received: from localhost ([127.0.0.1]:36819 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kfVci-0006ry-3X for submit@debbugs.gnu.org; Wed, 18 Nov 2020 17:08:20 -0500 Received: from lists.gnu.org ([209.51.188.17]:41042) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kfVcg-0006rp-0E for submit@debbugs.gnu.org; Wed, 18 Nov 2020 17:08:19 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:49626) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kfVcf-0007fv-Of for bug-gnu-emacs@gnu.org; Wed, 18 Nov 2020 17:08:17 -0500 Received: from static.214.254.202.116.clients.your-server.de ([116.202.254.214]:38880 helo=ciao.gmane.io) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kfVce-0006mX-7a for bug-gnu-emacs@gnu.org; Wed, 18 Nov 2020 17:08:17 -0500 Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1kfVcV-000115-VL for bug-gnu-emacs@gnu.org; Wed, 18 Nov 2020 23:08:07 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: bug-gnu-emacs@gnu.org From: "Jose A. Ortega Ruiz" Subject: Re: bug#43389: 28.0.50; Emacs memory leaks Date: Wed, 18 Nov 2020 21:47:30 +0000 Message-ID: <87sg96uykt.fsf@gnus.jao.io> References: <83ft57raog.fsf@gnu.org> <871rgrk9g5.fsf@oldenburg2.str.redhat.com> <83d00br9xk.fsf@gnu.org> <87tutnitta.fsf@oldenburg2.str.redhat.com> <83a6vfr8p0.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Cancel-Lock: sha1:/UY/fHqc6QtmJueRlu5q3GE74B4= X-Attribution: jao X-Clacks-Overhead: GNU Terry Pratchett X-URL: Received-SPF: pass client-ip=116.202.254.214; envelope-from=geb-bug-gnu-emacs@m.gmane-mx.org; helo=ciao.gmane.io X-detected-operating-system: by eggs.gnu.org: First seen = 2020/11/18 13:30:54 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -15 X-Spam_score: -1.6 X-Spam_bar: - X-Spam_report: (-1.6 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.25, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.1 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.1 (--) On Tue, Nov 17 2020, Eli Zaretskii wrote: >> From: Florian Weimer >> Cc: dj@redhat.com, carlos@redhat.com, 43389@debbugs.gnu.org >> Date: Tue, 17 Nov 2020 21:58:57 +0100 >> >> (let ((size 0)) >> (dolist (buffer (buffer-list) size) >> (setq size (+ size (buffer-size buffer))))) >> ⇒ 98249826 >> >> So it's not a small number, but still far away from those 800 MiB. > > Yes. I have a very similar value: 94642916 (in 376 buffers; you have > more than 1000). This is in a session that runs for 17 days and whose > VM size is 615 MB: a "normal" size for a long-living session, nowhere > near 2GB, let alone 11GB someone reported. As an additional datapoint, since version 27 (i usually compile from master, so also before its release), i'm experiencing bigger RAM consumption from my emacs processes too. It used to always be way below 1Gb, and at some point (i have the impression it was with the switch to pdumper), typical footprints went up to ~2Gb. In my case, there seems to be a jump in RAM footprint every now and then (i get to ~1.5Gb in a day almost for sure, and 1.8Gb is not rare at all), but they're not systematic. Everything starts "normal" (300Mb), then i open Gnus an it grows a bit after reading some groups (500Mb, say), and so on, and be there for a while even if i keep using Gnus for reading similarly sized message groups. But, at some point, quite suddenly, i see RAM going to ~1Gb, without any obvious change in the libraries i've loaded or in my usage of them. The pattern repeats until i find myself with ~2Gb in N days, with N varying from 1 to 3. It's difficult for me to be more precise because i use emacs for absolutely everything. But, perhaps tellingly, i don't use most of the packages that have been mentioned in this thread (in my case it's ivy instead of helm, i use pdf-tools and that has a considerable footprint, but i see jumps without having it loaded too, similar thing for emacs-w3m), and i see the jumps to appear so consistently that my impression is that they're not directly caused by a single package. The only coincidence i've seen is that i use EXWM too (btw, that's a window manager implemened in ELisp that makes emacs itself the window manager, calling directly the X11 api through FFI), but other people are having problems without it. I've also tried with emacs compiled with and without GTK (i usually compile without any toolkit at all) and with and without ImageMagick, and the increased footprint is the same in all those combinations. I cannot see either any difference between the released 27.1 and 28.0.50 regularly compile form master: both seem to misbehave in the same way. As i mentioned above, i've got a hunch that this all started, at least for me, with pdumper, but i must say that is most probably a red herring. I hope this helps a bit, despite its vagueness. Cheers, jao P.S.: I'm not copying the external GCC developers in this response because i think most of the above makes only sense to emacs developers; please let me know if you'd rather i did copy them. From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 19 09:04:17 2020 Received: (at 43389) by debbugs.gnu.org; 19 Nov 2020 14:04:18 +0000 Received: from localhost ([127.0.0.1]:38556 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kfkXp-0001nC-HD for submit@debbugs.gnu.org; Thu, 19 Nov 2020 09:04:17 -0500 Received: from eggs.gnu.org ([209.51.188.92]:41758) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kfkXo-0001mw-4j for 43389@debbugs.gnu.org; Thu, 19 Nov 2020 09:04:16 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:52371) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kfkXi-0005nn-1e; Thu, 19 Nov 2020 09:04:10 -0500 Received: from [176.228.60.248] (port=4551 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kfkXe-0007Ls-G1; Thu, 19 Nov 2020 09:04:07 -0500 Date: Thu, 19 Nov 2020 16:03:51 +0200 Message-Id: <837dqhpho8.fsf@gnu.org> From: Eli Zaretskii To: "Jose A. Ortega Ruiz" In-Reply-To: <87sg96uykt.fsf@gnus.jao.io> Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <83ft57raog.fsf@gnu.org> <871rgrk9g5.fsf@oldenburg2.str.redhat.com> <83d00br9xk.fsf@gnu.org> <87tutnitta.fsf@oldenburg2.str.redhat.com> <83a6vfr8p0.fsf@gnu.org> <87sg96uykt.fsf@gnus.jao.io> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org, carlos@redhat.com, fweimer@redhat.com, dj@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: "Jose A. Ortega Ruiz" > Date: Wed, 18 Nov 2020 21:47:30 +0000 > > As an additional datapoint, since version 27 (i usually compile from > master, so also before its release), i'm experiencing bigger RAM > consumption from my emacs processes too. > > It used to always be way below 1Gb, and at some point (i have the > impression it was with the switch to pdumper), typical footprints went > up to ~2Gb. > > In my case, there seems to be a jump in RAM footprint every now and then > (i get to ~1.5Gb in a day almost for sure, and 1.8Gb is not rare at > all), but they're not systematic. > > Everything starts "normal" (300Mb), then i open Gnus an it grows a bit > after reading some groups (500Mb, say), and so on, and be there for a > while even if i keep using Gnus for reading similarly sized message > groups. But, at some point, quite suddenly, i see RAM going to ~1Gb, > without any obvious change in the libraries i've loaded or in my usage > of them. The pattern repeats until i find myself with ~2Gb in N days, > with N varying from 1 to 3. > > It's difficult for me to be more precise because i use emacs for > absolutely everything. But, perhaps tellingly, i don't use most of the > packages that have been mentioned in this thread (in my case it's ivy > instead of helm, i use pdf-tools and that has a considerable footprint, > but i see jumps without having it loaded too, similar thing for > emacs-w3m), and i see the jumps to appear so consistently that my > impression is that they're not directly caused by a single package. Thanks. If you can afford it, would you please try using the malloc tracing tools pointed to here: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=43389#158 and then tell us where we could get the data you collected? > As i mentioned above, i've got a hunch that this all started, at least > for me, with pdumper, but i must say that is most probably a red > herring. For the record, can you please tell what flavor and version of GNU/Linux are you using? > P.S.: I'm not copying the external GCC developers in this response > because i think most of the above makes only sense to emacs developers; > please let me know if you'd rather i did copy them. I've added them. Please CC them in the future, it is important for us that the glibc experts see the data points people report in this matter. From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 19 09:38:03 2020 Received: (at 43389) by debbugs.gnu.org; 19 Nov 2020 14:38:03 +0000 Received: from localhost ([127.0.0.1]:38643 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kfl4V-0002gE-Be for submit@debbugs.gnu.org; Thu, 19 Nov 2020 09:38:03 -0500 Received: from eggs.gnu.org ([209.51.188.92]:49992) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kfl4U-0002fk-62 for 43389@debbugs.gnu.org; Thu, 19 Nov 2020 09:38:02 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:52954) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kfl4O-0002Qq-F9; Thu, 19 Nov 2020 09:37:56 -0500 Received: from [176.228.60.248] (port=2642 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kfl4N-0007Qn-QM; Thu, 19 Nov 2020 09:37:56 -0500 Date: Thu, 19 Nov 2020 16:37:39 +0200 Message-Id: <831rgppg3w.fsf@gnu.org> From: Eli Zaretskii To: Jean Louis In-Reply-To: (message from Jean Louis on Thu, 19 Nov 2020 09:59:44 +0300) Subject: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Thu, 19 Nov 2020 09:59:44 +0300 > From: Jean Louis > Cc: 44666@debbugs.gnu.org > > * Eli Zaretskii [2020-11-17 10:04]: > > > If there is nothing to be done with this bug, we can close. > > > > No, closing is premature. I've merged this bug with 3 other similar > > ones, and we are discussing this issue with glibc malloc experts. > > If bug is merged, do I just reply on this email? No, it's better to reply to bug#43389 (I've redirected the discussion now), and please keep the other addressees on the CC list, as they are not subscribed to the bug list, I believe. > My emacs-uptime now is 19 hours, and I can see 4819 MB swapping > according to symon-mode > > I have not get number of buffers, I tried to delete it and there is no > change. User processes are below. I have not finished this session and > so I am prematurely sending the file > emacs.strace-2020-11-18-14:42:59-Wednesday which may be accessed here > below on the link. I could not copy the file fully through eshell probably > because if I do copy through eshell the strace becomes longer and > longer and copy never finishes. So I have aborted the copy, file may > not be complete. It is also not complete for reason that session is > not finished. > > strace is here, 13M download, when unpacked it is more than 1.2 GB. > https://gnu.support/files/tmp/emacs.strace-2020-11-18-14:42:59-Wednesday.lz I've looked at that file, but couldn't see any smoking guns. It shows that your brk goes up and up and up until it reaches more than 7GB. Some of the requests come in groups, totaling about 5MB, not sure why (these groups always follow a call to timerfd_settime, which seems to hint that we are setting an atimer for something). However, without time stamps for each syscall, it is hard to tell whether these series of calls to 'brk' are indeed made one after the other, nor whether they are indeed related to something we use atimers for, because it is unknown how much time passed between these calls. I think you should try using the malloc tracing tools pointed to here: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=43389#158 Also, next time your vsize is several GBytes, please see how much do your buffers take, by evaluating this form: (let ((size 0)) (dolist (buffer (buffer-list) size) (setq size (+ size (buffer-size buffer))))) From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 19 10:11:57 2020 Received: (at 43389) by debbugs.gnu.org; 19 Nov 2020 15:11:57 +0000 Received: from localhost ([127.0.0.1]:40631 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kflbC-00066w-D1 for submit@debbugs.gnu.org; Thu, 19 Nov 2020 10:11:57 -0500 Received: from static.rcdrun.com ([95.85.24.50]:36101) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kflb7-00066g-1j for 43389@debbugs.gnu.org; Thu, 19 Nov 2020 10:11:48 -0500 Received: from localhost ([::ffff:41.202.241.56]) (AUTH: PLAIN admin, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by static.rcdrun.com with ESMTPSA id 00000000002C0003.000000005FB68B2A.00007988; Thu, 19 Nov 2020 15:11:37 +0000 Date: Thu, 19 Nov 2020 17:34:32 +0300 From: Jean Louis To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks Message-ID: References: <83ft57raog.fsf@gnu.org> <871rgrk9g5.fsf@oldenburg2.str.redhat.com> <83d00br9xk.fsf@gnu.org> <87tutnitta.fsf@oldenburg2.str.redhat.com> <83a6vfr8p0.fsf@gnu.org> <87sg96uykt.fsf@gnus.jao.io> <837dqhpho8.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: <837dqhpho8.fsf@gnu.org> User-Agent: Mutt/2.0 (3d08634) (2020-11-07) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org, carlos@redhat.com, fweimer@redhat.com, "Jose A. Ortega Ruiz" , dj@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * Eli Zaretskii [2020-11-19 17:05]: > Thanks. If you can afford it, would you please try using the malloc > tracing tools pointed to here: > > https://debbugs.gnu.org/cgi/bugreport.cgi?bug=43389#158 I have built it. Slight problem is that I do not get any output as written that I should get, something like this: mtrace: writing to /tmp/mtrace.mtr.706 I do not see here: LD_PRELOAD=./libmtrace.so ls block_size_rss.c INSTALL mtrace.c trace2wl.c trace_hist.sh config.log libmtrace.so mtrace.h trace_allocs trace_plot.m config.status LICENSES README.md trace_allocs.c trace_run configure MAINTAINERS sample.c trace_analysis.sh trace_run.c configure.ac Makefile statistics.c trace_block_size_rss trace_sample COPYING Makefile.in tests trace_dump trace_statistics COPYING.LIB malloc.h trace2wl trace_dump.c util.h But I did get something in /tmp/mtrace.mtr.XXX So I will run Emacs that way. From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 19 10:57:54 2020 Received: (at 43389) by debbugs.gnu.org; 19 Nov 2020 15:57:54 +0000 Received: from localhost ([127.0.0.1]:40712 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kfmJl-0000ug-TH for submit@debbugs.gnu.org; Thu, 19 Nov 2020 10:57:54 -0500 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:38102) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kfmJj-0000uX-A9 for 43389@debbugs.gnu.org; Thu, 19 Nov 2020 10:57:52 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1605801470; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ogm/5LgW0EcLNQ95E+6OU3BVzkBD3O4vEjW9ItRZEy8=; b=PGCtsWN5LPOUgLhIdPvMgWYegqMdTlbHDSuscwTBs+XuUoy/8Ult8ZImfGIKlWQybIrb6n WF3X7EnQDRDvwDXsrTUFiODkrH/1VB2edtwzVc7ZrJST+Bzxv3q1pVK5V0cb+BH925CJZ9 OnAv1Dianup4IFVIpsbsGRU37Hr+VEU= Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-590-YYnfL7FWPp2r-w4Lq_JYfA-1; Thu, 19 Nov 2020 10:57:49 -0500 X-MC-Unique: YYnfL7FWPp2r-w4Lq_JYfA-1 Received: by mail-qt1-f197.google.com with SMTP id g12so5017442qtc.15 for <43389@debbugs.gnu.org>; Thu, 19 Nov 2020 07:57:49 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=ogm/5LgW0EcLNQ95E+6OU3BVzkBD3O4vEjW9ItRZEy8=; b=FSSKEoBNrndY3BLECN8fpvNTsa2uEWoz3CNwz7Rnf4Ba3DXpQXH9CQHiqW241Sj7Pz BQNI6j/6185sJKFCka0GUrhm7M+4/iEFsniPsnTtgW5hJsfyRXSF6bBRM3ZrhqgvyJrd ym2IqeGq1HWAcow9Y60vZzZf+0li91ac8deD48xzph9xC8mGUlsw8/5oZyTZ2a+fxvI9 rKuOsg0G2fjaA/GdmxoEHZBtwr5XH+UmooBfwAdnZD8vU4Na6ZxHL2lW4102LHiqCav/ 2j5QZ0Ivl+ccrzd8vRowtYnVi2IST5qYLnWyVX8Gr6TUH+Dj7/rNzRhrG/1o3iqRvbg5 rr1g== X-Gm-Message-State: AOAM530iY+QFwSLXCPZcwRG1xjauyxJT89gbHqBgenYyQ3Y8zqnCuEiR x2ipR74jcSrN4LYOoaNrzOCWqJiiNigJbJyNnx4gTqC3IzAM3tUBHCk+kbIByXm6SMEs82q93rl q5xClN9j3uDJQSWI= X-Received: by 2002:a0c:e911:: with SMTP id a17mr11992875qvo.18.1605801468718; Thu, 19 Nov 2020 07:57:48 -0800 (PST) X-Google-Smtp-Source: ABdhPJxjvW+q4jQI2ho+iduqDCZJ1WdbeYLGo4ek80G2h1JOQxMtTe5sXgacFJ8I3HW0qLdsP/4DgQ== X-Received: by 2002:a0c:e911:: with SMTP id a17mr11992866qvo.18.1605801468568; Thu, 19 Nov 2020 07:57:48 -0800 (PST) Received: from [192.168.1.16] (198-84-214-74.cpe.teksavvy.com. [198.84.214.74]) by smtp.gmail.com with ESMTPSA id i192sm113732qke.73.2020.11.19.07.57.47 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 19 Nov 2020 07:57:47 -0800 (PST) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks To: Andreas Schwab , Jean Louis References: <83ft57raog.fsf@gnu.org> <871rgrk9g5.fsf@oldenburg2.str.redhat.com> <83d00br9xk.fsf@gnu.org> <87tutnitta.fsf@oldenburg2.str.redhat.com> <83a6vfr8p0.fsf@gnu.org> <4c760dd6-edb7-c6b1-f5de-f1bcae5ce63d@redhat.com> <873617hxpj.fsf@igel.home> From: Carlos O'Donell Organization: Red Hat Message-ID: <89314433-93a5-4bd1-22a0-9561799b0f8c@redhat.com> Date: Thu, 19 Nov 2020 10:57:46 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0 MIME-Version: 1.0 In-Reply-To: <873617hxpj.fsf@igel.home> Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=carlos@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: Florian Weimer , 43389@debbugs.gnu.org, dj@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 11/18/20 3:32 AM, Andreas Schwab wrote: > On Nov 18 2020, Jean Louis wrote: > >> Is it recommended to collect strace with this below? >> >> strace emacs > output 2>&1 > > It is preferable to use the -o option to decouple the strace output from > the inferior output. strace -ttt -ff -o NAME.logs BINARY Gives timing, and follows forks to see what children are being run. -- Cheers, Carlos. From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 19 11:03:49 2020 Received: (at 43389) by debbugs.gnu.org; 19 Nov 2020 16:03:50 +0000 Received: from localhost ([127.0.0.1]:40724 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kfmPN-00016q-Jz for submit@debbugs.gnu.org; Thu, 19 Nov 2020 11:03:49 -0500 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:44325) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kfmPJ-00016d-6J for 43389@debbugs.gnu.org; Thu, 19 Nov 2020 11:03:40 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1605801817; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=fpvAr6HSGIpr94nx3UIddmz3701V66++0bx8xX6LtaY=; b=KstETR2p+UhHbFQC/KKRRj68ntfcdkf8qsI8WjFmo9gYGSg70BgjEAtWN1dAwPw35ycnwC O47j0braDVvJFP3X65htwCIKLkz8gNrx0jjbTcuKIdef2xqAjORDp3398Z9BYYBHF6I0U5 G0TB21kL3ERQfAgnIRtRSc1AU2C1A1U= Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-282-R40pEMaqNwCmgeR_nz7N1Q-1; Thu, 19 Nov 2020 11:03:30 -0500 X-MC-Unique: R40pEMaqNwCmgeR_nz7N1Q-1 Received: by mail-qt1-f199.google.com with SMTP id l67so5013448qte.6 for <43389@debbugs.gnu.org>; Thu, 19 Nov 2020 08:03:30 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=fpvAr6HSGIpr94nx3UIddmz3701V66++0bx8xX6LtaY=; b=NNeVr75bGYrNRw2BKjVRKzWCqppJPVHxmG77QsNZydrQNQobWkBMYn8cYNVHMcmWH1 sZIOTeeA97D14DUdmO63BdlTrRJvnkExLXaZG0O9G4gMg2UM6pbNsSO19qPoz6ZNcoWH Z/ijuwu2GTUjiFvy2jzBMmixAfWeYXI0xW4PANBANKWIaKGcqHtPxglHM0AbRzh+lPEI CONGEBeapRZ9vUHMc02dzkGUinYLvlb9CsK5wjfb/Hq8XSgc+kJRTSv9ObVUGuxbl3VV KfEpSHEroDaSxprVul30PTa2AvPWl7uV3dLPir0b4XVgPGABC43HPWhSVPsaSBT9kLKf Vttw== X-Gm-Message-State: AOAM5301jWvvLVQNNcMRLHlLvGgOcpB3+J26HDhHIRLgmV/oKZSwT4Dc 36co7ugrIOQhCIOcwq0F64VV6RH1jNrZv+XAeMNirfI387zpHlG6gc6kKxyWiK35jLedILvY6xz XR0Nfb2Zjsxv97Vk= X-Received: by 2002:aed:22c5:: with SMTP id q5mr11457143qtc.247.1605801809791; Thu, 19 Nov 2020 08:03:29 -0800 (PST) X-Google-Smtp-Source: ABdhPJz6OCTlsR99oVqchPj+EgV18AW+2KiSfRKiJEkDCDdE2P89wzmGrNm25nvHmSa3dyE0R4eeOw== X-Received: by 2002:aed:22c5:: with SMTP id q5mr11457122qtc.247.1605801809569; Thu, 19 Nov 2020 08:03:29 -0800 (PST) Received: from [192.168.1.16] (198-84-214-74.cpe.teksavvy.com. [198.84.214.74]) by smtp.gmail.com with ESMTPSA id p73sm115274qka.79.2020.11.19.08.03.27 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 19 Nov 2020 08:03:28 -0800 (PST) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks To: Jean Louis , Eli Zaretskii References: <83ft57raog.fsf@gnu.org> <871rgrk9g5.fsf@oldenburg2.str.redhat.com> <83d00br9xk.fsf@gnu.org> <87tutnitta.fsf@oldenburg2.str.redhat.com> <83a6vfr8p0.fsf@gnu.org> <87sg96uykt.fsf@gnus.jao.io> <837dqhpho8.fsf@gnu.org> From: Carlos O'Donell Organization: Red Hat Message-ID: Date: Thu, 19 Nov 2020 11:03:27 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0 MIME-Version: 1.0 In-Reply-To: Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=carlos@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org, fweimer@redhat.com, "Jose A. Ortega Ruiz" , dj@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 11/19/20 9:34 AM, Jean Louis wrote: > * Eli Zaretskii [2020-11-19 17:05]: >> Thanks. If you can afford it, would you please try using the malloc >> tracing tools pointed to here: >> >> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=43389#158 > > I have built it. Slight problem is that I do not get any output as > written that I should get, something like this: > > mtrace: writing to /tmp/mtrace.mtr.706 This was changed recently in commit 4594db1defd40289192a0ea641c50278277f1737 because output to stdout interferes with the application output so it is disabled by default. The docs show that MTRACE_CTL_FILE will dictate where the trace is written to and that MTRACE_CTL_VERBOSE will output verbose information to stdout. I've pushed a doc update to indicate that in the example. > I do not see here: > > LD_PRELOAD=./libmtrace.so ls > block_size_rss.c INSTALL mtrace.c trace2wl.c trace_hist.sh > config.log libmtrace.so mtrace.h trace_allocs trace_plot.m > config.status LICENSES README.md trace_allocs.c trace_run > configure MAINTAINERS sample.c trace_analysis.sh trace_run.c > configure.ac Makefile statistics.c trace_block_size_rss trace_sample > COPYING Makefile.in tests trace_dump trace_statistics > COPYING.LIB malloc.h trace2wl trace_dump.c util.h > > But I did get something in /tmp/mtrace.mtr.XXX > > So I will run Emacs that way. That should work. -- Cheers, Carlos. From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 19 11:09:04 2020 Received: (at 43389) by debbugs.gnu.org; 19 Nov 2020 16:09:04 +0000 Received: from localhost ([127.0.0.1]:40741 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kfmUa-0001Ge-C7 for submit@debbugs.gnu.org; Thu, 19 Nov 2020 11:09:04 -0500 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:55053) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kfmUY-0001GC-CY for 43389@debbugs.gnu.org; Thu, 19 Nov 2020 11:09:03 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1605802141; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=kkg19ESRpyIZOmh6Ffxa83akNLSF0+CoPm5t0iLrPsc=; b=WVM5NDOaAQLgR56NWKt7X1eeN5SoAr+MdjE1vRChtmdsNac55H1NFb08MntbEwpEwGiD0l Z0ORl8TzJTLoWO3I+wb+S1dcm1h60zOI7OKRzp4rvQbEmdRlZ47iU7FXBTW/x9qX7ALj8u tCfAaNW9WUm3+jHB3YuPv+mY+OrQ1Yg= Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-390-u8-yo9HwO0Sfzbs-bnP9TQ-1; Thu, 19 Nov 2020 11:09:00 -0500 X-MC-Unique: u8-yo9HwO0Sfzbs-bnP9TQ-1 Received: by mail-qk1-f200.google.com with SMTP id b191so5365630qkc.10 for <43389@debbugs.gnu.org>; Thu, 19 Nov 2020 08:09:00 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=kkg19ESRpyIZOmh6Ffxa83akNLSF0+CoPm5t0iLrPsc=; b=DVxwNdzkHPLXAQPMuH2rQedCYM0ppMwKJo5C4iOwIfWOGtXqNm5mnFxLldrATgCamO rrXS60Sfl/z1z1m3md1OfvRl63TrFT0N8U8lEbnm8HUEnwYaIuF/KIG6YY+WaB0Z4Su4 LRv68VVIEj6M0whk6g+AGigI38I/G8rXjbuh3zXnYXhRNFUzsZQoPH1wyKSBBF+SYKYQ LLEp5NcTPLs00wVOyfOW131/Y+sYTrU5StKTJ0dAIfTPsePRH9M/LqavETurSmfyJfWP TSmDOU+Ce2uOga8k6/RGAWF33HHsGmjUAXuW+xZtJhgQavejfbYUQbGP5CKczHVdWHkZ WorQ== X-Gm-Message-State: AOAM5332g9nM0qcbJunrwNVqDTUgjpjtx5rlwfBT3T6yqotUNo9ZvclC w+ADSw00k5lKJedQSKfd1H3PFqqS7denTIA4ZC3ADDDHV9UcmhnEyeaCk8JtGCVEbTp4c3WJGbv s05brnRSSD9xVf+aSHxrkKPAZJ6hBhMi6CdrlWBvmxVLCtgSw3XOxbiKaiyi/r5dt X-Received: by 2002:ac8:c08:: with SMTP id k8mr10911538qti.370.1605802139455; Thu, 19 Nov 2020 08:08:59 -0800 (PST) X-Google-Smtp-Source: ABdhPJxK3Nk/q46N9Anaec06ARuRnQj86CMdQTt1IX/vVdUI+90lUwyYEJomiwfp+Q+BCodXK7WSbw== X-Received: by 2002:ac8:c08:: with SMTP id k8mr10911511qti.370.1605802139222; Thu, 19 Nov 2020 08:08:59 -0800 (PST) Received: from [192.168.1.16] (198-84-214-74.cpe.teksavvy.com. [198.84.214.74]) by smtp.gmail.com with ESMTPSA id g9sm177113qtq.21.2020.11.19.08.08.56 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 19 Nov 2020 08:08:57 -0800 (PST) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks To: DJ Delorie , Eli Zaretskii References: From: Carlos O'Donell Organization: Red Hat Message-ID: <68db7ae5-fd0b-b8ba-6e13-9fb1a0c19bf4@redhat.com> Date: Thu, 19 Nov 2020 11:08:56 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0 MIME-Version: 1.0 In-Reply-To: Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=carlos@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 11/18/20 1:27 PM, DJ Delorie wrote: > Eli Zaretskii writes: >> If you asked Florian, then I agree that his data could be useful. If >> you were asking me, then my data is not useful, because the footprint >> is reasonable and never goes up to gigabyte range. > > Yeah, the hard part here is capturing the actual problem. I'm running > the latest Emacs too but haven't seen the growth. Traces tend to be > more useful when the problem is reproducible in situ but really hard to > reproduce in a test environment. My commitment is this: If anyone can reproduce the problem with the tracer enabled then I will analyze the trace and produce a report for the person submitting the trace. The report will include some graphs, and an analysis of the API calls and the resulting RSS usage. I've written several of these reports, but so far they haven't been all that satisfying to read. We rarely find an easily discoverable root cause. We probably need better information on the exact lifetimes of the the allocations. For example I recently added a "caller" frame trace which uses the dwarf unwinder to find the caller and record that data. It's expensive and on only if requested. This is often useful in determining who made the API request (requires tracing through 2 frames at a minimum). The performance loss may make the bug go away though, and so that should be considered. -- Cheers, Carlos. From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 19 12:25:45 2020 Received: (at 43389) by debbugs.gnu.org; 19 Nov 2020 17:25:45 +0000 Received: from localhost ([127.0.0.1]:40857 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kfngn-0005K8-8r for submit@debbugs.gnu.org; Thu, 19 Nov 2020 12:25:45 -0500 Received: from eggs.gnu.org ([209.51.188.92]:42250) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kfngl-0005Jx-VN for 43389@debbugs.gnu.org; Thu, 19 Nov 2020 12:25:44 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:57604) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kfngZ-0006zR-BY; Thu, 19 Nov 2020 12:25:34 -0500 Received: from cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net ([92.233.85.247]:34504 helo=osgiliath.local) by fencepost.gnu.org with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) (Exim 4.82) (envelope-from ) id 1kfngX-0007IF-V6; Thu, 19 Nov 2020 12:25:30 -0500 Received: by osgiliath.local (Postfix, from userid 1000) id 0F4464038A; Thu, 19 Nov 2020 17:25:27 +0000 (GMT) From: jao To: "Eli Zaretskii" Subject: Re: bug#43389: 28.0.50; Emacs memory leaks In-Reply-To: <837dqhpho8.fsf@gnu.org> (Eli Zaretskii's message of "Thu, 19 Nov 2020 16:03:51 +0200") References: <83ft57raog.fsf@gnu.org> <871rgrk9g5.fsf@oldenburg2.str.redhat.com> <83d00br9xk.fsf@gnu.org> <87tutnitta.fsf@oldenburg2.str.redhat.com> <83a6vfr8p0.fsf@gnu.org> <87sg96uykt.fsf@gnus.jao.io> <9UBC3gAspwV9yVhQ3jXjV18Sdc47gAvip23AIg2dHMkt4PDZyHzqJtzXGcnH5jFrkFA-Lc37gdmmWCFTI5Ve4g==@protonmail.internalid> <837dqhpho8.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) X-Attribution: jao X-Clacks-Overhead: GNU Terry Pratchett X-URL: Date: Thu, 19 Nov 2020 17:25:27 +0000 Message-ID: <87v9e11coo.fsf@gnus.jao.io> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org, carlos@redhat.com, fweimer@redhat.com, dj@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) On Thu, Nov 19 2020, Eli Zaretskii wrote: [...] > Thanks. If you can afford it, would you please try using the malloc > tracing tools pointed to here: > > https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D43389#158 > > and then tell us where we could get the data you collected? i'll see what i can do, yes (possibly over the weekend). >> As i mentioned above, i've got a hunch that this all started, at least >> for me, with pdumper, but i must say that is most probably a red >> herring. > > For the record, can you please tell what flavor and version of > GNU/Linux are you using? Debian sid. Cheers, jao --=20 If you could kick in the pants the person responsible for most of your trouble, you wouldn't sit for a month. =E2=80=94 Theodore Roosevelt From debbugs-submit-bounces@debbugs.gnu.org Fri Nov 20 00:34:17 2020 Received: (at 43389) by debbugs.gnu.org; 20 Nov 2020 05:34:17 +0000 Received: from localhost ([127.0.0.1]:41711 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kfz3p-00066z-Jg for submit@debbugs.gnu.org; Fri, 20 Nov 2020 00:34:17 -0500 Received: from static.rcdrun.com ([95.85.24.50]:51781) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kfz3n-00066m-TH for 43389@debbugs.gnu.org; Fri, 20 Nov 2020 00:34:16 -0500 Received: from localhost ([::ffff:41.202.241.56]) (AUTH: PLAIN admin, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by static.rcdrun.com with ESMTPSA id 00000000002C1AE3.000000005FB75551.000078D3; Fri, 20 Nov 2020 05:34:08 +0000 Date: Fri, 20 Nov 2020 06:16:26 +0300 From: Jean Louis To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time Message-ID: References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: <831rgppg3w.fsf@gnu.org> User-Agent: Mutt/2.0 (3d08634) (2020-11-07) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * Eli Zaretskii [2020-11-19 17:38]: > I think you should try using the malloc tracing tools pointed to here: > > https://debbugs.gnu.org/cgi/bugreport.cgi?bug=43389#158 When running for long time Emacs will crush at certain point of time as my hard disk get full as /tmp is just about 2 gigabytes. I did not understand Carlos how to change the location for files. From debbugs-submit-bounces@debbugs.gnu.org Fri Nov 20 03:11:18 2020 Received: (at 43389) by debbugs.gnu.org; 20 Nov 2020 08:11:18 +0000 Received: from localhost ([127.0.0.1]:41856 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kg1Vm-0001iz-Ca for submit@debbugs.gnu.org; Fri, 20 Nov 2020 03:11:18 -0500 Received: from eggs.gnu.org ([209.51.188.92]:43596) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kg1Vl-0001io-Ao for 43389@debbugs.gnu.org; Fri, 20 Nov 2020 03:11:17 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:43303) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kg1Vf-0003Ax-MU; Fri, 20 Nov 2020 03:11:11 -0500 Received: from [176.228.60.248] (port=3941 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kg1Vd-0005PA-Lk; Fri, 20 Nov 2020 03:11:11 -0500 Date: Fri, 20 Nov 2020 10:10:56 +0200 Message-Id: <83zh3czbvz.fsf@gnu.org> From: Eli Zaretskii To: Jean Louis In-Reply-To: (message from Jean Louis on Fri, 20 Nov 2020 06:16:26 +0300) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Fri, 20 Nov 2020 06:16:26 +0300 > From: Jean Louis > Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, > michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com > > * Eli Zaretskii [2020-11-19 17:38]: > > I think you should try using the malloc tracing tools pointed to here: > > > > https://debbugs.gnu.org/cgi/bugreport.cgi?bug=43389#158 > > When running for long time Emacs will crush at certain point of time > as my hard disk get full as /tmp is just about 2 gigabytes. I did not > understand Carlos how to change the location for files. Carlos, could you please help Jean to direct the traces to a place other than /tmp? From debbugs-submit-bounces@debbugs.gnu.org Sun Nov 22 15:02:56 2020 Received: (at 43389) by debbugs.gnu.org; 22 Nov 2020 20:02:56 +0000 Received: from localhost ([127.0.0.1]:48345 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kgvZX-0005ya-VO for submit@debbugs.gnu.org; Sun, 22 Nov 2020 15:02:56 -0500 Received: from static.rcdrun.com ([95.85.24.50]:54769) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kgvZV-0005yN-HR for 43389@debbugs.gnu.org; Sun, 22 Nov 2020 15:02:55 -0500 Received: from localhost ([::ffff:41.202.241.56]) (AUTH: PLAIN admin, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by static.rcdrun.com with ESMTPSA id 00000000002C0013.000000005FBAC3E7.0000555F; Sun, 22 Nov 2020 20:02:46 +0000 Date: Sun, 22 Nov 2020 22:52:14 +0300 From: Jean Louis To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time Message-ID: References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: <83zh3czbvz.fsf@gnu.org> User-Agent: Mutt/2.0 (3d08634) (2020-11-07) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * Eli Zaretskii [2020-11-20 03:11]: > > Date: Fri, 20 Nov 2020 06:16:26 +0300 > > From: Jean Louis > > Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, > > michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com > > > > * Eli Zaretskii [2020-11-19 17:38]: > > > I think you should try using the malloc tracing tools pointed to here: > > > > > > https://debbugs.gnu.org/cgi/bugreport.cgi?bug=43389#158 > > > > When running for long time Emacs will crush at certain point of time > > as my hard disk get full as /tmp is just about 2 gigabytes. I did not > > understand Carlos how to change the location for files. > > Carlos, could you please help Jean to direct the traces to a place > other than /tmp? I am now following this strategy here: https://github.com/jemalloc/jemalloc/wiki/Use-Case%3A-Leak-Checking I have run emacs -Q for very short time, with: MALLOC_CONF=prof_leak:true,lg_prof_sample:0,prof_final:true \ LD_PRELOAD=/package/lib/jemalloc/lib/libjemalloc.so.2 emacs -Q and there are PDF files generated. I also wish to mention that I use 2 dynamic modules, one is emacs-libpq and other emacs-libvterm if that influences overall. You may know easier how to interpret those files and may spot something. This Emacs session was running just a minute or something. https://gnu.support/files/tmp/2020-11-22/jeprof.26889.0.f.heap https://gnu.support/files/tmp/2020-11-22/jeprof.26889.0.f.heap.pdf https://gnu.support/files/tmp/2020-11-22/jeprof.26915.0.f.heap https://gnu.support/files/tmp/2020-11-22/jeprof.26915.0.f.heap.pdf https://gnu.support/files/tmp/2020-11-22/jeprof.26918.0.f.heap https://gnu.support/files/tmp/2020-11-22/jeprof.26918.0.f.heap.pdf https://gnu.support/files/tmp/2020-11-22/jeprof.26921.0.f.heap https://gnu.support/files/tmp/2020-11-22/jeprof.26921.0.f.heap.pdf https://gnu.support/files/tmp/2020-11-22/jeprof.26922.0.f.heap https://gnu.support/files/tmp/2020-11-22/jeprof.26922.0.f.heap.pdf https://gnu.support/files/tmp/2020-11-22/jeprof.26923.0.f.heap https://gnu.support/files/tmp/2020-11-22/jeprof.26923.0.f.heap.pdf https://gnu.support/files/tmp/2020-11-22/jeprof.26924.0.f.heap https://gnu.support/files/tmp/2020-11-22/jeprof.26924.0.f.heap.pdf https://gnu.support/files/tmp/2020-11-22/jeprof.26925.0.f.heap https://gnu.support/files/tmp/2020-11-22/jeprof.26925.0.f.heap.pdf https://gnu.support/files/tmp/2020-11-22/jeprof.26931.0.f.heap https://gnu.support/files/tmp/2020-11-22/jeprof.26931.0.f.heap.pdf I am now running new session and will have maybe quite different data after hours of run. Jean From debbugs-submit-bounces@debbugs.gnu.org Sun Nov 22 15:16:42 2020 Received: (at 43389) by debbugs.gnu.org; 22 Nov 2020 20:16:42 +0000 Received: from localhost ([127.0.0.1]:48357 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kgvms-0006IW-I6 for submit@debbugs.gnu.org; Sun, 22 Nov 2020 15:16:42 -0500 Received: from eggs.gnu.org ([209.51.188.92]:53394) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kgvmq-0006IK-A9 for 43389@debbugs.gnu.org; Sun, 22 Nov 2020 15:16:40 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:51364) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kgvmk-0008KR-8r; Sun, 22 Nov 2020 15:16:34 -0500 Received: from [176.228.60.248] (port=3095 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kgvmi-0004jF-Bj; Sun, 22 Nov 2020 15:16:33 -0500 Date: Sun, 22 Nov 2020 22:16:24 +0200 Message-Id: <83k0udw3jb.fsf@gnu.org> From: Eli Zaretskii To: Jean Louis In-Reply-To: (message from Jean Louis on Sun, 22 Nov 2020 22:52:14 +0300) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Sun, 22 Nov 2020 22:52:14 +0300 > From: Jean Louis > Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, > michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com > > I am now following this strategy here: > https://github.com/jemalloc/jemalloc/wiki/Use-Case%3A-Leak-Checking That uses a different implementation of malloc, so I'm not sure it will help us. From debbugs-submit-bounces@debbugs.gnu.org Sun Nov 22 15:19:48 2020 Received: (at 43389) by debbugs.gnu.org; 22 Nov 2020 20:19:48 +0000 Received: from localhost ([127.0.0.1]:48361 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kgvps-0006Mr-2T for submit@debbugs.gnu.org; Sun, 22 Nov 2020 15:19:48 -0500 Received: from mout.gmx.net ([212.227.17.21]:47215) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kgvpp-0006Mc-HZ for 43389@debbugs.gnu.org; Sun, 22 Nov 2020 15:19:46 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1606076377; bh=q+NuP1tTBF7j1zOTXL5RApEKGz2gRXC058ldUFWF2OI=; h=X-UI-Sender-Class:From:To:Cc:Subject:References:Reply-To:Date: In-Reply-To; b=Ut5RVXVYV6lHgElwKNz6kPjSbVPJjC1SuJDuXehSFR58GNOn87+9DkOExzAu9tsQj rHuFE3E8hEDrBBejdbONDrZYSs2qrt8KpncaLor74JPEhjhwIpFz6Jt10GGNWxUqjR CfWUUWTkpSKvHvPu4TreRFVztHgR5JJOKL58Xb1k= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from aceraspire5 ([89.210.217.15]) by mail.gmx.com (mrgmx104 [212.227.17.174]) with ESMTPSA (Nemesis) id 1MuUjC-1kOZdT0R9e-00rcFb; Sun, 22 Nov 2020 21:19:37 +0100 From: Deus Max To: Carlos O'Donell Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <68db7ae5-fd0b-b8ba-6e13-9fb1a0c19bf4@redhat.com> Date: Sun, 22 Nov 2020 22:19:29 +0200 In-Reply-To: <68db7ae5-fd0b-b8ba-6e13-9fb1a0c19bf4@redhat.com> (Carlos O'Donell's message of "Thu, 19 Nov 2020 11:08:56 -0500") Message-ID: <87blfpjga6.fsf@aia00820.aia.gr> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:tMxsmdO6YAiyZWXiS+OIxPIHHbbC7H+ce+AeSeyAm0Qopyvv1ri mOspLJtojL4WGeojKySinIUAXJCNtdwE/Bf0ubtWGsBl66f4xae3JwigSDIpcuCizgc3n2T 2C9Rzx/6flOr0PHgS/1JV8n+Xkv2RMvaKVr22/CV9O+LOnY+IocVjEibcAVZLsbq7PfS6DR bhGAP0F+4o7JU67XOm2KA== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:dyfXIxCFzE8=:Bj1DtvFxwNrRYPg8iqbP/V Sd9Uy8qz/5avtLpiQRyILB7eLTEtn5FJHnba4lR3Rkr7z9wIe3lw2YKQHKIWvgMPZcBH1dOoR gtWapiHhSymhOwC3ifEY04DMXBadA/fxljCzAQJcVX8Y54FbPvWII8apyGm42jxzsynGgJTRr etlF8vxpWzxLJhKZXY5AGcqmGQX82lHihGYnlVb8MXL9ZZuz0eGAv2vBlvdClSWRqK0OQ4T+y e6xJBcvTbErBmL33poHK02mbn52Q2bb+2Bsn0+16umoaSw+u9KS+uMHfzgy3t9Cel9tB33h0Y eSK0gWt2W34t13A3drXGwOL9S3C/yIsmWBSCQO6qV8KnCEDWSDNtIV6C6d+F0OgsW7b/jp7Gf 08UAPuMY8HUskEzI8MS99qA9+XNTELo9eZBeYXQ3u/lVer9Y95DDstbNqtkehQlKo9ASE/2ye 6ChGVAhVnn50YU8vyZTEelND6f5VQf6k9AhTcOYZf9AN9BOLXxwnQlttDzAwrQ1/3ieE1OZjH yzUXl+IdADHufRF3D8AzAFwoH1ZCPavfkwenkyQ5I3dE8j49IrHAoHZoGG1AZeC6sNnj0E6rL zDJjdmI8cBYbNl4a/SI+tNIFX2HNxtCLzf4kUdNa4xBvWwKO4JYzX0BKxIKALsns7YLGUrn6S MW1ZXGRPwtQFUW5sALSy10U/D+ClaL94D7pSgMnBNmTKuzr7nQiw8gUyje/AsJxHaNUJ11Fzj 4vdXPY2WooAwR6H20ajucSzqUOwEMOyDk0/WMBLz63C9NfWEN/L7hEa56NXjvI+2Z11lm3yGs UJKliWBzizJ5FFrlop1dKEL6A4HmK8xwiyAMKskXwPKu2VQgbJ2KhP1fuulTqZbHhCBAiaHKZ srRZSRcl0EuGYDmyngXw== Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, Eli Zaretskii , DJ Delorie X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Dias Badekas Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) On Thu, Nov 19 2020, Carlos O'Donell wrote: > On 11/18/20 1:27 PM, DJ Delorie wrote: >> Eli Zaretskii writes: >>> If you asked Florian, then I agree that his data could be useful. If >>> you were asking me, then my data is not useful, because the footprint >>> is reasonable and never goes up to gigabyte range. >> >> Yeah, the hard part here is capturing the actual problem. I'm running >> the latest Emacs too but haven't seen the growth. Traces tend to be >> more useful when the problem is reproducible in situ but really hard to >> reproduce in a test environment. > > My commitment is this: If anyone can reproduce the problem with the trac= er > enabled then I will analyze the trace and produce a report for the perso= n > submitting the trace. > My emacs has been experiencing leaks and crashes very often. Both at home and at work. This is very annoying. Can hear the fan, suddenly "noising"-up or the keys not responding.... and oh-oh, that... here we go again, feeling comes back. If it is easy to provide instructions/recommendations on how to run Emacs for producing a usefull trace report, I will be happy to do so. Even to recompile as needed. From debbugs-submit-bounces@debbugs.gnu.org Sun Nov 22 22:26:52 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 03:26:52 +0000 Received: from localhost ([127.0.0.1]:48673 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kh2V8-0004AO-0f for submit@debbugs.gnu.org; Sun, 22 Nov 2020 22:26:52 -0500 Received: from eggs.gnu.org ([209.51.188.92]:57130) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kh2Us-00049x-V5 for 43389@debbugs.gnu.org; Sun, 22 Nov 2020 22:26:49 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:60735) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kh2Um-0006Yb-UC; Sun, 22 Nov 2020 22:26:28 -0500 Received: from [176.228.60.248] (port=1471 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kh2Ul-0007MS-LR; Sun, 22 Nov 2020 22:26:28 -0500 Date: Mon, 23 Nov 2020 05:26:22 +0200 Message-Id: <83h7pgwy75.fsf@gnu.org> From: Eli Zaretskii To: Dias Badekas In-Reply-To: <87blfpjga6.fsf@aia00820.aia.gr> (message from Deus Max on Sun, 22 Nov 2020 22:19:29 +0200) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <68db7ae5-fd0b-b8ba-6e13-9fb1a0c19bf4@redhat.com> <87blfpjga6.fsf@aia00820.aia.gr> X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: carlos@redhat.com, fweimer@redhat.com, dj@redhat.com, 43389@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Deus Max > Cc: DJ Delorie , Eli Zaretskii , > fweimer@redhat.com, 43389@debbugs.gnu.org > Date: Sun, 22 Nov 2020 22:19:29 +0200 > > If it is easy to provide instructions/recommendations on how to run > Emacs for producing a usefull trace report, I will be happy to do so. > Even to recompile as needed. Carlos provided a pointer to the tracing tools, see https://debbugs.gnu.org/cgi/bugreport.cgi?bug=43389#158 There are some instructions there; if something is not clear enough, I suggest to ask specific questions here. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Sun Nov 22 22:35:39 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 03:35:40 +0000 Received: from localhost ([127.0.0.1]:48688 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kh2df-0004P0-IT for submit@debbugs.gnu.org; Sun, 22 Nov 2020 22:35:39 -0500 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:33039) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kh2dc-0004Oq-7c for 43389@debbugs.gnu.org; Sun, 22 Nov 2020 22:35:38 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1606102535; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=cQQIQ6f+u4wKI0QrmYybLtqI5qTJaKHDYD0YMIeDGto=; b=QaDY4dJjy4xL3ZCAUWu11OntAL5/wXeQwI2vo8SEJ0ngoDxUqkxBuId0o+XRid7GIRvjls S++SLFjxU1l3PVaxQHEyfC3iemPeXx9YLXJ2Mo0edNdJvLx6g3zdfjYbN7OdIaWTPabl5p 8/qvrMw1BusLs+6LFwv7Izeb2vbRzRo= Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-448-EvmZw55SOXCC1vXnT4rzSQ-1; Sun, 22 Nov 2020 22:35:31 -0500 X-MC-Unique: EvmZw55SOXCC1vXnT4rzSQ-1 Received: by mail-qk1-f197.google.com with SMTP id b11so3560887qkk.10 for <43389@debbugs.gnu.org>; Sun, 22 Nov 2020 19:35:31 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=cQQIQ6f+u4wKI0QrmYybLtqI5qTJaKHDYD0YMIeDGto=; b=LNE7AcZCYOnqCbWRfi1Rs3GHq4ugQ2oahhKfi4tF1fDpuL1n+Pg2wlaHhpnU1k4osf oT3/5QxXXUxYmT83zY6xR8F0pNv301q70zuEusnN3l/oJEtm2QUqcpnejPBB+mtSABd/ tYJqJ6bB43jMqV9l+O/YCM2aUefMhpJa67IfEQHKgK6xzRnfyO1TgEwWoIfw8x8peAB7 qwhLWq69HtuVM17JhmfBILxpkoIVdepty8Xd20moJrtx6REV0qyHOME0EgjLIPkMXQCQ lIxe/aFxcmaHsrtASTTAt/l4TCcJwLo6eztR+htBDLFqWtY9Gj6XP/Xs+ZfMWyMGuReH i6xg== X-Gm-Message-State: AOAM530Z8XHkUrWzNKt8PfpDgjyTBeF/fE4VP0LReOSuTpgqalUpQN0y nV/LDkht46hAt6B0M2HHo90YoECOv3f6o1uNz/F1BNk9Cim403oxdS562IwD1/YHnEyze79yG/N DSdTYsONF/gDLY1o= X-Received: by 2002:ad4:4743:: with SMTP id c3mr6509267qvx.31.1606102530788; Sun, 22 Nov 2020 19:35:30 -0800 (PST) X-Google-Smtp-Source: ABdhPJw1LBx2N8bIBI8/iBd9VsHN8fqB02kzc6548oL2rwod+DX5EFHbI6ZUGDBUSAt7LY1bSaoGHw== X-Received: by 2002:ad4:4743:: with SMTP id c3mr6509259qvx.31.1606102530625; Sun, 22 Nov 2020 19:35:30 -0800 (PST) Received: from [192.168.1.16] (198-84-214-74.cpe.teksavvy.com. [198.84.214.74]) by smtp.gmail.com with ESMTPSA id 13sm4467151qkp.16.2020.11.22.19.35.29 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 22 Nov 2020 19:35:29 -0800 (PST) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time To: Jean Louis , Eli Zaretskii References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> From: Carlos O'Donell Organization: Red Hat Message-ID: <4553ebe5-7490-7dab-6f14-4fc2adf1b047@redhat.com> Date: Sun, 22 Nov 2020 22:35:28 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0 MIME-Version: 1.0 In-Reply-To: Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=carlos@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, trevor@trevorbentley.com, michael_heerdegen@web.de, dj@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 11/19/20 10:16 PM, Jean Louis wrote: > * Eli Zaretskii [2020-11-19 17:38]: >> I think you should try using the malloc tracing tools pointed to here: >> >> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=43389#158 > > When running for long time Emacs will crush at certain point of time > as my hard disk get full as /tmp is just about 2 gigabytes. I did not > understand Carlos how to change the location for files. The glibc malloc tracer functionality can be adjusted with environment variables. Example: MTRACE_CTL_VERBOSE=1 MTRACE_CTL_FILE=./ls.mtr LD_PRELOAD=./libmtrace.so ls mtrace: writing to ./ls.mtr.350802 The appended PID helps keep the files distinct (and includes a sequence number in the event of conflict). In the above example the use of MTRACE_CTL_FILE=./ls.mtr instructs the tracer to write the trace file to the current directory. The tracer appends the PID of the traced process to the ls.mtr file name (and a sequence number that increases monotonically in the event of a name conflict). -- Cheers, Carlos. From debbugs-submit-bounces@debbugs.gnu.org Sun Nov 22 22:41:09 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 03:41:09 +0000 Received: from localhost ([127.0.0.1]:48692 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kh2iz-0004Wx-Ag for submit@debbugs.gnu.org; Sun, 22 Nov 2020 22:41:09 -0500 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:59428) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kh2iw-0004Wo-E6 for 43389@debbugs.gnu.org; Sun, 22 Nov 2020 22:41:07 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1606102865; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=9squMdkggQ0s9yB2kjONApLHVskqm4tppk4FM/5pm6s=; b=e8yDn0f6sif/QnnGZigEqmh/s0YDbaCxnMvuvOJ1iJBT9h+zhy4O/LrxZzQXxFKmLTtQNE OMzcoa7TZXMZCGTrDZIF7HPoNz+5G53rgThUVc17NT9aMfkB4gIctN6PlpsZNuIk7HL/r2 26BcKlKJEewDietXZ8lFzMrt3ufFsFo= Received: from mail-qk1-f199.google.com (mail-qk1-f199.google.com [209.85.222.199]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-339-d-g3rb3EOeiSc2RB1-wcNQ-1; Sun, 22 Nov 2020 22:41:03 -0500 X-MC-Unique: d-g3rb3EOeiSc2RB1-wcNQ-1 Received: by mail-qk1-f199.google.com with SMTP id d206so13538295qkc.23 for <43389@debbugs.gnu.org>; Sun, 22 Nov 2020 19:41:03 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=9squMdkggQ0s9yB2kjONApLHVskqm4tppk4FM/5pm6s=; b=c81WA/svs5Z8QLVsiblJhxTITFjWTno8gVl7YiCn9jTlto9i8VL7kJ5cZmE+FTQgi3 xV2uEermQSOd07cC2tOBQnG7g4l60bMTvrhnrLPK6YW09H+Vv5CfQ+gz27TgQuziGFtc u3wsVltaNMjCdMIr+ZgW0vdpN0ZOq6PXveDpXcok78EkAF6CAxHKJglp3I4HDpd7jXPg vKyaNHrecgqiYGRN06810fv4Ceb1OPbNu4ubTPuBRBqujRFNxMq/MXjNI+xVQTfTRO6s sUX/uuJHqwj/pzC6lD+jJ8HwgBokmT+/iACbYw6sJp27L07ilfFPuysmwNsYFF5295EW WV4g== X-Gm-Message-State: AOAM530w3b944iW65plA7Xv9YizrsvW1o9SEdrrRGTrEqMVKY5lw1Usy zwCb0Zcu7DZKM8YGfftZ6sGsDIUKx2lbJC59AZjUXtayPu/jDFoyOT2DxguZENJtiJ8e5PED0ws prjwddyaNx+QFp8s= X-Received: by 2002:a0c:a9d0:: with SMTP id c16mr27652273qvb.5.1606102862678; Sun, 22 Nov 2020 19:41:02 -0800 (PST) X-Google-Smtp-Source: ABdhPJzWesPsZfDd3mJlq3F6rWEID2njHP1wZHFkQ70lb0iLMoEeSY272YSUEZ4qtmBv9OE7HRYAZw== X-Received: by 2002:a0c:a9d0:: with SMTP id c16mr27652263qvb.5.1606102862525; Sun, 22 Nov 2020 19:41:02 -0800 (PST) Received: from [192.168.1.16] (198-84-214-74.cpe.teksavvy.com. [198.84.214.74]) by smtp.gmail.com with ESMTPSA id l46sm8844312qta.44.2020.11.22.19.41.01 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 22 Nov 2020 19:41:01 -0800 (PST) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time To: Eli Zaretskii , Jean Louis References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83k0udw3jb.fsf@gnu.org> From: Carlos O'Donell Organization: Red Hat Message-ID: <780bd971-a927-03e3-f7ae-e65697315bf5@redhat.com> Date: Sun, 22 Nov 2020 22:41:00 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0 MIME-Version: 1.0 In-Reply-To: <83k0udw3jb.fsf@gnu.org> Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=carlos@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, trevor@trevorbentley.com, michael_heerdegen@web.de, dj@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 11/22/20 3:16 PM, Eli Zaretskii wrote: >> Date: Sun, 22 Nov 2020 22:52:14 +0300 >> From: Jean Louis >> Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, >> michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com >> >> I am now following this strategy here: >> https://github.com/jemalloc/jemalloc/wiki/Use-Case%3A-Leak-Checking > > That uses a different implementation of malloc, so I'm not sure it > will help us. Correct, that is a different malloc implementation and may have completely different behaviour for your given workload. That is not to say that it isn't viable solution to try another allocator that matches your workload. However, in this bug we're trying to determine why the "default" configuration of emacs and glibc's allocator causes memory usage to grow. We want to run the glibc malloc algorithms because that is the implementation under which we are observing the increased memory pressure. The tracer I've suggested will get us an API trace that we can use to determine if it is actually API calls that are causing an increase in the memory usage or if it's an algorithmic issue. It is not always obvious to see from the API calls, but having the trace is better than not. -- Cheers, Carlos. From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 03:29:22 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 08:29:23 +0000 Received: from localhost ([127.0.0.1]:48826 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kh7Du-0003DW-MF for submit@debbugs.gnu.org; Mon, 23 Nov 2020 03:29:22 -0500 Received: from static.rcdrun.com ([95.85.24.50]:57081) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kh7Dp-0003DG-8Y for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 03:29:21 -0500 Received: from localhost ([::ffff:41.202.241.56]) (AUTH: PLAIN admin, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by static.rcdrun.com with ESMTPSA id 00000000002C1AE7.000000005FBB72D6.00003833; Mon, 23 Nov 2020 08:29:10 +0000 Date: Mon, 23 Nov 2020 11:11:22 +0300 From: Jean Louis To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time Message-ID: References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83k0udw3jb.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: <83k0udw3jb.fsf@gnu.org> User-Agent: Mutt/2.0 (3d08634) (2020-11-07) X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * Eli Zaretskii [2020-11-22 23:17]: > > Date: Sun, 22 Nov 2020 22:52:14 +0300 > > From: Jean Louis > > Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, > > michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com > > > > I am now following this strategy here: > > https://github.com/jemalloc/jemalloc/wiki/Use-Case%3A-Leak-Checking > > That uses a different implementation of malloc, so I'm not sure it > will help us. It will not help if you are able to interpret the PDF reports and you do not see anything helpful. If you do interpret those PDF reports please tell me as such could be useful to find possible causes or find other issues in Emacs. Does this here tells you anything? https://gnu.support/files/tmp/2020-11-22/jeprof.26889.0.f.heap.pdf Does this add module isra.0 inside tells you anything? https://gnu.support/files/tmp/2020-11-22/jeprof.26922.0.f.heap.pdf I am using dynamic modules like vterm and libpq, can that influence memory or create memory leaks? What is tst_post_reentrancy_raw, is that something that eats memory? I am still running this session with jemalloc and I wish to see if anything will happen that blocks the work similar how it blocks with the normal run. This helps slightly in determination. As if run of Emacs with jemalloc does not cause problems one time, maybe 2-5 times or 10 times, that may be deduce problem to standard malloc and not Emacs. Then in the next session I will try again the tools as described and submit data. To help me understand, do you think problem is in Emacs or in glibc malloc? From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 04:59:58 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 09:59:58 +0000 Received: from localhost ([127.0.0.1]:49039 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kh8dZ-0005jo-Np for submit@debbugs.gnu.org; Mon, 23 Nov 2020 04:59:58 -0500 Received: from eggs.gnu.org ([209.51.188.92]:42524) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kh8dV-0005ja-CZ for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 04:59:56 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:40523) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kh8dO-000643-Td; Mon, 23 Nov 2020 04:59:46 -0500 Received: from [2a02:14f:80:56e9::1] (port=42526) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1kh8dN-0005ZB-AI; Mon, 23 Nov 2020 04:59:46 -0500 Date: Mon, 23 Nov 2020 11:59:42 +0200 User-Agent: K-9 Mail for Android In-Reply-To: References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83k0udw3jb.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time To: Jean Louis From: Eli Zaretskii Message-ID: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) On November 23, 2020 10:11:22 AM GMT+02:00, Jean Louis = wrote: > * Eli Zaretskii [2020-11-22 23:17]: > > > Date: Sun, 22 Nov 2020 22:52:14 +0300 > > > From: Jean Louis > > > Cc: fweimer@redhat=2Ecom, 43389@debbugs=2Egnu=2Eorg, dj@redhat=2Ecom= , > > > michael_heerdegen@web=2Ede, trevor@trevorbentley=2Ecom, > carlos@redhat=2Ecom > > >=20 > > > I am now following this strategy here: > > > > https://github=2Ecom/jemalloc/jemalloc/wiki/Use-Case%3A-Leak-Checking > >=20 > > That uses a different implementation of malloc, so I'm not sure it > > will help us=2E >=20 > It will not help if you are able to interpret the PDF reports and you > do not see anything helpful=2E If you do interpret those PDF reports > please tell me as such could be useful to find possible causes or find > other issues in Emacs=2E Granted, I looked at the reports before writing that response=2E I don't = see there anything related to Emacs code=2E > Does this here tells you anything? > https://gnu=2Esupport/files/tmp/2020-11-22/jeprof=2E26889=2E0=2Ef=2Eheap= =2Epdf It says that most of memory was allocated by a subroutine of jemalloc=2E = As I'm not familiar with how jemalloc works, I see no way for us to draw an= y significant conclusions from that=2E > Does this add module isra=2E0 inside tells you anything? AFAIU, it's some internal jemalloc midule=2E > I am using dynamic modules like vterm and libpq, can that influence > memory or create memory leaks? I have no idea, but I don't think I see any of their functions in these re= ports=2E > What is tst_post_reentrancy_raw, is that something that eats memory? I don't know=2E It's something internal to jemalloc=2E > I am still running this session with jemalloc and I wish to see if > anything will happen that blocks the work similar how it blocks with > the normal run=2E This helps slightly in determination=2E As if run of > Emacs with jemalloc does not cause problems one time, maybe 2-5 times > or 10 times, that may be deduce problem to standard malloc and not > Emacs=2E The glibc malloc is the prime suspect anyway=2E I don't really believe Em= acs had such a glaring memory leak=2E So trying different malloc implement= ations is from my POV waste of time at this stage=2E > Then in the next session I will try again the tools as described and > submit data=2E >=20 > To help me understand, do you think problem is in Emacs or in glibc > malloc? I suspect the problem is in how we use glibc's malloc -- there are some us= age patterns that cause glibc to be suboptimal in its memory usage, and I h= ope we will find ways to fine tune it to our needs=2E But that is just a guess, and so I wish you'd use the tools pointed out by= Carlos, because they are the most efficient way of collecting evidence tha= t might allow us to make some progress here=2E We have the attention of the best experts on the issue; let's use their at= tention and their time as best as we possibly can=2E TIA From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 06:00:07 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 11:00:07 +0000 Received: from localhost ([127.0.0.1]:49194 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kh9Zn-0000xb-AL for submit@debbugs.gnu.org; Mon, 23 Nov 2020 06:00:07 -0500 Received: from static.rcdrun.com ([95.85.24.50]:39383) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kh9Zk-0000vY-Q5 for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 06:00:05 -0500 Received: from localhost ([::ffff:41.202.241.56]) (AUTH: PLAIN admin, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by static.rcdrun.com with ESMTPSA id 00000000002C1AE7.000000005FBB962E.00004AD7; Mon, 23 Nov 2020 10:59:57 +0000 Date: Mon, 23 Nov 2020 13:59:47 +0300 From: Jean Louis To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time Message-ID: References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: <83zh3czbvz.fsf@gnu.org> User-Agent: Mutt/2.0 (3d08634) (2020-11-07) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) The session I was running with jemalloc memory leak logging is finished now. Just the same thing happened. It started getting slower and slower. In the IceWM window manager I have visual representation of memory usage and that is how I get feeling, there is also tooltip telling me that more and more memory is used. When it starts to swap like 3 GB then I turn on symon-mode and in Emacs I see more and more swapping. The heap file is here 24M, maybe not needed for review: https://gnu.support/files/tmp/2020-11-23/jeprof.23826.0.f.heap Visualization is here 20K PDF file: https://gnu.support/files/tmp/2020-11-23/jeprof.23826.0.f.heap.pdf Do you see anything interesting inside that should tell about memory leaks? Jean From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 08:28:14 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 13:28:14 +0000 Received: from localhost ([127.0.0.1]:49538 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khBt7-0000h2-Vn for submit@debbugs.gnu.org; Mon, 23 Nov 2020 08:28:14 -0500 Received: from static.rcdrun.com ([95.85.24.50]:38533) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khBt5-0000gn-Ky for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 08:28:12 -0500 Received: from localhost ([::ffff:41.202.241.56]) (AUTH: PLAIN admin, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by static.rcdrun.com with ESMTPSA id 00000000002C1AE7.000000005FBBB8E5.00005D83; Mon, 23 Nov 2020 13:28:04 +0000 Date: Mon, 23 Nov 2020 14:07:47 +0300 From: Jean Louis To: Carlos O'Donell Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time Message-ID: References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <4553ebe5-7490-7dab-6f14-4fc2adf1b047@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: <4553ebe5-7490-7dab-6f14-4fc2adf1b047@redhat.com> User-Agent: Mutt/2.0 (3d08634) (2020-11-07) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, Eli Zaretskii X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * Carlos O'Donell [2020-11-23 06:35]: > On 11/19/20 10:16 PM, Jean Louis wrote: > > * Eli Zaretskii [2020-11-19 17:38]: > >> I think you should try using the malloc tracing tools pointed to here: > >> > >> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=43389#158 > > > > When running for long time Emacs will crush at certain point of time > > as my hard disk get full as /tmp is just about 2 gigabytes. I did not > > understand Carlos how to change the location for files. > > The glibc malloc tracer functionality can be adjusted with environment > variables. > > Example: > > MTRACE_CTL_VERBOSE=1 MTRACE_CTL_FILE=./ls.mtr LD_PRELOAD=./libmtrace.so ls > mtrace: writing to ./ls.mtr.350802 > > The appended PID helps keep the files distinct (and includes a sequence > number in the event of conflict). Alright, thank you. My session started with it. From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 08:28:20 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 13:28:20 +0000 Received: from localhost ([127.0.0.1]:49541 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khBtE-0000hN-6V for submit@debbugs.gnu.org; Mon, 23 Nov 2020 08:28:20 -0500 Received: from static.rcdrun.com ([95.85.24.50]:38533) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khBtA-0000gn-CW for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 08:28:16 -0500 Received: from localhost ([::ffff:41.202.241.56]) (AUTH: PLAIN admin, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by static.rcdrun.com with ESMTPSA id 00000000002C1AE6.000000005FBBB8EF.00005DB2; Mon, 23 Nov 2020 13:28:14 +0000 Date: Mon, 23 Nov 2020 16:27:52 +0300 From: Jean Louis To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time Message-ID: References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83k0udw3jb.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: <83k0udw3jb.fsf@gnu.org> User-Agent: Mutt/2.0 (3d08634) (2020-11-07) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * Eli Zaretskii [2020-11-22 23:17]: > > Date: Sun, 22 Nov 2020 22:52:14 +0300 > > From: Jean Louis > > Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, > > michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com > > > > I am now following this strategy here: > > https://github.com/jemalloc/jemalloc/wiki/Use-Case%3A-Leak-Checking > > That uses a different implementation of malloc, so I'm not sure it > will help us. This is how I have run the shorter Emacs session until it got blocked: MTRACE_CTL_VERBOSE=1 MTRACE_CTL_FILE=/home/data1/protected/tmp/mtraceEMACS.mtr LD_PRELOAD=/home/data1/protected/Programming/git/glibc-malloc-trace-utils/libmtrace.so emacs >> $DEBUG 2>&1 And here is mtrace: https://gnu.support/files/tmp/2020-11-23/mtraceEMACS.mtr.9294.lz I cannot run Emacs that way as something happens and Emacs get blocked. Problem arrives with M-s M-w to search for anything on Internet with eww. Anything blocks. And I get message: error in process filter: Quit after that C-g does not work, I cannot kill buffer, I cannot save the current work or other buffers, I cannot switch from buffer to buffer neither open any menu. Debugging requires longer run sessions and actual work in Emacs. This happens all the time when I run Emacs like the above example command. Unless there is safer way for debugging the above one is not functional as it blocks everything and I do use incidentally or accidentally eww in the work. I hope that something will be visible from that mtrace. From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 10:46:32 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 15:46:32 +0000 Received: from localhost ([127.0.0.1]:50745 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khE2x-0004OB-Qi for submit@debbugs.gnu.org; Mon, 23 Nov 2020 10:46:32 -0500 Received: from eggs.gnu.org ([209.51.188.92]:42936) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khE2w-0004Ny-Ap for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 10:46:30 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:46177) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1khE2q-0000bT-Hm; Mon, 23 Nov 2020 10:46:24 -0500 Received: from [176.228.60.248] (port=2853 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1khE2o-0003qr-Co; Mon, 23 Nov 2020 10:46:24 -0500 Date: Mon, 23 Nov 2020 17:46:16 +0200 Message-Id: <83blfovzxz.fsf@gnu.org> From: Eli Zaretskii To: Jean Louis In-Reply-To: (message from Jean Louis on Mon, 23 Nov 2020 13:59:47 +0300) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Mon, 23 Nov 2020 13:59:47 +0300 > From: Jean Louis > Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, > michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com > > In the IceWM window manager I have visual representation of memory > usage and that is how I get feeling, there is also tooltip telling me > that more and more memory is used. When it starts to swap like 3 GB > then I turn on symon-mode and in Emacs I see more and more swapping. I think I described how to write an Emacs function that you could use to watch the vsize of the Emacs process and alert you to it being above some threshold. > The heap file is here 24M, maybe not needed for review: > https://gnu.support/files/tmp/2020-11-23/jeprof.23826.0.f.heap > > Visualization is here 20K PDF file: > https://gnu.support/files/tmp/2020-11-23/jeprof.23826.0.f.heap.pdf > > Do you see anything interesting inside that should tell about memory leaks? I'm not sure. I think I see that you have some timer that triggers a lot of memory allocations because it conses a lot of Lisp objects. Whether that is part of the problem or not is not clear. Next time when your session causes the system to swap, please type: M-: (garbage-collect) RET and post here the output of that (it should be a list of numbers whose meanings are explained in the doc string of garbage-collect). Also, I think I asked to tell how large are your buffers by evaluation the following (again, near the point where your session causes the system to page heavily): (let ((size 0)) (dolist (buffer (buffer-list) size) (setq size (+ size (buffer-size buffer))))) It is important to have both these pieces of information from the same session at the same time near the point where you must kill Emacs, so that we know how much memory is actually used by your session at that point (as opposed to memory that is "free" in the heap, but was not returned to the OS). Thanks. From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 10:54:21 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 15:54:21 +0000 Received: from localhost ([127.0.0.1]:50754 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khEAW-0004ZW-U2 for submit@debbugs.gnu.org; Mon, 23 Nov 2020 10:54:21 -0500 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:52990) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khEAU-0004ZO-FX for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 10:54:19 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1606146858; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=zXVfTxC7sTXdG6t7j7seet/dT47BDDg7QLusrQcS0W4=; b=SbeIhXzP+S+e6RVx2dYkMrflJV5+uyxFZhlHVibtTVQc0UVudOJ223p5PfI+Yw5UV5ePxi m74HyOPX7Oyw+ivg5KB+L1ns5KrMSGepSdue0fZaSleoCIFs1gw8K9YGSLJNmCRkirZ2P+ Yi71w4wTbLRbKLN9qcAm3eF9BrQGk8U= Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-304-hHEdY_zhOVizZGJ9A0yUeA-1; Mon, 23 Nov 2020 10:54:13 -0500 X-MC-Unique: hHEdY_zhOVizZGJ9A0yUeA-1 Received: by mail-qk1-f197.google.com with SMTP id s9so15094968qks.2 for <43389@debbugs.gnu.org>; Mon, 23 Nov 2020 07:54:12 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=zXVfTxC7sTXdG6t7j7seet/dT47BDDg7QLusrQcS0W4=; b=F0IbZFd9jTbs2hytVV2W+och/axUH5RLVepOFt7aNZihu5A1j5z0AliG9f+kBc3idw JGYFeS7C+JfReEXyQxDmYF6tu5+2AJ+P7nhiAFMPt5NVGvnXlxozFkStN1+JJl6LLn/Y W/geL43EfiZF7WzeuoY9YoRnSTyf8LmDO4ceYdyz2vSbnw9WdCUf3HGNGyZeO2cgDakr abgGaxlA4ucBiv5wuwyBrSY0Vm4e7D7GTdkL9QL0kQas9v6Zn6FAf/Rp1wWx0TQrDiz3 Bg+rvCQ/JYvTSRjQ/hMEUKGSnuKTb4lBza4/ZVxuGHIV4Jz0rVzWLTUk5HJNUmdFDLqH mDhw== X-Gm-Message-State: AOAM5338dtkoShTlCKPeeoCCCuBsk0NlIUEKxiQesdTT6hgiSN71Bj6Q DXDvwptUSTzSmQYVKmTEzQiSbcXv9iN9Ub3ALSKB8wsqA3P5dA59/eYU+CU73cA5efxP4gefnTk 1Cpvz65m0x3o1Qfw= X-Received: by 2002:ad4:42c8:: with SMTP id f8mr30740175qvr.29.1606146852638; Mon, 23 Nov 2020 07:54:12 -0800 (PST) X-Google-Smtp-Source: ABdhPJwnCBhurKLoB6lfLpGE7yU96i3FrsJ717hyzrDlonuclwy1qI/gniw4Uiw0tc088VXybKarGQ== X-Received: by 2002:ad4:42c8:: with SMTP id f8mr30740154qvr.29.1606146852431; Mon, 23 Nov 2020 07:54:12 -0800 (PST) Received: from [192.168.1.16] (198-84-214-74.cpe.teksavvy.com. [198.84.214.74]) by smtp.gmail.com with ESMTPSA id d9sm5796428qtr.68.2020.11.23.07.54.11 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 23 Nov 2020 07:54:11 -0800 (PST) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time To: Jean Louis , Eli Zaretskii References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83k0udw3jb.fsf@gnu.org> From: Carlos O'Donell Organization: Red Hat Message-ID: <5c8da650-6f3d-8a36-6c09-4690b6c59fbe@redhat.com> Date: Mon, 23 Nov 2020 10:54:10 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0 MIME-Version: 1.0 In-Reply-To: Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=carlos@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, trevor@trevorbentley.com, michael_heerdegen@web.de, dj@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 11/23/20 8:27 AM, Jean Louis wrote: > * Eli Zaretskii [2020-11-22 23:17]: >>> Date: Sun, 22 Nov 2020 22:52:14 +0300 >>> From: Jean Louis >>> Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, >>> michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com >>> >>> I am now following this strategy here: >>> https://github.com/jemalloc/jemalloc/wiki/Use-Case%3A-Leak-Checking >> >> That uses a different implementation of malloc, so I'm not sure it >> will help us. > > This is how I have run the shorter Emacs session until it got blocked: > > MTRACE_CTL_VERBOSE=1 MTRACE_CTL_FILE=/home/data1/protected/tmp/mtraceEMACS.mtr LD_PRELOAD=/home/data1/protected/Programming/git/glibc-malloc-trace-utils/libmtrace.so emacs >> $DEBUG 2>&1 > > And here is mtrace: > > https://gnu.support/files/tmp/2020-11-23/mtraceEMACS.mtr.9294.lz > > I cannot run Emacs that way as something happens and Emacs get > blocked. Problem arrives with M-s M-w to search for anything on > Internet with eww. Anything blocks. And I get message: > > error in process filter: Quit Sorry, please drop MTRACE_CTL_VERBOSE=1, as it adds output to stdout which may affect the process if using pipes. -- Cheers, Carlos. From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 11:45:42 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 16:45:42 +0000 Received: from localhost ([127.0.0.1]:50920 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khEyE-0005xr-Kd for submit@debbugs.gnu.org; Mon, 23 Nov 2020 11:45:42 -0500 Received: from mout.gmx.net ([212.227.17.22]:59871) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khEyC-0005xa-Lm for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 11:45:41 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1606149931; bh=RRl6f1X4O/py2NrR/DSdTYQaip07BZMpoVd5NFYHwws=; h=X-UI-Sender-Class:From:To:Cc:Subject:References:Date:In-Reply-To; b=f5NzqWKP1w0xwKdSbeGELF65zRJAt08AKU1vRgqPi/r+jdiBbm5a2DYmxt/EfX7ty iT654oHRyq/f+r4GTtcJU/9hA0rqhZu6jJRPm/DPPoKCctvSw9SZbawilHUjI14TCL OgcINM8zmJih2s68uK6V+OurbiaBL/wgP11igvtE= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from aceraspire5 ([89.210.217.15]) by mail.gmx.com (mrgmx105 [212.227.17.174]) with ESMTPSA (Nemesis) id 1MNt0C-1ksCHK3ieG-00OGcM; Mon, 23 Nov 2020 17:45:31 +0100 From: Deus Max To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <68db7ae5-fd0b-b8ba-6e13-9fb1a0c19bf4@redhat.com> <87blfpjga6.fsf@aia00820.aia.gr> <83h7pgwy75.fsf@gnu.org> Date: Mon, 23 Nov 2020 18:45:23 +0200 In-Reply-To: <83h7pgwy75.fsf@gnu.org> (Eli Zaretskii's message of "Mon, 23 Nov 2020 05:26:22 +0200") Message-ID: <877dqcc998.fsf@aia00820.aia.gr> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:bFHhwnbXUwVXSplaUwhaIS/j0KUGFrnCCt19viKLlNja8DeBUlS empBvfDPEhLuHRZfBknulVNKBBp4UsmxDxAhrdjeAJwjJEdIxv7+gDmFI715q59WVeENGJ7 yDRihP+luopynRs+LxXHzhtiPlhQxHV5WAEDxj3LzxrxcKQUvU/xbavU/XV5ochsYsD2RDB E6TLknnyF3Q54iT6wCt4A== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:fqAYHW6VkmI=:3ymHUIgBfkeXfIEtZQZ0oE kSUVYhIFq919GGe/90UV4h60DjH0/TCjgv09tYmOQZLehPSGTKOoAdN64OhgR1PlrMjKt+a78 LzaHNR6obPfRZt6Jo30sW6GJa+D/31Pe1TIOJaWHhSmERMEW3KdfwaaUZglKtyTYQB9oSmpTX by7gbk+VqZ+O4D1MfyBsKTFVcapaKli6FmEp9p7TAPdd135GRcZ1qZEZRWj1mro7sME3+Kbrj 9DRbsQLql1rOywxdh1Ztt6segK9lP50TMnjw0GWfPhDuGnYxLnjeMkAJZ3cCB6pF7DIKjsYd4 BiFaE3rQoRdKdBOhkPx9hFQIja/IJt9+WtNz3T/8D5REVqYrC+h3hAyAicnnxa8TQeHzrloSn WIXb0ZwEOkjHcWWVubw8psdFburC0xV1oHVDOJbJvIen9x+2x8OHdw4XJNaUAoSRclTdCgmNx Weiygkr556qjl3ScNfzahoP2ZIObfbPywoQlmeNS1gs9lhFR0r79rinvdht3GdzwuZetjt08s Z8FpcpD8iUE4fsE6Ub6O/ow2/5TnRdDO92aN6evq5oCzpls26C60Cdtdndnm1NRD8R5daCy8D 3J1yvdFejUZyGawX2WrYW7HyYf1QU4fSNYNfNJ/rEV8dGyuMrvh+Jgfdi6lPSvHIzPnsOwwtq GZqDaNChZwvmWVo6lw/blEyqxsquMOfsg/lw6AQ4iTj+gmMo57w3VUw3Av70Qi3wzqolomEh4 euqq/F0TlTUf4pJgF8wqZ8aZAGWACT/YenGTX3L6gYiTjQIPANlVETcLsJBPjbOlx/Lw21SRa wwAwR4mmaC42uaZtk9OSfwoc6FBJQ7kaA8vor4G68Meo4E+/MNFenc2B3cpAsu6+Zs+WrSZIa O007AGrHqAMrCapHgbnQ== Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 43389 Cc: carlos@redhat.com, fweimer@redhat.com, dj@redhat.com, 43389@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) On Mon, Nov 23 2020, Eli Zaretskii wrote: >> From: Deus Max >> Cc: DJ Delorie , Eli Zaretskii , >> fweimer@redhat.com, 43389@debbugs.gnu.org >> Date: Sun, 22 Nov 2020 22:19:29 +0200 >> >> If it is easy to provide instructions/recommendations on how to run >> Emacs for producing a usefull trace report, I will be happy to do so. >> Even to recompile as needed. > > Carlos provided a pointer to the tracing tools, see > > https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D43389#158 > > There are some instructions there; if something is not clear enough, I > suggest to ask specific questions here. > > Thanks. Will read and try it out. Thank you. From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 12:07:30 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 17:07:30 +0000 Received: from localhost ([127.0.0.1]:50947 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khFJK-0006UR-8l for submit@debbugs.gnu.org; Mon, 23 Nov 2020 12:07:30 -0500 Received: from eggs.gnu.org ([209.51.188.92]:42294) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khFJI-0006UE-I7 for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 12:07:29 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:48417) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1khFJC-0004dF-1P; Mon, 23 Nov 2020 12:07:22 -0500 Received: from [176.228.60.248] (port=3937 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1khFJB-0000E9-8m; Mon, 23 Nov 2020 12:07:21 -0500 Date: Mon, 23 Nov 2020 19:07:16 +0200 Message-Id: <834klgvw6z.fsf@gnu.org> From: Eli Zaretskii To: Deus Max In-Reply-To: <877dqcc998.fsf@aia00820.aia.gr> (message from Deus Max on Mon, 23 Nov 2020 18:45:23 +0200) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <68db7ae5-fd0b-b8ba-6e13-9fb1a0c19bf4@redhat.com> <87blfpjga6.fsf@aia00820.aia.gr> <83h7pgwy75.fsf@gnu.org> <877dqcc998.fsf@aia00820.aia.gr> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: carlos@redhat.com, fweimer@redhat.com, dj@redhat.com, 43389@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Deus Max > Cc: carlos@redhat.com, dj@redhat.com, fweimer@redhat.com, > 43389@debbugs.gnu.org > Date: Mon, 23 Nov 2020 18:45:23 +0200 > > > https://debbugs.gnu.org/cgi/bugreport.cgi?bug=43389#158 > > > > There are some instructions there; if something is not clear enough, I > > suggest to ask specific questions here. > > > > Thanks. > > Will read and try it out. Thanks. Please find more detailed instructions here: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=43389#284 with an important update here: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=43389#308 From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 12:19:56 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 17:19:57 +0000 Received: from localhost ([127.0.0.1]:50979 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khFVM-0006o9-Kj for submit@debbugs.gnu.org; Mon, 23 Nov 2020 12:19:56 -0500 Received: from mail-oln040092067061.outbound.protection.outlook.com ([40.92.67.61]:46574 helo=EUR02-AM5-obe.outbound.protection.outlook.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khFV7-0006nh-ET for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 12:19:55 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KihSL3MhH8KRcS6BvtCqd7LOUGJ3/1XEjLcsgigCCnLhSGuDsT73LrlrZ4izRRxz5c0UhzTTvForhKHysfPWMy7ZKfJWnNupMZR8J8PJm9tD9SVCBHnaJcbRDQ2dy8ZoAfFE9RW9eDwVMjx2JyBNHs9iyImAPVYhFi6lskd4OWylH4VZvgAoyuBLEUpxQMQqMnLt0sFCLHU6L1Jcs/jhLFN7o86ETWqoMNL1wK9dRihe5+6e78PSbTa1cpIhZXK2Q1w3UiV5uEfLICKJZh6/B7VXAs+xVFX3niAv2RUnAdmRptR7MSRzUSlEQLd+fT3fG1PL3j4jmx4CQNSjbIdZbg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=aPfcxpWZWh+knHWSFcU4/z4tbA9BTFdhNumiIfeezXQ=; b=AKWhiA46YaDjGIpiPpmyMpkzDr3I0ggtvu2a/GfF3+SuERZcZ42Y74MeHbC5qFRYp+nKYbva7Kzz9wqKz7qbslz0W62xsdy525ZIW6LDsQmCQ8Rk81YVVN5FSgGlT0QgZ9O8+IYSpt/Qcg5BggHJ3zxH9ZY1UIfw4XqYjBDN3bMc8+oWA6Qh88n67sjGNOB+39LAP6d9IAwv0CJtrouAt9SBPMUJ+RLlrv9I0eiGPsMbFXVKWKAF50d+gpHc35Zke+cwjAqrsu/07bfEbo2N9CK9ktlblIVqhG55zUwLPxlQhd8mYyBdZ/cO2GSxHiaa5FOlG4S6p9mnU1nceVlDCg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=live.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=aPfcxpWZWh+knHWSFcU4/z4tbA9BTFdhNumiIfeezXQ=; b=X/A+ZpFNgVLmSneDxopph8u9KZ5jSeIkKCMpvihjSQtTCxp5IhpagQGwStbcj87N9BOc8K5BO9h16n/SU3Ffqr6A+g2ERCYA530rvT9IJY07C8VuK1r1JMGMXe+ZkEZQLjyE4uZCm3WGOni722vWE/uOlZuay/OS1APXb9ReGuH3odAe3Pm1GLONykJGOx3k/+yxt907/qmweSdMkKOScOFzCbq7wkgQDpmte+2+EXznOx2/LQgUkWGG1UdvY8GhCBKqzUEI5QkfLYDTY+l0lD4d0SAR1XO/u5+8xtLFpliwEDIYmvMVRbPU+0s3klFMJVPGFY97AXyxaPFpi1EAUg== Received: from AM5EUR02FT045.eop-EUR02.prod.protection.outlook.com (2a01:111:e400:7e1c::4d) by AM5EUR02HT213.eop-EUR02.prod.protection.outlook.com (2a01:111:e400:7e1c::320) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20; Mon, 23 Nov 2020 17:19:33 +0000 Received: from AM0PR06MB6577.eurprd06.prod.outlook.com (2a01:111:e400:7e1c::46) by AM5EUR02FT045.mail.protection.outlook.com (2a01:111:e400:7e1c::415) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20 via Frontend Transport; Mon, 23 Nov 2020 17:19:33 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:FC1B760A0F613FA78A4EEF626F672467B3740709E388E4A91E31B26F9BFC7CE9; UpperCasedChecksum:2DBC1597B7027AEA9C19FDF701AEC13584737F0BB8986AF8370E474850F823A1; SizeAsReceived:7958; Count:46 Received: from AM0PR06MB6577.eurprd06.prod.outlook.com ([fe80::9487:8c7d:da00:4993]) by AM0PR06MB6577.eurprd06.prod.outlook.com ([fe80::9487:8c7d:da00:4993%7]) with mapi id 15.20.3589.030; Mon, 23 Nov 2020 17:19:33 +0000 From: Arthur Miller To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83k0udw3jb.fsf@gnu.org> Date: Mon, 23 Nov 2020 18:19:32 +0100 In-Reply-To: (Eli Zaretskii's message of "Mon, 23 Nov 2020 11:59:42 +0200") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Content-Type: text/plain X-TMN: [QtZQ25rKEwSYvWr9E7yKneQ955dVAesL] X-ClientProxiedBy: AM5PR1001CA0016.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:206:2::29) To AM0PR06MB6577.eurprd06.prod.outlook.com (2603:10a6:208:19a::23) X-Microsoft-Original-Message-ID: <87im9wat3v.fsf@live.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from pascal.homepc (90.230.29.56) by AM5PR1001CA0016.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:206:2::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20 via Frontend Transport; Mon, 23 Nov 2020 17:19:32 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 46 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 057c21c0-a7ca-473c-5a35-08d88fd3f1bc X-MS-TrafficTypeDiagnostic: AM5EUR02HT213: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: uDdYdxtTvNbR/C+TfHGR40D0RZY8dPaR8+X7OMhB7P9Y2d0yMdIA+W0RgBQ0Z07svfAb4OQK0b57zRQZU0VkP+nwyafi9BHUY8D9yoh83hAQ3L4mwOyIiRp4xGETofyQOm5AU7/BP3LeRxBXwx7TaCxxsFKLYpRD8yyME/9sHJseoDC9AaKPaSxjaBUUABDHg3EPBTkcBt8eyGcv23TZgg== X-MS-Exchange-AntiSpam-MessageData: 3bfrqTg3zILMuIX30APu4Hl9qhLo86Fg0NL7tJ2kE7KN/5FuFoJ6lXwlHS3w8m2hYKzQC2l2dfE383Yuo+YW9uLgE80FBmRyhAokz922fYRspHaWSj6YIn4KwkTPGZrZSELdw+GFH7b3aZOa0GH0VA== X-OriginatorOrg: live.com X-MS-Exchange-CrossTenant-Network-Message-Id: 057c21c0-a7ca-473c-5a35-08d88fd3f1bc X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Nov 2020 17:19:33.3292 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: AM5EUR02FT045.eop-EUR02.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5EUR02HT213 X-Spam-Score: 1.4 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: > The glibc malloc is the prime suspect anyway. I don't really believe Emacs had > such a glaring memory leak. This has to be something introduced fairly recently, right? I didn't have any such problems before, but since maybe few weeks ago, I have also experienced heavy lockdowns of my entire OS. To the point where entire X11 got unresposnsive, when it happens I can't [...] Content analysis details: (1.4 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 T_SPF_TEMPERROR SPF: test of record failed (temperror) -0.0 SPF_HELO_PASS SPF: HELO matches SPF record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (arthur.miller[at]live.com) 1.0 FORGED_SPF_HELO No description available. 0.0 MSGID_FROM_MTA_HEADER Message-Id was added by a relay 0.4 KHOP_HELO_FCRDNS Relay HELO differs from its IP's reverse DNS X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, Jean Louis , dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) > The glibc malloc is the prime suspect anyway. I don't really believe Emacs had > such a glaring memory leak. This has to be something introduced fairly recently, right? I didn't have any such problems before, but since maybe few weeks ago, I have also experienced heavy lockdowns of my entire OS. To the point where entire X11 got unresposnsive, when it happens I can't even switch to terminal to kill Emacs. What I do is Alt-Shift to another virtual linux console. I don't even need to log into the system in that console, I can then Alt-Shift 1 to go back to one I am logged into, and everything is normal. Emacs is every time restarted by systemd and everything is repsonsive and working as normal. This started sometime ago; and I have noticed that it happens when I was cleaning my disk and reading big directories in Dired (I have some with ~7k-10k files in them). I was using Helm to complete paths when I was shifting fiels and folders around. After maybe hour or so I would experience big slowdown. I don't have swap file on my system enabled at all, so I am not sure what was going, but I didn't have time to participate in this memory leak thing yet. I haven't experienced any problems since I recompiled Emacs last time, which was in 18th (last Wendesday). I have recompiled without Gtk this time, but I have no idea if it has anything to do with the issue, was just a wild shot to see if things are better. From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 12:29:54 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 17:29:54 +0000 Received: from localhost ([127.0.0.1]:51024 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khFew-00074o-V7 for submit@debbugs.gnu.org; Mon, 23 Nov 2020 12:29:54 -0500 Received: from mail-vi1eur05olkn2080.outbound.protection.outlook.com ([40.92.90.80]:45537 helo=EUR05-VI1-obe.outbound.protection.outlook.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khFev-00074N-1e for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 12:29:49 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EnzkbDxjnlTf24pAFZ0KpJswiosfb3qMgkBsOTKmQOWbbxQxz0sKjZ6UKBrXnClvw7GNy5TEnCq9WUlNfD7gpLRmtRGJbJifKgf33XLAKTz+wMunSsAW7OIMQkHjpAyu1spqSfLnWqwr7yfrfrzG4WV/KEhpnvgIbAJe7t06QuZ7xN5/KaxWUWyAZ1f6co2LHAdmyaeH4fxzEONF9IHjMEufvZvvjjyu9somqCgaT+RNo9Kg76do5VFUneUIWIdoSfD3P+YNCtWmQeeGTqMxmWH5HQMI9UIqi5DTjP9f0skb85aWZ5m6qPSzQa6lR/D9LQRqyKq6KJYJpYiVu3hlCw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=JTp4vtm0L2manFS9+b3+MZ4OhAONINDrSazJynyknR0=; b=NMZpTfgwtiRlVtgc+CxtXcEAxasBpzzlr6Zbq7RGSbgRnI+iK/kkLzLIfNNXiL90bGtcDu1zbmp4hZ+yIZ05uw9ffs/VbWzRnMVa0Xwn49VWp1H3Jaim3hAyzx99Dpvl/XHXDA8q0v+DeZObhwx1qGfuIf9zCEvtSPVG5iz1cYLrNPE6xE569ppPQP0fO/WMn/D1uZ79eXRHrcE5xopO/J1zQD8F0x7VBiSzNqNwe8IYho/pnJ0SasgjiDTbSiNyvtd7ShuMYAvb7im4wj81GCShSNBDr2siu2+A4OXGd5Gd6xnaEiInQbhy6VtUf35K26et71R+jorpBMeAq6t3QA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=live.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=JTp4vtm0L2manFS9+b3+MZ4OhAONINDrSazJynyknR0=; b=M7OStuSVprA/i4B/9f3bDD4P6YV0WYd7UMaevxwI7Z14N6xCMTgn4U+5mn8AE24MGav29Nas1+wzaPb0Wd0o9CfowAxSeS2vhu0MRKEald4/R1xwW9p5ft7uPOTafpukCSlG8pRAqhsRiXpS8nIGfhgMRFv+/wtFvioT8oAbgKD6mgZYPjp11yL3xZPxGXXRLTxoQe176AECEqV31AcnTK5bNe0QbsIpMLaA9e69anhzsnWtRRf7zorA9RdJSw0GklP2XyPt5wgLt2DsChaH7Z127BDWHAldddNyK6sAcsaJtfj9z7E/zW9et6dw1bu6daRa0F3cBIn5QmFhEL6jpw== Received: from AM6EUR05FT039.eop-eur05.prod.protection.outlook.com (2a01:111:e400:fc11::4e) by AM6EUR05HT183.eop-eur05.prod.protection.outlook.com (2a01:111:e400:fc11::147) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20; Mon, 23 Nov 2020 17:29:42 +0000 Received: from AM0PR06MB6577.eurprd06.prod.outlook.com (2a01:111:e400:fc11::44) by AM6EUR05FT039.mail.protection.outlook.com (2a01:111:e400:fc11::434) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20 via Frontend Transport; Mon, 23 Nov 2020 17:29:42 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:D4EDC60DCCE878E0FF7D2231E7BFC6D819592BF00AD86660D0287D378910DB1D; UpperCasedChecksum:9E7C0C2499A44F4BCDB7597E9668296A6C2BF9BE68608236A0608C99CF5FFA1F; SizeAsReceived:7847; Count:46 Received: from AM0PR06MB6577.eurprd06.prod.outlook.com ([fe80::9487:8c7d:da00:4993]) by AM0PR06MB6577.eurprd06.prod.outlook.com ([fe80::9487:8c7d:da00:4993%7]) with mapi id 15.20.3589.030; Mon, 23 Nov 2020 17:29:42 +0000 From: Arthur Miller To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> Date: Mon, 23 Nov 2020 18:29:40 +0100 In-Reply-To: <83blfovzxz.fsf@gnu.org> (Eli Zaretskii's message of "Mon, 23 Nov 2020 17:46:16 +0200") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Content-Type: text/plain X-TMN: [DzqJEG4goGT7ByWby9BMGuIkx722sc6C] X-ClientProxiedBy: AM6PR04CA0007.eurprd04.prod.outlook.com (2603:10a6:20b:92::20) To AM0PR06MB6577.eurprd06.prod.outlook.com (2603:10a6:208:19a::23) X-Microsoft-Original-Message-ID: <87eekkasmz.fsf@live.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from pascal.homepc (90.230.29.56) by AM6PR04CA0007.eurprd04.prod.outlook.com (2603:10a6:20b:92::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20 via Frontend Transport; Mon, 23 Nov 2020 17:29:41 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 46 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 5083479b-77da-47f9-127e-08d88fd55c99 X-MS-TrafficTypeDiagnostic: AM6EUR05HT183: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: vn6IGcXhG5YAeDtAdNmRZ6LaSIZEQ6FOiIt6hYtxQuWuLJfbxbaaVor+agV5QrJbm4ePMSun4rIfI9c6/qNUphGNtxAl1G+FLXbewyAy9anbTU+RDjIcMSWiTFo+8GNBYLZ6STOAwYbsWeTFJEF7DMz1L7qtuDnpGMsPUh5jLOCP7e/AaCUe6ugDyt/DS1XLf6cHPHMqmjRDaGUZ68dyLekaQoiT1fWKFz8d18wQB98kh7ZhrPYxqKujjKjiV3yP X-MS-Exchange-AntiSpam-MessageData: Gvflj5UNXLsdLcTA/wapcMeEkhU176+oPHQStziXU7/e0B/SZRHVpEGOI/TmJ0fzv7uvn/X1NvBZegHpJgs0SO36NuI7ZGv1tG9g2ANjLCLL0MO7elvm4KR6BVr1OC8ZYEjgScB3NXPAFN/6ZB6pCw== X-OriginatorOrg: live.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5083479b-77da-47f9-127e-08d88fd55c99 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Nov 2020 17:29:42.0801 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: AM6EUR05FT039.eop-eur05.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6EUR05HT183 X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, Jean Louis , dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii writes: >> Date: Mon, 23 Nov 2020 13:59:47 +0300 >> From: Jean Louis >> Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, >> michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com >> >> In the IceWM window manager I have visual representation of memory >> usage and that is how I get feeling, there is also tooltip telling me >> that more and more memory is used. When it starts to swap like 3 GB >> then I turn on symon-mode and in Emacs I see more and more swapping. > > I think I described how to write an Emacs function that you could use > to watch the vsize of the Emacs process and alert you to it being > above some threshold. > >> The heap file is here 24M, maybe not needed for review: >> https://gnu.support/files/tmp/2020-11-23/jeprof.23826.0.f.heap >> >> Visualization is here 20K PDF file: >> https://gnu.support/files/tmp/2020-11-23/jeprof.23826.0.f.heap.pdf >> >> Do you see anything interesting inside that should tell about memory leaks? > > I'm not sure. I think I see that you have some timer that triggers a > lot of memory allocations because it conses a lot of Lisp objects. > Whether that is part of the problem or not is not clear. > > Next time when your session causes the system to swap, please type: > > M-: (garbage-collect) RET > > and post here the output of that (it should be a list of numbers > whose meanings are explained in the doc string of garbage-collect). > > Also, I think I asked to tell how large are your buffers by evaluation > the following (again, near the point where your session causes the > system to page heavily): > > (let ((size 0)) > (dolist (buffer (buffer-list) size) > (setq size (+ size (buffer-size buffer))))) > > It is important to have both these pieces of information from the same > session at the same time near the point where you must kill Emacs, so > that we know how much memory is actually used by your session at that > point (as opposed to memory that is "free" in the heap, but was not > returned to the OS). > > Thanks. For me it happends like really, really fast. Things work normally, and then suddenly everythign freezes, and after first freeze, it takes for every to see result of any keypress. For example video in Firefox gets slow down to like a frame per minut or so; I can see that system is alive, but it is impossible to type something like (garbage-collect) and see the result; I would be sitting here for a day :-). The only thing I can is switch to another console, and then back. By that time Emacs process is restarted and everything is normal. I don't use swap file at all, and I can't believe that Emacs is eating up 32 gig or RAM either. However I can't type any command to see what it is peeking at since everything is efefctively frozen. I have seen it at 800 meg on my machine at some time, but it is far away from 32 gig I have. From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 12:44:20 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 17:44:20 +0000 Received: from localhost ([127.0.0.1]:51050 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khFsx-0007TO-SZ for submit@debbugs.gnu.org; Mon, 23 Nov 2020 12:44:20 -0500 Received: from eggs.gnu.org ([209.51.188.92]:56996) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khFsw-0007TC-Ow for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 12:44:19 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:49872) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1khFsq-00033g-Sd; Mon, 23 Nov 2020 12:44:12 -0500 Received: from [176.228.60.248] (port=2229 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1khFsq-0000rp-AU; Mon, 23 Nov 2020 12:44:12 -0500 Date: Mon, 23 Nov 2020 19:44:07 +0200 Message-Id: <83v9dwufx4.fsf@gnu.org> From: Eli Zaretskii To: Arthur Miller In-Reply-To: (message from Arthur Miller on Mon, 23 Nov 2020 18:19:32 +0100) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83k0udw3jb.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Arthur Miller > Cc: Jean Louis , fweimer@redhat.com, > 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, > trevor@trevorbentley.com, carlos@redhat.com > Date: Mon, 23 Nov 2020 18:19:32 +0100 > > > The glibc malloc is the prime suspect anyway. I don't really believe Emacs had > > such a glaring memory leak. > > This has to be something introduced fairly recently, right? Maybe, I'm not sure. Since we introduced the pdumper, we use malloc somewhat differently, and OTOH glibc removed some of the malloc hooks we used to use in versions of Emacs before 26. In addition, glibc is also being developed, and maybe some change there somehow triggered this. As you see, there's more than one factor that could possibly be related. > I didn't have any such problems before, but since maybe few weeks ago, I > have also experienced heavy lockdowns of my entire OS. To the point > where entire X11 got unresposnsive, when it happens I can't even switch > to terminal to kill Emacs. What I do is Alt-Shift to another virtual > linux console. I don't even need to log into the system in that console, > I can then Alt-Shift 1 to go back to one I am logged into, and > everything is normal. Emacs is every time restarted by systemd and > everything is repsonsive and working as normal. > > This started sometime ago; and I have noticed that it happens when I was > cleaning my disk and reading big directories in Dired (I have some with > ~7k-10k files in them). I was using Helm to complete paths when I was > shifting fiels and folders around. After maybe hour or so I would > experience big slowdown. I don't have swap file on my system enabled at > all, so I am not sure what was going, but I didn't have time to > participate in this memory leak thing yet. I haven't experienced any > problems since I recompiled Emacs last time, which was in 18th (last > Wendesday). I have recompiled without Gtk this time, but I have no idea > if it has anything to do with the issue, was just a wild shot to see if > things are better. If the problem is memory, I suggest to look at the system log to see if there are any signs of that. From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 12:45:58 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 17:45:58 +0000 Received: from localhost ([127.0.0.1]:51054 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khFuY-0007WD-BG for submit@debbugs.gnu.org; Mon, 23 Nov 2020 12:45:58 -0500 Received: from eggs.gnu.org ([209.51.188.92]:57470) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khFuW-0007Vz-Of for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 12:45:57 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:49909) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1khFuQ-0003OZ-Jz; Mon, 23 Nov 2020 12:45:50 -0500 Received: from [176.228.60.248] (port=2330 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1khFuQ-00010z-1u; Mon, 23 Nov 2020 12:45:50 -0500 Date: Mon, 23 Nov 2020 19:45:44 +0200 Message-Id: <83tutgufuf.fsf@gnu.org> From: Eli Zaretskii To: Arthur Miller In-Reply-To: (message from Arthur Miller on Mon, 23 Nov 2020 18:29:40 +0100) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Arthur Miller > Cc: Jean Louis , fweimer@redhat.com, > 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, > trevor@trevorbentley.com, carlos@redhat.com > Date: Mon, 23 Nov 2020 18:29:40 +0100 > > For me it happends like really, really fast. Things work normally, and > then suddenly everythign freezes, and after first freeze, it takes for > every to see result of any keypress. For example video in Firefox gets > slow down to like a frame per minut or so; I can see that system is > alive, but it is impossible to type something like (garbage-collect) and > see the result; I would be sitting here for a day :-). That doesn't sound like a memory problem to me. From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 13:34:44 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 18:34:44 +0000 Received: from localhost ([127.0.0.1]:51120 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khGff-0002Pk-I8 for submit@debbugs.gnu.org; Mon, 23 Nov 2020 13:34:44 -0500 Received: from mail-oln040092068044.outbound.protection.outlook.com ([40.92.68.44]:38433 helo=EUR02-HE1-obe.outbound.protection.outlook.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khGfb-0002PS-J0 for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 13:34:38 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XT0VVkRS8TVUR4x8ccYQo90VEg9getxsjKT2SLmuabi1VZECNYqarNOV+gyqw5pKI7Wpzu5r1zH/VifduizqK8vmEME6CQk7c9JELxwGmmrh/H/So39gI8GhG3BI4FGT2ezGNgClu6V0qALU6kf7ZfBfNNsq6r8qRWYWdnf2Eq5NBercCtj/TxZlq487Gl3ZZZaWoys7cVV/Yj+Y06sWM8N0YXLXlBC/Pjx1HRkn/MUJyf1im6RVBzsUrA81hziHN6vfHxjTt5fXOTJBbimUyG4jJTmUI6x9Goyiv4hOPlmIiD+S8Bs71jbNeXktScUH3KnsktdNlGL3DkjROASCWg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wmp1VQMxIqtA5zUpd9fncK2QnZjlc8QZnpADpmGA4RY=; b=OmEfoq5u8Pdo4jlWniO/bDkbUfUvSs6YKkG7wqvkCSHNpj6Tb3ZmWbZYIN9x3VvgVAUcGGShodVSlYeu6UFV/J0ubkJwtZVfxXFbUHL4Wwarrd5Y2QVxM3Dnzvhk6jd5t/frcVHnKnLW0HmRdXrVfTcoh3mGAAFQHY3aec5Ws7TPwrKQEbjHz3ALRBGGTPFT5ydmWIyKi9W8pQiTYANTjI/JshjwZpcyp2YGxb9qNxf5Rp80RoGJwLArKBGDot/AvNnt+Ry7vC4DfFFoGDUD9+OfnU6O7+Ea5oNinB7tbMgQlyHCi38490PbszuX5Z8XDqHSoxOWwFJQAhhC2j/4ug== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=live.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wmp1VQMxIqtA5zUpd9fncK2QnZjlc8QZnpADpmGA4RY=; b=KIdixIs/QckpPyGbICjipxgRMSsv/e0BsLYoLFZqTXTTYEhFUwSC+Ll344EWSqiDYOd89yMOZb6QNKuFO/2/V2ZHZvF1TtDanR9Ov6gwUlHCt2S2CijPvIxU2YXJScDPEC3qZ/Z3zRYe530j7EwJKaJNDgaEqvYLcQDk6g/Ow1mgYFJwHP3gEqF8hsOS0BfFJXq6o5TNMg6u9qc9Rns0nXjA/6sPAFUoPCPVi9jlml1VTpcg8J4vyOBAW6x3t2TxTWBfr+O7W6hA7SKJOFsEGHDhCs7TCTr3PW3YfymesBmUOayfeuUnzCebzp886BiS9otXVoIgpEvpurOvtGPNwQ== Received: from AM5EUR02FT057.eop-EUR02.prod.protection.outlook.com (2a01:111:e400:7e1c::40) by AM5EUR02HT056.eop-EUR02.prod.protection.outlook.com (2a01:111:e400:7e1c::285) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20; Mon, 23 Nov 2020 18:34:27 +0000 Received: from AM0PR06MB6577.eurprd06.prod.outlook.com (2a01:111:e400:7e1c::4e) by AM5EUR02FT057.mail.protection.outlook.com (2a01:111:e400:7e1c::498) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20 via Frontend Transport; Mon, 23 Nov 2020 18:34:27 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:64B8E8B88A061F9BAE8C77B5CED056645785C35F0623CA457A5E80A1D747B449; UpperCasedChecksum:B0F86674135EE5C97BC5F696160EBA653CDE3D2377D11E6AF8246710B60F6098; SizeAsReceived:8087; Count:46 Received: from AM0PR06MB6577.eurprd06.prod.outlook.com ([fe80::9487:8c7d:da00:4993]) by AM0PR06MB6577.eurprd06.prod.outlook.com ([fe80::9487:8c7d:da00:4993%7]) with mapi id 15.20.3589.030; Mon, 23 Nov 2020 18:34:27 +0000 From: Arthur Miller To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83k0udw3jb.fsf@gnu.org> <83v9dwufx4.fsf@gnu.org> Date: Mon, 23 Nov 2020 19:34:26 +0100 In-Reply-To: <83v9dwufx4.fsf@gnu.org> (Eli Zaretskii's message of "Mon, 23 Nov 2020 19:44:07 +0200") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Content-Type: multipart/mixed; boundary="=-=-=" X-TMN: [SSgIU8hpOdoukCrybd0+v9cV/EFDwz7W] X-ClientProxiedBy: AM6PR05CA0024.eurprd05.prod.outlook.com (2603:10a6:20b:2e::37) To AM0PR06MB6577.eurprd06.prod.outlook.com (2603:10a6:208:19a::23) X-Microsoft-Original-Message-ID: <87a6v7c47h.fsf@live.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from pascal.homepc (90.230.29.56) by AM6PR05CA0024.eurprd05.prod.outlook.com (2603:10a6:20b:2e::37) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20 via Frontend Transport; Mon, 23 Nov 2020 18:34:26 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 46 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: bb9eba6f-da2c-4857-044a-08d88fde6857 X-MS-TrafficTypeDiagnostic: AM5EUR02HT056: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: X8QF23EgOOvEyQqMFuAfZz7Qw8fLT7u3m5cM7hkD/A8UReAULeg4ty09nNVoDD/Wacpp7G9kC1PuvP6/j+tiQARtnjN+dkRWv9EOhj825s1383B5fURC19oZ1j6Yf2fdf3AOw/+LLRW8upBF35GInavePD8YTq8rp3KB3q07qTT2dgFGPoEpVbicpdNPD9KCo8epl29wCpfSOEiwjUB0CA== X-MS-Exchange-AntiSpam-MessageData: /Xh0rUg48LvhJpx7/kpdK9GQGg/duLZzFvZkIUZv00od1uZmWoiq0DKC7cOYbUIFJKwY0BOb7minpmaFEuQCgVdnE2DsCVdCrACvMDpQqZi+u3jq8ivk11u0j1ej83NxRq91umC8QzfyzXF4rqMARQ== X-OriginatorOrg: live.com X-MS-Exchange-CrossTenant-Network-Message-Id: bb9eba6f-da2c-4857-044a-08d88fde6857 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Nov 2020 18:34:27.6765 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: AM5EUR02FT057.eop-EUR02.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5EUR02HT056 X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Eli Zaretskii writes: >> From: Arthur Miller >> Cc: Jean Louis , fweimer@redhat.com, >> 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, >> trevor@trevorbentley.com, carlos@redhat.com >> Date: Mon, 23 Nov 2020 18:19:32 +0100 >> >> > The glibc malloc is the prime suspect anyway. I don't really believe Emacs had >> > such a glaring memory leak. >> >> This has to be something introduced fairly recently, right? > > Maybe, I'm not sure. Since we introduced the pdumper, we use malloc > somewhat differently, and OTOH glibc removed some of the malloc hooks > we used to use in versions of Emacs before 26. In addition, glibc is > also being developed, and maybe some change there somehow triggered > this. It has past long since v 26, and pdumber as well :-) You know I am rebuilding all the time and am on relatively latest master so I would have noticed it earlier, so it must be something since last month or so, I am not claiming anything exact, but not too far ago. > As you see, there's more than one factor that could possibly be > related. Yeah; I understand that :-). >> I didn't have any such problems before, but since maybe few weeks ago, I >> have also experienced heavy lockdowns of my entire OS. To the point >> where entire X11 got unresposnsive, when it happens I can't even switch >> to terminal to kill Emacs. What I do is Alt-Shift to another virtual >> linux console. I don't even need to log into the system in that console, >> I can then Alt-Shift 1 to go back to one I am logged into, and >> everything is normal. Emacs is every time restarted by systemd and >> everything is repsonsive and working as normal. >> >> This started sometime ago; and I have noticed that it happens when I was >> cleaning my disk and reading big directories in Dired (I have some with >> ~7k-10k files in them). I was using Helm to complete paths when I was >> shifting fiels and folders around. After maybe hour or so I would >> experience big slowdown. I don't have swap file on my system enabled at >> all, so I am not sure what was going, but I didn't have time to >> participate in this memory leak thing yet. I haven't experienced any >> problems since I recompiled Emacs last time, which was in 18th (last >> Wendesday). I have recompiled without Gtk this time, but I have no idea >> if it has anything to do with the issue, was just a wild shot to see if >> things are better. > > If the problem is memory, I suggest to look at the system log to see > if there are any signs of that. Nothing else crashes, and I have 32 gig, so I am not sure what can be a problem. It is obvious that Emacs causes the lockdown, but I don't know how. I am not really sure what to make of the syslog in this case either. You can take a peek at the last crash I had (17th last week), if it tells you anything more then what apps I use :-). I was playing music with Emacs, so you will see start with pulseaudio, and what happened untill Emacs restarted. As you see everything is happening in 4 seconds interval, so it must be the point when I switched to another console with Alt+Shift. I have no idea why systemd kills Emacs when I do that either, but I discovered it does so. My intention from the beginning was to just pkill Emacs, and hoped it was just X11 that was locked, not entire system, but I discovered that I didn't even needed to kill emacs, it was already killed by the time I logged into another console and everything seemed to work nice after switch to other console, so I kept using it as my workaround since it started; 3 - 4 weeks ago? At least what I am aware of. --=-=-= Content-Type: text/plain; charset=utf-8 Content-Disposition: attachment; filename=crash-log.txt Content-Transfer-Encoding: quoted-printable nov 17 16:32:44 pascal kernel: pulseaudio invoked oom-killer: gfp_mask=3D0x= 100cca(GFP_HIGHUSER_MOVABLE), order=3D0, oom_score_adj=3D0 nov 17 16:32:44 pascal kernel: CPU: 3 PID: 1520 Comm: pulseaudio Tainted: P= OE 5.9.8-arch1-1 #1 nov 17 16:32:44 pascal kernel: Hardware name: Gigabyte Technology Co., Ltd.= Z170X-Gaming 7/Z170X-Gaming 7, BIOS F22f 06/28/2017 nov 17 16:32:44 pascal kernel: Call Trace: nov 17 16:32:44 pascal kernel: dump_stack+0x6b/0x83 nov 17 16:32:44 pascal kernel: dump_header+0x4a/0x1f7 nov 17 16:32:44 pascal kernel: oom_kill_process.cold+0xb/0x10 nov 17 16:32:44 pascal kernel: out_of_memory+0x1a9/0x4d0 nov 17 16:32:44 pascal kernel: __alloc_pages_slowpath.constprop.0+0xc3d/0x= d10 nov 17 16:32:44 pascal kernel: __alloc_pages_nodemask+0x2f2/0x320 nov 17 16:32:44 pascal kernel: pagecache_get_page+0x14a/0x360 nov 17 16:32:44 pascal kernel: filemap_fault+0x682/0x8f0 nov 17 16:32:44 pascal kernel: ext4_filemap_fault+0x2d/0x40 [ext4] nov 17 16:32:44 pascal kernel: __do_fault+0x38/0xd0 nov 17 16:32:44 pascal kernel: handle_mm_fault+0x1542/0x1a40 nov 17 16:32:44 pascal kernel: do_user_addr_fault+0x1e3/0x420 nov 17 16:32:44 pascal kernel: exc_page_fault+0x82/0x1c0 nov 17 16:32:44 pascal kernel: ? asm_exc_page_fault+0x8/0x30 nov 17 16:32:44 pascal kernel: asm_exc_page_fault+0x1e/0x30 nov 17 16:32:44 pascal kernel: RIP: 0033:0x7f9876da1ce0 nov 17 16:32:44 pascal kernel: Code: Unable to access opcode bytes at RIP 0= x7f9876da1cb6. nov 17 16:32:44 pascal kernel: RSP: 002b:00007ffd6eca1538 EFLAGS: 00010202 nov 17 16:32:44 pascal kernel: RAX: 0000000000000000 RBX: 00007ffd6eca15b0 = RCX: 0000000000000000 nov 17 16:32:44 pascal kernel: RDX: 0000000000000086 RSI: 0000000000000000 = RDI: 00007ffd6eca15b0 nov 17 16:32:44 pascal kernel: RBP: 000055e18314c4a0 R08: 00007ffd6eca15b0 = R09: 00007ffd6eca15b0 nov 17 16:32:44 pascal kernel: R10: 00007ffd6edf3080 R11: 0000000000000293 = R12: 0000000000000086 nov 17 16:32:44 pascal kernel: R13: 0000000000000000 R14: 0000000000000000 = R15: 00007f9871e2c1e0 nov 17 16:32:44 pascal kernel: Mem-Info: nov 17 16:32:44 pascal kernel: active_anon:728 inactive_anon:8062765 isolat= ed_anon:0 active_file:81 inactive_file:107 isolated_f= ile:0 unevictable:0 dirty:0 writeback:0 slab_reclaimable:18617 slab_unreclaimable:1= 8473 mapped:113012 shmem:110501 pagetables:18977= bounce:0 free:49932 free_pcp:155 free_cma:0 nov 17 16:32:44 pascal kernel: Node 0 active_anon:2912kB inactive_anon:3225= 1060kB active_file:324kB inactive_file:428kB unevictable:0kB isolated(anon)= :0kB isolated(file):0kB mapped:452048kB > nov 17 16:32:44 pascal kernel: Node 0 DMA free:11796kB min:32kB low:44kB hi= gh:56kB reserved_highatomic:0KB active_anon:0kB inactive_anon:0kB active_fi= le:0kB inactive_file:0kB unevictable:0kB> nov 17 16:32:44 pascal kernel: lowmem_reserve[]: 0 2439 32035 32035 32035 nov 17 16:32:44 pascal kernel: Node 0 DMA32 free:123516kB min:5140kB low:76= 36kB high:10132kB reserved_highatomic:0KB active_anon:0kB inactive_anon:237= 8704kB active_file:228kB inactive_file:3> nov 17 16:32:44 pascal kernel: lowmem_reserve[]: 0 0 29595 29595 29595 nov 17 16:32:44 pascal kernel: Node 0 Normal free:64416kB min:62404kB low:9= 2708kB high:123012kB reserved_highatomic:0KB active_anon:2912kB inactive_an= on:29872356kB active_file:500kB inactive> nov 17 16:32:44 pascal kernel: lowmem_reserve[]: 0 0 0 0 0 nov 17 16:32:44 pascal kernel: Node 0 DMA: 1*4kB (U) 2*8kB (U) 2*16kB (U) 1= *32kB (U) 3*64kB (U) 2*128kB (U) 0*256kB 0*512kB 1*1024kB (U) 1*2048kB (M) = 2*4096kB (M) =3D 11796kB nov 17 16:32:44 pascal kernel: Node 0 DMA32: 87*4kB (UME) 146*8kB (UME) 172= *16kB (UME) 161*32kB (UME) 154*64kB (UME) 141*128kB (UME) 94*256kB (UE) 63*= 512kB (UME) 24*1024kB (UME) 3*2048kB (U)> nov 17 16:32:44 pascal kernel: Node 0 Normal: 2571*4kB (UME) 1787*8kB (UME)= 1175*16kB (UME) 422*32kB (UME) 112*64kB (UME) 0*128kB 0*256kB 0*512kB 1*10= 24kB (M) 0*2048kB 0*4096kB =3D 65076kB nov 17 16:32:44 pascal kernel: Node 0 hugepages_total=3D0 hugepages_free=3D= 0 hugepages_surp=3D0 hugepages_size=3D1048576kB nov 17 16:32:44 pascal kernel: Node 0 hugepages_total=3D0 hugepages_free=3D= 0 hugepages_surp=3D0 hugepages_size=3D2048kB nov 17 16:32:44 pascal kernel: 110712 total pagecache pages nov 17 16:32:44 pascal kernel: 0 pages in swap cache nov 17 16:32:44 pascal kernel: Swap cache stats: add 0, delete 0, find 0/0 nov 17 16:32:44 pascal kernel: Free swap =3D 0kB nov 17 16:32:44 pascal kernel: Total swap =3D 0kB nov 17 16:32:44 pascal kernel: 8377495 pages RAM nov 17 16:32:44 pascal kernel: 0 pages HighMem/MovableOnly nov 17 16:32:44 pascal kernel: 167705 pages reserved nov 17 16:32:44 pascal kernel: 0 pages hwpoisoned nov 17 16:32:44 pascal kernel: Tasks state (memory values in pages): nov 17 16:32:44 pascal kernel: [ pid ] uid tgid total_vm rss pgta= bles_bytes swapents oom_score_adj name nov 17 16:32:44 pascal kernel: [ 264] 0 264 19505 315 16= 7936 0 -250 systemd-journal nov 17 16:32:44 pascal kernel: [ 285] 0 285 5209 766 8= 1920 0 -1000 systemd-udevd nov 17 16:32:44 pascal kernel: [ 289] 0 289 19523 35 5= 3248 0 0 lvmetad nov 17 16:32:44 pascal kernel: [ 400] 0 400 1645 118 5= 3248 0 0 mount.ntfs-3g nov 17 16:32:44 pascal kernel: [ 541] 0 541 1660 117 4= 9152 0 0 mount.ntfs-3g nov 17 16:32:44 pascal kernel: [ 542] 0 542 1660 120 4= 0960 0 0 mount.ntfs-3g nov 17 16:32:44 pascal kernel: [ 543] 0 543 3067 1570 6= 5536 0 0 mount.ntfs-3g nov 17 16:32:44 pascal kernel: [ 547] 192 547 23218 241 9= 0112 0 0 systemd-timesyn nov 17 16:32:44 pascal kernel: [ 555] 81 555 1945 244 4= 9152 0 -900 dbus-daemon nov 17 16:32:44 pascal kernel: [ 560] 985 560 789 70 4= 5056 0 0 dhcpcd nov 17 16:32:44 pascal kernel: [ 561] 0 561 826 88 4= 5056 0 0 dhcpcd nov 17 16:32:44 pascal kernel: [ 562] 985 562 706 68 4= 5056 0 0 dhcpcd nov 17 16:32:44 pascal kernel: [ 563] 985 563 704 68 4= 5056 0 0 dhcpcd nov 17 16:32:44 pascal kernel: [ 564] 0 564 4752 325 8= 1920 0 0 systemd-logind nov 17 16:32:44 pascal kernel: [ 569] 0 569 1660 160 4= 9152 0 0 login nov 17 16:32:44 pascal kernel: [ 598] 1000 598 5137 491 8= 6016 0 0 systemd nov 17 16:32:44 pascal kernel: [ 599] 1000 599 7883 732 9= 4208 0 0 (sd-pam) nov 17 16:32:44 pascal kernel: [ 605] 1000 605 7326490 7260247 5851= 5456 0 0 emacs nov 17 16:32:44 pascal kernel: [ 608] 1000 608 1830 141 5= 7344 0 0 startx nov 17 16:32:44 pascal kernel: [ 660] 1000 660 969 34 4= 5056 0 0 xinit nov 17 16:32:44 pascal kernel: [ 661] 1000 661 82359 43891 57= 3440 0 0 Xorg nov 17 16:32:44 pascal kernel: [ 671] 1000 671 1805 148 4= 9152 0 0 dbus-daemon nov 17 16:32:44 pascal kernel: [ 678] 985 678 826 87 4= 5056 0 0 dhcpcd nov 17 16:32:44 pascal kernel: [ 687] 1000 687 1797 85 4= 9152 0 0 loginscript.sh nov 17 16:32:44 pascal kernel: [ 693] 1000 693 96527 12788 43= 0080 0 0 compiz nov 17 16:32:44 pascal kernel: [ 694] 1000 694 332429 1374 29= 9008 0 0 conky nov 17 16:32:44 pascal kernel: [ 695] 1000 695 11330 6942 13= 1072 0 0 st nov 17 16:32:44 pascal kernel: [ 697] 1000 697 1108967 104024 273= 2032 0 0 firefox nov 17 16:32:44 pascal kernel: [ 699] 1000 699 1333 19 4= 9152 0 0 sleep nov 17 16:32:44 pascal kernel: [ 711] 1000 711 17976 700 9= 4208 0 0 xbindkeys nov 17 16:32:44 pascal kernel: [ 825] 1000 825 59083 227 9= 0112 0 0 gvfsd nov 17 16:32:44 pascal kernel: [ 844] 1000 844 94755 203 9= 0112 0 0 gvfsd-fuse nov 17 16:32:44 pascal kernel: [ 859] 1000 859 2872 1136 6= 1440 0 0 bash nov 17 16:32:44 pascal kernel: [ 1257] 1000 1257 76110 154 8= 1920 0 0 at-spi-bus-laun nov 17 16:32:44 pascal kernel: [ 1329] 1000 1329 667494 49108 131= 8912 0 0 Web Content nov 17 16:32:44 pascal kernel: [ 1418] 133 1418 38418 63 6= 9632 0 0 rtkit-daemon nov 17 16:32:44 pascal kernel: [ 1435] 102 1435 744600 1229 25= 3952 0 0 polkitd nov 17 16:32:44 pascal kernel: [ 1450] 1000 1450 8640623 68340 311= 7056 0 0 WebExtensions nov 17 16:32:44 pascal kernel: [ 1520] 1000 1520 292542 1317 14= 3360 0 0 pulseaudio nov 17 16:32:44 pascal kernel: [ 1545] 1000 1545 59118 219 9= 4208 0 0 gsettings-helpe nov 17 16:32:44 pascal kernel: [ 1563] 1000 1563 669234 34198 130= 2528 0 0 Privileged Cont nov 17 16:32:44 pascal kernel: [ 1731] 1000 1731 74255 19585 54= 4768 0 0 RDD Process nov 17 16:32:44 pascal kernel: [ 4310] 1000 4310 135024 1465 23= 7568 0 0 kactivitymanage nov 17 16:32:44 pascal kernel: [ 4317] 1000 4317 56426 654 15= 1552 0 0 kglobalaccel5 nov 17 16:32:44 pascal kernel: [ 10797] 0 10797 62618 410 10= 2400 0 0 upowerd nov 17 16:32:44 pascal kernel: [ 12950] 1000 12950 712416 57515 198= 6560 0 0 Web Content nov 17 16:32:44 pascal kernel: [ 20825] 1000 20825 809356 104599 267= 0592 0 0 Web Content nov 17 16:32:44 pascal kernel: [ 21785] 1000 21785 590 19 4= 0960 0 0 emacsclient nov 17 16:32:44 pascal kernel: [ 22350] 1000 22350 605480 5705 54= 0672 0 0 Web Content nov 17 16:32:44 pascal kernel: [ 22402] 1000 22402 715592 296243 282= 2144 0 0 qbittorrent nov 17 16:32:44 pascal kernel: [ 23526] 1000 23526 359746 20170 173= 6704 0 0 okular nov 17 16:32:44 pascal kernel: oom-kill:constraint=3DCONSTRAINT_NONE,nodema= sk=3D(null),cpuset=3D/,mems_allowed=3D0,global_oom,task_memcg=3D/user.slice= /user-1000.slice/user@1000.service,task=3Demacs,pid=3D> nov 17 16:32:44 pascal kernel: Out of memory: Killed process 605 (emacs) to= tal-vm:29305960kB, anon-rss:29035892kB, file-rss:0kB, shmem-rss:5096kB, UID= :1000 pgtables:57144kB oom_score_adj:0 nov 17 16:32:45 pascal systemd[1]: Started Getty on tty2. nov 17 16:32:45 pascal kernel: audit: type=3D1130 audit(1605627165.019:102)= : pid=3D1 uid=3D0 auid=3D4294967295 ses=3D4294967295 msg=3D'unit=3Dgetty@tt= y2 comm=3D"systemd" exe=3D"/usr/lib/systemd/systemd" hostn> nov 17 16:32:45 pascal audit[1]: SERVICE_START pid=3D1 uid=3D0 auid=3D42949= 67295 ses=3D4294967295 msg=3D'unit=3Dgetty@tty2 comm=3D"systemd" exe=3D"/us= r/lib/systemd/systemd" hostname=3D? addr=3D? terminal=3D? res=3D> nov 17 16:32:45 pascal kernel: oom_reaper: reaped process 605 (emacs), now = anon-rss:0kB, file-rss:0kB, shmem-rss:5096kB nov 17 16:32:45 pascal systemd[598]: emacs.service: Main process exited, co= de=3Dkilled, status=3D9/KILL nov 17 16:32:45 pascal systemd[598]: emacs.service: Failed with result 'sig= nal'. nov 17 16:32:46 pascal systemd[598]: emacs.service: Scheduled restart job, = restart counter is at 1. nov 17 16:32:46 pascal systemd[598]: Stopped Emacs text editor. nov 17 16:32:46 pascal systemd[598]: Starting Emacs text editor... nov 17 16:32:46 pascal emacs[29603]: Loading /home/arthur/.emacs.d/lisp/ini= t.el (source)... nov 17 16:32:47 pascal emacs[29603]: Loading /home/arthur/.emacs.d/etc/rece= ntf... nov 17 16:32:47 pascal emacs[29603]: Loading /home/arthur/.emacs.d/etc/rece= ntf...done nov 17 16:32:47 pascal emacs[29603]: Loading /home/arthur/.emacs.d/lisp/ema= cs-custom.el (source)... nov 17 16:32:47 pascal emacs[29603]: Loading /home/arthur/.emacs.d/lisp/ema= cs-custom.el (source)...done nov 17 16:32:47 pascal emacs[29603]: Warning (defvaralias): Overwriting val= ue of =E2=80=98save-place=E2=80=99 by aliasing to nov 17 16:32:47 pascal emacs[29603]: =E2=80=98save-place-mode=E2=80=99 Disa= ble showing Disable logging nov 17 16:32:47 pascal emacs[29603]: Loading /home/arthur/.emacs.d/etc/rece= ntf... nov 17 16:32:47 pascal emacs[29603]: Loading /home/arthur/.emacs.d/etc/rece= ntf...done nov 17 16:32:48 pascal emacs[29603]: Loading /home/arthur/.emacs.d/lisp/ini= t.el (source)...done nov 17 16:32:48 pascal emacs[29603]: Starting Emacs daemon. nov 17 16:32:48 pascal systemd[598]: Started Emacs text editor. nov 17 16:32:48 pascal emacs[29603]: Package nnir is deprecated nov 17 16:32:48 pascal rtkit-daemon[1418]: Supervising 6 threads of 3 proce= sses of 1 users. nov 17 16:32:48 pascal rtkit-daemon[1418]: Successfully made thread 29609 o= f process 1520 owned by '1000' RT at priority 5. nov 17 16:32:48 pascal rtkit-daemon[1418]: Supervising 7 threads of 3 proce= sses of 1 users. --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 13:40:36 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 18:40:36 +0000 Received: from localhost ([127.0.0.1]:51129 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khGlN-0002Z5-F9 for submit@debbugs.gnu.org; Mon, 23 Nov 2020 13:40:36 -0500 Received: from mail-oln040092070087.outbound.protection.outlook.com ([40.92.70.87]:19321 helo=EUR03-AM5-obe.outbound.protection.outlook.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khGlK-0002Yq-VJ for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 13:40:31 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Bql+GRRMAvhZxH2I4AVoESjsX642HVR8A8PVeLk/ImzoAvENCthrLcfdkXH5H1Z3SkOF6SnIGU0x6qbzXPLB9kwnEEf8VJDYdCnTjbJZQFXp2qEzfomKFizYodPLLldlOs7yBVah3O9Bbx1pCxj4McLt7NyKT3zf8ZlzKMN0/7x/SCCHwE+5/UO4wYG5LBbk6RSkp1xbB1m3aN22BvsQcWjSRLBp9LmHyl0GUBLPRyUAwmIP4ks2Qqs7DIpiOw2pqGE86Aexnz/sLag9hUXXvLYsvD3gblCfcAeNYfK4m+LiNlrGhZzWCOwy7P2bo3vnWhS9IbK2DHVW/mcF+fz59A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=J8ueBWMQzKgojn6IXjBQQ7HztINYVuHRKSu59i4JzlI=; b=Glv9TQS4Ww0cTeFZ+SeucGOh38KmsVEhzmuo9tXLWS+mnfxohEs3JKC5pe87WkyFcQ/Rym2kdz2kVVNV7ki33nHn+KaLe0UTWdkZLr1xhfzJU3qlABqcA4RynX7K07Jp9irWj5AqTvDgQgVwgeiEpw6Fi5Q9qYi3THpOnq9ANKHOHDAX7lhpfNYNCOrH1knP+pAa7z5g2NwY3E8lRudApSVfpwyle7o4BFLhtkz+bj5RuxuF4RBaMOiiWWDwoVN/FvAOKl4AJdrGKhAknkmIveAEv4BYFlODdjEMn7nHrv1MABq2S37GTZuzND7ot2atfYsX1/uqZvyTImyWrQqFZw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=live.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=J8ueBWMQzKgojn6IXjBQQ7HztINYVuHRKSu59i4JzlI=; b=M4aZO4qwSVfuW/JxlVyKkF+FcKkB6tKguO6AMboe4vvdOePrv7VXvEAgpKO2gzFzoPKRMgXdMJ6Fz6XdgRy7mpAHz5iO9C4L6wkt0qqJPEE1oXl4+AArF7aLhWdBAY2mvYoGIxCawN/eRl88MS0SR0rLmyaxkPhS1rfX6LaXEEig2UOR9Y8F3l9mqqIrODRmyVo8xFiw9RlI6AB/twBzUr8m1OL8Hed1vod7mioU32IcpmYNZdvkc3y+0finVx3FUQ9vPwZ1nsDlCQNC4PLSxfmVeGn1g3AGjEZQBh0BxFLWlFqMKj0OQbszSI1cBsnqaVvyAnui/mAKyLj6wE6L5w== Received: from DB5EUR03FT027.eop-EUR03.prod.protection.outlook.com (2a01:111:e400:7e0a::4e) by DB5EUR03HT171.eop-EUR03.prod.protection.outlook.com (2a01:111:e400:7e0a::358) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20; Mon, 23 Nov 2020 18:40:24 +0000 Received: from AM0PR06MB6577.eurprd06.prod.outlook.com (2a01:111:e400:7e0a::42) by DB5EUR03FT027.mail.protection.outlook.com (2a01:111:e400:7e0a::121) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20 via Frontend Transport; Mon, 23 Nov 2020 18:40:24 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:14C195FEE72F079AAF1B77E14090B7D25F9848322203A967BA210239D4D7972F; UpperCasedChecksum:968BF4AE98CFD0BD194C4526CFE909C457C5D0DDE6DF111C1544A7F1F86C3A13; SizeAsReceived:7947; Count:46 Received: from AM0PR06MB6577.eurprd06.prod.outlook.com ([fe80::9487:8c7d:da00:4993]) by AM0PR06MB6577.eurprd06.prod.outlook.com ([fe80::9487:8c7d:da00:4993%7]) with mapi id 15.20.3589.030; Mon, 23 Nov 2020 18:40:24 +0000 From: Arthur Miller To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <83tutgufuf.fsf@gnu.org> Date: Mon, 23 Nov 2020 19:40:23 +0100 In-Reply-To: <83tutgufuf.fsf@gnu.org> (Eli Zaretskii's message of "Mon, 23 Nov 2020 19:45:44 +0200") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Content-Type: text/plain X-TMN: [GmySE/varDabVDWxkLAk6yFLeoEtpmhV] X-ClientProxiedBy: AS8PR04CA0045.eurprd04.prod.outlook.com (2603:10a6:20b:312::20) To AM0PR06MB6577.eurprd06.prod.outlook.com (2603:10a6:208:19a::23) X-Microsoft-Original-Message-ID: <875z5vc3xk.fsf@live.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from pascal.homepc (90.230.29.56) by AS8PR04CA0045.eurprd04.prod.outlook.com (2603:10a6:20b:312::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20 via Frontend Transport; Mon, 23 Nov 2020 18:40:23 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 46 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: eb18ca6f-757c-4716-202c-08d88fdf3d0e X-MS-TrafficTypeDiagnostic: DB5EUR03HT171: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: V70zWLFjHETLpStfssG/jvv+1jk2O8wQTNQCkfccjgYXqdz6t9j9K4U/wIEqsV4T7H9TwarpFP8YsVS+eN1P4l05HF0Bmvg6BKFbOt3sXFCBYAeJWiXHIssA/Xx7O+cPCctKjQb3Wiw2D9PVcK30nHtBxyLcRQjNJSmPetl5OCgL8qxggVh5ZrTAC5XLLH1uDAU4lqgOYU2QoupAsBthvw== X-MS-Exchange-AntiSpam-MessageData: OepEytiSRDb5ZSSF5VJ+K5QXpGIhZsiRGhaDtv4+JOT2mv9riUJotsI7Oj4f+pPwOr1PoRI0Mp5GEivHAg4IMM13LntEYAnaaep2rQPM35RcWAhaLHFfNVFavfL2QDg8Sgni/PpHPelV06qI9H8k+Q== X-OriginatorOrg: live.com X-MS-Exchange-CrossTenant-Network-Message-Id: eb18ca6f-757c-4716-202c-08d88fdf3d0e X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Nov 2020 18:40:24.0617 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: DB5EUR03FT027.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5EUR03HT171 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Eli Zaretskii writes: >> From: Arthur Miller >> Cc: Jean Louis , fweimer@redhat.com, >> 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, >> trevor@trevorbentley.com, carlos@redhat.com >> Date: Mon, 23 Nov 2020 18:29:40 +0100 >> >> For me it happends like really, really fast. Things work normally, and >> then suddenly everythign freezes, and after first freeze, it takes for >> every to see result of any keypress. For example video in Firefox gets >> slow down to like a frame per minut or so; I can see that system is >> alive, but it is impossible to type something like (garbage-collect) and >> see the result; I would be sitting here for a day :-). > > That doesn't sound like a memory problem to me. Ok; acknowledged; any idea what it could be? I have attached you a syslog from one crash point, you can see Emacs is using almost 8gig or RAM, but I have 32, so there is plenty of unused RAM over. Mayve Emacs internal book keeping of memory? Number of pages? I have no idea myself, sorry if I am not so helpful. From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 13:56:35 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 18:56:35 +0000 Received: from localhost ([127.0.0.1]:51155 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khH0s-0002xl-Pb for submit@debbugs.gnu.org; Mon, 23 Nov 2020 13:56:35 -0500 Received: from static.rcdrun.com ([95.85.24.50]:34189) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khH0r-0002xU-1D for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 13:56:33 -0500 Received: from localhost ([::ffff:41.202.241.56]) (AUTH: PLAIN admin, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by static.rcdrun.com with ESMTPSA id 00000000002C1AE3.000000005FBC05DA.00000579; Mon, 23 Nov 2020 18:56:26 +0000 Date: Mon, 23 Nov 2020 21:55:57 +0300 From: Jean Louis To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks Message-ID: References: <837dqir9kx.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: <837dqir9kx.fsf@gnu.org> User-Agent: Mutt/2.0 (3d08634) (2020-11-07) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * Eli Zaretskii [2020-11-18 18:04]: > > Date: Wed, 18 Nov 2020 00:45:48 +0300 > > From: Jean Louis > > Cc: eliz@gnu.org, fweimer@redhat.com, trevor@trevorbentley.com, > > michael_heerdegen@web.de, carlos@redhat.com, 43389@debbugs.gnu.org > > > > Maybe some simple new and automatic function could be temporarily > > included to spit errors to output on what is Emacs doing when it > > starts swapping (if it is swapping), then such errors could at least > > be captured in a file even if I have to reboot computer. I use now M-x vsize-with-timer for 2GB and M-x good-bye to capture that basic data. (defun vsize-value () (let* ((attributes (process-attributes (emacs-pid))) (vsize-name (car (elt attributes 5))) (vsize-value (cdr (elt attributes 5)))) (list vsize-name vsize-value))) (defun vsize-check (&optional gb) (let* ((vsize (cadr (vsize-value))) (gb (or gb 2)) (gb-1 1048576.0) (gb (* gb gb-1))) (when (> vsize gb) (message "vsize: %.02fG" (/ vsize gb-1))))) (defun vsize-with-timer (gb) (interactive "nGiB: ") (let ((timer (run-with-timer 1 30 'vsize-check gb))) (message "Timer: %s" timer))) (defun good-bye () (interactive) (let* ((garbage (garbage-collect)) (size 0) (buffers-size (dolist (buffer (buffer-list) size) (setq size (+ size (buffer-size buffer))))) (uptime (emacs-uptime)) (pid (emacs-pid)) (vsize (vsize-value)) (file (format "~/tmp/emacs-session-%s.el" pid)) (list (list (list 'uptime uptime) (list 'pid pid) (list 'garbage garbage) (list 'buffers-size buffers-size) (list 'vsize vsize)))) (with-temp-file file (insert (prin1-to-string list))) (message file))) From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 13:56:41 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 18:56:41 +0000 Received: from localhost ([127.0.0.1]:51157 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khH0z-0002xy-2i for submit@debbugs.gnu.org; Mon, 23 Nov 2020 13:56:41 -0500 Received: from static.rcdrun.com ([95.85.24.50]:53533) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khH0n-0002xO-IJ for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 13:56:34 -0500 Received: from localhost ([::ffff:41.202.241.56]) (AUTH: PLAIN admin, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by static.rcdrun.com with ESMTPSA id 00000000002C0006.000000005FBC05D7.00000564; Mon, 23 Nov 2020 18:56:22 +0000 Date: Mon, 23 Nov 2020 21:33:09 +0300 From: Jean Louis To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time Message-ID: References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: <83blfovzxz.fsf@gnu.org> User-Agent: Mutt/2.0 (3d08634) (2020-11-07) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * Eli Zaretskii [2020-11-23 18:46]: > I think I described how to write an Emacs function that you could use > to watch the vsize of the Emacs process and alert you to it being > above some threshold. Yes I will do. I will use this to inform you: (defun good-bye () (interactive) (let* ((garbage (garbage-collect)) (size 0) (buffers-size (dolist (buffer (buffer-list) size) (setq size (+ size (buffer-size buffer))))) (uptime (emacs-uptime)) (pid (emacs-pid)) (file (format "~/tmp/emacs-session-%s.el" pid)) (list (list (list 'uptime uptime) (list 'pid pid) (list 'garbage garbage) (list 'buffers-size buffers-size)))) (with-temp-file file (insert (prin1-to-string list))) (message file))) From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 14:00:43 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 19:00:43 +0000 Received: from localhost ([127.0.0.1]:51170 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khH4s-000367-MP for submit@debbugs.gnu.org; Mon, 23 Nov 2020 14:00:43 -0500 Received: from static.rcdrun.com ([95.85.24.50]:42587) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khH4q-00035s-Ic for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 14:00:40 -0500 Received: from localhost ([::ffff:41.202.241.56]) (AUTH: PLAIN admin, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by static.rcdrun.com with ESMTPSA id 00000000002C0006.000000005FBC06D2.00000614; Mon, 23 Nov 2020 19:00:33 +0000 Date: Mon, 23 Nov 2020 21:58:28 +0300 From: Jean Louis To: Carlos O'Donell Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time Message-ID: References: <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83k0udw3jb.fsf@gnu.org> <5c8da650-6f3d-8a36-6c09-4690b6c59fbe@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: <5c8da650-6f3d-8a36-6c09-4690b6c59fbe@redhat.com> User-Agent: Mutt/2.0 (3d08634) (2020-11-07) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, Eli Zaretskii X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * Carlos O'Donell [2020-11-23 18:54]: > On 11/23/20 8:27 AM, Jean Louis wrote: > > * Eli Zaretskii [2020-11-22 23:17]: > >>> Date: Sun, 22 Nov 2020 22:52:14 +0300 > >>> From: Jean Louis > >>> Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, > >>> michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com > >>> > >>> I am now following this strategy here: > >>> https://github.com/jemalloc/jemalloc/wiki/Use-Case%3A-Leak-Checking > >> > >> That uses a different implementation of malloc, so I'm not sure it > >> will help us. > > > > This is how I have run the shorter Emacs session until it got blocked: > > > > MTRACE_CTL_VERBOSE=1 MTRACE_CTL_FILE=/home/data1/protected/tmp/mtraceEMACS.mtr LD_PRELOAD=/home/data1/protected/Programming/git/glibc-malloc-trace-utils/libmtrace.so emacs >> $DEBUG 2>&1 > > > > And here is mtrace: > > > > https://gnu.support/files/tmp/2020-11-23/mtraceEMACS.mtr.9294.lz > > > > I cannot run Emacs that way as something happens and Emacs get > > blocked. Problem arrives with M-s M-w to search for anything on > > Internet with eww. Anything blocks. And I get message: > > > > error in process filter: Quit > > Sorry, please drop MTRACE_CTL_VERBOSE=1, as it adds output to stdout > which may affect the process if using pipes. # MTRACE_CTL_VERBOSE=1 MTRACE_CTL_FILE=/home/data1/protected/tmp/mtraceEMACS.mtr LD_PRELOAD=/home/data1/protected/Programming/git/glibc-malloc-trace-utils/libmtrace.so emacs >> $DEBUG 2>&1 I have tried like above and it will block as soon as eww is loads some page with the same error as previously. From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 14:06:19 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 19:06:19 +0000 Received: from localhost ([127.0.0.1]:51175 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khHAJ-0003FU-FC for submit@debbugs.gnu.org; Mon, 23 Nov 2020 14:06:19 -0500 Received: from static.rcdrun.com ([95.85.24.50]:55043) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khHAI-0003FE-3G for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 14:06:18 -0500 Received: from localhost ([::ffff:41.202.241.56]) (AUTH: PLAIN admin, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by static.rcdrun.com with ESMTPSA id 00000000002C0006.000000005FBC0823.00000691; Mon, 23 Nov 2020 19:06:11 +0000 Date: Mon, 23 Nov 2020 22:06:06 +0300 From: Jean Louis To: Arthur Miller Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time Message-ID: References: <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83k0udw3jb.fsf@gnu.org> <83v9dwufx4.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: User-Agent: Mutt/2.0 (3d08634) (2020-11-07) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com, Eli Zaretskii X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * Arthur Miller [2020-11-23 21:34]: > It has past long since v 26, and pdumber as well :-) You know I am > rebuilding all the time and am on relatively latest master so I would > have noticed it earlier, so it must be something since last month or so, > I am not claiming anything exact, but not too far ago. I do not remember having this problem by the Bwindi Impenetrable Forest until July 14th, and computer was all the time turned on, went to sleep, turned on. But it was different computer with 8GB while this one is 4GB. I was using EXWM. My experience is similar to Arthur's though I think it is little longer then one month. Maybe instead of all debuggers our human experience can find approximate change introduced. From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 14:16:21 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 19:16:21 +0000 Received: from localhost ([127.0.0.1]:51198 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khHK0-0003Wr-PE for submit@debbugs.gnu.org; Mon, 23 Nov 2020 14:16:21 -0500 Received: from eggs.gnu.org ([209.51.188.92]:54770) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khHJt-0003WM-Lh for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 14:16:14 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:52314) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1khHJn-0004SG-QO; Mon, 23 Nov 2020 14:16:07 -0500 Received: from [176.228.60.248] (port=4045 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1khHJg-00070T-Lf; Mon, 23 Nov 2020 14:16:03 -0500 Date: Mon, 23 Nov 2020 21:15:56 +0200 Message-Id: <83mtz7vq8j.fsf@gnu.org> From: Eli Zaretskii To: Arthur Miller In-Reply-To: (message from Arthur Miller on Mon, 23 Nov 2020 19:34:26 +0100) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83k0udw3jb.fsf@gnu.org> <83v9dwufx4.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Arthur Miller > Cc: bugs@gnu.support, fweimer@redhat.com, 43389@debbugs.gnu.org, > dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, > carlos@redhat.com > Date: Mon, 23 Nov 2020 19:34:26 +0100 > > >> This has to be something introduced fairly recently, right? > > > > Maybe, I'm not sure. Since we introduced the pdumper, we use malloc > > somewhat differently, and OTOH glibc removed some of the malloc hooks > > we used to use in versions of Emacs before 26. In addition, glibc is > > also being developed, and maybe some change there somehow triggered > > this. > It has past long since v 26, and pdumber as well :-) You know I am > rebuilding all the time and am on relatively latest master so I would > have noticed it earlier, so it must be something since last month or so, Not necessarily. This problem seems to happen rarely, and not for everyone. So it's entirely possible you didn't see it by sheer luck. > > If the problem is memory, I suggest to look at the system log to see > > if there are any signs of that. > Nothing else crashes, and I have 32 gig, so I am not sure what can be a > problem. Then it most probably isn't memory. IOW, not the problem discussed in this bug report. From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 14:24:07 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 19:24:07 +0000 Received: from localhost ([127.0.0.1]:51210 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khHRX-0003jD-3Z for submit@debbugs.gnu.org; Mon, 23 Nov 2020 14:24:07 -0500 Received: from eggs.gnu.org ([209.51.188.92]:56892) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khHRV-0003ij-Fe for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 14:24:06 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:52438) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1khHRP-00072x-JC; Mon, 23 Nov 2020 14:23:59 -0500 Received: from [176.228.60.248] (port=4526 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1khHRL-0007bx-Is; Mon, 23 Nov 2020 14:23:57 -0500 Date: Mon, 23 Nov 2020 21:23:50 +0200 Message-Id: <83lfervpvd.fsf@gnu.org> From: Eli Zaretskii To: Arthur Miller In-Reply-To: (message from Arthur Miller on Mon, 23 Nov 2020 19:40:23 +0100) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <83tutgufuf.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Arthur Miller > Cc: bugs@gnu.support, fweimer@redhat.com, 43389@debbugs.gnu.org, > dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, > carlos@redhat.com > Date: Mon, 23 Nov 2020 19:40:23 +0100 > > > That doesn't sound like a memory problem to me. > Ok; acknowledged; any idea what it could be? Actually, I take that back: it does look like the OOM killer that killed Emacs: nov 17 16:32:44 pascal kernel: oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),cpuset=/,mems_allowed=0,global_oom,task_memcg=/user.slice/user-1000.slice/user@1000.service,task=emacs,pid=> nov 17 16:32:44 pascal kernel: Out of memory: Killed process 605 (emacs) total-vm:29305960kB, anon-rss:29035892kB, file-rss:0kB, shmem-rss:5096kB, UID:1000 pgtables:57144kB oom_score_adj:0 > I have attached you a syslog from one crash point, you can see Emacs > is using almost 8gig or RAM, but I have 32, so there is plenty of > unused RAM over. It says above that the total VM size of the Emacs process was 29GB, not 8. So maybe yours is the same problem after all. How about writing a simple function that reports the total VM size of the Emacs process (via process-attributes), and running it from some timer? Then you could see how long it takes you to get from, say, 2GB to more than 20GB, and maybe also take notes of what you are doing at that time? From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 14:34:50 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 19:34:50 +0000 Received: from localhost ([127.0.0.1]:51230 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khHbt-00040U-Ut for submit@debbugs.gnu.org; Mon, 23 Nov 2020 14:34:50 -0500 Received: from eggs.gnu.org ([209.51.188.92]:60440) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khHbs-00040H-Ap for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 14:34:48 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:52652) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1khHbm-0002GE-Ex; Mon, 23 Nov 2020 14:34:42 -0500 Received: from [176.228.60.248] (port=1223 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1khHbj-0007uD-GO; Mon, 23 Nov 2020 14:34:41 -0500 Date: Mon, 23 Nov 2020 21:34:33 +0200 Message-Id: <83im9vvpdi.fsf@gnu.org> From: Eli Zaretskii To: Jean Louis In-Reply-To: (message from Jean Louis on Mon, 23 Nov 2020 21:58:28 +0300) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83k0udw3jb.fsf@gnu.org> <5c8da650-6f3d-8a36-6c09-4690b6c59fbe@redhat.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, carlos@redhat.com, trevor@trevorbentley.com, michael_heerdegen@web.de X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Mon, 23 Nov 2020 21:58:28 +0300 > From: Jean Louis > Cc: Eli Zaretskii , fweimer@redhat.com, > 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, > trevor@trevorbentley.com > > > Sorry, please drop MTRACE_CTL_VERBOSE=1, as it adds output to stdout > > which may affect the process if using pipes. > > # MTRACE_CTL_VERBOSE=1 > MTRACE_CTL_FILE=/home/data1/protected/tmp/mtraceEMACS.mtr LD_PRELOAD=/home/data1/protected/Programming/git/glibc-malloc-trace-utils/libmtrace.so emacs >> $DEBUG 2>&1 Any reason you redirect stderr to stdout? I'm not saying that is the reason for the EWW problems, but just to be sure, can you try without that? The trace goes to stderr, right? So just "2> file" should be sufficient to collect the trace. Carlos, am I right? From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 14:37:34 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 19:37:34 +0000 Received: from localhost ([127.0.0.1]:51234 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khHeY-00044a-Dk for submit@debbugs.gnu.org; Mon, 23 Nov 2020 14:37:34 -0500 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:36744) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khHeW-00044R-JR for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 14:37:33 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1606160251; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=VO/b3+zB4upNMOxKMJWGSByJGpbwEA6ChVRWEp3fPGE=; b=exHAYFAUx2xpqKnYc1aMcFep9vh9nxLMLLdfaJ/2MDmMJaNboYr8G3Achce6v4DxMNq6lP Td+uUZSo5FbXDfDFF9+w6nrYtnWyrMDnEUC9zY/nKoEgjbDmiqIQE4X6EExCkTE9Qhh5fU A7o/ReLQJpxem5I9QyJaOoFRMvO0+4o= Received: from mail-qv1-f71.google.com (mail-qv1-f71.google.com [209.85.219.71]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-254-TLOTHOe2N2CwrKWKu8gl6Q-1; Mon, 23 Nov 2020 14:37:26 -0500 X-MC-Unique: TLOTHOe2N2CwrKWKu8gl6Q-1 Received: by mail-qv1-f71.google.com with SMTP id s8so13701700qvr.20 for <43389@debbugs.gnu.org>; Mon, 23 Nov 2020 11:37:26 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=VO/b3+zB4upNMOxKMJWGSByJGpbwEA6ChVRWEp3fPGE=; b=lKg3zvURq4bJ9/Cut6hJFbpmQriCjAJ1cP0h+Aeit6RZnfcf37G8drDXrEHlt8HBK4 V3ZrZ7dbBQ6FdZMf0ZokmjF64Tj9fr0w7xZoJcBlrav/d7RcgW1ruuG7KajtbxtvPySL FhqueL8Cg52l84YR2QPxguemZDPc7yGFo/RBuMJi8RfGNX2kEj5VQjI5NnyegaMpfnHd BUwmwuyXhm5myqo/z2QbeS7fG4h4yvC4r86M+EkFnb+NvnnupCf7G9jvvEumpsC9ylAi yeSUF5vksgMNERXQzEVQEmRO/TESD13xPtVGzyVE0uUCCTBRLcRWAAHtLxLzdDdn5kIn 087A== X-Gm-Message-State: AOAM531c9nt9zVBn+AUNqDuC8n+rR/RuEMFSTkj9a99Lp1oC2asdgHMF N4qF7PEM+r/SBXXx35kfMyq7q0PGFGzt4kuaid5ZL8wt9h1tn/1X35yl95ycBc/3W5jmwna3CpV G3w4JMdhJhqmNYro= X-Received: by 2002:ae9:ebd3:: with SMTP id b202mr1134618qkg.26.1606160246217; Mon, 23 Nov 2020 11:37:26 -0800 (PST) X-Google-Smtp-Source: ABdhPJwVT8RuSUG8gcFqfP2Ju1DGq1H7gUEjn5JqCBOX3tBnLbblTIczVD840rJSK9DaymyBuKV9kg== X-Received: by 2002:ae9:ebd3:: with SMTP id b202mr1134605qkg.26.1606160246044; Mon, 23 Nov 2020 11:37:26 -0800 (PST) Received: from [192.168.1.16] (198-84-214-74.cpe.teksavvy.com. [198.84.214.74]) by smtp.gmail.com with ESMTPSA id c27sm10107506qkk.57.2020.11.23.11.37.24 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 23 Nov 2020 11:37:25 -0800 (PST) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time To: Jean Louis References: <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83k0udw3jb.fsf@gnu.org> <5c8da650-6f3d-8a36-6c09-4690b6c59fbe@redhat.com> From: Carlos O'Donell Organization: Red Hat Message-ID: <4c13d495-c0a1-b783-aacc-572887913212@redhat.com> Date: Mon, 23 Nov 2020 14:37:24 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0 MIME-Version: 1.0 In-Reply-To: Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=carlos@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, Eli Zaretskii X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 11/23/20 1:58 PM, Jean Louis wrote: > * Carlos O'Donell [2020-11-23 18:54]: >> On 11/23/20 8:27 AM, Jean Louis wrote: >>> * Eli Zaretskii [2020-11-22 23:17]: >>>>> Date: Sun, 22 Nov 2020 22:52:14 +0300 >>>>> From: Jean Louis >>>>> Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, >>>>> michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com >>>>> >>>>> I am now following this strategy here: >>>>> https://github.com/jemalloc/jemalloc/wiki/Use-Case%3A-Leak-Checking >>>> >>>> That uses a different implementation of malloc, so I'm not sure it >>>> will help us. >>> >>> This is how I have run the shorter Emacs session until it got blocked: >>> >>> MTRACE_CTL_VERBOSE=1 MTRACE_CTL_FILE=/home/data1/protected/tmp/mtraceEMACS.mtr LD_PRELOAD=/home/data1/protected/Programming/git/glibc-malloc-trace-utils/libmtrace.so emacs >> $DEBUG 2>&1 >>> >>> And here is mtrace: >>> >>> https://gnu.support/files/tmp/2020-11-23/mtraceEMACS.mtr.9294.lz >>> >>> I cannot run Emacs that way as something happens and Emacs get >>> blocked. Problem arrives with M-s M-w to search for anything on >>> Internet with eww. Anything blocks. And I get message: >>> >>> error in process filter: Quit >> >> Sorry, please drop MTRACE_CTL_VERBOSE=1, as it adds output to stdout >> which may affect the process if using pipes. > > # MTRACE_CTL_VERBOSE=1 > MTRACE_CTL_FILE=/home/data1/protected/tmp/mtraceEMACS.mtr LD_PRELOAD=/home/data1/protected/Programming/git/glibc-malloc-trace-utils/libmtrace.so emacs >> $DEBUG 2>&1 > > I have tried like above and it will block as soon as eww is loads some > page with the same error as previously. That's interesting. Are you able to attach gdb and get a backtrace to see what the process is blocked on? -- Cheers, Carlos. From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 14:38:56 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 19:38:56 +0000 Received: from localhost ([127.0.0.1]:51239 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khHfr-00046g-Re for submit@debbugs.gnu.org; Mon, 23 Nov 2020 14:38:56 -0500 Received: from mail-oln040092066087.outbound.protection.outlook.com ([40.92.66.87]:57060 helo=EUR01-VE1-obe.outbound.protection.outlook.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khHfp-00046R-7J for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 14:38:54 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LIp2L7OZyHb8PL/Qzyev30aV8p2UXWX29OFgKyvbtQXM9Yn2eMUyiXOfC94n3NzngQ6kW7YWhjell5CGKukAya0hVYJPFxgi5TGl/+6BoKGFPoRawsbwGDRm7RjbUw7xPxEMbPhOYBASPQ7Et8M6FH8mv+t8NU/hi26qOQlD1G2MR3BG+kTkdH7s1z2I6iRqQ0C6kobl2maaV9iXmmmh8DOyKF8ge8aYhHqXF56x8ErK1Rq7xjvw99MIG6+Bu8UOyY525Wvo5zFnvfNDgRuFVGddQ1J6ok3rZ2wIH7LgADLWuRhmxNdFE8U0w76dHt8vAt07LiCU2oTaRSjrptVlrQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pO5SK2VQlzdaym/w8+Zb8WibKLQWpD8rRI8R9GwxcAc=; b=A6zk4MGTNtTubi+7C2qqpoI5J9s8+iAiKnSYV6aZDpCZsk71ogbI2t5fTFsj95is7Zbb7hE7IF0LZLDa+pgri0PJvd9gwP6INKVuQNYbPY9wblOlY4r0cjM48faW69wqPp248vKVbCMeaNO6u60YMIOh/QqsX+qPFYyUA4L7vO/AYmElDcw0hMWbXKMegFhI+m616Q9ruPphvZ6ut/0/1lFV3mc/MVzILee/85mvzYbtoNkbPrlmJjoO22AvcXjbSNKHXL83nzRtXgcs+0of08mNKNm3Tx8B0tvWM5TKYYevZ8g2RJH7QdsJDiINEhKOolV2kPCRBaYSi7SF1oft9w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=live.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pO5SK2VQlzdaym/w8+Zb8WibKLQWpD8rRI8R9GwxcAc=; b=NI4mqTzyWLM7Yp+yAIum0QRmWoJIrFW7hoWPcWcKIXLA2QHUiXbVs2KTt2LbF96AtS+1rdbP571zfE369X2alF+dzcP0ZGK/px/oI7jxIFge2Y3XUqV+GeArPiC1UoSuX3Y0vTjl9zJnwAVIMiKgFUUpyWQ9lD29WtSbeHbCBDffI/oLsMCq+j3jW6uUxksQGyH/I+YwuB+ZUeRkQ0XIiIfsi3AxQl32E4r6+LjTu/A5YR84feP5iVaaq0PmjIduqjB3vyHcofFoJv01L0XgVnhT5K9NxOt16vZUh9AdsSmrKWTvQxv/3ewz2UlZzgTUDlYCp+WuIDHym1ocZ8yZnQ== Received: from VE1EUR01FT051.eop-EUR01.prod.protection.outlook.com (2a01:111:e400:7e19::42) by VE1EUR01HT103.eop-EUR01.prod.protection.outlook.com (2a01:111:e400:7e19::367) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20; Mon, 23 Nov 2020 19:38:46 +0000 Received: from AM0PR06MB6577.eurprd06.prod.outlook.com (2a01:111:e400:7e19::44) by VE1EUR01FT051.mail.protection.outlook.com (2a01:111:e400:7e19::264) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20 via Frontend Transport; Mon, 23 Nov 2020 19:38:46 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:0F495799C31CB6FA3E69A73F6BF50DC36DD19C9F3633693469EBBF0A1D38279A; UpperCasedChecksum:D8987CDEC0F7DAE7BDB8B2738313E07C8F99EC546B5FBF601E23B2B7E2619610; SizeAsReceived:8049; Count:46 Received: from AM0PR06MB6577.eurprd06.prod.outlook.com ([fe80::9487:8c7d:da00:4993]) by AM0PR06MB6577.eurprd06.prod.outlook.com ([fe80::9487:8c7d:da00:4993%7]) with mapi id 15.20.3589.030; Mon, 23 Nov 2020 19:38:46 +0000 From: Arthur Miller To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <83tutgufuf.fsf@gnu.org> <83lfervpvd.fsf@gnu.org> Date: Mon, 23 Nov 2020 20:38:45 +0100 In-Reply-To: <83lfervpvd.fsf@gnu.org> (Eli Zaretskii's message of "Mon, 23 Nov 2020 21:23:50 +0200") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Content-Type: text/plain X-TMN: [VbjeyIZgbF/BMdhdjURfcIMEXUYnRf2G] X-ClientProxiedBy: AM5PR0701CA0007.eurprd07.prod.outlook.com (2603:10a6:203:51::17) To AM0PR06MB6577.eurprd06.prod.outlook.com (2603:10a6:208:19a::23) X-Microsoft-Original-Message-ID: <871rgjc18a.fsf@live.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from pascal.homepc (90.230.29.56) by AM5PR0701CA0007.eurprd07.prod.outlook.com (2603:10a6:203:51::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3611.12 via Frontend Transport; Mon, 23 Nov 2020 19:38:45 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 46 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 8b89cb39-ff02-45f0-78ea-08d88fe7649d X-MS-TrafficTypeDiagnostic: VE1EUR01HT103: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: nMoHdvKLc7TWiyoqDuNNFUswjuA6ZKWuK4epPHGkIKxupCXdgJXFkG/fLydtD7szErMgy7qnDOq2JaqG+3r3QjPbNuEAf3QJ9rjwB1RsCEJ3UV9UagjkHtXtsxnLxkjwW2biPrPCBE12Orq7G1RAQ3W52IHstoqNCJsc/XYoRyY+Xm0d6z2r1Zh6alObKvEZeqMtsfvXnSdZW7QgZ7atqg== X-MS-Exchange-AntiSpam-MessageData: cFjyQi/SH2W0Gzu+9qf1krcnt+gxJX5wZNbe7nNuEZbwtLdf304sX8RgSNvIn+T5Zp6IoclU/dWuqbvXoO2P/8r+GI4y2sDEHZ+D8uKZoLYpfXK/sBPWk1v0yTeU00OamFBOQspbSSv3WTJXEmGOKw== X-OriginatorOrg: live.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8b89cb39-ff02-45f0-78ea-08d88fe7649d X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Nov 2020 19:38:46.4210 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: VE1EUR01FT051.eop-EUR01.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1EUR01HT103 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Eli Zaretskii writes: >> From: Arthur Miller >> Cc: bugs@gnu.support, fweimer@redhat.com, 43389@debbugs.gnu.org, >> dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, >> carlos@redhat.com >> Date: Mon, 23 Nov 2020 19:40:23 +0100 >> >> > That doesn't sound like a memory problem to me. >> Ok; acknowledged; any idea what it could be? > > Actually, I take that back: it does look like the OOM killer that > killed Emacs: > > nov 17 16:32:44 pascal kernel: > oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),cpuset=/,mems_allowed=0,global_oom,task_memcg=/user.slice/user-1000.slice/user@1000.service,task=emacs,pid=> > nov 17 16:32:44 pascal kernel: Out of memory: Killed process 605 (emacs) > total-vm:29305960kB, anon-rss:29035892kB, file-rss:0kB, shmem-rss:5096kB, > UID:1000 pgtables:57144kB oom_score_adj:0 >> I have attached you a syslog from one crash point, you can see Emacs >> is using almost 8gig or RAM, but I have 32, so there is plenty of >> unused RAM over. Haha, I'm such a noob :-). You have eagle eye; I wasn't looking carefully. I just looked at the process list which showed ~7 gig or ram. > It says above that the total VM size of the Emacs process was 29GB, > not 8. > > So maybe yours is the same problem after all. > How about writing a simple function that reports the total VM size of > the Emacs process (via process-attributes), and running it from some > timer? Then you could see how long it takes you to get from, say, 2GB > to more than 20GB, and maybe also take notes of what you are doing at > that time? Ouch; I have to look up (process-attributes) in the info ... :-(. I planned to do something else today, but I'll give it a look. By the way; I haven't experienced this since 18th this month; day after when I rebuild. So it has been almost 5 days without a crash. But I also don't shift big folders any more; I cleanud up my old backup drive. Is there some hefty ram-tasking benchmark with lots of random list creations and deletions I could run; maybe some suitable ert-test already written? From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 14:40:16 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 19:40:16 +0000 Received: from localhost ([127.0.0.1]:51243 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khHhA-00049A-AG for submit@debbugs.gnu.org; Mon, 23 Nov 2020 14:40:16 -0500 Received: from mx.sdf.org ([205.166.94.24]:61612) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khHh8-000492-KM for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 14:40:14 -0500 Received: from mab (ma.sdf.org [205.166.94.33]) by mx.sdf.org (8.15.2/8.14.5) with ESMTP id 0ANJdaS8027756; Mon, 23 Nov 2020 19:39:36 GMT From: Andrea Corallo To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <83tutgufuf.fsf@gnu.org> <83lfervpvd.fsf@gnu.org> Date: Mon, 23 Nov 2020 19:39:35 +0000 In-Reply-To: <83lfervpvd.fsf@gnu.org> (Eli Zaretskii's message of "Mon, 23 Nov 2020 21:23:50 +0200") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com, Arthur Miller X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) I think would be nice to have a script that monitors Emacs memory footprint and attach gdb on it when the memory usage is over a certain (high) threshold. This way should be easy to see what we are doing because at that point we are supposed to be allocating extremely often. Andrea From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 14:49:58 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 19:49:58 +0000 Received: from localhost ([127.0.0.1]:51263 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khHqX-0004OL-Q2 for submit@debbugs.gnu.org; Mon, 23 Nov 2020 14:49:58 -0500 Received: from mail-vi1eur05olkn2018.outbound.protection.outlook.com ([40.92.90.18]:62689 helo=EUR05-VI1-obe.outbound.protection.outlook.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khHqW-0004O9-8d for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 14:49:56 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=O+AXlJzldMxS2ZVWh0Ph1wyY8rT2csIIp5Cf593aXAPre1jGnvGNXao5E+6sEPFofk44Tvm9WBXoq5HzVL/ihptNvYf2mx/KOq29MswGXM1/5xvnC/lhdtM6cLoKfw1d0zsUHgzMf1s8leyWX8tYFbNfejTPZ4JFjRHKjSQqHIP4BfU43IAFhr9li8EH7G2ESjpizNP62Rxbdp5oH8Y2Pr3moQm+HVuZ8euCSPE6Y1lvIej1vwXxYpaoMFc2H1Z2lWQMihfeH8QOAkbA/se5sq7K0WnE0sX3z+DEZ9O7GjO1JAU+zH9gYbX6wvokpRpr/XFzkITnEjZXhxQHzAOaKA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5RDJ+il7JBJk94K3fLQ24bOAM5RUVMWUgc/mDSUG350=; b=lswmGHtcEj++It1ANqZgp17mBkBQWisMOVIjewCX+uvXlS/x5vutyPXLlXXObs/jGHE1deAo79lZPsIlnV52AXHCDdAOReKpQvDNQDwkX8stcyjk3w8RcuVOpdHdoGE1+nUB8pAkuMMPVFR9H8Z7CV6NEkC+YyQN0k2ifd7JUr+q6CvVliPTycDKkAE0HUyNdLM9KhQOKXbAx6fnkRYW1k9hadeIpeMiuYbDK7jXVHQGijRDCRlKEIW9tX8IBDia//Sr+dDIOdT64HKmA3KpcmFZ2okPMS32/J0tmZj8rsIlheP7Bsv/wvAjUrphUrGaMhMzCA9HVl3GCTDUjKIPNQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=live.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5RDJ+il7JBJk94K3fLQ24bOAM5RUVMWUgc/mDSUG350=; b=GTyTfhZfp3f0zlKtkFVDqUQodmrM6UiGwzSAxXPwhQ/m96/1ufzxsbou+QnpACrTNxB/NqCoi4lKuTbCVDPYAuXKe7JQBtIK4YRbuzVDaGluX9VHRtt20KjIwwa/+Eh82vdemVPVyCJyJYa7ofcOqY8djZWNG4DSqxo/GPTkI8drvaTTQhzXN3JEnPe+P9aZIOcZW2MBoEEMeu7ZG9TchxUwYSZeeeFofrh8RLDVmvevTDeO4FT+VvSByCCaZRb5KqnLBb9U8OgWJ1JO8WxDJOd2Caxm/9nN82eVtQTTQZoT1fQVqtpHQ9sjoW8HiWNPGESBFfPM0KCrG1K0Vm2e3Q== Received: from AM6EUR05FT017.eop-eur05.prod.protection.outlook.com (2a01:111:e400:fc11::4d) by AM6EUR05HT118.eop-eur05.prod.protection.outlook.com (2a01:111:e400:fc11::344) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20; Mon, 23 Nov 2020 19:49:49 +0000 Received: from AM0PR06MB6577.eurprd06.prod.outlook.com (2a01:111:e400:fc11::4d) by AM6EUR05FT017.mail.protection.outlook.com (2a01:111:e400:fc11::309) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20 via Frontend Transport; Mon, 23 Nov 2020 19:49:49 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:0FCD6DE85F096C9227E106D5C451649B398C3388085BD1C56302E584076285D6; UpperCasedChecksum:0AE89E7A817F2A2C5A8B99DC78F79DBFCFD3D4C2C19C147E09342308C8B2D6B5; SizeAsReceived:8143; Count:46 Received: from AM0PR06MB6577.eurprd06.prod.outlook.com ([fe80::9487:8c7d:da00:4993]) by AM0PR06MB6577.eurprd06.prod.outlook.com ([fe80::9487:8c7d:da00:4993%7]) with mapi id 15.20.3589.030; Mon, 23 Nov 2020 19:49:49 +0000 From: Arthur Miller To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83k0udw3jb.fsf@gnu.org> <83v9dwufx4.fsf@gnu.org> <83mtz7vq8j.fsf@gnu.org> Date: Mon, 23 Nov 2020 20:49:48 +0100 In-Reply-To: <83mtz7vq8j.fsf@gnu.org> (Eli Zaretskii's message of "Mon, 23 Nov 2020 21:15:56 +0200") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Content-Type: text/plain X-TMN: [XnyWD5eGdiWX+dKUe4xI/5jC62rZh4xV] X-ClientProxiedBy: AM6P191CA0031.EURP191.PROD.OUTLOOK.COM (2603:10a6:209:8b::44) To AM0PR06MB6577.eurprd06.prod.outlook.com (2603:10a6:208:19a::23) X-Microsoft-Original-Message-ID: <87wnybam5f.fsf@live.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from pascal.homepc (90.230.29.56) by AM6P191CA0031.EURP191.PROD.OUTLOOK.COM (2603:10a6:209:8b::44) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20 via Frontend Transport; Mon, 23 Nov 2020 19:49:49 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 46 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: ea69df7e-1b88-4318-6a22-08d88fe8efe9 X-MS-TrafficTypeDiagnostic: AM6EUR05HT118: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: bxFw16+WHaHjp+XJcGHQUg+u9pP3MB7YLUdFrxlWc3zcPD92vfoUBuK27C0+1qEu/QICbjc3dHHkPRuh0LY40MktlvXhGCPmmJ2AOUg9ZC1kB9WzwN+meZYOGQ9y4W7EuTyFRuDSDqEnjkS30WE1YIFQZxVhXxZ2jf7hDWrwqh/l01nnXycbFOAe1MKH/CBcuK9npXip1jesBzK7mXzWkQ== X-MS-Exchange-AntiSpam-MessageData: ypLHGvhE++8wDlRsJoRI7m3Y1f60Uj050utcHJWhvzDMnKR5BLR6kyx3hEDn4v5axZLLSTtVG6YFeTGhDayhu0CxLl5Brn/guZ4YPrzG88QsYiPAftHuzXEDIZrHqHUWDIdyLVS/T0xwJNNJ3a/f+A== X-OriginatorOrg: live.com X-MS-Exchange-CrossTenant-Network-Message-Id: ea69df7e-1b88-4318-6a22-08d88fe8efe9 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Nov 2020 19:49:49.6307 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: AM6EUR05FT017.eop-eur05.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6EUR05HT118 X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii writes: >> From: Arthur Miller >> Cc: bugs@gnu.support, fweimer@redhat.com, 43389@debbugs.gnu.org, >> dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, >> carlos@redhat.com >> Date: Mon, 23 Nov 2020 19:34:26 +0100 >> >> >> This has to be something introduced fairly recently, right? >> > >> > Maybe, I'm not sure. Since we introduced the pdumper, we use malloc >> > somewhat differently, and OTOH glibc removed some of the malloc hooks >> > we used to use in versions of Emacs before 26. In addition, glibc is >> > also being developed, and maybe some change there somehow triggered >> > this. >> It has past long since v 26, and pdumber as well :-) You know I am >> rebuilding all the time and am on relatively latest master so I would >> have noticed it earlier, so it must be something since last month or so, > > Not necessarily. This problem seems to happen rarely, and not for > everyone. So it's entirely possible you didn't see it by sheer luck. Of course, but why would I suddently start to experience it? Neither my usage pattern not even Emacs or system configuration changed at that time.Can't be just shear luck, I haven'tdone anything differently that I wasn't doing 2 or 6 months before; same ol; just newer master & system updates. The only thing that changed regularly was of course system updates: kernel, gcc & co etc. So it maybe is as mentioned earlier in this thread by either you or somebody else is that glibc changed and that maybe triggers something in Emacs based on how Emacs use it. I don't know I am not expert in this. Isn't Valgrind good for this kind of problems? Can I run emacs as a systemd service in Valgrind? From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 14:50:13 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 19:50:13 +0000 Received: from localhost ([127.0.0.1]:51267 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khHqn-0004PL-4O for submit@debbugs.gnu.org; Mon, 23 Nov 2020 14:50:13 -0500 Received: from static.rcdrun.com ([95.85.24.50]:47331) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khHql-0004P5-FO for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 14:50:11 -0500 Received: from localhost ([::ffff:41.202.241.56]) (AUTH: PLAIN admin, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by static.rcdrun.com with ESMTPSA id 00000000002C1AE3.000000005FBC126C.00000CE0; Mon, 23 Nov 2020 19:50:04 +0000 Date: Mon, 23 Nov 2020 22:49:51 +0300 From: Jean Louis To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time Message-ID: References: <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83k0udw3jb.fsf@gnu.org> <5c8da650-6f3d-8a36-6c09-4690b6c59fbe@redhat.com> <83im9vvpdi.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: <83im9vvpdi.fsf@gnu.org> User-Agent: Mutt/2.0 (3d08634) (2020-11-07) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, carlos@redhat.com, trevor@trevorbentley.com, michael_heerdegen@web.de X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * Eli Zaretskii [2020-11-23 22:35]: > > Date: Mon, 23 Nov 2020 21:58:28 +0300 > > From: Jean Louis > > Cc: Eli Zaretskii , fweimer@redhat.com, > > 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, > > trevor@trevorbentley.com > > > > > Sorry, please drop MTRACE_CTL_VERBOSE=1, as it adds output to stdout > > > which may affect the process if using pipes. > > > > # MTRACE_CTL_VERBOSE=1 > > MTRACE_CTL_FILE=/home/data1/protected/tmp/mtraceEMACS.mtr LD_PRELOAD=/home/data1/protected/Programming/git/glibc-malloc-trace-utils/libmtrace.so emacs >> $DEBUG 2>&1 > > Any reason you redirect stderr to stdout? I'm not saying that is the > reason for the EWW problems, but just to be sure, can you try without > that? The trace goes to stderr, right? So just "2> file" should be > sufficient to collect the trace. Carlos, am I right? That could be. I have just tried with: MTRACE_CTL_FILE=/home/data1/protected/tmp/mtraceEMACS.mtr LD_PRELOAD=/home/data1/protected/Programming/git/glibc-malloc-trace-utils/libmtrace.so emacs and there is some lock, I have to invoke xkill to kill Emacs. I wonder why it worked before. Now it blocks also like this: LD_PRELOAD=/home/data1/protected/Programming/git/glibc-malloc-trace-utils/libmtrace.so emacs It must be something with my configuration, so I will research and try again when I find what is the problem. From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 14:50:42 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 19:50:42 +0000 Received: from localhost ([127.0.0.1]:51270 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khHrG-0004Q8-Eh for submit@debbugs.gnu.org; Mon, 23 Nov 2020 14:50:42 -0500 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:45127) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khHrE-0004Q0-4z for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 14:50:40 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1606161039; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=/Cqkl7hYZtcxh6QfkgzLZI9STe4p7Eu2sWhTBruSEig=; b=eOsVqwt5tn+vhgYy0Rbn6T1EP6h8zfRzlwqVaWAqmge38SV59LP1T1TpQc5kBqbbqWglEm qE9l000jhhbCR6lpwv/a/9M2vWuo7yABZq4K3jomB9khgiuZgvcb9nbtJMjZ1R7JlTPmba +04sfFcsaMx7+HyLcg5L7q8WKUUt+uk= Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-307-g0fRJ_d8PDytUega151ufg-1; Mon, 23 Nov 2020 14:50:32 -0500 X-MC-Unique: g0fRJ_d8PDytUega151ufg-1 Received: by mail-qt1-f197.google.com with SMTP id z8so14354213qti.17 for <43389@debbugs.gnu.org>; Mon, 23 Nov 2020 11:50:32 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=/Cqkl7hYZtcxh6QfkgzLZI9STe4p7Eu2sWhTBruSEig=; b=L4ATJPeiCK5HoWTIWwqOap8/RFFFI+s5M1kniSvELDGWdxOnUs8gdUVesJTFv2BCW7 GBvnmQLBadQ27v2GsVnXpilTUqqw3KCiDEmwEivqUA+X11RabOAJ7zJGqRlFgBfbaDxi ZV86OWQaWsT4ROgrtynutpHG+bapR7/EPNd0lHXBP+GEsYBORkoqQN8zE4OTnFa8hSBe 2V1rj/DzOaLDcpgevDyp+xjJ3eK7Wnn8v5xQUpGNGIY9PyBdSyGrw2dRLFe9i628rEbR W0ZBfYl58sK+mKntXoac7DUXWrxqeWpHyPFYynyKPSHqyb1DhAE53+XekpE6poWLzSHF y1cQ== X-Gm-Message-State: AOAM530QThLUbGHdkEQKMyWo+OmYQHxkn7a3oyZNXeKbwuCjVboXsk+p i/UEAOlCEJuroWUoMbuKtYrZaQgE8dvoMoyJxR2fqHlfpmvlamhuTZuuigCtM8HSJBETdjvePkQ GcIgZSd6XF2CvPXI= X-Received: by 2002:a37:9947:: with SMTP id b68mr1209394qke.70.1606161031908; Mon, 23 Nov 2020 11:50:31 -0800 (PST) X-Google-Smtp-Source: ABdhPJz02RzCOPyWrxN+DxGqbLmoTayvYaZKXudN1vAypY9tZEuVV7F2GxjqsIk6yXyvm5Ur9iCNzg== X-Received: by 2002:a37:9947:: with SMTP id b68mr1209377qke.70.1606161031746; Mon, 23 Nov 2020 11:50:31 -0800 (PST) Received: from [192.168.1.16] (198-84-214-74.cpe.teksavvy.com. [198.84.214.74]) by smtp.gmail.com with ESMTPSA id z23sm7610404qtq.66.2020.11.23.11.50.30 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 23 Nov 2020 11:50:31 -0800 (PST) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time To: Jean Louis , Eli Zaretskii References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83k0udw3jb.fsf@gnu.org> From: Carlos O'Donell Organization: Red Hat Message-ID: Date: Mon, 23 Nov 2020 14:50:29 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0 MIME-Version: 1.0 In-Reply-To: Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=carlos@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, trevor@trevorbentley.com, michael_heerdegen@web.de, dj@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 11/23/20 8:27 AM, Jean Louis wrote: > And here is mtrace: > https://gnu.support/files/tmp/2020-11-23/mtraceEMACS.mtr.9294.lz Initial analysis is up: https://sourceware.org/glibc/wiki/emacs-malloc Nothing conclusive. We need a longer trace that shows the problem. -- Cheers, Carlos. From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 14:52:35 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 19:52:35 +0000 Received: from localhost ([127.0.0.1]:51275 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khHt4-0004T4-SN for submit@debbugs.gnu.org; Mon, 23 Nov 2020 14:52:35 -0500 Received: from eggs.gnu.org ([209.51.188.92]:42060) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khHt3-0004Sr-7t for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 14:52:33 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:53173) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1khHsx-0000Xr-8b; Mon, 23 Nov 2020 14:52:27 -0500 Received: from [176.228.60.248] (port=2463 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1khHss-0000i5-Ri; Mon, 23 Nov 2020 14:52:25 -0500 Date: Mon, 23 Nov 2020 21:52:18 +0200 Message-Id: <83h7pfvojx.fsf@gnu.org> From: Eli Zaretskii To: Arthur Miller In-Reply-To: (message from Arthur Miller on Mon, 23 Nov 2020 20:38:45 +0100) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <83tutgufuf.fsf@gnu.org> <83lfervpvd.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Arthur Miller > Cc: bugs@gnu.support, fweimer@redhat.com, 43389@debbugs.gnu.org, > dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, > carlos@redhat.com > Date: Mon, 23 Nov 2020 20:38:45 +0100 > > By the way; I haven't experienced this since 18th this month; day after > when I rebuild. So it has been almost 5 days without a crash. But I also > don't shift big folders any more; I cleanud up my old backup drive. > Is there some hefty ram-tasking benchmark with lots of random list > creations and deletions I could run; maybe some suitable ert-test > already written? I don't think so, and we don't have a clear idea yet regarding what exactly causes this, so it's difficult to know what could be relevant. We must wait until something like that happen, and collect data then. From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 14:55:32 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 19:55:32 +0000 Received: from localhost ([127.0.0.1]:51279 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khHvo-0004XF-Al for submit@debbugs.gnu.org; Mon, 23 Nov 2020 14:55:32 -0500 Received: from static.rcdrun.com ([95.85.24.50]:58795) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khHvn-0004Wz-3W for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 14:55:23 -0500 Received: from localhost ([::ffff:41.202.241.56]) (AUTH: PLAIN admin, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by static.rcdrun.com with ESMTPSA id 00000000002C1AE3.000000005FBC13A4.00000D82; Mon, 23 Nov 2020 19:55:16 +0000 Date: Mon, 23 Nov 2020 22:55:10 +0300 From: Jean Louis To: Carlos O'Donell Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time Message-ID: References: <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83k0udw3jb.fsf@gnu.org> <5c8da650-6f3d-8a36-6c09-4690b6c59fbe@redhat.com> <4c13d495-c0a1-b783-aacc-572887913212@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: <4c13d495-c0a1-b783-aacc-572887913212@redhat.com> User-Agent: Mutt/2.0 (3d08634) (2020-11-07) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, Eli Zaretskii X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * Carlos O'Donell [2020-11-23 22:37]: > > > > # MTRACE_CTL_VERBOSE=1 > > MTRACE_CTL_FILE=/home/data1/protected/tmp/mtraceEMACS.mtr LD_PRELOAD=/home/data1/protected/Programming/git/glibc-malloc-trace-utils/libmtrace.so emacs >> $DEBUG 2>&1 > > > > I have tried like above and it will block as soon as eww is loads some > > page with the same error as previously. > > That's interesting. Are you able to attach gdb and get a backtrace to see > what the process is blocked on? I can do C-g one time to interrupt something going on, then I get error (gdb) continue Continuing. [New Thread 0x7f10ed01fc00 (LWP 25293)] [New Thread 0x7f10ed007c00 (LWP 25294)] [New Thread 0x7f10ecfefc00 (LWP 25295)] [New Thread 0x7f10ecfd7c00 (LWP 25296)] [Thread 0x7f10ed01fc00 (LWP 25293) exited] [Thread 0x7f10ed007c00 (LWP 25294) exited] [Thread 0x7f10ecfd7c00 (LWP 25296) exited] [Thread 0x7f10ecfefc00 (LWP 25295) exited] HERE I cannot do anything with GDB prompt, there is no prompt, I can C-c and I get: gdb) continue Continuing. [New Thread 0x7f10ed01fc00 (LWP 25293)] [New Thread 0x7f10ed007c00 (LWP 25294)] [New Thread 0x7f10ecfefc00 (LWP 25295)] [New Thread 0x7f10ecfd7c00 (LWP 25296)] [Thread 0x7f10ed01fc00 (LWP 25293) exited] [Thread 0x7f10ed007c00 (LWP 25294) exited] [Thread 0x7f10ecfd7c00 (LWP 25296) exited] [Thread 0x7f10ecfefc00 (LWP 25295) exited] continue ^C Thread 1 "emacs" received signal SIGINT, Interrupt. 0x00007f10fe08fe7d in read () from /lib/libpthread.so.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 14:59:34 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 19:59:34 +0000 Received: from localhost ([127.0.0.1]:51298 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khHzm-0004dq-T5 for submit@debbugs.gnu.org; Mon, 23 Nov 2020 14:59:34 -0500 Received: from mail-am7eur06olkn2065.outbound.protection.outlook.com ([40.92.16.65]:2811 helo=EUR06-AM7-obe.outbound.protection.outlook.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khHzl-0004db-30 for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 14:59:29 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aZhx0x+fZU1KOZvRkpuNb2y0goIQ5Sij9KdpwAOR1R5sUyM/Krk8KlEDanI7aVq5xtwY2JXB6OLJFwRdMe8xI3meweu4xL5pNzkcChsPss3N/uOyDXfzeAvi0tments+/NYHNNNa7ioMhdJBKPYitqYMMb36CWs5X0tsRxQTZeAZtyh4FgHYd4yocLeay9LkAqsi4gE/n5Eaag18X7hcxOvh6JtxlBJk9jAvERmOo5NleKkMKKvk/ggr4dwbGyGrajyoyBILCJyaGjz4y4/1NKBXWv83TPAbnTHqkTnTtIFcHKRluCwzeG4/7oBWKti7jM2f+BWPU9o6wUQ63gC2+A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7iEASqApaaNChTWmPniOoebIRK4NUrdGLiA9x1Qbt/w=; b=GUTMfCzoONXDJ272FNTdK54VRxQ05EMJ3ByvgCrWrGnD0YtHauKt4R3vc+L3I0oO9dCp/t0PyR8ALYTdVlqHbxc+mvXuha8TjpR4O7UiDZlKGffiTy1BwrshHPLAprOkaOu+ALOFaVSzXjkqdHinEvAti/N/DWmmGk5IVHEOM83o6lx5WOJUHI/FE4zMALDujJI1Kc1Xu5OgJRakEf9dVvdjVs9YQLCpY383DaR/0gB3NassSmLScoxgoq+z1P3B7RNEzDlGGX3zy3f3LnKzGhPIBOlgqi5kNFFOflrRBdgT00zgBwrrbpg/LkRF4Y9LYBIJHhBFlKyJpaIFZDA7TQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=live.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7iEASqApaaNChTWmPniOoebIRK4NUrdGLiA9x1Qbt/w=; b=KlPj1gWbzclVaHf26YDfo58A3hpaV/m+YOFopWTY/uyY5ixFTiRiOhfoLOUyec+d0YGqZenpa+agkjWUWdW68fBfsOM4Ei/YVI0O0VtemJV8T+zb48PqC0/qr/Zaxdt1M829Qg1asCW5JkZAPZU9GF/0J84RQaexcK5RNqA1MTbYgReqfpkCsndtxHnuxCzb3Tv25B3pNAtHdxlVTEodXXjTugDxuWZVrxYxhef5UoTQjq0bFCvOq5hmrI6DUDtH1wrNEQ/x/6mfa7xJoXqbwhkq12gWwlI0KdeCJ/34h2i1lKoHNLF9cPFr/J/fYo8NrK1KonsoNJ7lfyhZNFAGzA== Received: from AM7EUR06FT017.eop-eur06.prod.protection.outlook.com (2a01:111:e400:fc36::48) by AM7EUR06HT153.eop-eur06.prod.protection.outlook.com (2a01:111:e400:fc36::74) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20; Mon, 23 Nov 2020 19:59:22 +0000 Received: from AM0PR06MB6577.eurprd06.prod.outlook.com (2a01:111:e400:fc36::47) by AM7EUR06FT017.mail.protection.outlook.com (2a01:111:e400:fc36::263) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20 via Frontend Transport; Mon, 23 Nov 2020 19:59:22 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:120BE8D4D045CBBF088CD5AEDC7FCC0AEE26ABF30D4BDBC8E6E04A7FCFA827C3; UpperCasedChecksum:1D1507EEE3830C22773DBB8857FD48F9AF6F208DB08A489FD38BE5EBE1054053; SizeAsReceived:8136; Count:46 Received: from AM0PR06MB6577.eurprd06.prod.outlook.com ([fe80::9487:8c7d:da00:4993]) by AM0PR06MB6577.eurprd06.prod.outlook.com ([fe80::9487:8c7d:da00:4993%7]) with mapi id 15.20.3589.030; Mon, 23 Nov 2020 19:59:22 +0000 From: Arthur Miller To: Andrea Corallo Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <83tutgufuf.fsf@gnu.org> <83lfervpvd.fsf@gnu.org> Date: Mon, 23 Nov 2020 20:59:21 +0100 In-Reply-To: (Andrea Corallo's message of "Mon, 23 Nov 2020 19:39:35 +0000") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Content-Type: text/plain X-TMN: [sSxdfjM/32r73NNo3e58ANojFjKnIZ7s] X-ClientProxiedBy: AM6PR01CA0045.eurprd01.prod.exchangelabs.com (2603:10a6:20b:e0::22) To AM0PR06MB6577.eurprd06.prod.outlook.com (2603:10a6:208:19a::23) X-Microsoft-Original-Message-ID: <87sg8zalpi.fsf@live.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from pascal.homepc (90.230.29.56) by AM6PR01CA0045.eurprd01.prod.exchangelabs.com (2603:10a6:20b:e0::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20 via Frontend Transport; Mon, 23 Nov 2020 19:59:22 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 46 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 37adeb6e-abf8-4dd9-59af-08d88fea456b X-MS-TrafficTypeDiagnostic: AM7EUR06HT153: X-MS-Exchange-MinimumUrlDomainAge: github.com#4794 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: JjZ9Uem2XDqTpbNua7DSfpKxOD65+FIv/AnPOoIaLX7FsBHAUH8P9U7zbIZMAdEsky0RXqdIlVHr7K8SxzWgQMAXb/ocCzUPuVvcWAPmb8nUO2eoq9F/5HcXBEQbsZaEKCOueV4BIv8+f8317rJmVsb+dCIqK9d7fLHd5xD4rmuKOoIlTo0RdLVmAzuMgTE/N+EqLRhX83dXvv/0CLK5CQP10x0pdeauYYx8b2J95MUWt1WcheJnUwflmfCbD79p X-MS-Exchange-AntiSpam-MessageData: znsj7ebZ6jtV6i86hneW7UCmjh2TO7cyFHQ5tLOwlulOYnqJrOR5f851Skje71iRg4WmKDSQC44Z4pPAK59FVhYS12kSmHN4TmqgGIl/N8XydEkZBnnnjALZiEz3R9jtA44LK5jjQlyosZBW+WgdDw== X-OriginatorOrg: live.com X-MS-Exchange-CrossTenant-Network-Message-Id: 37adeb6e-abf8-4dd9-59af-08d88fea456b X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Nov 2020 19:59:22.6381 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: AM7EUR06FT017.eop-eur06.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7EUR06HT153 X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com, Eli Zaretskii X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Andrea Corallo writes: > I think would be nice to have a script that monitors Emacs memory > footprint and attach gdb on it when the memory usage is over a certain > (high) threshold. > > This way should be easy to see what we are doing because at that point > we are supposed to be allocating extremely often. > > Andrea Indeed. How hard/possible is to use this tool in Emacs: https://gperftools.github.io/gperftools/heapprofile.html By the way, has anyone tried this one (heaptrack): https://github.com/KDE/heaptrack From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 15:03:21 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 20:03:21 +0000 Received: from localhost ([127.0.0.1]:51307 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khI3U-0004lJ-RM for submit@debbugs.gnu.org; Mon, 23 Nov 2020 15:03:21 -0500 Received: from mail-oln040092068014.outbound.protection.outlook.com ([40.92.68.14]:37390 helo=EUR02-HE1-obe.outbound.protection.outlook.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khI3R-0004l2-Fi for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 15:03:19 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Tv9tmvoCf7D3sModa8QBDLHGk30BDo6FXYR/cnzv1MWU5OkYXYA2q4343calL/A/Ef0S7ibX9OP8YUukDNj4Z26N14QhQHjx3RmI53Mc2JPI9ebdi7iCgyn+4dC9pKxXJtG4bIXNKilepRPpDrLpxAAKMAf0UntEzSpzYk9Y3akShqc8tzBM9GNrNI2m5VJZMOJcbRH2GM7OzRHK3QlYjv4Zw10n59x+t2w6IvbeA+5t3BRAF8jDoNVFlyCFVCKFRtHxLgzGLpYLcraJV1GZnpOKjMWOpImFQwlbi10B9ARkSC8i4kMtG1/ngEBr9rysWGK5BuEX4e1wo3hkozGQDA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qjgN+h6KxB2y8aBQ+p4zQvVGW9O1orshDrxcuaQaq9Q=; b=Ifm651zhj8aLkdGll9Jm3yGBGtxK9logIlCGxnuHcME4fZSBGfWjnzTVAAMMDR36PPNISqynNGsm2HQfGPQmbrgpjhUUFs0MNWiZoSmhIgTTqnkG25eQUrQNNwRXP0h8akA93E5elsoePbj6GuSMXXZrnWm6YOk0sVqPC5RHdLli83U+V8IaZysFo34WqlMxJLal5DdYCikaGeoArjmSMfj6LNAnC4WpC6t6D6W7/q71Z/7MkBqeQnOpPAhGt3MV0aoQTpp+bNbUxGzahOQLjehr9XPbb0uxuU2EI1ARajrsgVZYAQ1RhtZ6Q0Bct+awf0txn3zbnTbImuhzR7n0og== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=live.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qjgN+h6KxB2y8aBQ+p4zQvVGW9O1orshDrxcuaQaq9Q=; b=Rfjc1WfkY5T+W9kUwIg0l6R5SMpBh/dfLMnWuc9jffeva1bivOChY07qHgIjb+d+YMBcMjYzWXRq4pA+2gDEU9wE8Zdpby6aSkl9tu20LWoaIiNalrUXhF5h0iT174Pcwbq3ym76cLPVoJJfIQTgrxf33LES3VkkZHcq2UGgp9I/yzjknHGt9BSruL9Fog9JvGgBCFb0iQ39YxFxfsMaJndEQ3Skn3dZhefd0MB6A4TVLLvv5EcB1CoPmm+vx7W/20gK/y5iRCV8Pg7bh7lNIgMdQiJMFWQFC0n/VVwrAs4Ef4ZfbYoFomxmzs91DuzQiBxVaXsp8hZ0qwFEEmatrA== Received: from VE1EUR02FT055.eop-EUR02.prod.protection.outlook.com (2a01:111:e400:7e1e::4d) by VE1EUR02HT145.eop-EUR02.prod.protection.outlook.com (2a01:111:e400:7e1e::300) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20; Mon, 23 Nov 2020 20:03:06 +0000 Received: from AM0PR06MB6577.eurprd06.prod.outlook.com (2a01:111:e400:7e1e::53) by VE1EUR02FT055.mail.protection.outlook.com (2a01:111:e400:7e1e::290) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20 via Frontend Transport; Mon, 23 Nov 2020 20:03:06 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:8789CB4A5AA2C8BAD2E584BC4D58D491289FF5A0143CF5416F89F0DB167A61ED; UpperCasedChecksum:D7ACB92A399C570E7382AB0E9B4AF43BFB2A155049098B5D8A1E6B325E04C346; SizeAsReceived:8155; Count:46 Received: from AM0PR06MB6577.eurprd06.prod.outlook.com ([fe80::9487:8c7d:da00:4993]) by AM0PR06MB6577.eurprd06.prod.outlook.com ([fe80::9487:8c7d:da00:4993%7]) with mapi id 15.20.3589.030; Mon, 23 Nov 2020 20:03:06 +0000 From: Arthur Miller To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <83tutgufuf.fsf@gnu.org> <83lfervpvd.fsf@gnu.org> <83h7pfvojx.fsf@gnu.org> Date: Mon, 23 Nov 2020 21:03:05 +0100 In-Reply-To: <83h7pfvojx.fsf@gnu.org> (Eli Zaretskii's message of "Mon, 23 Nov 2020 21:52:18 +0200") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Content-Type: text/plain X-TMN: [c85Vx4UEXP7CQcZyEKBmYkcVG50dbgNb] X-ClientProxiedBy: AM6PR10CA0100.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:209:8c::41) To AM0PR06MB6577.eurprd06.prod.outlook.com (2603:10a6:208:19a::23) X-Microsoft-Original-Message-ID: <87o8jnalja.fsf@live.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from pascal.homepc (90.230.29.56) by AM6PR10CA0100.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:209:8c::41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20 via Frontend Transport; Mon, 23 Nov 2020 20:03:05 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 46 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 0b3377ff-d68e-4753-00dc-08d88feacac1 X-MS-TrafficTypeDiagnostic: VE1EUR02HT145: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: NBkyE6WRztBIsQHhsslx3rCQ24VpwgGVc2Jz/XTZHpr1UxcLyJurV3lxVgzGNk3+U7Wn2qLEeOrfJclbEQ+JcSEl0IQGDAgQCepX++uSBtRFNrkVbhpVJqZdLMUBttQZ/1zlJOIQbhb4sNOjIXDEfazkqq4Lb0Lk41GsOgOH2/Z5EQTcpXvONKrX4dQukGexpyRs4OMW+UaQSlJ5B85e3w== X-MS-Exchange-AntiSpam-MessageData: S1MRUR/xvKHAvx+exWaNnVjuKwu1bQxgDxKXormwH0O+bz1PnhEEJL4A4CsLcD7pS+wyEotvLvWyv3RD/0onfOrpW2naRkCll59aDkz9nTYIlTvo/EKVSZRiX/Jgcjw2WmQCEIcu3YAzo3TU4wEwzw== X-OriginatorOrg: live.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0b3377ff-d68e-4753-00dc-08d88feacac1 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Nov 2020 20:03:06.2816 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: VE1EUR02FT055.eop-EUR02.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1EUR02HT145 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Eli Zaretskii writes: >> From: Arthur Miller >> Cc: bugs@gnu.support, fweimer@redhat.com, 43389@debbugs.gnu.org, >> dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, >> carlos@redhat.com >> Date: Mon, 23 Nov 2020 20:38:45 +0100 >> >> By the way; I haven't experienced this since 18th this month; day after >> when I rebuild. So it has been almost 5 days without a crash. But I also >> don't shift big folders any more; I cleanud up my old backup drive. >> Is there some hefty ram-tasking benchmark with lots of random list >> creations and deletions I could run; maybe some suitable ert-test >> already written? > > I don't think so, and we don't have a clear idea yet regarding what > exactly causes this, so it's difficult to know what could be > relevant. We must wait until something like that happen, and collect > data then. Yes yes, ok. thanks. I'll try to build heaptrack and see if it works well with Emacs first; I'm little bit curious about it. From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 15:04:45 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 20:04:45 +0000 Received: from localhost ([127.0.0.1]:51311 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khI4r-0004nL-8f for submit@debbugs.gnu.org; Mon, 23 Nov 2020 15:04:45 -0500 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:54833) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khI4p-0004nC-33 for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 15:04:44 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1606161882; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=vv0Cu5IjANJaGOIe5CKuAcngwmJ7DIsqob/9CE8GJCY=; b=Wtza1BcjfMxVPYkkoPvT+xTJEvXBFORwuOYiUpW2cDgCbm4WXxMbUFWy8SPSrJ+2LS7LvO 9PL2GVK02g0X+P/jGHnKRTHWqA562vmUaluEEsVc3DqcYB4hTzczM8EO7ka+eL2nWRnkyQ ARAkTNUEm+f6BMt4O3+jAtT8ejTzfDo= Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-498-71c9cH6LPX6XTWURsP8zSg-1; Mon, 23 Nov 2020 15:04:36 -0500 X-MC-Unique: 71c9cH6LPX6XTWURsP8zSg-1 Received: by mail-qk1-f197.google.com with SMTP id x196so2852520qkb.12 for <43389@debbugs.gnu.org>; Mon, 23 Nov 2020 12:04:36 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=vv0Cu5IjANJaGOIe5CKuAcngwmJ7DIsqob/9CE8GJCY=; b=sA9N+HSQV0qRNC1XWfwKNqnZuwfldPqnjOTjOMTs1xeLTF3B1uW0U+wWi7+6HriEGB yXza9gyW3FGkh4cV0665iQK/OTCCbgOWgfxQhCLEney7t9jDlMKZ/eMZjpi7cytZ9vYK ECbMLnVE5ymcPinq2zOCmLT5tge6u5UMN5SkY69ZBSVvpQfVW5jiwYA+Wk1KnqZrLedt 5tc7kaBPrCX8YD4Bd7FjRgnYIR6SHoehbcceXgZSw+jWexTj2x25TTk/4Wpj5mwiP6GH wZKxAI0nJcGJqGlxrtQHoqJ8OLcJouCRIlXDRxErJgchDZCAtSImh+v1kQ3sQa1xl402 uzYg== X-Gm-Message-State: AOAM5317ZfyRgLtxTeqr8Jfa3MdGxerlqHH/uXL9pnuZF3/ZzkbpJexl oa2enT5gJrTuiOgE+ObgDkJDCt7aSEB7ywvHNuiXrJqnM0fhVlFhgYzEb8rg8PwRsrBteEC2gUN jLSPVQJaG+A9yxy8= X-Received: by 2002:ac8:44ad:: with SMTP id a13mr854244qto.257.1606161875817; Mon, 23 Nov 2020 12:04:35 -0800 (PST) X-Google-Smtp-Source: ABdhPJzEfs+zW2M4wR4p5dfbMIeqqk/M8wQ/OHaJRBrg39acQ6E9mzzkBXKZFV8ZQVF9yq1RZfJgHw== X-Received: by 2002:ac8:44ad:: with SMTP id a13mr854222qto.257.1606161875655; Mon, 23 Nov 2020 12:04:35 -0800 (PST) Received: from [192.168.1.16] (198-84-214-74.cpe.teksavvy.com. [198.84.214.74]) by smtp.gmail.com with ESMTPSA id r125sm10339380qke.129.2020.11.23.12.04.34 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 23 Nov 2020 12:04:34 -0800 (PST) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time To: Eli Zaretskii , Jean Louis References: <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83k0udw3jb.fsf@gnu.org> <5c8da650-6f3d-8a36-6c09-4690b6c59fbe@redhat.com> <83im9vvpdi.fsf@gnu.org> From: Carlos O'Donell Organization: Red Hat Message-ID: Date: Mon, 23 Nov 2020 15:04:33 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0 MIME-Version: 1.0 In-Reply-To: <83im9vvpdi.fsf@gnu.org> Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=carlos@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, trevor@trevorbentley.com, michael_heerdegen@web.de, dj@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 11/23/20 2:34 PM, Eli Zaretskii wrote: >> Date: Mon, 23 Nov 2020 21:58:28 +0300 >> From: Jean Louis >> Cc: Eli Zaretskii , fweimer@redhat.com, >> 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, >> trevor@trevorbentley.com >> >>> Sorry, please drop MTRACE_CTL_VERBOSE=1, as it adds output to stdout >>> which may affect the process if using pipes. >> >> # MTRACE_CTL_VERBOSE=1 >> MTRACE_CTL_FILE=/home/data1/protected/tmp/mtraceEMACS.mtr LD_PRELOAD=/home/data1/protected/Programming/git/glibc-malloc-trace-utils/libmtrace.so emacs >> $DEBUG 2>&1 > > Any reason you redirect stderr to stdout? I'm not saying that is the > reason for the EWW problems, but just to be sure, can you try without > that? The trace goes to stderr, right? So just "2> file" should be > sufficient to collect the trace. Carlos, am I right? No, the trace goes to the trace file specified by MTRACT_CTL_FILE. By default the tracer is as minimally intrusive as possible. -- Cheers, Carlos. From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 15:04:51 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 20:04:51 +0000 Received: from localhost ([127.0.0.1]:51314 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khI4x-0004ng-Iy for submit@debbugs.gnu.org; Mon, 23 Nov 2020 15:04:51 -0500 Received: from eggs.gnu.org ([209.51.188.92]:45738) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khI4v-0004nK-MM for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 15:04:50 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:53444) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1khI4p-0004Uk-Bb; Mon, 23 Nov 2020 15:04:43 -0500 Received: from [176.228.60.248] (port=3222 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1khI4l-0006pw-To; Mon, 23 Nov 2020 15:04:41 -0500 Date: Mon, 23 Nov 2020 22:04:35 +0200 Message-Id: <83eekjvnzg.fsf@gnu.org> From: Eli Zaretskii To: Arthur Miller In-Reply-To: (message from Arthur Miller on Mon, 23 Nov 2020 20:49:48 +0100) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83k0udw3jb.fsf@gnu.org> <83v9dwufx4.fsf@gnu.org> <83mtz7vq8j.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Arthur Miller > Cc: bugs@gnu.support, fweimer@redhat.com, 43389@debbugs.gnu.org, > dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, > carlos@redhat.com > Date: Mon, 23 Nov 2020 20:49:48 +0100 > > Isn't Valgrind good for this kind of problems? Can I run emacs as a > systemd service in Valgrind? You can run Emacs under Valgrind, see etc/DEBUG for the details. But I'm not sure it will work as systemd service. Valgrind is only the right tool if we think there's a memory leak in Emacs itself. From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 15:06:34 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 20:06:34 +0000 Received: from localhost ([127.0.0.1]:51319 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khI6b-0004qa-VS for submit@debbugs.gnu.org; Mon, 23 Nov 2020 15:06:34 -0500 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:34284) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khI6Z-0004qS-Rv for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 15:06:32 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1606161991; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Rhvt21QGbKLYIdUcKJ5mlbBoaAZukk5N6U8yjwHzEew=; b=JNdo31p+Y+sK3l5oZfg8PIV2xb5QZTnaBVUC8eMHppaF9UB8F7k2AaS59TMGVPol4q9Bur 3fYZ2hQ0haImbPnWAdnFw2oozO6HXWQuBZ9jn7Ry3f0IAhkrf5mSe4DIlP7O7cp4OXpSgj uR1F1F68xppq97yxl18Dzs2ndQ6kkCc= Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-250-TflTgMpUPxePafO7BJAwKw-1; Mon, 23 Nov 2020 15:06:28 -0500 X-MC-Unique: TflTgMpUPxePafO7BJAwKw-1 Received: by mail-qt1-f200.google.com with SMTP id r29so14368890qtu.21 for <43389@debbugs.gnu.org>; Mon, 23 Nov 2020 12:06:27 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=Rhvt21QGbKLYIdUcKJ5mlbBoaAZukk5N6U8yjwHzEew=; b=KBUTydg4uYpzmvdoRXkKryoZsF1UYfAog3NJhfwgIZ9GuHyD+DSXhSrMFprZ3Quxfm qK7BiElPEYt7uCJ4JUysEGK8vHtl88YiTw6uSErzj00VxWRuRdwWKZeJfqaLCrcOiZAH V9m6yYwHCvJz7AlcZnBRga/agTC3txNcFvKQGCAfSlSdTqPWDCF5mcU9HmVNQfM9cuTd nVii0OteOlSf/Jnv3wfnSs/CyjWz6lO/+nDk96DWBlBqaMo2bkHvrpkRadFsgmpw4x/6 tyd4wFQmx2D4GlQ1mHL/Ov1bWMC7e4GH1z2WstfqHhrNmreZR57XxkAAFdLyIfq1BCZz vwgw== X-Gm-Message-State: AOAM533RM15PJC7SdtM4yA+e+Z6yVRoAAuALxJSfVMm9PxXoLafpkrRu aqlDU56GEJxFZBYv88AiLHGHprDpQPvakDp/Ka3dJq6bfaxaJcKgZIAhMTXHmseVbc7X53+E937 rFfk8gwEuRKCXEBM= X-Received: by 2002:aed:304f:: with SMTP id 73mr907294qte.360.1606161987613; Mon, 23 Nov 2020 12:06:27 -0800 (PST) X-Google-Smtp-Source: ABdhPJz/LACmR+hVO9MJwaA/FLayDCKQ3c/oOsbRSRnwnG8sV2YHuSYuz2bLVmDHN4i6MpgUAXKq6A== X-Received: by 2002:aed:304f:: with SMTP id 73mr907275qte.360.1606161987458; Mon, 23 Nov 2020 12:06:27 -0800 (PST) Received: from [192.168.1.16] (198-84-214-74.cpe.teksavvy.com. [198.84.214.74]) by smtp.gmail.com with ESMTPSA id w54sm11403857qtb.0.2020.11.23.12.06.26 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 23 Nov 2020 12:06:26 -0800 (PST) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time To: Jean Louis References: <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83k0udw3jb.fsf@gnu.org> <5c8da650-6f3d-8a36-6c09-4690b6c59fbe@redhat.com> <4c13d495-c0a1-b783-aacc-572887913212@redhat.com> From: Carlos O'Donell Organization: Red Hat Message-ID: <655ae11b-aa72-d10b-6817-9c2db62fb191@redhat.com> Date: Mon, 23 Nov 2020 15:06:25 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0 MIME-Version: 1.0 In-Reply-To: Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=carlos@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, Eli Zaretskii X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 11/23/20 2:55 PM, Jean Louis wrote: > * Carlos O'Donell [2020-11-23 22:37]: >>> >>> # MTRACE_CTL_VERBOSE=1 >>> MTRACE_CTL_FILE=/home/data1/protected/tmp/mtraceEMACS.mtr LD_PRELOAD=/home/data1/protected/Programming/git/glibc-malloc-trace-utils/libmtrace.so emacs >> $DEBUG 2>&1 >>> >>> I have tried like above and it will block as soon as eww is loads some >>> page with the same error as previously. >> >> That's interesting. Are you able to attach gdb and get a backtrace to see >> what the process is blocked on? > > I can do C-g one time to interrupt something going on, then I get error > > (gdb) continue Please issue 'thread apply all backtrace' to get a backtrace from all the threads to see where they are stuck. You will need debug information for this for all associated frames in the backtrace. Depending on your distribution this may require debug information packages. -- Cheers, Carlos. From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 15:11:05 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 20:11:05 +0000 Received: from localhost ([127.0.0.1]:51329 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khIAy-0004xU-OP for submit@debbugs.gnu.org; Mon, 23 Nov 2020 15:11:04 -0500 Received: from eggs.gnu.org ([209.51.188.92]:47412) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khIAx-0004x1-F0 for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 15:11:03 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:53588) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1khIAq-0006lj-Dn; Mon, 23 Nov 2020 15:10:57 -0500 Received: from [176.228.60.248] (port=3598 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1khIAo-0006af-BA; Mon, 23 Nov 2020 15:10:55 -0500 Date: Mon, 23 Nov 2020 22:10:49 +0200 Message-Id: <83d003vnp2.fsf@gnu.org> From: Eli Zaretskii To: Jean Louis In-Reply-To: (message from Jean Louis on Mon, 23 Nov 2020 22:55:10 +0300) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83k0udw3jb.fsf@gnu.org> <5c8da650-6f3d-8a36-6c09-4690b6c59fbe@redhat.com> <4c13d495-c0a1-b783-aacc-572887913212@redhat.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, carlos@redhat.com, trevor@trevorbentley.com, michael_heerdegen@web.de X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Mon, 23 Nov 2020 22:55:10 +0300 > From: Jean Louis > Cc: Eli Zaretskii , fweimer@redhat.com, > 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, > trevor@trevorbentley.com > > > That's interesting. Are you able to attach gdb and get a backtrace to see > > what the process is blocked on? > > I can do C-g one time to interrupt something going on, then I get error > > (gdb) continue > Continuing. Instead of "continue", type "thread apply all bt", and post the result. From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 15:15:34 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 20:15:34 +0000 Received: from localhost ([127.0.0.1]:51334 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khIFF-00053s-C2 for submit@debbugs.gnu.org; Mon, 23 Nov 2020 15:15:34 -0500 Received: from eggs.gnu.org ([209.51.188.92]:48986) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khIFD-00053g-M3 for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 15:15:28 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:53721) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1khIF7-00086L-C7; Mon, 23 Nov 2020 15:15:21 -0500 Received: from [176.228.60.248] (port=3912 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1khIF6-00078a-NF; Mon, 23 Nov 2020 15:15:21 -0500 Date: Mon, 23 Nov 2020 22:15:15 +0200 Message-Id: <83blfnvnho.fsf@gnu.org> From: Eli Zaretskii To: Arthur Miller In-Reply-To: (message from Arthur Miller on Mon, 23 Nov 2020 20:59:21 +0100) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <83tutgufuf.fsf@gnu.org> <83lfervpvd.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com, akrl@sdf.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Arthur Miller > Cc: Eli Zaretskii , fweimer@redhat.com, > 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, > michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com > Date: Mon, 23 Nov 2020 20:59:21 +0100 > > How hard/possible is to use this tool in Emacs: > > https://gperftools.github.io/gperftools/heapprofile.html AFAIU, this cannot be used with glibc's malloc, it needs libtcmalloc instead. From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 15:16:46 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 20:16:46 +0000 Received: from localhost ([127.0.0.1]:51339 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khIGU-000567-D6 for submit@debbugs.gnu.org; Mon, 23 Nov 2020 15:16:46 -0500 Received: from eggs.gnu.org ([209.51.188.92]:49268) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khIGT-00055w-3X for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 15:16:45 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:53747) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1khIGN-00007w-TT; Mon, 23 Nov 2020 15:16:39 -0500 Received: from [176.228.60.248] (port=3995 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1khIGN-0007Ez-8G; Mon, 23 Nov 2020 15:16:39 -0500 Date: Mon, 23 Nov 2020 22:16:35 +0200 Message-Id: <83a6v7vnfg.fsf@gnu.org> From: Eli Zaretskii To: Carlos O'Donell In-Reply-To: (message from Carlos O'Donell on Mon, 23 Nov 2020 15:04:33 -0500) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83k0udw3jb.fsf@gnu.org> <5c8da650-6f3d-8a36-6c09-4690b6c59fbe@redhat.com> <83im9vvpdi.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, > michael_heerdegen@web.de, trevor@trevorbentley.com > From: Carlos O'Donell > Date: Mon, 23 Nov 2020 15:04:33 -0500 > > > Any reason you redirect stderr to stdout? I'm not saying that is the > > reason for the EWW problems, but just to be sure, can you try without > > that? The trace goes to stderr, right? So just "2> file" should be > > sufficient to collect the trace. Carlos, am I right? > > No, the trace goes to the trace file specified by MTRACT_CTL_FILE. Thanks, that's even easier: it means no standard stream needs to be redirected. From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 15:18:35 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 20:18:35 +0000 Received: from localhost ([127.0.0.1]:51354 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khIIE-00059H-O8 for submit@debbugs.gnu.org; Mon, 23 Nov 2020 15:18:35 -0500 Received: from static.rcdrun.com ([95.85.24.50]:50265) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khIIC-00058z-NT for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 15:18:33 -0500 Received: from localhost ([::ffff:41.202.241.56]) (AUTH: PLAIN admin, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by static.rcdrun.com with ESMTPSA id 00000000002C1AE3.000000005FBC1912.00001079; Mon, 23 Nov 2020 20:18:25 +0000 Date: Mon, 23 Nov 2020 22:59:25 +0300 From: Jean Louis To: Carlos O'Donell Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time Message-ID: References: <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83k0udw3jb.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: User-Agent: Mutt/2.0 (3d08634) (2020-11-07) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, Eli Zaretskii X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * Carlos O'Donell [2020-11-23 22:50]: > On 11/23/20 8:27 AM, Jean Louis wrote: > > And here is mtrace: > > https://gnu.support/files/tmp/2020-11-23/mtraceEMACS.mtr.9294.lz > > Initial analysis is up: > https://sourceware.org/glibc/wiki/emacs-malloc > > Nothing conclusive. > > We need a longer trace that shows the problem. At least it says there is nothing pathological with my behavior :-) And it could be just wrong indication. From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 15:18:40 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 20:18:40 +0000 Received: from localhost ([127.0.0.1]:51357 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khIIK-00059a-1Z for submit@debbugs.gnu.org; Mon, 23 Nov 2020 15:18:40 -0500 Received: from static.rcdrun.com ([95.85.24.50]:50265) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khIII-00058z-M2 for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 15:18:39 -0500 Received: from localhost ([::ffff:41.202.241.56]) (AUTH: PLAIN admin, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by static.rcdrun.com with ESMTPSA id 00000000002C1AE3.000000005FBC191D.000010B5; Mon, 23 Nov 2020 20:18:37 +0000 Date: Mon, 23 Nov 2020 23:18:13 +0300 From: Jean Louis To: Carlos O'Donell Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time Message-ID: References: <83zh3czbvz.fsf@gnu.org> <83k0udw3jb.fsf@gnu.org> <5c8da650-6f3d-8a36-6c09-4690b6c59fbe@redhat.com> <4c13d495-c0a1-b783-aacc-572887913212@redhat.com> <655ae11b-aa72-d10b-6817-9c2db62fb191@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: <655ae11b-aa72-d10b-6817-9c2db62fb191@redhat.com> User-Agent: Mutt/2.0 (3d08634) (2020-11-07) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, Eli Zaretskii X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * Carlos O'Donell [2020-11-23 23:06]: > On 11/23/20 2:55 PM, Jean Louis wrote: > > * Carlos O'Donell [2020-11-23 22:37]: > >>> > >>> # MTRACE_CTL_VERBOSE=1 > >>> MTRACE_CTL_FILE=/home/data1/protected/tmp/mtraceEMACS.mtr LD_PRELOAD=/home/data1/protected/Programming/git/glibc-malloc-trace-utils/libmtrace.so emacs >> $DEBUG 2>&1 > >>> > >>> I have tried like above and it will block as soon as eww is loads some > >>> page with the same error as previously. > >> > >> That's interesting. Are you able to attach gdb and get a backtrace to see > >> what the process is blocked on? > > > > I can do C-g one time to interrupt something going on, then I get error > > > > (gdb) continue > Please issue 'thread apply all backtrace' to get a backtrace from all > the threads to see where they are stuck. > > You will need debug information for this for all associated frames in > the backtrace. Depending on your distribution this may require debug > information packages. sudo gdb -pid 25584 GNU gdb (GDB) 7.12.1 Copyright (C) 2017 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-pc-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: . Find the GDB manual and other documentation resources online at: . For help, type "help". Type "apropos word" to search for commands related to "word". Attaching to process 25584 [New LWP 25585] [New LWP 25586] [New LWP 25588] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/libthread_db.so.1". 0x00007f6afd4765dc in pselect () from /lib/libc.so.6 (gdb) continue Continuing. [New Thread 0x7f6aed1dbc00 (LWP 25627)] [Thread 0x7f6aed1dbc00 (LWP 25627) exited] [New Thread 0x7f6aed1dbc00 (LWP 25628)] [Thread 0x7f6aed1dbc00 (LWP 25628) exited] C-c C-c Thread 1 "emacs" received signal SIGINT, Interrupt. 0x00007f6afd4765dc in pselect () from /lib/libc.so.6 (gdb) thread apply backtrace Invalid thread ID: backtrace (gdb) thread apply all backtrace Thread 4 (Thread 0x7f6aee2ae700 (LWP 25588)): #0 0x00007f6afd47435d in poll () at /lib/libc.so.6 #1 0x00007f6b011a4b98 in () at /lib/libglib-2.0.so.0 #2 0x00007f6b011a4f52 in g_main_loop_run () at /lib/libglib-2.0.so.0 #3 0x00007f6b019b62c8 in () at /usr/lib/libgio-2.0.so.0 #4 0x00007f6b011ccfca in () at /lib/libglib-2.0.so.0 #5 0x00007f6afe242069 in start_thread () at /lib/libpthread.so.0 #6 0x00007f6afd47e30f in clone () at /lib/libc.so.6 Thread 3 (Thread 0x7f6aeeaaf700 (LWP 25586)): #0 0x00007f6afd47435d in poll () at /lib/libc.so.6 #1 0x00007f6b011a4b98 in () at /lib/libglib-2.0.so.0 #2 0x00007f6b011a4cbe in g_main_context_iteration () at /lib/libglib-2.0.so.0 #3 0x00007f6aeeab755d in () at /usr/lib/gio/modules/libdconfsettings.so #4 0x00007f6b011ccfca in () at /lib/libglib-2.0.so.0 #5 0x00007f6afe242069 in start_thread () at /lib/libpthread.so.0 #6 0x00007f6afd47e30f in clone () at /lib/libc.so.6 Thread 2 (Thread 0x7f6aef6c8700 (LWP 25585)): #0 0x00007f6afd47435d in poll () at /lib/libc.so.6 #1 0x00007f6b011a4b98 in () at /lib/libglib-2.0.so.0 ---Type to continue, or q to quit--- #2 0x00007f6b011a4cbe in g_main_context_iteration () at /lib/libglib-2.0.so.0 #3 0x00007f6b011a4d12 in () at /lib/libglib-2.0.so.0 #4 0x00007f6b011ccfca in () at /lib/libglib-2.0.so.0 #5 0x00007f6afe242069 in start_thread () at /lib/libpthread.so.0 #6 0x00007f6afd47e30f in clone () at /lib/libc.so.6 Thread 1 (Thread 0x7f6b049e9100 (LWP 25584)): #0 0x00007f6afd4765dc in pselect () at /lib/libc.so.6 #1 0x00000000005cf500 in really_call_select (arg=0x7ffc16edfa80) at thread.c:592 #2 0x00000000005d006e in flush_stack_call_func (arg=0x7ffc16edfa80, func=0x5cf4b0 ) at lisp.h:3791 #3 0x00000000005d006e in thread_select (func=, max_fds=max_fds@entry=19, rfds=rfds@entry=0x7ffc16edfb60, wfds=wfds@entry=0x7ffc16edfbe0, efds=efds@entry=0x0, timeout=timeout@entry=0x7ffc16ee0170, sigmask=0x0) at thread.c:624 #4 0x00000000005eb023 in xg_select (fds_lim=19, rfds=rfds@entry=0x7ffc16ee02a0, wfds=0x7ffc16ee0320, efds=, timeout=, sigmask=) at xgselect.c:131 #5 0x00000000005aeab4 in wait_reading_process_output (time_limit=time_limit@entry=30, nsecs=nsecs@entry=0, read_kbd=-1, do_display=do_display@entry=true, wait_for_cell=wait_for_cell@entry=0x0, wait_proc=wait_proc@entry=0x0, just_wait_proc=0) at process.c:5604 #6 0x00000000004253f8 in sit_for (timeout=timeout@entry=0x7a, reading=reading@entry=true, display_option=display_option@entry=1) at dispnew.c:6111 #7 0x00000000004fe415 in read_char (commandflag=commandflag@entry=1, map=map@entry=0x3184a63, p---Type to continue, or q to quit--- rev_event=, used_mouse_menu=used_mouse_menu@entry=0x7ffc16ee0b5b, end_time=end_time@entry=0x0) at keyboard.c:2742 #8 0x0000000000500841 in read_key_sequence (keybuf=keybuf@entry=0x7ffc16ee0c50, prompt=prompt@entry=0x0, dont_downcase_last=dont_downcase_last@entry=false, can_return_switch_frame=can_return_switch_frame@entry=true, fix_current_buffer=fix_current_buffer@entry=true, prevent_redisplay=prevent_redisplay@entry=false) at keyboard.c:9546 #9 0x0000000000502040 in command_loop_1 () at keyboard.c:1354 #10 0x000000000056a40e in internal_condition_case (bfun=bfun@entry=0x501e30 , handlers=handlers@entry=0x90, hfun=hfun@entry=0x4f8da0 ) at eval.c:1359 #11 0x00000000004f370c in command_loop_2 (ignore=ignore@entry=0x0) at keyboard.c:1095 #12 0x000000000056a3ac in internal_catch (tag=tag@entry=0xd740, func=func@entry=0x4f36f0 , arg=arg@entry=0x0) at eval.c:1120 #13 0x00000000004f36c9 in command_loop () at keyboard.c:1074 #14 0x00000000004f89c6 in recursive_edit_1 () at keyboard.c:718 #15 0x00000000004f8ce4 in Frecursive_edit () at keyboard.c:790 #16 0x000000000041a8f3 in main (argc=1, argv=0x7ffc16ee1048) at emacs.c:2047 (gdb) From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 15:32:02 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 20:32:02 +0000 Received: from localhost ([127.0.0.1]:51368 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khIVF-0005UQ-M2 for submit@debbugs.gnu.org; Mon, 23 Nov 2020 15:32:01 -0500 Received: from eggs.gnu.org ([209.51.188.92]:53058) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khIVE-0005U5-6S for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 15:32:00 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:54039) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1khIV6-0005BU-Qq; Mon, 23 Nov 2020 15:31:54 -0500 Received: from [176.228.60.248] (port=4921 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1khIV5-00009u-8k; Mon, 23 Nov 2020 15:31:52 -0500 Date: Mon, 23 Nov 2020 22:31:46 +0200 Message-Id: <838sarvmq5.fsf@gnu.org> From: Eli Zaretskii To: Jean Louis In-Reply-To: (message from Jean Louis on Mon, 23 Nov 2020 23:18:13 +0300) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <83zh3czbvz.fsf@gnu.org> <83k0udw3jb.fsf@gnu.org> <5c8da650-6f3d-8a36-6c09-4690b6c59fbe@redhat.com> <4c13d495-c0a1-b783-aacc-572887913212@redhat.com> <655ae11b-aa72-d10b-6817-9c2db62fb191@redhat.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, carlos@redhat.com, trevor@trevorbentley.com, michael_heerdegen@web.de X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Mon, 23 Nov 2020 23:18:13 +0300 > From: Jean Louis > Cc: Eli Zaretskii , fweimer@redhat.com, > 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, > trevor@trevorbentley.com > > Thread 1 (Thread 0x7f6b049e9100 (LWP 25584)): > #0 0x00007f6afd4765dc in pselect () at /lib/libc.so.6 > #1 0x00000000005cf500 in really_call_select (arg=0x7ffc16edfa80) at thread.c:592 > #2 0x00000000005d006e in flush_stack_call_func (arg=0x7ffc16edfa80, func=0x5cf4b0 ) at lisp.h:3791 > #3 0x00000000005d006e in thread_select (func=, max_fds=max_fds@entry=19, rfds=rfds@entry=0x7ffc16edfb60, wfds=wfds@entry=0x7ffc16edfbe0, efds=efds@entry=0x0, timeout=timeout@entry=0x7ffc16ee0170, sigmask=0x0) at thread.c:624 > #4 0x00000000005eb023 in xg_select (fds_lim=19, rfds=rfds@entry=0x7ffc16ee02a0, wfds=0x7ffc16ee0320, efds=, timeout=, sigmask=) at xgselect.c:131 > #5 0x00000000005aeab4 in wait_reading_process_output (time_limit=time_limit@entry=30, nsecs=nsecs@entry=0, read_kbd=-1, do_display=do_display@entry=true, wait_for_cell=wait_for_cell@entry=0x0, wait_proc=wait_proc@entry=0x0, just_wait_proc=0) at process.c:5604 > #6 0x00000000004253f8 in sit_for (timeout=timeout@entry=0x7a, reading=reading@entry=true, display_option=display_option@entry=1) at dispnew.c:6111 > #7 0x00000000004fe415 in read_char (commandflag=commandflag@entry=1, map=map@entry=0x3184a63, p---Type to continue, or q to quit--- > rev_event=, used_mouse_menu=used_mouse_menu@entry=0x7ffc16ee0b5b, end_time=end_time@entry=0x0) at keyboard.c:2742 > #8 0x0000000000500841 in read_key_sequence (keybuf=keybuf@entry=0x7ffc16ee0c50, prompt=prompt@entry=0x0, dont_downcase_last=dont_downcase_last@entry=false, can_return_switch_frame=can_return_switch_frame@entry=true, fix_current_buffer=fix_current_buffer@entry=true, prevent_redisplay=prevent_redisplay@entry=false) at keyboard.c:9546 > #9 0x0000000000502040 in command_loop_1 () at keyboard.c:1354 > #10 0x000000000056a40e in internal_condition_case (bfun=bfun@entry=0x501e30 , handlers=handlers@entry=0x90, hfun=hfun@entry=0x4f8da0 ) at eval.c:1359 This says Emacs is simply waiting for input. Are you saying Emacs doesn't respond to keyboard input in this state? From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 15:32:07 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 20:32:07 +0000 Received: from localhost ([127.0.0.1]:51371 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khIVK-0005V0-Vb for submit@debbugs.gnu.org; Mon, 23 Nov 2020 15:32:07 -0500 Received: from static.rcdrun.com ([95.85.24.50]:45619) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khIVE-0005U7-Sx for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 15:32:01 -0500 Received: from localhost ([::ffff:41.202.241.56]) (AUTH: PLAIN admin, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by static.rcdrun.com with ESMTPSA id 00000000002C0013.000000005FBC1C3A.00001261; Mon, 23 Nov 2020 20:31:53 +0000 Date: Mon, 23 Nov 2020 23:31:46 +0300 From: Jean Louis To: Arthur Miller Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time Message-ID: References: <83zh3czbvz.fsf@gnu.org> <83k0udw3jb.fsf@gnu.org> <83v9dwufx4.fsf@gnu.org> <83mtz7vq8j.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: User-Agent: Mutt/2.0 (3d08634) (2020-11-07) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com, Eli Zaretskii X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * Arthur Miller [2020-11-23 23:22]: > The only thing that changed regularly was of course system updates: kernel, > gcc & co etc. So it maybe is as mentioned earlier in this thread by > either you or somebody else is that glibc changed and that maybe > triggers something in Emacs based on how Emacs use it. I don't know I am > not expert in this. Isn't Valgrind good for this kind of problems? Can I > run emacs as a systemd service in Valgrind? I did not change anything like glibc or kernel in Hyperbola GNU/Linux-libre From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 15:42:05 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 20:42:05 +0000 Received: from localhost ([127.0.0.1]:51381 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khIez-0005jB-4j for submit@debbugs.gnu.org; Mon, 23 Nov 2020 15:42:05 -0500 Received: from static.rcdrun.com ([95.85.24.50]:34919) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khIew-0005if-UO for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 15:42:03 -0500 Received: from localhost ([::ffff:41.202.241.56]) (AUTH: PLAIN admin, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by static.rcdrun.com with ESMTPSA id 00000000002C0013.000000005FBC1E94.000013B0; Mon, 23 Nov 2020 20:41:56 +0000 Date: Mon, 23 Nov 2020 23:41:26 +0300 From: Jean Louis To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time Message-ID: References: <83k0udw3jb.fsf@gnu.org> <5c8da650-6f3d-8a36-6c09-4690b6c59fbe@redhat.com> <4c13d495-c0a1-b783-aacc-572887913212@redhat.com> <655ae11b-aa72-d10b-6817-9c2db62fb191@redhat.com> <838sarvmq5.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: <838sarvmq5.fsf@gnu.org> User-Agent: Mutt/2.0 (3d08634) (2020-11-07) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, carlos@redhat.com, trevor@trevorbentley.com, michael_heerdegen@web.de X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * Eli Zaretskii [2020-11-23 23:32]: > > Date: Mon, 23 Nov 2020 23:18:13 +0300 > > From: Jean Louis > > Cc: Eli Zaretskii , fweimer@redhat.com, > > 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, > > trevor@trevorbentley.com > > > > Thread 1 (Thread 0x7f6b049e9100 (LWP 25584)): > > #0 0x00007f6afd4765dc in pselect () at /lib/libc.so.6 > > #1 0x00000000005cf500 in really_call_select (arg=0x7ffc16edfa80) at thread.c:592 > > #2 0x00000000005d006e in flush_stack_call_func (arg=0x7ffc16edfa80, func=0x5cf4b0 ) at lisp.h:3791 > > #3 0x00000000005d006e in thread_select (func=, max_fds=max_fds@entry=19, rfds=rfds@entry=0x7ffc16edfb60, wfds=wfds@entry=0x7ffc16edfbe0, efds=efds@entry=0x0, timeout=timeout@entry=0x7ffc16ee0170, sigmask=0x0) at thread.c:624 > > #4 0x00000000005eb023 in xg_select (fds_lim=19, rfds=rfds@entry=0x7ffc16ee02a0, wfds=0x7ffc16ee0320, efds=, timeout=, sigmask=) at xgselect.c:131 > > #5 0x00000000005aeab4 in wait_reading_process_output (time_limit=time_limit@entry=30, nsecs=nsecs@entry=0, read_kbd=-1, do_display=do_display@entry=true, wait_for_cell=wait_for_cell@entry=0x0, wait_proc=wait_proc@entry=0x0, just_wait_proc=0) at process.c:5604 > > #6 0x00000000004253f8 in sit_for (timeout=timeout@entry=0x7a, reading=reading@entry=true, display_option=display_option@entry=1) at dispnew.c:6111 > > #7 0x00000000004fe415 in read_char (commandflag=commandflag@entry=1, map=map@entry=0x3184a63, p---Type to continue, or q to quit--- > > rev_event=, used_mouse_menu=used_mouse_menu@entry=0x7ffc16ee0b5b, end_time=end_time@entry=0x0) at keyboard.c:2742 > > #8 0x0000000000500841 in read_key_sequence (keybuf=keybuf@entry=0x7ffc16ee0c50, prompt=prompt@entry=0x0, dont_downcase_last=dont_downcase_last@entry=false, can_return_switch_frame=can_return_switch_frame@entry=true, fix_current_buffer=fix_current_buffer@entry=true, prevent_redisplay=prevent_redisplay@entry=false) at keyboard.c:9546 > > #9 0x0000000000502040 in command_loop_1 () at keyboard.c:1354 > > #10 0x000000000056a40e in internal_condition_case (bfun=bfun@entry=0x501e30 , handlers=handlers@entry=0x90, hfun=hfun@entry=0x4f8da0 ) at eval.c:1359 > > This says Emacs is simply waiting for input. > > Are you saying Emacs doesn't respond to keyboard input in this state? Yes. But once I could kill it straight with C-x c without any questions or something. It happens during eww call, not immediately but during. I could do 3 times C-g and get the error and then after nothing, I could not kill buffer, could not quit, nothing but xkill Now, last 3 attempts I can interrupt and I get keyboard control, I can see half page loaded. And I can kill buffer. I was thinking maybe ivy, but I turned it off, it is not ivy. So if I just interrupt it during loading, I have no keyboard control, but if I continue interrupting with C-g then half page appears and I get keyboard control. From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 15:53:28 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 20:53:28 +0000 Received: from localhost ([127.0.0.1]:51386 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khIq0-0005zX-A3 for submit@debbugs.gnu.org; Mon, 23 Nov 2020 15:53:28 -0500 Received: from mail-out.m-online.net ([212.18.0.10]:46205) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khIpy-0005zN-1B for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 15:53:26 -0500 Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 4Cfzrh3Qc0z1s1J9; Mon, 23 Nov 2020 21:53:24 +0100 (CET) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 4Cfzrh0hzWz1t82T; Mon, 23 Nov 2020 21:53:24 +0100 (CET) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id XyarZidLiVVe; Mon, 23 Nov 2020 21:53:23 +0100 (CET) X-Auth-Info: 3RoxV6Am6z67tzGxesDFNJxcjODO3nzn6KKznPUcasRMdyZosLcG7bYoizr58IA7 Received: from igel.home (ppp-46-244-186-244.dynamic.mnet-online.de [46.244.186.244]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPSA; Mon, 23 Nov 2020 21:53:23 +0100 (CET) Received: by igel.home (Postfix, from userid 1000) id B61892C32CA; Mon, 23 Nov 2020 21:53:22 +0100 (CET) From: Andreas Schwab To: Jean Louis Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <83k0udw3jb.fsf@gnu.org> <5c8da650-6f3d-8a36-6c09-4690b6c59fbe@redhat.com> <4c13d495-c0a1-b783-aacc-572887913212@redhat.com> <655ae11b-aa72-d10b-6817-9c2db62fb191@redhat.com> <838sarvmq5.fsf@gnu.org> X-Yow: I've got an IDEA!! Why don't I STARE at you so HARD, you forget your SOCIAL SECURITY NUMBER!! Date: Mon, 23 Nov 2020 21:53:22 +0100 In-Reply-To: (Jean Louis's message of "Mon, 23 Nov 2020 23:41:26 +0300") Message-ID: <87sg8zbxrx.fsf@igel.home> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.4 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, carlos@redhat.com, trevor@trevorbentley.com, michael_heerdegen@web.de, Eli Zaretskii X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.4 (-) On Nov 23 2020, Jean Louis wrote: > It happens during eww call, not immediately but during. That probably just means it is busy in libxml parsing the page. Andreas. -- Andreas Schwab, schwab@linux-m68k.org GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1 "And now for something completely different." From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 15:54:02 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 20:54:02 +0000 Received: from localhost ([127.0.0.1]:51390 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khIqY-00060b-Ih for submit@debbugs.gnu.org; Mon, 23 Nov 2020 15:54:02 -0500 Received: from mx.sdf.org ([205.166.94.24]:56958) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khIqW-00060C-QT for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 15:54:01 -0500 Received: from mab (ma.sdf.org [205.166.94.33]) by mx.sdf.org (8.15.2/8.14.5) with ESMTP id 0ANKrbkO013978; Mon, 23 Nov 2020 20:53:37 GMT From: Andrea Corallo To: Arthur Miller Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <83tutgufuf.fsf@gnu.org> <83lfervpvd.fsf@gnu.org> Date: Mon, 23 Nov 2020 20:53:37 +0000 In-Reply-To: (Arthur Miller's message of "Mon, 23 Nov 2020 20:59:21 +0100") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com, Eli Zaretskii X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Arthur Miller writes: > Andrea Corallo writes: > >> I think would be nice to have a script that monitors Emacs memory >> footprint and attach gdb on it when the memory usage is over a certain >> (high) threshold. >> >> This way should be easy to see what we are doing because at that point >> we are supposed to be allocating extremely often. >> >> Andrea > Indeed. *not* very much tested: You can run an Emacs -Q where you use this to monitor the Emacs you are working on (hopefully the first one does not crash too). Note you have to set the OS to allow for gdb to attach on other processes or run the Emacs monitor as root. Hope it helps. Andrea From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 16:12:31 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 21:12:31 +0000 Received: from localhost ([127.0.0.1]:51412 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khJ8Q-0006Sk-Ra for submit@debbugs.gnu.org; Mon, 23 Nov 2020 16:12:30 -0500 Received: from mail-oln040092067070.outbound.protection.outlook.com ([40.92.67.70]:44900 helo=EUR02-AM5-obe.outbound.protection.outlook.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khJ8N-0006SV-To for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 16:12:28 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fERc/TdWxYrRh9RzuoOU5AyuuzmzVp2sn3ITBFgGitz2vmVvogQHv/jXMt1Q29u6OxEp0qIA/a6f2ntDnRUS2IM7qzU1OEf4nMd7a2ElYfN15wzKKOzu/dab2Mng9O3hiOmgDO4qxhK6V1wPcc3LP6buDWzROzJ+/7OCV9824K3PSEdmER/DyXDohjSSOe3QOgFPAnyqgXa/zBrEdFRdlqjrhx/dmbN9ifWn8niVAsj1xQU6CgNrBEyFUAPGMZQeJrQm/Acm2Ny38WzpY2B1WSOB8W4JsLsXadct9kmsNdOpgDaYlVmjQsBWzkN5+JXKbNC+FBz6bj2D7YcP74VneQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=iQo4aqCF8vSbkrb/ulkAeNULNBklQ1vPiV0pWWvF+d8=; b=JuADE2fkhV8jO/0BzLMHQ4gs4eKq6SB/lZium2Lj2DuK/aNacW709wiTYMJ0PjeAX+HwEFA/6z+aPUhnGZRMUQO7dwvRIoGEHzqShRIMRFpdXxLLRSCivVjGeNDIbJiDqEFvB3XFwSj7BGAhSj1GhJ2ZaI8v6rc/Iq5VPtDmieSqrdX+12BtIkLBsA8toIvtpUh0jlBxeUkYQhaGz0fama/yXypRcLcFow3P0AqM8eWiI52Bkp0th6UuAHpjg/3Z+w4ozYVJQU/8v/jfJnqQQOqaTXEmfUwe9hrdf0N/Fl2UMOFTjixRBH2CoLcDtJBlqNuLm5RDHvaQq9NdqnFDtA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=live.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=iQo4aqCF8vSbkrb/ulkAeNULNBklQ1vPiV0pWWvF+d8=; b=WmOnUB8/ORTeGc+FkUVp4x1tE9DuSnYy8UkGwobCGeC9SG25CsOxSTH7jU/UFnQdapUwiT9gz3gCfPNLQzepioPkUuiG3p8cknlDk/AQjOwgqdWrB25IMR5UzX/MjXbvExrXsyvBrmgx2AEPBmQXYlBWwemtSJJcl+PEdcThcHu1ejU3OreGwPJYU1UCmz5pLqVwMoH+e4QViwDxODLRPy7o6YKnjHli3hgpY8E4IjuAK3ojASH18rnzhhYUYIFMo1wSDMWaLN4oW9kpSofKgN7dN+ege9OMbDC9MXrQZ3gj85bstXsxXrq2PFiPtXdr0ikBMZ40jRTZrP9rxu5MSA== Received: from AM5EUR02FT021.eop-EUR02.prod.protection.outlook.com (2a01:111:e400:7e1c::43) by AM5EUR02HT107.eop-EUR02.prod.protection.outlook.com (2a01:111:e400:7e1c::424) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20; Mon, 23 Nov 2020 21:12:14 +0000 Received: from AM0PR06MB6577.eurprd06.prod.outlook.com (2a01:111:e400:7e1c::52) by AM5EUR02FT021.mail.protection.outlook.com (2a01:111:e400:7e1c::93) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20 via Frontend Transport; Mon, 23 Nov 2020 21:12:14 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:33CE995DA2A96BA29446750D19B1E6811E311C906CB8C0FE6204241DEB4F6377; UpperCasedChecksum:9DBF0A0A51060F788E0553D03ACAC6ED738A11154D596FB126F92116876A7CEE; SizeAsReceived:8293; Count:46 Received: from AM0PR06MB6577.eurprd06.prod.outlook.com ([fe80::9487:8c7d:da00:4993]) by AM0PR06MB6577.eurprd06.prod.outlook.com ([fe80::9487:8c7d:da00:4993%7]) with mapi id 15.20.3589.030; Mon, 23 Nov 2020 21:12:14 +0000 From: Arthur Miller To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83k0udw3jb.fsf@gnu.org> <83v9dwufx4.fsf@gnu.org> <83mtz7vq8j.fsf@gnu.org> <83eekjvnzg.fsf@gnu.org> Date: Mon, 23 Nov 2020 22:12:12 +0100 In-Reply-To: <83eekjvnzg.fsf@gnu.org> (Eli Zaretskii's message of "Mon, 23 Nov 2020 22:04:35 +0200") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Content-Type: multipart/mixed; boundary="=-=-=" X-TMN: [7FMbJDp73lh9xtmZgnTI4YseUdXag715] X-ClientProxiedBy: AM6P195CA0027.EURP195.PROD.OUTLOOK.COM (2603:10a6:209:81::40) To AM0PR06MB6577.eurprd06.prod.outlook.com (2603:10a6:208:19a::23) X-Microsoft-Original-Message-ID: <877dqb6amr.fsf@live.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from pascal.homepc (90.230.29.56) by AM6P195CA0027.EURP195.PROD.OUTLOOK.COM (2603:10a6:209:81::40) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.22 via Frontend Transport; Mon, 23 Nov 2020 21:12:13 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 46 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: d8d122c2-f173-49ef-3e65-08d88ff472b3 X-MS-TrafficTypeDiagnostic: AM5EUR02HT107: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 3twIh3O4WjRxPshDO4lL6FpxUy1ihXns1nveZww7BCrhR4VrmBrOkUbrh5evxx6c0Polu57N53h+hQckZAQdqHR/jLuRtgBGCH65FdYPckVjUWFJgPDY6cWkxvE7UKZ1SpWqmYxssH70S6pbhrt8hs6ZPJZAZ/MXoXrmeK68s2LuZBA2fz+s0hAbt1jAv9CCDz5ZMAUeTwjdezTX0hhk5Q== X-MS-Exchange-AntiSpam-MessageData: zcICHKNorT7zMqYhHGtXJ+PezJEgK60YuY4YZyhlcKi9/g+Ybop6eANG3FHOo0V8+srpQ7BphkHxQwUUTydEQk1aNZ7JRrWXA6dTPS+lKYeT4t8vmzCTSNt14lCaky/T/IWoB41AGFH/YAAydMTJpg== X-OriginatorOrg: live.com X-MS-Exchange-CrossTenant-Network-Message-Id: d8d122c2-f173-49ef-3e65-08d88ff472b3 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Nov 2020 21:12:14.6981 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: AM5EUR02FT021.eop-EUR02.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5EUR02HT107 X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" --=-=-= Content-Type: text/plain Eli Zaretskii writes: >> From: Arthur Miller >> Cc: bugs@gnu.support, fweimer@redhat.com, 43389@debbugs.gnu.org, >> dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, >> carlos@redhat.com >> Date: Mon, 23 Nov 2020 20:49:48 +0100 >> >> Isn't Valgrind good for this kind of problems? Can I run emacs as a >> systemd service in Valgrind? > > You can run Emacs under Valgrind, see etc/DEBUG for the details. But > I'm not sure it will work as systemd service. > > Valgrind is only the right tool if we think there's a memory leak in > Emacs itself. Ok, I'll take a look at debug docs; It's ok, just i get a test I can run it as normal process; it's ok. Anyway I have tested heaptrack; It built in like few seconds, nothing special there. I am not sure about the tool; I think it missunderstands memory taken by lisp environement as a leaked memory. It repports like heap loads of leaks :-), so it must be that it just missunderstands Emacs. I am not sure, I am attaching few screenshots, but I don't believe it can be that many leaks as it rapports. It is just emacs what one gets from emacs -Q there. I will attach the generated data too. I had some problem with it too. I tried to attach it to a running deamon process (started by sysd) and it failed untill I run it as sudo user. As soon as it attached itself seems that both server and emacsclient got completely unresponsive and stayed that way. I killed client process, but windowed stayed alive, I had to kill it with xkill. After I restarded server Emacs didn't read the init file, because paths got messed up, so I had to sort that out too. Also the tool produced empty rapport (it didn't work). But runnign on standalone emacs process as a sudo user worked. Anyway, despite problems it seems to be very nice graphical tool to see call stack and how Emacs looks like internally; but I am not sure if it works at all to find leaks in Emacs. --=-=-= Content-Type: image/png Content-Disposition: attachment; filename=em-heaptrack1.png Content-Transfer-Encoding: base64 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 ysrKPD09lZSUxMTE/P39W1tb6+rqcEN0xYoV+vr6YmJi4eHhHR0daWlpI/wAjI+PDwoKmjhxopyc 3J49ex49evT777/DeQlAvuPz0NHRycnJSWOTk5PDtXthSkpKQkJCYWGhj49PQEDA27dvHz58WFFR YWRk5OXl1d/fjxBavHixqKhoaWlpZmbm+fPnORdy4cKFvLy8oqKihoaG7OzsSZMmESkASUnJ+/fv 5+XllZSU7NixY9CM/f39fn5+xcXF1dXVrq6uPj4+XV1dY8eOZe/0mJWV1dzc7OnpyevL8lnLw4cP Hzx4UFxcTKFQnJ2ddXR0iouLCwoKysrKtmzZwqvmL1++nD17dlBQUG1t7dWrVw8ePHj16lW8wKqq KmFh4V9//fXhw4c+Pj5lZWUFBQX4o/Pnz1taWmpqavKZnROvmPv7+xcWFt6+ffv9+/eXL1+Wl5cn tpeJiUllZeWpU6fCwsLwMCi5ublLly6Nioqqq6uLjIxcvHgxkR/hpKCgkJSU9P79+5s3b966dev4 8eOc4VJWVuZVMT6zc1VVVUUmk3Nzc/Pz8/Pz87n2ZeW1LoTQmTNndu/eXVdXN3nyZG9v7/v37z9+ /DgvLy81NRW3J7juQgihoqIiOp3u7+9fWVn59u3bt8qQpwAAIABJREFUefPm8dlRAQAAgK9Pamqq lpaWmZlZZGQk/jfPIFlZWbq6uu7u7lQq1dDQkHPsrcTExBUrViQlJc2aNYu4hdu7d299fX1AQMDs 2bObmpp4Ndv27NljYGCwffv2V69e/fzzz/wv9xCr4RKr4ODg1NTU+vr6rq6u+Ph4ExMTVVVVnLsR EBBgL1lYWDiSj7729vaqqqopU6bgt9ra2pKSki9evIDzEoB8x+chKysbGhoqIyOD38rIyISGhsrK ynKWXLJkiZKSEkKosbExOTn50KFDCgoKQkJC27Ztq66ufvHiRVVVVVZWVnR0NJlMlpOT++677zgX IiwszGQyi4qKPn78KC8vP378eDxdSEho3bp1xAvOZzSUlZXpdDqZTBYSEtq0aVNvby9OfC5btuzM mTMsFgshdPr06Tlz5pDJZF5fls9aQkJChIWFEUI3btxACG3fvl1MTIxCoURGRl68eJFXzePi4jw8 POh0OolE0tXVXb16NS6MEBIREQkJCcGvpaSk3Nzc8OpYLNb58+fxaCZ8Zh+EV8zr6+tTU1OPHDmi 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 ubn19/efO3cuNzf39evXDAbj119/nTJlCkKI60Su5s2bx2QyX79+/fvvvzc3N8+fP5/Pl+K6ja5f v7527drHjx/fvn07Kirq1q1bfJaQkZGB/5aUlISFhfEpyXUrsOvq6uK19XGOJiMjo7Kysrq62tTU VE1Nraam5uTJk2vWrMHtBl475LNnz2bMmBEYGNjQ0FBZWenr64sQ2rp1q6KiYl1dXWtr69WrV6lU KpwWAAAAfGVSUlJUVFQmTZq0bds24h9I7DIzM/X09GbOnCkhIaGrq8vZFjp58uTSpUtTU1PpdDpx CxcTE9PW1rZq1SoXF5f379+PGzfO2tqauKxnZmY2NTX5+PhwtjG4NnsgVsMrVps2bUpOTq6rq+vq 6oqNjTUzM1NTU8O5GwEBAfaSz549G8lHX3t7e2VlpYmJCX47duxYSUnJoqIiOC8ByHf8G+Tk5DZv 3iwrK4vfysrKbt68WU5Ojr2MpKSksbHxvXv3Ojs7nz9/vmXLFiLf4ejoiBBSUVHx8PAgk8lCQkKb N2/u7e392131QkNDhYWFEUJpaWkIoV27domJicnIyOzcufP8+fO4jL+/P5VKFRQUdHJymjFjxv37 9xFCqampMjIyQUFBJBLJyMjI39+f6/LFxcXXr1+PEBIVFXVycsJdDdPS0hQVFQMDA0kk0oQJE1as WMG/kkJCQiEhIcQL9mdMiPpfv36dTCZv3bpVWFh4/Pjx3377Le6KmZaW1tfXFxMTIyUlNWrUKEtL S3Fx8YaGhitXrhw/fpxGowkJCUVGRlZVVRUVFQkLCzOZzMLCwo8fPyooKOjp6SGEuE7kmpTJyMg4 ePAghUKRkZH54Ycf7ty5U11d/Zc2h42NjaWlJUJISUlp0aJF7N/0U3DdCuz4bH2EUHh4uJKSkry8 vIeHh7Cw8Jo1a/CzHvLy8s+fP+ezQx4/ftzd3X3hwoXCwsJiYmLTpk3D8aytrS0uLkYI6ejo/Fcj 7AIAAAD/EE9Pz6tXrz548CAqKiopKWnRokWcZZqbm5OTk5csWdLU1HT48OHg4ODk5GT8EYvF2rJl y4EDB7Kzs01NTYlZ/Pz8jI2NSSRSQECAlpZWUlISQiggICAhIYHFYiGETp06NX/+fDKZPGhdvJo9 EKvhFSsrKysSiaSsrEwmk3/++ef4+HhBQUGEEJ1OP3bs2Js3b3p6eiIjIzs7O5lM5kg+APHXl5KS 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 GxubkpJCjJoREBBw+fJlXKavr+/Vq1d49A0+l2QKhcJ/ABE+eMXkn96vcHZJW1sbIfT8+fO7d+9+ 4g28jY1NWFhYV1dXa2trVFQU8dHkyZMzMzP/+OMPhFBCQgKR7+AVZ0NDw3fv3uHf933x4gXeP/ns aQihmJgYYockXLt2DQ/1IisrKyYmxnX8dgaDoaamhpsLp0+fJurW0dERFhaG9zR1dXUnJ6dt27a1 traWlpYeOHCA6xO2fwmfffJTth3Xgy47O7uoqKi/v19cXBz3c4GTKgAA/GsSEhIqKira29ufPn0a HBzs4OCA/7VTUFAgKiqKb8X9/PyePn2akpLS19f38OHDGzduzJ49m1iCqanprVu3tm7dyj7O2tmz ZwsLCwcGBhITE0tLS/EDqgihZcuWpaamxsXFsXdSptFoRCvlEy9AEKsvIVZSUlJ6enrx8fF4VPJT p051dXXhe/jq6urnz5+3t7c/f/7c19fX2NjYyclphB+D/v7+hw4dKi4uZjAYmzdvtrCwgB/UA5Dv GMZOnDgxfvx4Z2dnKpVqamqanp4uICCgqqq6Z88eFxcXOzu7pUuXzpw5ExeWlpa+du3a9u3bp02b 5ufnN2fOHD5LtrW13b59O51O/+abbw4dOuTl5YWni4uL3759u7S01NDQkEajzZo16/Xr13j6L7/8 Ul5erqenp6Ki8t133/X19eGrjoiIiKGhoYGBgaSk5OnTp4mr0atXr8zNzd3c3KZNm0asNzAwcMOG DStWrFBUVBw3blxMTAxeTmho6MSJEy0tLV1dXZuamvg/os81LPijhQsX5ubmKikpESOSGBoaJicn Hz9+XENDQ1VVddWqVcQPpvASFRW1Zs0aGo0WGRn5N7Yar5j8o/BTjsbGxg4ODseOHXN2dv7EBZ49 e7a9vV1TU3Pq1Klz584lps+dO9fExMTExMTZ2bmqqmrs2LH846ypqblz5046nW5vbx8TE+Pi4sJ/ T0MInTlz5vHjx4Pqk5+fj8djnzBhgrq6On5OapDNmzeXlpaamZk5Ojq+f/+e6NHT1dX1448/EqOo JCYmiomJjRs3zsbGZvr06VzHH/0sh+onbjuuB11jY6Ofn5+ioqK6unpRUVFsbCycJwEA4F+TlpZm Y2Ojpqa2YMECc3NzYozMqqqqMWPG4C6WEydOvHDhwo4dO6hU6tq1a2NiYoimGmZgYHD37t0DBw7s 27cPT1m+fPnGjRtpNNrx48eTk5Pl5eXxdC0tLVNT0+rqavZGXUhIyC+//EKj0fD14lMuQBCrLyRW ly9f7uzs1NfXV1JSio+P/+mnn/BvGjQ2Ni5YsEBVVdXV1XX8+PFJSUlfSIX/QyEhId7e3o6Ojlpa Wv39/fBDdYArgS82NYhHWuZTICMjg+gNCAD4d7S0tKioqFRUVBAjegAAAACAsGbNGmtra/Z/D3wu K1euHBgYiIuLg1iNwFgB8Ffl5+dbWFiw/oyAgEBubi7uDsbLtWvXvCP2DdM4wPPPAAAAAAAAfB5H jhz5JxZbWlp65cqV+/fvQ6xGZqwAAH8P5DtGkMbGRltb20ET3dzciMcCv2Rbt269cuXKoIl3797l /8Mfwzd6169f37hx46CJO3fuJHobfZVBBgAAAACnhQsX3rp1KygoCA+wDSBWAIAhgv4sAAAAAAAA AADA1wP6s2DD+/kOERER2JUBAAAAAAAAAAAwCPw+CwAAAAAAAAAAAL42kO8AAAAAAAAAAADA1wby HQAlJSXp6ur+pVk6OzsFBAQqKiogen/DvXv3aDQaxAEAAAAYmdLT0zU0NDinGxsbnz59GuIDsQIA fC6Q7wBfrbCwMF9f3395pQMDA2FhYfLy8mQymU6nNzQ0cJbR1dXdvXs3bCAAAABg+FqzZo0Am/37 93MtVl1dPXfuXAqFQiaTzczM2traPmMdzM3NT548CbH6mmLV0NAwZ84cKpUqISFha2v75MkTPL23 t3fbtm0aGhqioqK2trYvX76EY3AorW4AIN/xNejt7YUKfxb9/f0DAwOfsoS9e/eeP3/+3r17FRUV LBbL29ubs4yKioqfnx/stwAAAMCwtnz58j/+Jzg4mLMAg8GwsbERFhbOy8srKyuLiooaPXo0xApi xceqVatqamoKCwsbGxtNTU1dXFxwszkqKuqnn35KT09vaWmxtbV1dnbu7Owc4QfgUFrdAEC+44uT k5NzjUNOTs6gYsbGxps2bbK3tx8/fnxSUtKHDx+Cg4M1NDRkZWVnzpxJ9DQ5evSonp6ehISEqqrq hg0bPn78iKc/efLE2NhYUlLSysrq3bt3/KuUmZlpZWVFoVCoVOry5cuJ6bm5uQYGBmQy2d7evrq6 mv8aB1WYWAiLxYqNjZ0wYYKkpKSamlpsbCxCqK+vLyIiYsyYMRQKxd7e/vnz57jwxo0bvby8Fi9e bGRkpKWldejQITy9qqpqxowZcnJyFAplwoQJL168uHLlSlxcXGpqqra2tra2dldXV3p6urq6+pYt W6ytrSdMmLB69eru7m70v745MTExU6ZM0dbWrqurKyoqsrOzo1Aompqa27dv7+vrI4pFR0dbW1tP njx5xowZNTU1nLGKjY3dsGGDgYEBlUo9cOBATk7Oq1evBpVh789ibGwcFhbm7Ow8YcKECRMmZGVl cd0EWVlZeBNoa2sfPnyYiMb8+fOXL18uISGhrKx8+fLlgoICY2NjMpns6Oj4/v17/luko6MjJCRk zJgxEhISEyZMePToES6sqakpLS2toKAQFBQExyMAAADAC4lEEvkfEonEWeDo0aNkMjkhIUFXV1dB QcHJyUlcXHxQmTt37igqKqampuK35eXltra2kpKSRkZG2dnZCKG3b98KCQnV19cTDSdtbe3ExMSN GzcWFhZu2bJFW1vb3d0dIcSrNQixGkaxKikp8fHxUVZWFhMTCwwMbGlpqa2tRQhduXJl1apVEyZM EBMT2759O5PJTElJGeEH4FBa3QBAvuOLo6urm52dzZ7syM7O5jq+RlJS0rlz516/fj1v3jw/P7/i 4uLHjx/X19dPnjzZzc2tv78fIaSgoJCWlsZkMu/du5eeno5vlRkMxowZM3x9fdva2o4ePXrkyBE+ 9Xn27NmMGTMCAwMbGhoqKyvZe4gkJCRcv369vr5eTEwsLCwMT+S6Rs4KExOPHDkSFRV14sQJBoOR n58/ZcoUhNDu3bvPnz9/69athoYGW1tbJyen9vZ2XD49PX316tWFhYV37twJCwsrLi5GCG3dulVR UbGurq61tfXq1atUKtXb23vFihV0Or2kpKSkpERMTAynRSQlJXNycgoKCt69e/f9998T1Xjw4MGj R4/Ky8txssDe3r6hoeHGjRunT5/et28fezYqMzOzoKDAzMzM09NzUKza29srKytNTEzw27Fjx0pK ShYVFfHf4teuXTt79uzLly83b97s6+vLYrEGFXjx4oWLi8uGDRuam5uvX7++f//+n3/+GX+UkpLy zTffNDU1RUZGLl++fOvWrZcuXaqvr+/v74+KiuK/RZYsWVJQUJCZmYkvmQoKCmVlZSEhIenp6QwG o6ysbP78+XA8AgAAALykpKSoqKhMmjRp27ZtHz584CyQmZmpp6c3c+ZMCQkJXV1d/E8ddidPnly6 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 UVERExMLDg5mMpkIoeHhYR4entOnT2tpaeFwuBUrVtBotMjISAkJCRKJlJaWhjV18+ZNU1NTAoEg KSnp7u7e2dmJle/cuXP16tUbNmzQ19cnk8nHjx9nr2pGRgaZTBYXF1+3bh2DwZhhHB49emRtbU0g EFRVVffu3Ts2NsalHFv5hIQECwuLxYsXOzo6dnR0TNeyoKDg9u3bly5dKiAgwGUF2ONZsIcwDxw4 YGRkRCaTN27ciF20Jmhra3N3d5eWlpaVld28efOrV69mHtWurq7ly5dLSUmJiYmZmZndvXuX3WxZ WdmSJUsIBAKRSNy0aRNCqL293dHRUVJSkkAgLFy48M8//4SjBgAAAHg3fHx8gn/h4+ObXOHkyZN4 PD4jI0NTU1NaWtre3l5YWHhCnZKSEhkZmfz8fOxla2urlZWVqKiovr5+RUUFQqixsZGfn7+rqwur wGKx1NTUMjMzd+7cWVNTs2vXLjU1NTc3N4TQq1evwsLClJWVJSQknJyc2traIFazLlZNTU2enp5y cnJCQkLBwcEvX77EOsyXL18OCQlZuHChkJDQ3r176XR6bm7uHD8AU1JSduzYoaurSyQSjxw5UllZ WVdXB+clAPmOT5mmpmZFRQVnsqOiokJTU3NCNT8/v+rq6rKyMuxcKS0tjRBas2YNnU6vr69/8uRJ X1/f2rVrOZMOhw4d6u/vNzQ0dHFxuXHjRnV1dXV1dW5ubl5eHrvaxYsXS0tLKRQKlUo1NjZWVFTs 6OhIT08PDQ3FLjzz5s07duzYixcvnj17hhDinIyjqKho8+bNNTU1JSUlUVFRT58+RQjdunVr69at GRkZ/f39zs7OP/3000yCMDAwYGdnZ2Nj093dffXq1dOnTx86dIhLOTtVVFZWVl1dbWJismrVqg+4 UygUCh6Pv3fvXm1t7b179yaPNWUwGNbW1pqamq2trbW1tc3NzRERETOP6vj4+KZNm1pbW3t7e1eu XOnm5oYlhh4+fOjo6BgcHNzd3U2hUHx8fBBCMTExMjIyz58/7+/vv3LlCpFIhKMGAAAAeDe5ubny 8vKLFi3avXs39lnFBGVlZdra2k5OTiIiIpqampPn9kpPT//qq6/y8/NdXFzYt3BJSUkDAwMhISHL ly9/8eLFZ599ZmFhwe4/lJWV9fb2enp6Hj58WF9f/+DBg01NTditr7+//9OnT3///feurq7Fixev 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 U1NTNTW1hISEs2fPGhoaIoQaGxvnz5+vqak5Y8YMY2Pj5ORkmKYtNDTU19fXxcWFyWTy+fxz587B cQn0Rxi2qUF8puVBKmRmZgpHAwIAAAAAAPDJhYSE2Nvb+/v7f/Alf/311wKB4MiRIxCrURgrAP6q +/fv6+rq4jMMvg+fzxcIBIWFhfhwsPe5cuWK77Y9IzQO0N0dAAAAAACAD+PQoUMfY7FlZWWXLl26 ffs2xGp0xgoA8PfAeBYAAAAAAACGrwULFtjY2Kxdu9bc3ByiAbECAAwd9O8AAAAAAABg+BJOeAEg VgCAv2Rk5zskJSXhIwQAAAAAAAAAAEAfMJ4FAAAAAAAAAAAAnxvIdwAAAAAAAAAAAOBzA/mOESM5 OdnIyOgvvaSjo4NAIFRWVkL0/oZbt24xGAyIAwAAAAAAAACMRJDv+EdaWlogCP9QeHh4QEDAv7xS gUAQHh6urKxMoVA8PT0bGhr61zEyMtq1axd8QAAAAAAYelti7969hD8oKysHBARAcxFiNXQ7d+40 NDSUlpZWUlLy9PQsLS2Ffe2ftOcBgHzHP7Jr166hH5d7e3tH1rsbthvM5/MFAsE/WUJMTMyZM2du 3bpVWVmJYZivr2//OhoaGoGBgfAlBwAAAMBfakuYmpr29vb29PTcv3+/qKjo//7v/yBWEKshcnZ2 Tk9Pr62tffr0KZ1O9/HxgX3tn7TnAYB8xz/S2to6eMrDysoqLCzMycnJ2Ng4OTm5s7Nz3bp1Ojo6 ioqKHh4ewpEmhw8fNjExkZGR0dTUXL9+fU9PD17++PFjKysrWVnZyZMnv379evCNycrKmjx5Mo1G o9Ppy5YtE5bfv3/f3NycQqE4OTmxWKzB19hng4ULwTAsPj7ezMxMVlZWS0srPj4eIcTj8bZt26ar q0uj0ZycnPLz8/HKGzZsmDNnzqJFiywtLZlM5sGDB/Hy6upqd3d3JSUlGo1mZmb24sWLS5cuHTly JC0tTV9fX19fv6urKyMjQ1tbe/Pmzfb29mZmZqtWrXr37h36Y2zO/v37J0yYoK+vX1dX9/z5c0dH RxqNpqent337dh6PJ6wWHR1tb28/fvx4d3f3mpqa/rGKj49fv369ubk5nU7ft2/fvXv3Xr582aeO 6HgWKyur8PBwNzc3MzMzMzOz7OzsAT+C7Oxs/CPQ19ePjY0VRmPevHnLli2TkZFRV1e/cOFCbm6u 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 URF76zjW2G/37t26urqysrKurq54NqeiosLOzo5CoQgJCenr67e3txsbGyOEjI2N5eTkQkND0f9/ niU+Pl5NTU1AQEBdXR3fnFHmb2ZmNnny5EOHDv1p4oP1+ZRNmzbZ29s7OTlpaGjIyspGRESMPi3r 8yxYDsjAwEBAQEBDQwO/dcDNzX3hwoXw8PCsrKwNGzbw8/P7+/vjK+ng4CAtLT1otkpKSm5ublpa WqPnxVauXIkFUEpKKiYmZpRAsTp69CgvL+/Zs2cVFRXFxMRMTU35+Pjg5AUAAAB8W+zsbNx/YGdn x/+tr1q1SlVVlYeHZ9euXZ2dndjtkKysrNTU1ISEhGnTpomIiOjq6srJyQ2aYVVVVVpaWlhYmKio qJKS0tatW7GaKquenh5bW1sLC4uuri6sZN++feLi4iIiIqtXr8Zqs0uXLl29ejU+SXR0tLS0dHV1 9YoVKxoaGuTk5OTk5O7fv48Qevjw4fTp00kkkpyc3OHDh79mrNi5uLmwP4jVKA6c3jXDZJoohayu o+K0yuHpo1yWCnC/t4tfyJHt3MT/vaEyISFh9uzZVlZWXFxc1tbWxsbGkZGR2CBTU1M6nS4kJCQt LU0mk0tLS7Hy48ePb9y4UU1NTURE5MCBA48ePSoqKvoef4ARp3+aZaIhSiFp6kx0WzXn10e/b4Wc vLiapixZRFBEVEhOgfbx46eaqncIocrytwKCPAuWGnJycqioSc801nhZUIEQyrxf2NfH2LJzKZGH S3mSlNvquaeO3MAXYWJiQqFQdHR0Vq1a9ejRIzjvQb7jP53yKCkp2blzp7y8vJ2dHTs7+/Xr13fs 2PGnc05OTo6Ojn758uXWrVsdHR3xBk7Xr1/38vJ68eJFREREZGRkWFhYbGxsW1tbYGCgjY1NdXU1 QsjJyWnVqlVtbW3v3r0LCwvDHoJYvHhxZ2dncXHxq1evmpublyxZMuj/wfLly6OiorCvHz58iI+P d3FxQQiNtJSQkJC0tLScnJzKysp3797hpzNWubm5SkpK+/fvLysrG/2Rk+rqal5e3mfPnr18+fLZ s2fYA5Dd3d1GRkY0Gq20tLS5uTksLIyDgyMjIwMhlJGRUVZWxpo9QQhlZmYuW7Zs7969ra2tISEh S5Ysefz48SjzRwg9e/Zs27Ztv/76q4KCgrGx8enTpz/zqY2UlJTVq1fn5+enp6f7+vp+fr8e2Bk/ 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 Zp2dnefNmycoKDjSejs7O+3t7S0sLN6/f4+V7N+/X0JCgkwmr1u3jsFgIISWL1++bt06fJHo6GhZ WVkajbZq1aqamhoFBQUFBYW0tDSE0P3797FOlIKCwrFjx75SrEIjQiFWYzRt2jRFRUUSiSQpKSkt Lf369Wsmk4l119euXaumpsbFxbVnz562trarV6/+5MfgyZMnN2/erK6uTiaTDx48+PDhw2HzYgDy HePE2FMemLKysk2bNiUlJbW0tJSVlS1btgz/6OHDh2lpac+fP582bdqCBQtGaqGvr8/FxaW8vLy+ vt7GxsbOzq6jo2Okyk1NTZaWlq6urs3NzadOnRp074yEhITo6Oj8/Pxt27Y5Ojpi57WRXLx4MTU1 lUaj0en0qVOnSktLV1VVRURErF+//t27d5+6Yenp6b/88ktwcHBTU1NgYOCyZcsyMzMRQjk5ORYW Fh4eHjU1NTQazdHRcfR40mg0bm7up0+f5ufnP336dOi0yY6ODiMjIyUlpfLy8vz8/NLS0q1bt37+ Tg27nT4+PmJiYm/fvm1qarpy5QqZTIZDHQAAAABfSXp6upaWFvY6LS1NRUXFyspe58AlAAAgAElE QVSKl5dXSUlp2NulFRUVNTQ0aGpqfuqK6urqZs+eLSwsnJiYyMvLixCqqqoqKSkpLS3Ny8vLzMz0 8/NDCLm7u8fGxnZ2duKpmdWrV8vIyERGRlIolJKSkpKSEiMjo5cvX1paWm7evLmhoSExMfHAgQOX Ll2CWP3nsbpy5Qo2l2f37t27d+8mEAgIISaTib3A5eTk/MwHXWtrK41G09XVxd5OnDiRj48vLy8P Tkdg3OY7sJRHRETEGCuzsbEhhJ4/f97S0sLNzT116lT8o82bN2Oj6by8vJ4+ffrq1athW5CUlLS3 t+fm5mZnZ9+2bVtPT88oU+muX78uJibm4eHBysqqpqbm7u4+8FMXFxdRUVGEkI2NTVVV1du3b0fZ cl9fX3FxcREREXt7ew4OjvXr12PDIkRERF68ePGpGxYVFbVo0SILCws2NjYrKyt7e/szZ84ghMLC wuzs7H755RcODg4uLq6PTozk4eH57bffEEJEItHU1HRoGv769esIocDAQC4uLkFBwb179547d+7z d2rY7eTg4KiursbGnigqKsJNRgAAAADwlYSHh6emph48eBB729DQEB8f7+TkVF9ff+zYsY0bN8bH xw+s39TU5ODg4OnpiV/2j1FRUZGenp6trW14eDjWj0UIEQiEgwcPcnJyiouL+/n5RUVFIYQMDAwo FAo2aPfNmzdZWVnDzuYODQ11cHCwt7dnZWVVVlb+9ddfB/bNIFb/VaysrKxycnLu3bvn4eExZcoU rNDW1vbEiRPFxcVdXV27d+9ub29va2v7mY87bPf5+fnxEgEBgZ88JmD85zuEhISGTrsYibS09OXL l//8809JSclp06YlJibiH4mJiWEvuLi4+Pn5R5rS0t7evmHDBmVlZSkpKSqV2tbWVl9fP9Lqqqur ZWRk8LcDXyOEhIWFsRdEIhEhhA+6G5a4uDj2gpubW0JCAi/n5ubGFvykDaPT6fLy8vhbeXl5Op2O EKqoqJg0adInBR/POhOJxKG7UF5eXldXp/SPpUuXsrOz4zes+tc7Nex2BgcHKysr29nZiYiIeHh4 tLS0wKEOAAAAgC8uNDR0165dd+/exXtTvLy8enp6S5Ys4eTkNDU1tbW1TUhIwOvX1tYaGRkZGhoe OnToU9d19uxZdnb2DRs2DOpDYnNAEEJUKrW+vr6rqwsh5Obmhv0KGBERYWFhMbBzNbBvduPGDbxv dvz48a96uQixGiNOTk4xMbFp06Zt2bLF1tYW6/Hu2rVrwYIFFhYWkpKSDQ0NU6dOxS8ffk58fHwI oYH3vm1pacEKARif+Q4hIaFt27Z90pFvY2OTnJzc1NTk6uq6YMEC/KoYvxNyQ0NDS0vLSDdn3rVr V2Fh4YMHD+h0ekVFhYCAwCjzUCQkJGg0Gv524Osv7pM2TEpKqry8HH9bVlYmJSWF/TPw5s2bL7hV MjIyUlJSRf94/fp1Q0PDwKTsv9upYbdTUFDwyJEjpaWlT548ef78eWBgIBzqAAAAAPiyAgMDg4KC 0tLSJk+ejBdqamoOmnfAwsKCd/9mzpw5d+7c48ePD6ozFgEBATo6OsbGxk1NTXhhQ0MDft/KiooK MpnMwcGBEFq5cuWTJ08KCwujo6NdXV0HbQneN1uwYAHeNysvL7937x7E6j+PFY7JZHZ2dlZXV2NJ kJCQkLKysvr6+l27dhUUFHyNp9L8QPj5+WVkZLKzs7G3paWlbW1tGhoacF4C4zPf8S+SHSUlJXfu 3GEwGOzs7CIiIgQCAR/tFhAQUFNT09HRsWnTJl1dXWVl5WFbaG5ulpGRwe4NcebMmdFvHWJjY/P2 7duTJ0/29fXl5+efOnXq60XjkzbMycnp0qVLycnJfX19t27dio+Pxx6g6+HhER8fHxsb293d3dHR 8fnndBsbm66uLh8fn7a2NiaTSafTB46p+dc7Nex2XrlyBcsoCQsLc3Fx4X9ZAAAAAIAvwtvbOyws 7M6dOzIyMgwGAxspgBBydXV98uRJXFxcb2/vvXv3rl+/jt0M7vXr17NmzbK3t/f392cwGAwGo6+v D1tk3rx5+ENGenp6sI/6+/sZDEZ3dze+RjY2tujoaG1t7dmzZ+OP3mQymV5eXgwG4927d/7+/itX rsTKBQUF7e3tly9fzsrKamlpiRWKiYk1NDQ0NjZib9esWRMbGxsXF9fd3d3b25ufn5+RkfE1YuXr 7QuxGiN/f//CwsLW1ta8vDw3NzdpaWkVFRWEUGVlZW5ubmtra25u7uLFi6dOnWpmZvaTH4MeHh6H Dh0qLCxsaWnZunXrjBkzVFVV4dQExme+41OTHQghBoPh5+dHoVAEBQV9fX0vX76Mj3BzdnY2NDQU Fxevra2Ni4sbKam8c+fOkpISLS0tAwOD2tpaOTm5UVYnKCiYlJR06tQpEonk5ua2evVqLKP8NXzS hhkYGERGRm7cuJFEInl5eUVHR8+YMQMhNGXKlMTExKNHj5LJZBkZmdjY2M/cKh4enrS0tJKSEiUl JQEBATMzs0+6hfJIOzXsdj579szAwICPj2/ixIlUKnX79u1wqAMAAADgS2EwGMHBwVVVVSoqKkQi kUgkcnNzYx+pq6vHxcX5+fnx8vJ6eHgcO3bM2toaIRQZGUmn00NCQoj/2LdvH7YIjUYzMDDAUwBE IvHAgQPp6elEIlFdXX3gegkEQlhYmLm5uYGBQWVlJUJIUlJSVlZWXl5+8uTJurq6e/bswSu7u7vn 5OQ4OzuzsrJiJZMnT165cqWSkhKJRLp9+7aWllZSUtLx48fFxMRERERcXV0Hjob4grE6FHwYYjVG OTk5xsbGIiIilpaWZDI5JSWFnZ0dIVRTU7No0SIymWxmZqaionL9+vV/MexlnPHy8lqyZImBgYGE hERvb+/ly5fh1ASGIpiamn6fW+bm5jZ//vxRKqSmpn7xvGZ7ezsvL295eTmVSv2qe7dnz55nz55h t/AEAAAAAADfv27UjRBiR+xfsM13797NmTMnPz8fv9L+Uuh0OpVKLS0t/drd2mF9QO0D33IjHogV AN9SamqqrKwsdnfIkWDDowoLC42NjUeplpCQ4LBr/w8aBxb4KnwzycnJ2CyMZ8+ehYaGLl26FGIC AAAAAPAzExMTKyws/OIX8H19fUFBQTY2NuPpAh5iBQD4VHBfg4+rqamZPn36oEI7O7vDhw9/UjtP nz51dHTs6uoik8m///77kiVLRqk8e/bsioqKQaf4rKws+HMAAAAAAIBR5ObmzpgxQ1ZWFoYSQ6wA +MlBvuP/4OHhGfooEwqFMij18O9s37597DeS+Ab3fAYAAAAAAOOPpqbmhw8fIA4QKwDAj53vYDAY 8CcEAAAAAADfAHb/jn7UD6H4eC8d/Z9eOiv8yAoA+C/A/TsAAAAAAAAAAAAw3kC+AwAAAAAAAAAA AOMN5Dv+D21t7e/20c27du365ZdfPr+dq1evamhofL32AQAAAADAl6Wvrx8TEzOo8ObNm4qKihAc iBUAYCTjJN/R2NgIf8vPZGVltXLlSogDAAAAAMBH+fr66urqCgoKysnJbdiwobW1dVCFwMBAIpF4 5MgRvLNKHEBYWHhomwUFBcT/S0lJ6Qtu8507d+Tl5b99rAJ890Ksxujy5ctz5swhk8lEIhGOstH1 9/f7+PhISUkJCQk5ODjU1tZCTMBQ4yTfERISMm5SHj09Pf/JenV1dU1MTOCQAAAAAAD4qPr6+uDg 4MLCwri4uIyMjN9++23gpy9fvrx06ZKsrOygpYqLi5ubm5ubm6urq4e2qaKi0jyAurr64sWLx0Gs GiBWYyYgILBmzZq9e/fCIfZRhw4dunDhws2bN4uLi5lM5rJlyyAmYKhxku9oamoaPeWhr6+/detW KyurmTNnzpgxIyMjA08ueHl5SUlJycrKBgcH4/VjYmIMDAzwtxs2bNi4cSP6ZyxcaGgolUoVERHZ sWNHY2PjokWLhISEtLS0nj59itX39vZetGjRihUrDAwMdHR0Tp06hTeVnp5uZGREoVBUVVVPnDiB FWLN+vv7T5s2zdjY+OP/bDQ0ODs7y8jIyMjIrF69uqmpCSs/efKklpYWmUxWUFD4/fffu7u7sfJn z57p6+uLiIgYGRmVlJQM2yY+n6W9vZ1IJJ44ccLAwEBDQ8Pc3LyqqmpofSaTefr06SlTpoiKiurp 6eEP0PX29l65cuWaNWvIZLKcnFxcXFxubq6+vr6QkJClpWV9fT1Wbe3atRMnTiSTyerq6tHR0Xiz 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 Dx7cuXOHGMyCEPr555/z8/OLioo6OjrS09N/+umnjIyMT47PULJ///7w8PBLly4RTWtRUVETExMP Dw8hISFbW1tnZ+fz588jhNavXz9lypRx48bBCeo/hTyUkh1BQUHcl77cAgMDcZeBkydPrlmzxtzc fMaMGS4uLniUID73sVgsnENtbW0dzBa5kybKysrr16/38PDotYyWllZiYmJPT8/du3ddXV11dHS0 tbV7enrq6+vx5EM1NTUIIUVFxV4rent7//bbb25ubvn5+XiSER5bGTFiBDHnBYfDGcz+i4qK4lM8 9tGpT+h0ek1NTXd3Nx/f/8+Rcb/uRVFRkbtfRk1NTd9j7KuysvLMmTNnzpx5+fKlu7t7YmLip2X6 Bw9PeU28trW17XsgdXV1PT09+OOuqan5aDadOyx0Or2np6eqqmrkyJHcyygoKNTW1uLuGN3d3XV1 dYOJT18jRozAY5qw+vp67jQTwdnZ2dnZuaurKykpadasWfX19Z9wXAAAAAAYpPT0dDx5xN9dkcVi eXl5vX79OiMjo1df2o0bN+bl5Tk4OFy4cIFKpRJNuM7OTrxkXV2dtLQ0vqz18vLasGHD48ePk5KS iNnNerXclJWVGQzG7t27IVbfWqwOHjxoZWU1atQooqSkpGTGjBn4kbqWlpYWFhaXL192dnb+tPgM GdHR0XFxcdnZ2dyx0tfXLykp6ds4v3r16vPnz/Ed5bdv33I4HAUFhfLycjExMThlDWFDpH8H72QH JiQkNH369JSUlMrKSg8Pj9OnT6upqcXFxSGEpKSklJWVL168iBBqa2v7hOmLAwMDN23adP/+/e7u 7nfv3uXl5VVXV7PZ7KSkpPb2dhKJJCsry8/PTyaTlZSUrK2tg4KC2tvb29vbg4ODbW1t+17ruru7 M5nM5cuXW1tbKykp8dgKPk3v2bMHz7oUFxc3mHyzgYHBtWvX8GDFI0eOfDTf4eTkRCKRgoODOzo6 2Gz2nTt3Ojs7BQQEqFRqv9OFzJkz5+zZszk5ORwOJzs7Oz09/aNPgXV1dbWysmIymdu3b6+srNy6 deuXTnYghBISEoqLi7u7u+Pj46uqqqZPn973wF+/fh0TE9PV1fXkyZPt27fPnTuXd500Go2Iiby8 vIuLy9KlS5lMZk9PT2VlJf7I5syZs23btsrKyq6ursjIyK6uLkdHx0/Y/9mzZ6ekpNy5c6e7uzs9 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 DiwWi8Vi9Zt8AQAAAMAXwuFwWCwWnnYd/y/G5QsXLrx79+6ZM2fYbPb169fPnz+PWxcWFhZ37ty5 fv16d3d3bW1tcnKykZERXsXZ2Rnf85CRkZkxY8aWLVuam5s7OjrWr19vaGhIp9PxYmQyOSEhwdDQ 0NramrjR1dPTExQUxGKxnj17FhYWRtwkk5SUdHNzmz17Nj8/v6OjIy6Ul5dvbW0l7nItWrQoOTn5 zJkzXV1dbDb74cOH+fn5XzNWWGxs7OzZs7kHSv/xxx9//PHHixcvmpqatm3b9vvvvxNznRCxwq5f v/7kyZO+/bu/31gFBwfHxsZevnyZTqezWCzcA0VWVpbJZBb/RV1dfcWKFSdPnkQIPXnyxNLS0s3N LSwsDMeWyA19+PAB/9nd3c1isbq6uv7jv8Hc3NyHDx/iGHp6elpZWRUXFw8fPjwyMrKiogKXb9u2 TVhYuLi4mEgnAch3fBM+muzgJiYm5u3tnZWVVVtbS8zceezYsejoaGNjYy8vr77DKT9q8eLFa9as mTdvHpVKpdPp0dHRbDYbIXTixIlRo0ZJSEjY2tquWLECP7j0xIkTQkJCuDucuLh4UlJS3wqHDx/u 7u6elZXFnSYYaCv4Sd2GhoaTJ09ubm7G00DwNnv2bBMTEz09vYkTJ/Y7fKMXUVFR/KQrNTU1aWnp NWvW4E1HRkb6+/tTqdTQ0FDu5a2srI4cOfLzzz9TqdSgoKCEhITx48fz3sS6deuampri4uImTpzI o+fI5+Xv7798+XIJCYndu3dnZGTgiVqWLl26evVqX19fcXFxIyMjPGR0//79UVFRZmZmtra2JiYm g6l8oA/6yJEjeArSpqYmLy8vKpVKo9GKiorwPB0Dhe7x48dEniUyMvL169dubm6Uv3yhf7oAAAAA 6FdiYiKFQpk6dSpCCP8vxtfVenp6Z86c2bBhw/DhwwMCAnbv3u3i4oIQmjFjRlhYmL+/v6ioqJmZ ma6uLvFQubq6OmJKuEOHDikrK48aNUpFRaW7u/vcuXPcd6pJJFJsbOyUKVOsrKzwo9kUFRVVVFTU 1NR0dXWNjY03b97M3cgpKiry9fUl+j7o6ur6+PhoaGhQqdTs7OyxY8dmZGTs2bNHXl5eVlZ24cKF 3L0hvkKscPMmNze31+wbzc3N/v7+SkpKGhoaqampaWlpRIudO1a4eebi4tLvCJTvMVYsFisqKqqh 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 bOwoVbm7u/f09JSUlDx58qS9vd3DwwMr9/Pze/LkydWrV1taWv744w8RERGEEDs7e0xMTH19fXl5 OUIoODgYIbR7924NDY2ff/65vLwcS1rHx8fv27fvxIkTjY2N4eHhTk5OdXV1o+zDvXv3cnJySkpK pk2bFhYW9rdC4eHhcfbs2Q8fPmAvT5065ebmxsLCMtI+xMbG7t69+9ChQ01NTffv39fW1paSkjpy 5IioqGh5eXl5ebmpqendu3e9vb0jIyPfvHkTERHh4eGBpXsQQnV1dZycnA8fPhypIyK+GA8Pz927 dx89evTo0aNTp04NX2blypUvX768fft2bW3tjBkzli5dOjg4iL118uTJX3755c2bN9ra2o6Ojjdv 3nzw4MH9+/czMzMvXryIEBocHPTy8nr+/Hl9ff2iRYucnJz6+voQQiUlJba2tn5+flQq9eXLl8uX L8dyQPfv3y8pKWlqasrPz9fS0oJrAQAAAADGbt26dZmZmY2NjX19fUePHtXT05OSksLeampqolAo oqKiCxYssLa21tPT+2QNFhYWysrKdnZ29+7dG/JWUVGRmZnZmjVr8Hv4jIyMOXPmvHnzJikpadu2 bVevXmVlZfXy8sJHT/f09KSlpXl7ezs4OPj6+i5atAhrxXFzc//dVuj4SUtLQwgtWbLkK9Y5WWM1 3Ejfqzt37ty+fTs0NPS7OgHfvn1bV1eno6ODvZSXl+fj4ysrK4NLE5i0+Q4s5THSlBn29vZycnIs LCyKiooBAQG5ubkjVVJfX5+bm7tnzx4BAQEikRgdHX3jxo2GhobGxsbMzMyDBw9SKBQWFhZ5eflp 06YhhAwNDWfOnDllyhQBAYHw8PCR0sCHDx/esmWLhoYGKyvrwoULZ8+ejXeR+KT169dPmTIFIWRt bY2PCB0jMzMzHh6ey5cvY1mG/Px8Nze3UfYhNjZ28+bNs2bNYmVlFRYWxi8czJKSkpYsWWJpacnO zm5lZWVra3vixAnsLS4uLubuJCPh5eVdvXo1QohAIJiZmQ0/qObm5vT09P3794uKinJwcISHh9fX 1+OXLW9vby0tLQKB4OrqWlNTExUVJSAgMG3aNHzErISEhK2tLQ8PDwcHx6ZNmz5+/IileOPj421s bFxcXDg5Obm5uU1MTBBCnJyc3d3dJSUl/f39IiIiKioqcC0AAAAAwNgZGBiwsbFNmzZNSEgoLS3t 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 tWsn2sLUidXY7y/v3r1rb29HCKmrq+MT346MjJSXl6urq4+7CvMtXSYxAQEBGo2Gx6S+vr6vr2/c mADId0z+ZAdC6MCBA/X19WfPnk1PT9+6dSs2uGv37t0PHz7Mzs7m5OTEl3z9+jWNRsMmrTh16hTr 2764uLicP3/+xo0bw8PDeXl5WVlZbm5uCCEfH5+srKxz584NDQ29ffu2sLDwHx6glZXVn3/+GRoa 2tfXNzIy0traeunSpY9ffaKD2rBhw759+x48eMBgMDo7O7H5rjMzM7GRiqKiojw8PGM7FgIAAAAA THHx8fGNjY29vb3FxcUbN240MTEREhJCCOnq6l64cKG+vp7BYNy7d+/27duamprYKnx8fNgcbUND Q7du3eru7m5sbNy0aVNzczN+exeEkJiYWGFhYWVlpaOjI51OxwofPnyYkpLCYDCKi4vPnDnj7OyM lZuZmWEtUhsbG7wlLCEhUV9fj9/rZNOmTTt37iwpKWEwGO/evSsqKqqvr/+SsfLz8zt16lRlZeXQ 0NDhw4ffvXuH9bbOyclZuXLlqVOnzM3NBwcHBwcH8V8Zp2ys9u7dW1NT09vbW1FR4eXlRaVSVVRU EEJeXl55eXm5ubnv3r2Liorq6+tbvXo1Qujy5ctXr17t6Oh48eJFYmJienq6ubn5FHkP+vj4REdH 19TU9PT0BAYGLlq0SFVVFS5NYHLmO1gnO27fvn3gwIGMjAw+Pj5dXd0dO3bY29v39/f/9NNPHR0d s2fPxm7RYmVlhRDauXNnXV3d3Llz9fT0Xrx4IS8vz2K/enp6iYmJmzdvFhISCgoKSk5OXrRoEUJI Q0Pj0qVLx44dI5PJNBrt3Llz//AA+fj4CgoK6urqlJWVBQUFTU1NP2n+4YkOauPGjYGBga6urgIC ApqamliKtKSkRE9Pj0QiKSkpycrKhoSEwPsEAAAAAIBZdnb2woULxcTE7O3ttbW109PTsfLIyEhd Xd0lS5bw8fGtX79+69at2I9hnZ2dQ0NDOjo6CCE6nb5t2zZpaWl1dfXm5ua7d++Ki4szb1xISOjm zZsdHR0rV678888/EUKrVq26ceOGiIiInZ1dWFiYpaXl/zXlCQQPD4+ysjLmARpr167l4uIik8mC goJv3rzZsGHDtm3b3NzchISEaDRaVFQUnhr4Mnx9ff39/c3NzYWFhTMzM69evYqNv46IiOjv77e1 tSV+cO/evSkeq7KyMiMjIzExMQsLCzKZfPPmTex3WR0dnVOnTmFfOs6fP3/16lXsuw+DwQgNDVVU VFRSUjp27NiRI0e8vb2nyHswKCjIwcFBT09PSkqKTqcz338HABwb82QWXxUvL68VK1awWCA/P3/U aD0AAAAAAAC+Qmlpabdu3YqPj//sW05JSdm9e3ddXd2oMSP/rWE0zI7YIVYA/Ffy8/Pl5OSIRCKr 9+nwMIPBqKmpMTIyYrFYTk6O3Z6D32gcYKgCAAAAAAAA/641a9asWbPms292YGDg6NGjmzZtmkxf 4CFWAIDPhQAhAAAAAAAA4Jvz448/iomJSUhI+Pr6QjQgVgCAsSDfAQAAAAAAwLfH39//7du3ly5d Yp56H0CsAAC4b3s8y+DgILyEAAAAAAAAfG3eo/cQBADAfwv6dwAAAAAAAAAAAGCygXwHAAAAAAAA AAAAJhvId/w/2dnZ6urqY8u7urqIROKLFy++QB02b968ceNG1ssYGhr+GzfomjTodDqRSKytrf0b y9+6dYtGo2HlOjo6Z8+ehXgCAAAA4MsYGBggEonNzc2jyoODgz09PSE+AADwqSZJvqOrqwteyy9s cHCQSCTW19d/4f2Wl5fr6ekJCgrOnDnz9OnTYxdgZ2ePjo4WFxf/GxufMWPG3r17/8OotrW1OTk5 USgUERGRxYsX9/T0wJkGAAAAfIU2b95MZHL06NFP+jT/y/bMPxEaGurq6vr1xIrBYISGhsrIyIiI iNjZ2eE/Ih49ehQPoIyMjKurKzTpWZxXmPDw8FHlqampGhoawsLCioqKoaGhw8PDUyRWE51XAEzC fEdUVBRcH78J79//o5mr+vr6rKyslixZ0tLScvjw4c2bN9+6dWvUMmxsbL6+voKCgn9j+1JSUuvX r/+vgtPT02NkZMTFxVVUVFRTU7Nnzx4ODg44ZwAAAICvk6ur6+sP8P65H/Np/jHtmckkOjo6LS3t 6tWrtbW1IyMja9euxZ9SUVHp7+/v6+srKCiora3dunUrnFfjnleYqqqq8+fPy8nJ4SWVlZWenp5B QUEdHR3Z2dkpKSknTpyYIoFicV4BMNnyHd3d3axTHidPnpw7dy6ZTFZUVNy2bdvQ0BBWXlJSoqOj IyYmZmBgUFdXhy//4sWLVatWUSiU2bNnX716lcWusZ6HZ8+enTNnjpCQkK2tbU9PT0hIiKSkJI1G S0xMxJfMysqaP3++mJjYggULcnJy8PIzZ86oqKhQKBQXF5e3b99ihc3NzUQiEb8BzYULF+bNmzd2 73fu3DEwMKBQKKqqqhNd3RobGx0cHGg0GoVCMTQ0xH5kqKysNDU1pVAoM2fODA8Pp9Pp+LGcOHFC T09PXV3dzMysra0ND+DMmTMpFAqVSg0MDEQImZubY39VVVUPHTqErXv48GFDQ0MtLS1ra+v29nZs XR0dne3bt5uZmc2ZMyc7O5tOp+/bt09ZWZlCoZiZmVVVVeGLBQYGWlpa6urqLlq06N69e2OP5eLF i8PDw7t37yaRSBYWFtbW1gkJCaOWYR6fcvXq1RkzZkRGRi5atEhFRcXHx4d1woV5PAtCqKmpydjY WExMbOHChXh9RkZG4uPj582bJyYmpqSkNHZsUWtrq7W1tZSUFIVCmTdv3uPHj7FajXvUzGJjY3l5 eWNjY2fMmCEmJmZkZMTHxwcXKQAAAODrxM7Ozv0BOzv7x3+af0x7prm5ee7cuXv27MEeDg4Oenh4 UCgUZWXl2NhYhBCDwVBSUsrKyqO1TtUAACAASURBVMJX8fb29vDwyMrKSkhIuHz5sqqqqqqq6tu3 b7Gmi4aGhri4uLa2dmFh4RcOVHx8/HfffTd79mxRUdGIiIj79+///vvv+LMcHBzTpk1TVFRcuXJl ZWUlnFfjnldYY9LLy+vIkSNEIpG5nU8ikRwcHDg5OWfPnm1gYDB1Ysj6vAJgUuU7/jLlIS4unpGR 8fLly6tXr+bl5cXExCCEenp6rKys1q5d+/z58x9++AErxDg7O2ODNQoKClJSUv5y7xcuXMjLy3v6 9GlbW9vixYtlZGTq6+tjYmI2b97c0dGBELp3756bm9u+ffuePXsWFhbm7Oz84MEDhNDdu3e3bt0a Gxv77NkzS0vLtLS0jz/kx48fr1ix4rvvvmtvb8/MzDx69GhmZubYdIyZmZm0tHRlZWVbW1t4eDgH B0dPT4+FhYW+vn5zc3N2dvbZs2ePHDmCr3L//v38/PyKigp5efnQ0FDsSrpt27asrKyOjo6amprV q1cjhPLy8rC/1dXVAQEB+LrXrl178ODB/PnzHRwc8G1mZ2cnJiaWl5fb29sfPHgwLS3t4sWLzc3N urq6lpaWvb292GK5ublJSUl3794NDw+3sbHp7OwcdTiVlZXq6ur47yTz5s0bN3HArKWlhZeX9969 e6WlpaWlpZ80JUd8fHxUVNTz58+9vLxWrFiB1ScmJiYiIuKnn37q6Oj49ddfNTQ0Rq21Z88eCoXS 2Nj4/PnztLQ0MpmMEGJx1LiioiJlZWUbGxsymayurg6ztAAAAABfs4sXLyooKCxcuDAsLOzNmzcf /2n+l+2ZkpISQ0PDTZs24fmO7OxsfX39Z8+eJScn7969+9q1awQCwdXVNSkpCVugv78/MzPTzc3N 1tbWw8Nj2bJl1dXV1dXVPDw8cXFx0dHRp0+ffv78+c6dO+3t7VtaWr5YlHp7e1taWvDf7RQVFUkk 0tj2W39//40bN8b9eQ/OK0xUVNScOXMMDAyYFzY2NpaTk0tPT3///n1VVVVRUdGKFSumQpQ+8rwC YFLNV9rd3Y1f9EexsbFRUFBgY2ObPn26j49PQUEBQujy5cvCwsL+/v7s7Oxqampubm74N+SioqLI yEheXl5RUdEdO3b85a5DQkIkJCTIZLK1tTUXF5evry+RSLSwsCCTydgbLzk5eeXKlaamphwcHObm 5tbW1thYzeTkZHt7+8WLFxMIBDs7Oy0trY8/3tjYWFtbW2tra3Z2dmVl5Q0bNoxNl1y5coVOp0dG RgoICHBwcGhpafHx8V25coWXlzc4OJiLi0tZWXnr1q3McduyZcu0adMQQpaWliUlJQgh7PO4vLy8 p6eHl5dXU1Nzoir973//w9bdsmVLaWlpTU0NVu7i4iIpKYn9n5ycHBQUNGPGDC4urpCQkGnTpl25 cgV7ysnJSUxMDCG0ZMkSZWVl5p8s8M9CEomEPxQQEOjr62MdJT4+vg0bNiCEiESioaEhdkQfaf36 9RoaGuzs7O7u7vLy8lh9YmJitm/frqWlRSAQREVFx34wc3FxPXv2DOtgMn36dGwmERZHjevq6rp4 8aKTk1Nra2t0dHRQUNDFixfhIgUAAAB8hVasWJGenn79+vU9e/ZkZ2e7u7t//Kc56/ZMbm7uypUr T548yTwHh4aGhqOjI4FAWLBggZOTU3JyMta+Kioqam1tRQhduHBBWlpaR0dnbFVPnDgREhKipqZG IBAsLCwWL17M3NH439bf348Qmuh4nz59SqPRqFSqpKRkV1fX/v374bwa97yqqqpKTk4+cODAqOV5 eXmdnZ03btxIIpEWLFiwatUqCwuLqRAo1ucVAJMz3yEsLDzR5EzXrl0zMzObMWPG9OnTw8PDsR/q 29vbFRQU8GXw/9vb27m5ufHv58zLTERCQgK/6OArYg8HBgYQQm1tbfLy8ni5vLw8NlRkojp8jKam pry8PPUPYmJixr7Jm5ub5eXlmfvCYZWRlZVlY2PDK4OPPUEIiYiIYP8QiUTsUiIjI5OampqSkqKo qLh48eKxX9RxFAoF+4eHh4dEIuGbZY5Je3s7HgoCgUCj0fBRM/jq2P/MtcLw8/MzH2Nvby/zZW6i swI/UvyIPpKsrCz+P41Gw+rT0tKipKTEYq39+/crKyuvXr1aRkZm48aN2AAiFkfNnJpZuHChnZ0d Nze3kZHRsmXLcnNz4SIFAAAAfIWWLFmio6OjoKBgbm5+/Pjx3NxcrInyMZ/mrNszhw4dMjQ0NDEx +cs2iaSkpKmp6ZkzZxBCSUlJ+E93Y1uMe/fuxVuM5eXlX3LaO35+foTQRMcrLy9fXFz88OHDhw8f ampqWlhY/Pnnn3BejTqvhoeHvby8Dh48OHZ+upSUlNDQ0J9//rmvr6+qqurOnTvBwcFTIVCszysA JmG+Q1hYOCgoCP+uzuz169d2dnb+/v41NTVPnz7dsWPHyMgIQkhKSgobbILBJ/WVkpIaHBzEJ9P+ LJP9SktLNzU14Q8bGxulpaVZ1AEb6onP3/Hq1aux26RSqTY2NhUfPHny5Pr166OWodFojY2NDAZj VGWam5uxIGCVkZKSYl3/ZcuWXbly5dmzZ25ubmvWrOnp6SEQxjl58Nu1dHV19fb24pvFMw7YIeOh YDAYzc3NWCiYV0cINTQ0jK2VmppaZWUlPu90WVnZ7Nmz/72TivmGcM3NzVh9qFQq81QvYwkJCR08 ePD333+/e/duWVlZVFQU66PGqaurMwcKy4zARQoAAAD4ynFyco6MjGDNrY/5NGfdnsnMzKyurt6w YQNz+23cNglCyN3dPTk5uaqqqrKyct26dePukUql7t+/H28x1tfXh4WFfbHgCAgIUKnUR48e4Q28 vr4+/Hg5ODjExcXFxcWVlZUDAgKqq6thSMLY8+rVq1fl5eU+Pj5SUlJSUlK1tbV79+41NTVFCFVU VCxYsMDQ0BCbA2Xt2rXXrl2bCsFhfV4BMNnyHSySHQihgYEBOp2urq5OIBBev36Nj91YtmxZS0sL liN4/fo1PrcolUpdvHjx4cOHEULDw8PR0dH/vIZOTk6ZmZn5+fnDw8PXrl27ePGis7MzQsjR0TE9 PR37qb+8vPzmzZvY8iIiIlQqFZsqlbluzLy8vH7++efs7OyhoSE6nV5dXf3rr78ihPr7+4ODgxsa GhBClpaWbGxswcHBfX19dDr9t99+GxgYsLS07O/vj46OHhoaevr06eHDh11cXFhUvr6+/ubNm4OD g5ycnGQymY2NjYODg5OTU0hI6OnTp8xLRkREvHjx4u3bt0FBQfPmzVNWVh43FIcOHaqrqxsaGoqI iBgaGsL73aWkpJSWlg4PD8fFxTU1NdnY2CCEKisr8US1tbU1gUAIDw9/+/btzZs3c3JyPDw8/r3z Kjk5uby8nMFgJCUl1dfXY/Xx9vaOiIgoLi7GPn6w6yxzzHNycrBhsSIiIjw8PNhooImOOicnJy4u Dtudq6trSUkJNqXr7du3r1y5MkVGYAIAAADfnMTExKampt7e3pKSks2bNxsZGWG/vbP4NBcVFcXm EWPdniGTydevX6+qqnJ1dcVmlEcIlZaWpqWlMRiMkpKSs2fPOjo6YuVLly5FCHl6elpZWeEtYQqF 0tDQgOdT/Pz8wsLCHj16xGAw3r17d+fOHazF8sV4enoeO3bsyZMnPT0927dv19bWVlFRwZ+l0+l0 Ov3Vq1exsbHc3NzMPVngvMLOKzKZXFdXV/yBgoLCpk2bsBkGdXR0Hj58ePv2bezntPT09LFTy01W rM8rACZVvoNFsgMhJCMjExERYWFhYWBg4ObmZmlpiZULCgrm5OR8//33+vr6rq6u2DSc+Bfd6upq LS0tKysrfX39f15DXV3d2NjYoKAgCQmJHTt2nDp1SltbGyGkp6f3/fffW1tbL1269NixY6tWrcJX SUhIiI6OXrRokaurK3YzlFHU1dWzsrJiYmJkZWVlZGT8/Py6u7sRQm/fvv3hhx+wHAofH98vv/zS 2NiooqIiLS29Y8cOOp0uKCh45cqVa9euUanU5cuXr1mzZvPmzSwqPzg4uHfvXllZWQkJib1796am pmLdT/bt2+fv70+hUPBfCdavX29iYiIvL//y5cu0tLRRv29gAgMDbW1tLS0tqVRqUVHRlStX8L55 Xl5e27Ztk5CQSEhIyMrKwubyqK2t/eGHH7AFSCTSxYsXr1+/LikpuWHDhujoaENDw3/vvPLw8AgI CKBQKDExMXh9/Pz8Nm/e7OXlJS4urqOjg+U7mGNeWlqK3dVl1qxZNBotKCiIxVHn5+dnZGRgu5s9 e/a5c+f27t1LJpM3btwYHR2Nn6sAAAAA+Krk5uYuXryYSqWuW7dOS0sLnxB9ok/zV69eDQ0NYTO1 /WV7RlBQ8OrVqy9evFizZg02vsPGxiY/P19SUnLt2rU7d+7EW4bYrKUVFRXMg1kcHBy4uLikpaUp FMqbN298fHy2bt3q7e0tISExffr06OhoPI3yZWzZssXOzs7Y2FhBQWF4ePjcuXP4U7///js/Pz8/ P7+qqmpJSUlWVpaoqCicV6POKwKBIMWEg4NDQEAAmxHfxsZm9+7d/v7+oqKiS5YsmTVr1mf5pfab wOK8AgDHNmpw4NcDuyMGiwXy8/OXLFkCL+FXYmBggEwmP3nyhPl+rp9ER0fH19fXyckJggkAAACA Seb8+fOFhYUnTpz47FtOS0vbu3dvdXX1uL8zAQCmpnv37snJyTHfvXis4eFhBoNRU1NjZGTEYrGc nBy7PQe/0ThwwKkAAAAAAADAv8re3t7e3v6zb3ZgYOD48eN+fn6Q7AAAgLEg3/EJli5dyjxZFEKI QqEUFRVBZAAAAAAAwBcWExOzY8cOAwMDLy8viAYAAIwF+Y5PMPbuJwDHx8f37t27f7KF+/fvQxgB AAAAAD6Sr6+vr68vxAEAACbybec7uLm54SUEAAAAAAAAAADAKAQIAQAAAAAAAAAAACYZyHcAAAAA AAAAAABgsoF8x//x9/f38fFBCNHpdDY2tidPnnyFldTU1Dx9+vTY8tDQUAcHh8+7r0/d5kTLZ2Rk KCsrjy1njvO/UX8AAAAAgG/LwMAAGxtbU1PTqPKAgAAXFxeID8QKAPCpJkm+49WrV1P5VVy+fLmb m9vfWFFLSyshIeHzbvNL1v+fS05OVlVV5eHhkZGRCQ4OHh4exp9KSEhQUVHh4uKSkpI6fvz4RFtg sdjIyIixsTEbG1tJSclnrHNISIiamhoPD4+UlJSPj09vby9cyAAAAID/xNjP+oyMDDYmy5YtG3fF tLS0WbNmEYnEmTNnZmVlfd5aBQcHOzo6Qqy+0VjdvXtXT0+PSCQKCwuvX78eL09NTVVUVOTm5tbU 1Hzw4AG8+xgMRnBwsJiYGC8vr7W1dUdHB8QETNp8x4EDB6ZyymPhwoVLly79+rf5NeyLWUVFhYuL S0hISE9Pz5UrV86cOXPs2DHsqaNHj4aGhu7bt6+lpeXWrVvz588fdwusF4uNjWVjY/vs1X758mV0 dHRDQ8PFixfv3Lnj5+cHFzIAAADgPzHuZ/306dPffZCdnT12rVu3bjk7Ox84cKCnpyciImLt2rWf 96cRiNW367fffjM1NbWysqqtra2oqFi3bh1Wfv/+fTc3t4iIiM7OTmtra3Nz8yn+cy9CKCoqKiUl 5ebNm01NTSMjI3Z2dnBFApM239HV1fU3Uh6JiYkKCgqCgoLr1q17+/btx6yC9Z07fvy4lpaWsrKy oaFha2sr9tSbN282b94sKysrIiJiaWmJ9a+7ePGigoICtkBYWBgbG9sff/yBECotLeXn53///v24 e+ns7HR0dKRQKBQKZf369V1dXfhTjY2Nenp6JBJpzpw5d+7cwQqZx4OMWw2EUH9//5YtW+Tk5Pj5 +WfNmnX//v2AgIDy8vKQkBBFRUUbG5tRdcC3yeKQJ1JcXKypqUkikRYtWoQdL2vM9dfU1AwODjY1 NZ01a9asWbOKioqwchcXl+DgYHwVZWXljIwMhNCePXtUVVWxl+/JkyckEumXX34Z+0lJIpGqq6sR Qu/evVNTUwsJCUEI1dfXCwgIrFu3jpOTU01NzcjIqKKiAltm9+7dR48etbW1FRcXnzFjhpaW1thq s16subk5MjIST6CM1dLSYm5uLioqKiQkNGvWrKqqKoQQnU7fs2ePnJyckJCQoaFhZWXl2BUTEhKM jY0pFIqmpqafn9/du3fhQgYAAAB8eRN91rOxsXF/MG3atLErZmRkLF26dPny5VxcXNbW1kZGRjEx MaOWaWpqUlFRCQ0NxR4ODg46OzsLCQnJycmdOHECIcRgMKhU6oULF/BV3NzcnJ2dL1y4EBsbe/Hi RUVFRUVFxbdv346MjJw8eVJVVVVAQGDevHm3bt2CWH21sQoNDXVycgoICKBSqTIyMqamplh5XFyc mZnZqlWr+Pn5Q0ND+fj4fv755yn+Bjx58uTWrVvV1NTIZPLhw4fv3r2LtfYBmIT5jr+R8rh9+/am TZsSExO7u7uXL1+ekpLy8fu6e/funTt3njx5oqCggH8Jd3V1ffLkyYMHD54/f66hoWFlZTU8PGxg YNDS0tLQ0IAQunnzppKS0o0bN7D/9fT0xr2sI4TWrFnT19dXU1Pz+++/v3r1au3atcxv7Ojo6Nev X/v5+VlYWLx8+XLUuuNWA8sXPHr0qKCgoK+vLzs7W1xc/NChQ3PmzAkPD6+rqxs3of6Xhzyunp4e c3NzR0fH169f//TTTz/++OOnvpQ5OTnJycmPHz/evn27o6PjyMgIi4V37dolKSnp6+v77t07e3v7 jRs3mpmZjVrG0NAwICDAzs7uzZs3/v7+QkJCe/fuRQiZmprKy8unpqa+f/++srKyoKBg5cqVWDaq r6+voaGBSqWSyWQbG5vm5uaxu2ax2MjIiLu7+969e8lkMovPMwkJiWfPnnV3d2dmZmJLHjhwICUl JS8vr6OjQ09Pz8TEhPVwlTt37sydOxcuZAAAAMAXxuKzvqWlRV5eXllZ2cXFZdwmxMjIyKieDmVl ZcwPi4uLdXV1t2zZsm/fPvxrv6GhYVdXV1paWkhISF5eHoFA8PDwwAcm9/f3nz9/3tPT087Oztvb 29rauq6urq6ujoeHJyYmJioqKjU19fXr12FhYStWrBi3VhCr/zxWw8PDt2/f5uXlVVdXFxAQ0NbW xn/5q6iowPsRs7GxaWhoYL/STVm9vb3Nzc14TJSUlEgk0hSPCZjk+Q4s5THRbBRjJSUlrVmzZsmS JQQCwcHBQUdH5+N3FBgYiKUqrKysiouLEUIdHR0XLlyIiYmhUCicnJxhYWEtLS0VFRUkEklTU/Pm zZsDAwOVlZUhISF4vsPY2Hjcjbe0tOTn5x89elRISEhYWPjIkSPXr1/Hu1S4urpqamqys7N7eXkp KChgfRxwE1Xj2bNnWVlZsbGxsrKybGxsSkpKeK+Tv33IE7l48aKwsPB3333Hzs4+Z84cT0/PT30d PTw8xMXFsX21tbU9e/aM1RlMIKSmpt68eVNbW1tYWPj777+fKLkgIyOjq6t7+fLl9PR0dnZ2hBAv L6+bm5uPjw8nJ6e6uvrq1auxgaNY1uzatWsPHjyora0lEAjW1tZj0y4sFouNjeXk5GQ9HJSLi6u9 vR2bsXXGjBkUCgU7LUNCQpSVlbm4uHbt2jVt2rTc3NyJthAXF5efn3/48GG4kAEAAABf2ESf9bNm zcrIyLh+/XpSUtKrV68MDAz6+vpGLWNtbX3t2rVffvmFTqdfuXLlxo0bzMtkZ2dbWVmdOnXKw8MD L9TU1HR2diYQCFpaWi4uLklJSQghd3f3goKClpYWhFB6ejrW1Blb1WPHju3atWvOnDkEAmHZsmVL lizJzMyEWH2Fserv7x8aGkpLS0tMTOzo6FixYoWlpSX2LaCvr09AQABfUlBQcGysphTs8CEmYGrl O0RERJgvdqy1tbUpKiriD5n//0uioqLYP0Qisb+/HyHU2NiIEDIzM1NWVlZWVsYmsMRmzTE2Nr55 82ZRUdGCBQssLS0LCwvfvHlz7969ifIdra2tbGxscnJy2EMsMYHnO/ByhJCsrGxbWxvzuhNVo6mp CUtz/O3Yjj3kTw1seno6Ph8V6244zPvCLv2s6yYmJubg4FBRUbFjxw4skdHR0YHvC0sJEQgEf3// 8vJyDw8PCQkJbMUzZ85s27YtOzt7aGjo6dOnRUVFAQEBCCF+fn6E0M6dOyUlJYWFhffv319RUdHY 2DjqECZarKWlZe/evbGxsayrHRkZOXPmTBsbGzExMR8fn56eHix6eCqKQCDIyspONHrop59+2rNn z61btz41dQUAAACAf4jFZ72ysrKFhYWioqK2tnZGRsbz58/xn+hxZmZmJ0+eDAwMJJPJx44dc3Jy whs/WAvB2NgYH8jAogUoJSVlbm6emJiIEEpISJjoR6bGxsbdu3crf1BWVsY8Vhpi9fXEioeHh0Ag uLm5zZs3j0gkbtu2jY+PD/utlEQiMff57enpIZFIU/k9iB0+xARMoXyHiIjI9u3bma+ArElLSzPP 4vsPZ/Sl0WgIoYKCgicfvHjxwsLCAst33Lp168aNGyYmJmQyWVZW9siRIyQSafbs2eNuSkZGZmRk BO87h42FkZGRwR4y33arqalJWlr6Y6ohKys7MjJSV1c3+uUnfP4TYKLAOjg4jHzw8S8Tjo+Pb3Bw EH/I/Nlz9+7duLg4d3d3f3//gYEBhBCFQsH3tWrVKoTQq1ev/Pz8fHx8jh07hk+KUVZWpqWlZWxs PG3aNCUlJUdHx6tXryKE1NTUCATCqM6TWD8g5kOYaLH79+93dnbOnTtXVFR0xowZ2DmAjynFCQsL Hz16tL6+vri4+NGjR+Hh4Vj0sKQVQojBYDQ1NeEvPbPw8PCIiIiCgoKJziIAAAAA/Hs+8rOeg4OD nZ2d+e5vODc3t6qqqtevX1+7du3x48f6+vr4U7m5uVVVVV5eXgwGg7nVN24L0NvbOykpqbKysry8 HL+Xx6gGHo1Gi4yMxBuHbW1t+/fvh1h9hbHi5ORUUVEZ27ZECKmrq5eWlmIlIyMj5eXl6urqU/k9 KCAgQKPR8JjU19f39fVN8ZiAyZzv+NRkB0LI2dk5NTUV+/H80aNH169f/ycVkJSUXLVqlaenJ9ZN 7vXr1xkZGUNDQwghbW3twcHBpKQkrEOHsbHxwYMHjYyMJtoUlUo1NDTcsmVLT0/P69evt27damJi gn/pTUpKevToEYPBSEhIqKurw+ab+MtqSEpKrlixwsfHp6WlZWRk5I8//qivr0cISUhI1NbWft7X wsrKqrm5GZs0tLu7Oz4+/rNsVlNTMz8//927dwih+Ph4vIdIZ2eng4NDdHR0fHy8vLy8l5fX2HVH RkacnJwWL14cExMTEhJiZ2eH9RnR1dX97bffCgsLsczCuXPnNDU1EUJkMnnVqlX79+9/+fJlX1/f rl275s2bh+WSmE20mLW1dUNDQ3l5eXl5eWFhIULo3LlzgYGBCKHy8nKsCwlCKDMzE8tqiYqK8vDw cHBwIIRcXFwiIiL++OOPoaGhffv2DQ0NLV++HCEUFRWFn6LBwcExMTHXr1+n0WiDg4N//vknXMgA AACAL4nFZ31GRkZVVVVvb29dXZ2rqys/P7+enh62Fh8f3+nTpxFCQ0NDt27d6u7ubmxs3LRpU3Nz 8+bNm/GNi4mJFRYWVlZWOjo60ul0rPDhw4cpKSkMBqO4uPjMmTPOzs5YOTZtmYuLi42NDd4SlpCQ qK+vx3MHmzZt2rlzZ0lJCYPBePfuXVFREdYOhFh9bbFCCPn5+Z06daqysnJoaOjw4cPv3r0zMTFB CHl5eeXl5eXm5r579y4qKqqvr2/16tVT/G3o4+MTHR1dU1PT09MTGBi4aNEiVVVVuDqByZnv+NRk B0JIX18/PDzc3NxcX1//yJEj//ySkZSUpKqqamBgwM/PP2fOnNzcXCw7y8nJiU1Nis0raWJi0tfX N9FgFkxaWho3NzfWj05AQCA1NRV/ytvb+7vvvhMUFDx+/Pjly5exeS4+phpnzpyZNWuWrq4uiUSy tbXFJjoNDAy8cuWKkJCQgYHB53othISErly5smvXLh0dHUdHR+bJVv+JdevWLVy4UE1NzcDAoLm5 efr06QghBoPh6Oior6/v6enJxsZ29uzZO3fujO0wGR4e3tjYGBcXhyULFBQUsLTIqlWr9u7d6+3t zcfHp62tPXv2bHza8ISEBCqVOn36dDk5OQaDkZOTM+6dZcddjEgkSn+AjZ0RExPDhhc+efIEn26j pKQEu9WOkpKSrKwsdsuY7du329nZmZiYiIuLFxQUXL9+XVBQECGUmJh4//59hNDg4GBkZGRbW5uK igqRSCQSiby8vHAhAwAAAL6k/4+9O4+Hav0fAP5YwlhiMGPsRBGylBJJhRKyZyslQtK+aepy5bYo RfeWUFFZSklKaaeSVhUhSde+FNmXmBgzvz/O757XfEdc9966t6bP+w+vmWfOec45n5lzPPOZ53nO CP/ri4qKFixYQCaTjY2Nu7u7s7KyxMXFEULNzc39/f3YhHF0On3r1q1ycnI6Ojo1NTUPHjxga9ER icSsrKzGxkYnJyfsh42FCxfevn1bQkLC2dk5NDTU2tr6/5vy3Nw+Pj4FBQWsAzQWLVrEz89PIpHE xMQ+fvy4atWqrVu3ent7E4lERUXF8PBwPDUAsfqmYoUQWrly5erVqy0tLcXFxS9cuHDt2jVZWVmE kJGRUXx8/IYNG4hEYmpq6rVr1/5Gd2kOExgY6ObmZmJiIisrS6fTWe+/AwCOC0sZfoP8/Pzs7e1H WCA7O5tttN4Pa9u2bQ0NDYmJiRAKAAAAAIBvUEpKyp07d75Uv1dWycnJISEh5eXln/1tBmLF2bEC YIQvy8rKyth8iMMZHBxk+68epAAAIABJREFUMBilpaUjDD5ACF26dMl5x/7vNA688FH43jEYjOLi YvxuTAAAAAAA4Fvj7u7u7u7+xavt6en59ddf165dy0lf4CFWAIAvhZvjj7CxsVFpCNaBf8OZPXs2 21qGhoZfdt+oVOrQffurd/kmk8ldXV3+/v7waQYAAAAA+HFERUWRyWRpaemVK1dCNCBWAIChYDwL AAAAAAAAAADAOWA8C+b7Hs/CeoNSAAAAAAAAwLeAgRjcP0BHcgDANw4uQwAAAAAAAAAAAOA0kO8A AAAAAAAAAAAAp4F8xzfE1NT0i9x5a8qUKZ+9AXVJSYmBgQGFQgkMDPzGD2FkdDqdQCCUlZX9jeV3 7NixZMkSrNzIyCgpKWn0271z546ioiJ8UAEAAADwNfT09BAIhKFT11OpVF9fX4gPxAoA8FdxSL6j tbUV3ss/tXv37nnz5jU2NoaHh3+RCmk0GoFAqKiowEvWrVs3Y8aMr30gPDw8kZGRUlJSf2Nda2tr T0/Pv7ddNTW1nTt3/ufvY1FRkZ2dnYKCAoFAuH///hev/+zZs5qammJiYkZGRnl5eXDiAAAAAMNh MplWVlYEAiE/Px8ruX79uqGhoZSUFIlEmjVrVlZW1mdXPH369OTJk8XFxVVVVYOCggYHB7/gXgUF BXl5eX37sXJ3dyf8r+TkZLa1nj175uzsrKioKCkpaWxsfP369S+7V99arH7++eepU6eKi4uPGzdu zZo1nZ2dbAvs2bOHQCD8+uuv2NO+vr5FixZpamoKCgru2rXrhzr7GAxGUFCQvLy8hISEs7NzU1MT XJEAx+Y7wsPD/0bKg8FgfPjw4Z9vfWBg4LuIUnV1tYaGxlfdhJ2d3d/eRGNj4yiX5OLiWrlypZiY 2N/YytSpU83Nzf/eHsrKyi5duvQ/fx/5+Pjs7e1TU1O/RuVPnjxZsWLFrl276urqbGxsbG1tIZkI AAAADCcuLo6Li4u1RFVVNTY2tqSk5PXr1x4eHgsXLhzawikqKvL19Q0MDGxsbLx48WJycnJ0dPQP GKvExMT2P5w5c0ZQUNDGxmZo83XWrFk3btx4/fq1ra2tq6vr69evOThKzc3N+/btKy0tTUtLe/jw 4bp161hfLS4uTk1NVVZWZm0VGxkZxcbGTpo06Uc7+yIjI1NSUq5du1ZWVsZkMhctWgRXJMCx+Y62 tra/lPLIz88PDAxUVVWNi4tDCNXU1BAIBPxuL+fPn58yZQr22MjIKCgoyMbGZsqUKVOmTMnNzcXK qVSqq6urp6envr4+lUplMpnHjx+fPHmylJSUoaHhvXv3sMVycnIMDQ0pFIq0tPScOXMYDAZCqKWl xcvLS1FRUVFRcfny5W1tbaz7Njg4qKKicunSJbzE399/+fLlCKHhtjIwMBAYGCgvL6+srLxv377P HvL06dNLSkqoVKqmpubDhw99fX2DgoLwV3V0dC5evIgQunbtmpqa2r59+2bMmKGhoeHv749nc6qq qtzc3BQVFSkUiqmpaUdHh6WlJULI0tJSU1PzwIED6H/Hs6Snp0+dOpVMJk+bNg0/nBHqt7GxMTY2 joqK+tPEB+v4FCqV6u7u7uPjY2BgoKGhceTIkZHXZR3Pgv0TNTc3J5PJBgYGDx8+xN9cFxeXpUuX mpiY6OvrHz16FCvHx7M0NTUpKSnhY2H8/f3Nzc3pdDrWtTIpKUlXV5dIJDo6OnZ0dGzfvl1GRkZR UfHEiRPY8vfv3zcxMaFQKLKysq6uru/evcO3O5pjUVdX9/Ly0tXVHeEwBwYG1q5di71ZampqZ86c GeFNYRUfHz9v3jwHBwcREREqlSosLPzZsVEAAAAAqK2tjYiIiIiIYC0cP368jo6OpKQkiUSaMGHC p0+fho65qKqqGjt2rJubGx8f36RJk+bMmVNUVMS2TE1NjZ6e3o4dO7CnNBrNx8eHQqGoq6tjLRMG gzF+/Pj09HR8lRUrVvj4+KSnp8fFxWVmZmpqampqavb29g7XgPzPYzVmzBiBPyQkJCxcuFBUVJRt RWdn59WrV0+cOJFMJgcGBo4dO/b58+ccHKuYmBhTU1MpKanJkyf7+fk9evSItQHs5+d38OBB1juM CggIrF69eubMmfz8/D/aCXj8+PH169dPmjRJUlJy7969jx494uxcGPih8x2jTHmUlZXt3Llz0qRJ bm5uPDw8Fy5c2L59+5/WfOXKlfj4+BcvXmzZssXLy4vJZGLlV69e9fX1ff78eURExLFjxyIjI0+d OvX+/fvg4GAXF5fa2lqEkI+Pz4oVKxobG+vq6vbs2YNltZcuXdrd3V1YWPjy5cvW1la24RU8PDyL Fy9OTEzEnvb29qanp2PdCobbSnh4eFZW1qNHj968edPc3Pz27duhR/HkyRN1dfW9e/eWlJSMPOSk trZWSEjo4cOHL168ePHiBfatvqenZ/78+XJyckVFRfX19Xv27OHl5cW6FF6/fr2kpGTz5s2slTx8 +NDb23vXrl3v3r0LDQ319PR88uTJCPUjhB48eLB169anT59qa2tbWlqePHmyo6NjNG/99evX/f39 nz59mpmZGRwcPPp5PbALZXh4+Pv37/38/Ozt7Zubm/E3NyAg4P79+1euXNm7d+/NmzdZ15KSkkpM TNy0aVNJSUlKSsrVq1cTExN5eXnxfNn169ffvn1bX18/c+ZMeXn5ioqKmJiYDRs2YKkcXl7eAwcO 1NXVlZSUIITWrFnzRY6F1ZkzZx4/flxYWNjY2Jibm6unpzfym4IrKirCk31cXFx6enrFxcVwoQQA AADYMJlMf3//kJAQEonE9lJjY6OioqKUlNT8+fOtra2nTp3KtoC5ubmysvLZs2cHBgaKi4tzcnLs 7e1ZF3j+/LmpqenatWvx7/AXL16cPXv2u3fvEhMTQ0JCbt68yc3N7eXldfLkSWyB7u7uCxcueHt7 Ozo6+vj4LFiwoKSkpKSkRFBQcLgG5LcQKzxhcfv27T+dd6OsrKy1tVVHR4eDY8XWnGb9fSs8PFxX V3fOnDlw9iGEOjs7a2tr8Varqqrq2LFjodUKODnfgaU88AsZm4yMjOnTp1tYWLS3tx87dqysrCws LAz7EvinvLy8yGQyQsja2rqhoeH9+/dYuYmJibGxMfY4Ojp6+/bt2tra3NzcVlZWM2fOxH485+fn Lysrq6+v5+XlNTQ05OLiqquru3v37v79+8XExIhEIpaqqK+vZ93i0qVLb9++jX03vnjxooSEhImJ yQhbSUpKwvp38PPz79y5c8yYMf8kjMLCwqtWrUIIEQgEU1NTLIl+9epVOp2+b98+UVFRXl7e6dOn CwsLj1BJYmKik5OThYUFLy+vpaWlnZ3dqVOnRqgfi5WNjU1SUlJ1dbW3t/f169cnTJjg7OxcXV09 8g6bmprq6+sjhMaNG6emplZQUDD6g126dOnkyZN5eHiWL18+btw4PPE/Y8aM6dOnI4SkpaVZ0084 ExOTjRs3urq6rl+//tSpUzIyMvhL27dvl5aWJpFIdnZ2/Pz8K1euJBAIVlZWJBIJuwobGRlNmzZt zJgxYmJiwcHBrD8d/JNjYcXPz9/V1VVYWNjf308mkydOnDjym4Lr7u4eO3Ys/lRUVLSrqwsulAAA AACbuLg4Pj4+d3f3oS+RyeS8vLycnJzt27ebmppyc7O3t4WEhDw9PdesWTN27Nhp06YtXLjQysoK f/Xy5ctOTk6xsbGs80pMnjzZw8ODm5t72rRpS5YswVomy5Yty8nJqaurQwidP39eTk7OyMho6P4M 14D8FmKFiY+PnzRpEtYEGk57e/vixYtXr17Nmu/gvFixxuTu3bt79+7FnhYXFycmJoaFhcGphzdZ EULQagU/Vr5DXFx8uAmHGhoaKisrJ06cOGnSJHV1dbbRgyOTkJDAHmCdx7CzCyHE+hW3urp6586d On/AOm4ghFJTU+vr6w0MDLS0tLARH/X19VxcXEpKStiK48aNwwpZt6iqqjp16lRsDEJiYuLSpUux HR5uK+/evVNRUcF3Ulpa+h+GEY8PgUDAjrempmbcuHE8PDyjrKS+vh47NPww8WP8bP2sBAUFtbS0 tLW1JSQkSkpKhi4w3Bs0XIUjwN8IhJCiomJDQwP2mEKh4OUUCgUvZ+Xj49PQ0KChoWFmZsZajsdf SEiI9UMiJCTU09ODEHr79i02s5Sqqqq9vX1vb+/Hjx9HOBYdHR1sEq8NGzaM8rhcXFwCAgKoVKqM jIyTk1NpaenIbwpORESE9V9FZ2cn6z8SAAAAACCE6urqwsLCoqKiPt+85uaWkpJSV1cPDg7+7bff rl27xrZAcnJyUFDQuXPnurq6iouLc3NzqVQq/uqBAwdMTU3nzp37py0WGRkZCwuLhIQEhNDJkye9 vb0/uz/DNSC/hVghhAYGBhISEkbu3PHhwwcLC4uZM2eyTbrPYbHCxcbG7tq168aNG1jLbXBw0M/P D/u5FM4+vMmKEIJWK/iB8h3i4uKBgYGsXxdZBQQE1NbW+vn53bx5U01Nzd7ePjk5GZ/xGOuqgM/f 0dLSMpotsiZNFBQUdu/eXfiHioqK0NBQhJCGhkZSUlJ9fX18fPyBAwdu3LghJyfHZDLxrnFVVVUI ITk5ObbKly5divV0ePjwoYeHx8hbkZGRwee8GBwcHM3+CwsLf/r0CX/6p5dyRUXFqqoqbP4R1n/n wy0vJyfH2i+jqqpq6DEOVV5evnfvXn19fWtr687OzqSkpNevX3/V6ZdYh9TW1NTIyspij1lvOlNZ WYmX45hMpo+Pz9y5c2tra+Pj4//SRpctW6aiovLs2bPy8vKMjAysthGWLyws7Ovr6+vrO3jw4GhP bG7udevWPX78uLy8nEKhYG2I0bwp2tra+KzpTCazsLDwB5z+CgAAABjZkydPWlpaDAwMZGVlsX+U VlZW+HgKVgwGo7Kycuh/9mnTppmamo4ZM0ZVVXXRokWsI2cvXLhQUlKyatUq1nbXcC2W5cuXJyYm FhcXFxUVLV68+LMttOEakN9IrDIyMvr6+lxdXYeroba21tTU1MzM7ODBg2y/WXJYrDDh4eEHDhy4 efOmlpYW/t3k5cuX/v7+srKysrKy2Ah9CwuLH/kcFBUVVVBQwFutlZWVXV1d0GoFHJvvGDnZgREQ EHBwcDh79mx5ebmzs/P58+dVVFSOHTuGEJKQkFBQUMCy7+3t7fi8kqMXEBAQGhqan5/PYDD6+vpy c3MrKyvpdPrp06c7Ojq4uLjIZDIPDw8vL6+8vPzs2bMDAwM7Ojo6OjqoVKqZmdnQr51OTk51dXXr 16+fPXu2vLz8CFtBCHl4eERFRWH5mmPHjo2mK9fkyZPv3r3b19eHEDpx4sSf5jusra25uLioVGpX VxedTn/69GlPTw8fHx+RSPzsdCFLliy5cOFCdnb24ODgzZs3MzIy/vQusHZ2diYmJnV1dREREeXl 5fv37x+5W+MXkZiY+PLlSwaDcfLkyYqKCgcHB6y8qKgoMTGRwWA8efIkOTkZTznh9u/fX1lZeeLE iaSkJCqVOnSasRF0dHRMnDhRUFCQTqf/9ttvf3WfmUwmjUbD0lX9/f00Gg37H9/d3U2lUrGPRG5u bmFh4eDgoLCwMDYEaYQ35dKlS9iJgDUFbt26lZmZ2dfXFxkZ2dXV5ezsDBdKAAAAgNWCBQtKS0vz 8vLy8vJu3bqFEDp16hTWDfP48ePPnj3r6OioqanZsmXLhw8fZs2aha0lKSmJTVtmZGT07Nmz+/fv MxiMmpqas2fPTp48Ga+cRCLdunWruLjYy8uLTqdjhS9evEhJSWEwGM+fP09KSsJbJvPmzUMI+fr6 2tra4i1hCoVSWVmJ3+N2uAbkfx4rzLFjx9zc3NgGSuOx+v33383MzOzs7EJCQmg0Go1GY713L4fF CiEUFBR07NixzMxMBQUFvL1HIpHKy8vz/qCiorJ27Vr83r2fPn2i0WhMJpNOp9NoNDwOHM/X1/fQ oUNv3rzp6OjYtm2boaHh174TJYB8x3/mT5MdrMaOHbt48eKMjIyysjJ85s64uLjIyMgZM2Z4eXlh tx35S/z9/Tdt2rRixQppaekJEyZERkZi15rU1FQtLS0KhWJpablu3TrsTqiJiYkCAgI6Ojra2tpj x44dOocCQkhERMTe3v7mzZusaYLhthIYGDhp0iQjI6MFCxY0NzdjkzWMzM3NberUqVOnTrWwsKit rR0/fvzIywsLC9+4caOqqkpDQ0NOTu6nn37CNr1r167Vq1dTKBS25LexsfHRo0cDAwOlpaV/+umn +Ph4Q0PDkTexdevWmpqaI0eOzJo1a4SeI1+Wj4/P5s2bKRRKTExMeno6NlELQsjBweH+/fsyMjJL ly4NCQlh+0g8ePBg//79Z86cERYWNjIy2rp1q4eHx+jH0Rw+fDgiImLWrFmWlpZD5zD7U7W1tUQi ERtxY2NjQyQSL1y4gBDq7e397bffsCEqTU1NXl5e0tLSioqKhYWFsbGxI7wp2dnZaWlpWOXTp0+P jY3FlklLS8vIyBj9mQUAAAD8IAgEguwfsHGsZDIZu7dIa2vrsmXLlJSUjIyMiouL09PTsd+cW1pa +vv7sdnBHBwcQkJCVq9eLSkpOWvWLC0trcjISNb6xcTErl271tTU5O7ujn3jdXBwyM7OlpGRWbRo UXBwMN4ywWbiLCwsZB2g4ebmxs/PLycnR6FQPn78OFwD8j+PFUKorKwsNzfXx8eHdRXWWCUkJNTX 10dGRhL/sH//fk6NFY1Gi4iIaGho0NPTww4Wa4Zxc3PLsuDl5RUVFcUnf9XW1iYSic+fP9+3bx+R SBz98Ofv3caNG52dnc3NzVVUVAYHB/HbEQLAiottwNu3A7tfxggLZGdn4/lyAL4gKpXa2tqK31gX AAAAAOAfSk1NvXfvXnR09BevOSUlZefOnSUlJX9pfrqvjYEY3H/3h9UfLVYAfA0PHz5UVlZmvXvx UIODgwwGo7S0lG06QjaXLl1y3rH/O40DL3wUAAAAAAAA+KpcXFxcXFy+eLU9PT2HDx8OCAjgpC/w ECsAwJfCDSEAAAAAAADguxMTE6OgoCAtLe3n5wfRgFgBAIaC/h0AsMNvdQ4AAAAA8M1auXLlypUr IQ4QKwDAcL7vfIeAgAC8hQAAAAAAAAAAAGAD41kAAAAAAAAAAADAaSDfAQAAAAAAAAAAAE4D+Y6/ Lysri0KhYI+DgoLc3Nz+YYXGxsaxsbEQWAAAAACAH1BPTw8XF1d1dTVb+ebNm5ctWwbxgVgBAP4q Dsl3tLS0cMBRbNy4cebMmfChBAAAAAD4xu3Zs0dNTU1QUFBSUtLOzq68vBwrHxgYCA4OVlJSIhAI JiYmr169GrpuX1+fs7OzqqoqNzf3jh07vvi+UalUDw8PzojV06dP7ezsKBSKsLDwtGnTrl69ytmx ampqWrx4MZlMFhUVXbx4cUdHB9sCv/zyCxcX14EDB/CSlJQULS0tAoEwceLE9PT0H+cc3L59u7a2 tqCgoKysrL+/f2dnJ/5SXV2dm5sbkUgUEhIyMDBob2+HS9YPi0PyHWFhYf8w5TEwMPCfH4Wjo6Om piZ8KAEAAAAAvnFmZmaXL19uaGh48eIFiURydHTEynft2nX69OnMzMzW1lYTExMLC4uenh62dbm4 uGbMmBEfH6+jowOxGjlWVVVVpqamd+7cqaiosLe3d3BwKCkp4eBYubi4dHR0lJSU/P77762trZ6e nqyvFhUVpaSkjBs3Di+5c+eOp6dnWFhYR0fH3r17Fy1a9Pz58x/kHPzw4UNkZGRlZWVGRkZubm5A QABW3tHRMXPmTH5+/sePH1dWVu7atWvMmDFwyYJ8x/ettbV1hJRHY2OjtLT0qVOnsKfLly83MTGh 0+mZmZlKSkohISG6urpYx4qcnJwZM2YQiURVVdXDhw9jy79//97KygrLsxoaGj5+/HjknSksLJwz Zw6RSBw3btwvv/xCp9Ox8srKSicnJwqFIiYmZmxsPDRfi49nwXZs9+7dU6dOVVFRWb58+WfTMR8/ ftywYYOSkpKEhIS1tTXeo09fX3/nzp2mpqYEAkFbW/vVq1fJycnKysqioqL+/v4MBmPkg7p79y4W BBKJ5OPjgxAaGBhYuXIltudKSkpJSUlw5gAAAADgR2ZgYKCmpkYkEuXk5BQUFN6+fctkMhFC58+f DwgI0NLSEhQU/OWXX7q6ui5evMi2roCAwPr162fNmsXPzz9c/dXV1RoaGkFBQdhTGo3m6elJJBKV lZWjo6MRQgwGQ0FB4fz58/gq3t7enp6e58+fP3r0aEZGhqqqqqqqam9vL5PJjI2N1dTUFBUVnTJl yp07d76jWLm5ua1bt05DQ0NKSmr79u2ioqJ5eXmcGqvm5ub79++HhoaSSCQymbxz587Lly/X1tZi r9LpdC8vr6ioKAKBgK+SlpY2b948Gxsbfn5+Ozs7MzOzmJiYH+QcjIuLMzc3p1Ao+vr6AQEBDx48 wMqPHDkiJCR04sQJdXV1KSmpuXPnCgsLwyUL8h2cnPKgUCgpKSlr167FvvlfuXIlJSWFl5cXIVRT U8PPz//y5csnT54UFxdbWVlt2rSppaXlypUrBw4cSE1NRQgNDg76+PhUVVU1Nzfb2to6ODj09vYO txvt7e3m5uampqaNjY1Xr149derU/v37EUI9PT2mpqZycnJlZWUtLS3h4eHYDgynpqZGSEjo2bNn r169evbsGZ6sYeXl5fXmzZsnT568f/9+8uTJtra2g4OD2EsnTpzYv39/W1ubvr6+nZ1dVlZWfn5+ fn7+xYsXL126NMJBFRQUWFpa+vv7NzY21tTUYB38kpKSHj58WFpa2tHR8fTp0ylTpsCZAwAAAIAf 3IULF7BxFqGhoaGhoVxcXAghJpOJPcAVFBT81Zrz8vKMjY03bty4a9cu/Gutqalpa2trSkrK9u3b r1+/zs3N7ePjExcXhy3Q3d2dmprq6+vr7Oy8YsUKbNhIeXm5oKBgTExMeHj46dOn29vbQ0ND7e3t a2pqvsdYvXnzpqWlRVdXl1Njhf0qyRaTly9fYg/27Nmjp6dnZmbG+uoX+bxxgNzcXD09Pezx3bt3 NTQ0rK2tRURE1NXVYXpEyHdwjtbWVvxCxmb27NmBgYEODg6rVq06ffq0rKwsVi4gIBAYGIg9PnLk iLOzs6OjIw8Pz8SJE9euXZucnIwQkpOTc3R0FBIS4uPj27Zt28DAwGeHF2KuXLkiJCQUFBTEz88/ ceLErVu3Yrt0+fJlOp0eGRkpKirKy8trZGQ0cqJRWFh43bp1CCECgTB37tyhmezGxsbz58/HxMRQ KBQ+Pr7Q0NDa2trCwkLsVV9f3ylTphAIBE9Pz8rKyoiICCKRqKKiMm/evGfPno1wUDExMQ4ODkuW LOHn5xcUFJw9ezZCiJ+fv6ur6+XLl/39/VJSUhoaGnDmAAAAAOAHZ21tXVBQcO/ePX9//8mTJ2OF dnZ20dHRZWVlnz59Cg0N7enp6erq+kvVXrx40dbWNj4+Hutmi9HX1/f09OTm5p4+ffqyZctOnjyJ EFq+fPndu3ex3//Pnj0rLy9vbGw8tMJDhw79/PPPurq63NzcCxYsmDVr1oULF767WLW1tTk7O69f vx7/Wst5sZKSkjIwMNixY0dbW1tbW1tISAhCCItJUVHRyZMnWaftwGN48+bNGzdu0On0q1ev3r59 +69+3jjAsWPHsrOzIyIisKctLS3p6enLli1rbm4+fPjwhg0bfqhpTQAn5zskJCRYL3ZsVqxYUV9f r6WlNXfuXLyQTCbj/SyqqqquXr2q/oeoqCjsetHT07NmzZqJEyfKy8srKSl1dXU1NzcPt5W6ujpl ZWU8z6qiolJfX48Qqq6uVlFR4eHhGf2x4JUQCITu7m62BaqqqhBC8+fPx/ZWQ0ODn5+/sbERe1VG RgZ7ICQkxM/PLyEhgT/FqhruoKqrqydMmMC2LXd39zVr1mzevFlcXNzGxub169dw5gAAAADgBycg ICAtLW1gYLB582Y7OzusKbVjxw4nJydLS0s5ObmWlpZp06ZJSkr+pWr37dtnbm5uYWHBWqisrIw/ VlJSwpqXsrKylpaWJ06cQAjFxcX5+vp+tsKqqqqQkBC8iVtQUNDa2vp9xaqpqWnOnDmzZs2KjIzk 7FilpaURCARNTU1dXV0LCwteXl5JScnBwUEvL6+DBw+KiYmxLT9//vzY2NgtW7aQSKRDhw4tWbLk r37evndHjhzZsWPHnTt3VFRUsBIRERFDQ0M3NzcBAYG5c+fa2dlh3dsB5Du++2THtm3bhjvDmUym p6fn/Pnza2pqjh07hpezdgBTVFR0cnJ684eqqqp79+5h1+LS0tL79+/X1dVVV1eLiYlhYw4/S15e vrq6Gl+gsrJSTk4Ou9pWVlZivdS+CEVFRYTQ3bt38R1uamqysrIa5erDHZSSktLvv//O/inh5t60 adOLFy/q6+ulpaXhLl8AAAAAAKztzL6+voaGBuyLfXh4eGVlZXNz844dO0pKSrDesqN3+fLl4uJi Pz8/1nYj641Xq6urseYlQmjFihUnT54sKip6+fLl0qVL8ZYbW6Nx3759eIuxvr5+9+7d31Gsampq jI2N582bFxUVxTZ2g/NiJScnl5qa+v79+9ra2vHjx/Py8k6fPr25uTk/P9/Hx0dSUlJSUvLNmzch ISFz5szBVvH29i4uLm5vb7958+arV6/+6uftu7Znz569e/fevXt30qRJeKGuri7b54TtXQaQ7+C0 ZAdCKCwsrKKiIikp6ezZs5s2bcLHfbBauXLlmTNn0tLS+vv76XT6q1evHj58iBBqb29XVFQkkUgI ofj4+JFvBGNjY9Pd3R0eHt7f319WVrZv377ly5cjhGxtbbm4uDZv3tzV1UWn0x8/fjx0Auq/REZG ZuHChb6+vljHvPYhNeJJAAAgAElEQVT2dmzPR7n6cAfl7++fnp5+5syZ/v7+3t5eLOOTk5NTUFAw ODgoLCwsJiY28swjAAAAAAAcb+fOnaWlpZ2dnYWFhX5+fgoKCtiA39ra2pcvX3Z2dr58+dLV1XXa tGl47wNhYWF8RrZPnz7RaDQmk0mn02k0Gj69PUKITCbfu3evqKjIw8MDL3/27FlycjKDwcjLy0tI SMBv2zF//nyE0LJlyxwcHPCWsLS0dEVFBT6t29q1a4ODg58/f85gMPr6+nJycioqKr6XWL19+3bm zJmOjo47d+6k0Wg0Gg0/Lo6MVX5+fmVlJZa8CAgIoFKpYmJiZDK5rq7u5R9UVVU3btx47tw5hFB/ f/+dO3fa2tqqqqrWrl1bU1OzYcOGH+QcpFKpMTExt27dUlRUpNFonz59wsp9fX3z8vLS0tLodPq9 e/cuX77s5OQElyzId3zfRk523L9/PywsLC0tTVhY2NjY+KeffnJxcRk6QkRPTy8zMzMqKkpaWppM Jvv6+ra1tSGEgoODy8vL9fT0TExMmpqaWG8BNRSRSLx169b169elpKQsLCw8PDy2bNmCXbWxO2mp qKhISkpu3bqV9R/b33Py5ElNTc05c+aIiIjo6upevnyZLZc5guEOavLkyVeuXDl06BCJRFJUVDxz 5gxCqLGx0cPDg0gkUiiUgoKC+Ph4OHMAAAAA8CMrKCgwMzMjk8lWVlYkEikrK4uPjw9rNbm4uJBI JAsLCw0NDbx51tzc3N/fb2RkhK2upqZGIBDy8vJ2795NIBBWr17N1p7MyspqbGx0cnLCvsUtXLjw 9u3bEhISzs7OoaGh1tbW/9+U5+b28fEpKChgHaCxaNEifn5+EokkJib28ePHVatWbd261dvbm0gk KioqhoeH//NW6L8WqxMnTtTV1YWHhxP+EBYWxsGxevbs2YwZM6SkpFavXr1hwwZsCg9ubm45Fry8 vKKiomQyGSFEp9O3bt0qJyeno6NTU1Pz4MEDKSmpH+EEpNFo+/btq6+v19DQwD4YQkJC2Eva2tpp aWkhISEiIiL+/v6HDx+2sbGBS9YPi4t1Motvip+fn729/QgLZGdns43WAwAAAAAA4BuUkpJy586d 48ePf/Gak5OTQ0JCysvLR/+7F8SKY2IFwAhflpWVlVnvXjzU4OAgg8EoLS1lu+8Pm0uXLjnv2P+d xgEGJgAAAAAAAPB1ubu7u7u7f/Fqe3p6fv3117Vr13LSF3iIFQDgS4G5WwAAAAAAAPj+REVFkclk aWnplStXQjQgVgCAoSDfAQAAAAAAwPdn9erVvb29V65cwabDABArAACb73s8C41Gg7cQAAAAAAAA 8J3qR/9/YxE+xA/RAODLgv4dAAAAAAAAAAAA4DSQ7wAAAAAAAAAAAACngXzHV0Sn0wkEQllZ2Q+1 aVNT069x/zAAAAAAAM7W09NDIBBqamrYyqlUqq+vL8QHYgUA+Ks4JN/R2tr6De4VDw9PZGSklJTU V6r/1q1bKioq/+amW1tbFy1aJCkpKSsru2XLFjqdPnSZdevWzZgxA04tAAAAAHCw8PBwbW1tcXFx WVlZZ2fniooKrNzd3Z3wv5KTk4c2qFgXkJSU/LL7FhQU5OXl9e3HKiUlxczMjEKhyMjIODo6vnnz Zui6MTExbPH08/Pj4FhhmEymlZUVgUDIz8/HSoqKiuzs7BQUFAgEwv3790fzWZoyZQrrS3hVHIPB YAQFBcnLy0tISDg7Ozc1NcF1CXBsviM8PPwbTHlwcXGtXLlSTEzsa1Q+MDDwpTY9clWsvLy8Ojs7 S0tLs7OzMzMzd+/ePXQZOzs7DQ0NOLUAAAAAwMHmzJmTlpZWWVn5+PFjSUlJNzc3rDwxMbH9D2fO nBEUFLSxsflsDWVlZdhiDQ0NP2asqqur/f398/LyHj16xM/Pb2NjMzg4yLaun58fHs/y8nI+Pj5X V1eO/3TFxcVxcXGxlvDx8dnb26empv6lz1J8fDwePT09PQ6LUmRkZEpKyrVr18rKyphM5qJFi+C6 BDg239HW1jZyysPIyCgsLGz+/PlEInHq1KklJSUpKSnq6upSUlJr1qxhMBjYYrm5uXPmzKFQKJqa mtHR0VjhtWvX1NTUjhw5oqSkRCaTf/rpp9bWVhcXFwkJCT09vWfPng23UdZBJVQq1d3d3cfHx8DA QEND48iRI9gydXV1dnZ2srKyFAplypQpr169Qggxmczjx49PnjxZSkrK0NDw3r172MJUKtXV1dXT 01NfX3/16tUrVqxoamrS1NTU1NTMyckZbtOf3QRrVVQqtbGx0d7eXl5eXkpKatasWU+fPh16ODU1 Nbdv396zZw+JRFJXV9+yZUtcXNzQxfDxLFg/w+joaBMTEx0dnfnz59fX1w9d/uPHj1u2bFFTU5OR kXFwcMD7JY7yLQsICBg/fjyJRNLW1k5MTMSrzcnJwd5KOTk57EbrAwMDa9euVVRUpFAoampqZ86c gfMfAAAAAH/P1KlTJ0yYICYmJisrKy8v//vvvzOZTITQmDFjBP6QkJCwcOFCUVHRz9bAz8+PLcbP z//Zdpeent6OHTuwpzQazcfHh0KhqKurHz16FCHEYDDGjx+fnp6Or7JixQofH5/09PS4uLjMzEys idjb2ztcw/I/j9W2bducnZ0VFBSUlJSCg4Pr6+vr6urY1uXh4cHjee7cOTk5OVNTUw6OFUKotrY2 IiIiIiKCtVBdXd3Ly0tXV/cvfZZYP41sCRQOcPz48fXr10+aNElSUnLv3r2PHj16/fo1XJoAZ+Y7 RpPySEhICAsLe/fu3eTJk52dne/cufPkyZPHjx9nZGRcuXIFIfTq1St7e/v169c3NDRcuHDh119/ vXDhArbuu3fv6urqXr16lZWVFRMTY2Njs3r16oaGBmtr64CAgFHu4fXr1/39/Z8+fZqZmRkcHIwl I3bs2EGhUKqqqt6/f5+SkkIikRBCx44di4yMPHXq1Pv374ODg11cXGpra7FKrl696uvr+/z586NH jx49elRKSqqkpKSkpGTWrFnDbfezm2CtKiIiYnBw0MvL682bN3V1dQsWLHBxcent7WWrp6ioiJeX V1tbG3s6ZcqUlpaW9+/fj3zUjx49ys7OLiwsHDduXFBQ0NAF/Pz83r59e//+/erqal1d3YULF+Kp /T99yxBC+vr6jx8/bmpqOnjw4Pr167GueoWFhXZ2dr6+vjU1NW/fvnV3d0cInTlz5vHjx4WFhY2N jbm5uZyX5AYAAADAv+nSpUuKioqSkpK7d+8ODg5m+z6J/VA0wlwS5ubm6urq9vb2jx49Ynvp+fPn pqama9euxb/DX7x4cfbs2e/evUtMTAwJCbl58yY3N7eXl9fJkyexBbq7uy9cuODt7e3o6Ojj47Ng wQKsiSgoKDhCw/IbiRVC6OHDh+Li4nJycsPVwGQy4+Pjly9fzrYuh8WKyWT6+/uHhITgLfbRGO6z FBQUpKKiMmfOHNYfBTlDZ2dnbW3tlClTsKeqqqpjx44tLi6G6xLg2HwHlvLAL2RDeXt76+npEQgE Dw+Pqqqqffv2iYmJjRs3ztzc/Pnz5wiho0ePOjo62tnZ8fDwqKurr1q1KiUlBVt3zJgxu3btEhYW 1tbWnjp16vTp001MTAQEBLy9vUtKSmg02mh2z9TUVF9fHyE0btw4NTW1goIChBA/P/+7d++w3MeE CROwGTeio6O3b9+ura3Nzc1tZWU1c+bMS5cuYZWYmJgYGxv/pbB8dhNsVcnKytrZ2QkJCfHx8W3Z smVgYGBofrS7u1tERAT/H4P9WNHV1TXy1jdu3DhmzBiEkLW1NRZnVk1NTenp6YcOHZKSkuLj4wsO Dq6rq8MvVX/6lmHLSEpKcnNzm5mZzZs3D0vDHzt2zNbWdtGiRfz8/IKCgiYmJlgcurq6CgsL+/v7 yWTyxIkT4fwHAAAAwN82f/78p0+f3rp1y9fXd+gP7/Hx8ZMmTcLafmwIBMLJkyfPnz+flpampaVl aWmJNQsxly9fdnJyio2NZZ1XYvLkyR4eHtzc3NOmTVuyZAn29XXZsmU5OTlYn4jz58/LyckZGRkN 3dwIDctvJFYFBQXBwcHR0dG8vLzD1ZCdnV1fX7906VLWQs6LVVxcHB8fH/Zb3WiM8Fnavn17amrq jRs3PD09N23ahHdd5wzd3d0IobFjx+IloqKif/rFBPyAeDnpYMTFxUeYcEhaWhp7ICQkxM/PLy4u jj/t6elBCFVXVxcUFOjo6GDlnz59UlBQwB6TSCT8+iskJCQjI4M/ZjKZHz9+FBAQ+NPdk5CQYL02 YWfp7t279+zZ4+rq2tXV5eDgsHPnTjExserq6p07dx44cABbuKenR0tLC3uMb3r0PrsJtqp6enp+ /vnnO3fu9PT08PDwdHd3Nzc3s9UjIiLS3d3NZDKxlEdnZyfbVWbko8YPmVV1dTVCyNbWFi/h4+Nr bGwc5VuGEIqKijp9+nRzczMPD09bW5uysjJCqKamxsDAgG1bLi4uTU1NVCr1999/nzVr1q5duyDl AQAAAIC/TUBAgEKhUCgUEok0efLkt2/f4rNFDgwMJCQk/Pzzz59dUVBQEJ/DYteuXc+ePTt79ize 8/TAgQOmpqZz585lXUVJSQl/rKioiI2nlpGRsbCwSEhICAoKOnnypLe392c3N0LD8luI1ZMnTxYu XPjbb7/Z2dmNUMOxY8fs7e3Z5nblsFjV1dWFhYWxTkf6p0b4LDk5OWHl48ePb2hoSEpKGn239G+f iIgI+t9fXjs7O//0iwn4AXFO/w5xcfHAwEDWnMJfpaCg4ODgUPiHN2/e3Lp162vvNpFI3L9//+vX rx88eFBQUBAeHo7tye7du/E9qaioCA0NxZZn7cLHzc39tzfBVtWuXbvevHmTlZVVXl5eVlYmKiqK jatkpa2tTafT8c4XBQUFkpKSeErib8ccIXTz5k38YGtra+fPnz/K1a9du3bgwIETJ05gu21ubo7t tqKiYnl5OftnnZt73bp1jx8/Li8vp1AocK8yAAAAAHwRTCazr6/v3bt3eElGRkZfX98oZ9bk4+PD JyZDCF24cKGkpGTVqlWshaw3Xq2pqZGVlcUeL1++PDExsbi4uKioaPHixZ9tIo7QsPzPY5Wdne3g 4BAdHT1yrN69e3f9+nUfHx+2cg6L1ZMnT1paWgwMDGRlZSdNmoQQsrKywsfp/I3P0p+Wf79ERUUV FBTwm85UVlZ2dXVhQQOAA/Md/zzZgRDy8/M7d+7cxYsX+/v76XR6SUnJ48ePv/aeX7p0CRsWKCEh ISgoiPUiCQgICA0Nzc/PZzAYfX19ubm5lZWVQ9elUCitra1tbW14SWRkZFZW1mg2waajo0NBQQFL mZ86dQqfBqW7u5tKpWJbV1RUnDt3bnBwcFtbW0VFRURExPLly//h4UtLSzs4OAQEBGDdCzs6OrD4 j3L1jo4OMTExVVVVhFBRUdHt27excl9f34yMjHPnzvX39/f29mJp8tzc3MLCwsHBQWFhYVFR0RE6 TAIAAAAAjCwsLOzNmzednZ1FRUWrVq2Sl5dXV1fHXz127Jibm5uwsDDrKpKSkklJSQihR48ePXr0 qK2tramp6ddff7137569vT2+GIlEunXrVnFxsZeXF51OxwpfvHiRkpLCYDCeP3+elJTk4eGBlc+b Nw9r+dja2uItYQqFUllZiU+INsqG5b8fqytXrri7ux89enTevHk0Go1Go+G/t+Gxwpw4cUJVVXXm zJlsNXNYrBYsWFBaWpqXl5eXl4f97Hrq1KkNGzZgeSIajfbp0yeEUH9/P41Gw/IXw32Wampqrly5 0tjY2N7efuXKlYMHD+LdPTiGr6/voUOH3rx509HRsW3bNkNDQ7hHJODYfMc/T3YghHR0dNLT02Ni YpSUlOTl5QMCAlhTCV/JixcvzM3NyWSylpaWoqJiYGAgQsjf33/Tpk0rVqyQlpaeMGFCZGQkfgVn paWl5eHhoa2tTaFQsK/6CQkJT548Gc0m2Gzbtq2iosLAwMDc3PzDhw/YqBCEUG9v72+//YbfV+Xk yZOCgoITJkyYOXPm/PnzPzv/6F917NixiRMnWlhYkEikadOmZWZmjn766IULF+rr6+vr65uZmUVH R1tYWGDlurq6Fy5cOHLkiLy8/IQJE86dO4cQampq8vLykpaWVlRULCwsjI2NhfMfAAAAAH/Py5cv LS0tFRQUsEEW165d4+Pjw14qKyvLzc1l64zQ0tLS398/ffp0hFBzc/Pq1atVVVV1dHQuXbp07ty5 GTNmsC4sJiZ27dq1pqYmd3d37Cuug4NDdna2jIzMokWLgoODLS0t/78pz83t5eVVWFjIOkDDzc2N n59fTk6OQqF8/PhxlA3Lfz9W+/fv7+7udnV1Jf4B+62RNVYIocHBwZMnTw73MxsnxYpAIMj+AetD TSaTsSnzamtriUQihUJBCNnY2BCJROy+CsN9lvr7+/fv36+jo6OiovLzzz9v3bp18+bNHHYObty4 0dnZ2dzcXEVFZXBwEO69CD6Li23A27fDz8+PNdU9VHZ29gg3JQEAAAAAAOAbkZqaeu/eva8xZ2RK SsrOnTtLSko45oajP1qs+tEn7AEf4oczBXwpDx8+VFZWJhAIIywzODjIYDBKS0vNzMxGWOzSpUvO O/Z/p3GALv0AAAAAAAB8XS4uLi4uLl+82p6ensOHDwcEBHBMsgNiBQD4grghBF/EvHnz1P4X9D0B AAAAAABfT0xMjIKCgrS0tJ+fH0QDYgUAGAr6d3wZ/8KdXAAAAAAAAMCtXLly5cqVEAeIFQBgON93 vkNAQADeQgAAAAAAAMD3+o0GwTcaAL4WGM8CAAAAAAAAAAAATgP5DgAAAAAAAAAAAHAayHf8uczM TCUlJQ44kKCgIDc3N3hDAQAAAAC+QT09PVxcXNXV1WzlmzdvXrZsGcQHYgUA+Ks4JN/R0tLC2e8T jUbj4uIqLy//J5XY2Nh4e3vDhx4AAAAA4B/as2ePmpqaoKCgpKSknZ0dayOtrq7Ozc2NSCQKCQkZ GBi0t7d/tmkXGBgoJycnICCgrq6em5v7BfeNSqV6eHh8O7Havn27tra2oKCgrKysv79/Z2cn2wK/ /PILFxfXgQMHhq5bXV09e/ZsEolEIBDU1dUPHTr0ZfftW4tVY2Ojq6sriUQSERExMTHJy8vDyhcu XMj1vxISEn7wc5DBYFCpVDKZLCQkZGdn19jYCNclMBSH5DvCwsI4PuXxNwwMDLA+NTAwmDdvHoQF AAAAAOAfMjMzu3z5ckNDw4sXL0gkkqOjI1be0dExc+ZMfn7+x48fV1ZW7tq1a8yYMUNXd3Nzu3fv 3vnz5+vq6pKSkqSlpTk4Vh8+fIiMjKysrMzIyMjNzQ0ICGB9taioKCUlZdy4cZ9dd+zYsb/88ktR UVFDQ0N0dPSOHTvS09M5OFYBAQH19fUvX75samqaNm2alZUV1p5PSUnp+8P58+cFBQXt7e1/8HMw PDw8OTk5KyururqayWQ6OzvDdQkMxSH5jtbW1pFTHvr6+jt37jQ1NSUQCNra2q9evUpOTlZWVhYV FfX392cwGAih9+/fW1lZkclkUVFRQ0PDx48fD63n1q1b0tLSGRkZCKGcnJwZM2YQiURVVdXDhw8P t+nY2NhJkybhT2tra3l4eCoqKhBC1dXVjo6OUlJSMjIyq1at+vjxI7ZMZWWlk5MThUIRExMzNjbu 6OgwMzPD/rOqqqru3bsXIdTc3Ozh4UGhUCgUytKlS1tbW/Ej3bJli6mp6cSJE9PS0lj3hHU8i76+ PpVKtbCw0NLS0tLSysnJGbrnTCYzNjZWU1NTVFR0ypQpd+7cwco3b968aNEiHx8fERERWVnZc+fO 5efn6+vrCwkJmZubf/jwAVvsyJEjGhoaIiIi8vLymzZt6u/vx8q7u7s3btyorKwsIiKipaX16NEj bOFx48aJiYlJSUmtX78ezkwAAAAAfMsMDAzU1NSIRKKcnJyCgsLbt2+ZTCbWpBESEjpx4oS6urqU lNTcuXOFhYXZ1n348OG1a9fS0tIMDQ1JJNLUqVNVVVXZlqmurtbQ0AgKCsKe0mg0T09PIpGorKwc HR2NEGIwGAoKCufPn8dX8fb29vT0PH/+/NGjRzMyMlRVVVVVVXt7e4dr0f1r4uLizM3NKRSKvr5+ QEDAgwcP8JfodLqXl1dUVBSBQPjsuuLi4iYmJtLS0uLi4uPHjxcUFCwrK+PgWJWXl7u4uMjKygoK Cvr7+7e2tjY0NCCExowZI/CHEydOuLq6ioqK/uDnYGxs7KZNm7S1tUkkUkRExIMHD0pKSuDSBDgz 3zGalMeJEyf279/f1tamr69vZ2eXlZWVn5+fn59/8eLFS5cuIYQGBwd9fHyqqqqam5ttbW0dHBx6 e3vZLtbe3t4ZGRl2dnbFxcVWVlabNm1qaWm5cuXKgQMHUlNTP7tdd3f3ioqK58+fY08TEhKMjY1V VFR6e3vnzJmjrq5eVVX16tWrioqKLVu2IIR6enpMTU3l5OTKyspaWlrCw8N5eXmzs7MRQtnZ2eXl 5VQqFau2q6urtLT09evXLS0tixYtwreYlpaWlJRUWlrq7u4+QsQuXbqUmJj46tWrbdu2eXh4YP+k WcXExISHh58+fbq9vT00NNTe3r6mpgZ76eLFi/PmzWtubg4NDfXx8QkKCjp79uz79+8HBwd37dqF LSMlJXX58uWurq6srKzMzEw8JbRs2bL8/Py7d+92dXVdvHhRSkqqsrJy48aNmZmZHR0dlZWVrMcC AAAAAPBtunDhAoVCERYWDg0NDQ0N5eLiQgjdvXtXQ0PD2tpaREREXV09NjZ26Ip3796dMGHC3r17 xcXFFRQU1q9fz9bmzMvLMzY23rhxI96sSktLMzU1bW1tTUlJ2b59+/Xr17m5uX18fOLi4rAFuru7 U1NTfX19nZ2dV6xYgQ2xKS8vFxQUHKFF9+/Lzc3V09PDn+7Zs0dPTw/7YW8EhoaGkpKSioqKQkJC S5cu5eBYbdmyJT09/d27d729vbGxsQYGBgoKCmzJnZs3b/r7+//gZ19nZ2dNTc3UqVOxp+PHjx87 dmxhYSFclwDH5juwlAd+IRvK19d3ypQpBALB09OzsrIyIiKCSCSqqKjMmzfv2bNnCCE5OTlHR0ch ISE+Pr5t27YNDAy8evUKW5fJZG7fvj0iIiI3N3fatGkIoSNHjjg7Ozs6OvLw8EycOHHt2rXJycmf 3a6oqKiDg8PJkyexehISErBJNC5fvoxd5QUFBcXFxXfv3o3VcPnyZTqdHhkZKSoqysvLa2RkNPRn gdra2uzs7F9//ZVIJIqLix88ePDWrVt1dXXYq8uXL5eVlf3TcPn4+EhJSSGEbG1t6+vr3717x7bA oUOHfv75Z11dXW5u7gULFsyaNevChQvYSzNnznRxcREQEPD29u7r61u+fLmqqurYsWM9PDywYCKE Fi5cqKqqysXFpaamtnr1aixl8+7du/T09KNHjyopKXFxcY0fP15FRYWXlxchlJ+f39HRISQkhEUY AAAAAOBbZm1tXVBQcO/ePX9//8mTJ2OFLS0t6enpy5Yta25uPnz48IYNG4aOv2hpaSkpKeHj46ut rb19+/aNGzewX7MwFy9etLW1jY+P9/HxwQv19fU9PT25ubmnT5++bNkyrGG5fPnyu3fv1tbWIoTO nj0rLy9vbGw8dD9HaNH9y44dO5adnR0REYE9LSoqOnny5Gen7WBz5cqVZ8+eHT9+3NraWkxMjINj NWPGDB4eHllZWSEhodTU1OPHj3Nzc7PFUEdHB1rLXV1d2PcsvERMTAwrBIBj8x0SEhKsFzs2MjIy 2AMhISF+fn4JCQn8aXd3N0Kop6dnzZo1EydOlJeXV1JS6urqam5uxjMphw8fxkZhYCVVVVVXr15V /0NUVNQIJ5iXl1dKSsqnT5/u37//4cOHhQsXYjV8+PABr8Hd3Z2Pj6+zs7O6ulpFRYWHh2eEI62r q+Pi4sJ3RkVFBSvEno4m2YEQkpSUxB5gHQixILCqqqoKCQnB97CgoAAfNYMHk5ubW0BAAN8iHkyE 0PXr101NTZWUlBQVFX/55RcsmNXV1Viag3VDWA/DhIQEOTk5AwODK1euwJkJAAAAgG+cgICAtLS0 gYHB5s2b7ezssKaOiIiIoaGhm5ubgIDA3Llz7ezssH7ErERERHh4ePbu3SssLKymprZ+/XrWZfbt 22dubm5hYcG6Ct7qQwgpKSnV19djTT5LS8sTJ04ghOLi4nx9fT+7nyO06P5NR44c2bFjx507d7CG 6+DgoJeX18GDB1nzFyO0WpWVlZcvX97a2hoSEsKpsWIymXPnzpWSkvrw4UNfXx+VSp05cya2/5iB gYETJ05A5w6E0NixYxFCrHPfdnR0YIUAsOLlpGTHtm3b8O/wf8OOHTtKS0vv379PIpEQQiQSCR/i ISkpefbs2QULFowZMwa7x5WioqKysvJn+ygOZWpqKiIikpGRcf36dRcXFyEhIawGeXn5N2/esC2s pKRUWVnJYDBYs7lsmV15eXkmk1lTU4PdKLeyshIrxF7FulP+c1ie4u/dwratrc3Ozi4tLW3BggXc 3NxRUVGnTp3Cjo7JZJaXl0+YMIF1eVtbW1tb2/7+/sTERCcnpw8fPozmnx8AAAAAwH+OyWT29fU1 NDSQSCRdXd2XL1+yvsrWikMI6erqsjXYWJe5fPmyr6+vn59fbGwsXs5649Xq6mo5OTns8YoVK1au XOno6Pjy5curV69+dov/pEX3pezZsycmJubu3btqampYSXNzc35+vo+PD/ZrZUdHR0hIyNWrV+/e vTtyqFlvhcNhserq6qqsrExISMC+jAQEBGzbtu3hw4eurq7YAunp6b29vTD0GyEkKiqqqKj44sUL rJ9ORUVFV4S2SmQAACAASURBVFeXjo4ORAaw4ZD+Hf882YEQam9vV1RUxK4v8fHxbFOBTJ8+PTs7 m0qlRkVFIYRWrlx55syZtLS0/v5+Op3+6tWrhw8fDhtlbm5PT88jR46kpaXhd4S1tbX99OlTUFBQ V1cXk8msq6vD+jXY2tpycXFt3ry5q6uLTqc/fvy4p6eHj49PXFwcn59JQUHB1NR048aNHR0d7e3t mzZtmjt3Lp7v+FLWrl0bHBz8/PlzBoPR19eXk5ODTbM6Gj09PXQ6HesN2NbWdvz4caxcRkbG3t7e 39+/traWyWT+/vvvFRUV5eXlt27dotFofHx8ZDKZi4sLG+ECAAAAAPBt2rlzZ2lpaWdnZ2FhoZ+f n4KCgoaGBkLI19c3Ly8vLS2NTqffu3fv8uXLTk5O2CrCwsLYzz9WVlZycnI//fRTX19fZWXloUOH 8GUQQmQy+d69e0VFRR4eHnQ6HSt89uxZcnIyg8HIy8tLSEjw9PTEyufPn48QWrZsmYODA94SlpaW rqioGBwc/Octui+CSqXGxMTcunVLUVGRRqN9+vQJO8y6urqXf1BVVd24ceO5c+fYYpWZmXnt2rXG xsampqYTJ06cPXvW0tKSU2MlKiqqqakZGxvb3t4+MDBw7Nix3t5e1u/wMTExixcvHjrU/cfk7+8f GRlZWlra0dGxZcuWGTNmaGpqQlgAZ+Y7/nmyAyEUHBxcXl6up6dnYmLS1NQ09LZYOjo6OTk5+/bt CwsL09PTy8zMjIqKkpaWJpPJvr6+bW1tI1S+bNmy3NxcWVlZIyMj/Dp+9+7d8vJydXV1MTExCwsL bEphYWHhO3fuVFRUqKioSEpKbt26Fbt87927d8WKFUQiMTg4GCGUkpKC3bBdXV1dVFT09OnTXzyq q1at2rp1q7e3N5FIVFRUDA8Px/+R/CkFBYUDBw6Ym5vPmDFjyZIltra2+EsJCQlaWlrGxsZjx451 dHT88OEDjUYLCQmhUCji4uI///zz+fPn4ToOAAAAgG9ZQUGBmZkZmUy2srIikUhZWVl8fHwIIW1t 7bS0tJCQEBEREX9//8OHD9vY2CCEmpub+/v7sXYggUC4ceNGQUGBhISEiYmJlZXV7t27WSsnEolZ WVmNjY1OTk5YdmDhwoW3b9+WkJBwdnYODQ21trb+/6Y8N7ePj09BQQHrAI1Fixbx8/OTSCQxMbGP Hz/+kxbdP0ej0fbt21dfX6+hoUEgEAgEAtbTmZubW44FLy+vqKgomUxmixWDwQgKClJVVR0/fvyh Q4cOHjy4YsUKTo0VQujixYvd3d3jx48XFxePjY1NTU1VV1fHXnrz5k1OTg4MZsEFBga6ubmZmJjI ysrS6XTW++8AgOOaO3fut7lnfn5+I99WOjs7m220HgAAAAAAAN+glJSUO3fu4D1ev6Dk5OSQkJDy 8vIvNaIZYgUAB8jOzlZWVh7uTs+YwcFBBoNRWlo68j2SLl265Lxj/3caBxg1AAAAAAAAwNfl7u7u 7u7+xavt6en59ddf165dy0lf4CFWAIAvhRtC8AVRqVSlIf7DO5wDAAAAAABOFRUVRSaTpaWlV65c CdGAWAEAhoL+HV/S3r179+7dC3EAAAAAAABf2+rVq1evXg1xgFgBAIbzfec7aDQavIUAAAAAAAAA AABgA+NZAAAAAAAAAAAAjjLyZKU/CMh3AAAAAAAAAAAAgNNAvuPPXbt2TU1N7Z/UYGpq+jVuqfWl 9oROpxMIhLKyMnivAQAAAAD+Kz09PQQCYehU91Qq1dfXF+IDsQIA/FUcku9obW39lndv3bp1M2bM GGEBGo1GIBAqKir+k93j4eGJjIyUkpKC8wEAAAAAYDTCw8O1tbXFxcVlZWWdnZ3xVtzFixcJLBwd HYdr+23fvl1FRUVMTExHR+fhw4dfcN+CgoK8vLy+tYgxmUwrKysCgZCfn48X1tfXL1myhEKhSEhI zJw5s6Ojg22tmJgYwv/y8/ODWH02Vj8aBoMRFBQkLy8vISHh7Ozc1NQE1yVWPT09FSzK//D7H96+ fVtRUVFVVcXZceCQ+7OEh4cHBgZKSEh8m7tnZ2f3NaodGBgYM2bMP6+Hi4sLbs0FAAAAADB6c+bM sbe3J5PJXV1dYWFhbm5uz549w14aP358Xl4e9piHh+ezqy9duvTdu3dnzpxRUVGpqakRExPj+IjF xcVxcXGxlnR0dJiZmc2cOTMnJ4dIJBYXF/Pysn838fPzw/MRra2tGhoarq6uEKvPxupHExkZmZKS cu3aNWlpaX9//0WLFmVnZ8OlCScsLGxkZMRkMplMJkKI+TlY+ZfNt35rOKR/R1tbW3h4+Ai9PIyM jMLCwubPn08kEqdOnVpSUpKSkqKuri4lJbVmzRoGg4EQamxstLe3l5eXl5KSmjVr1tOnT4fWk5WV paSkdOXKFYRQbm7unDlzKBSKpqZmdHT0CLuHjyLBut5FR0ebmJjo6OjMnz+/vr4eIWRpaYn91dTU PHDgAELo48ePW7ZsUVNTk5GRcXBwwHvrGRkZbdu2bf78+bq6utHR0SIiIqy5TC0trYSEBIRQbGys np4eiURSVVXdunVrf3//CLvHOp6FSqW6u7v7+PgYGBhoaGgcOXLks6vU1NS4uroqKCgoKyuvX7/+ 48eP6I+BP0eOHFFSUiKTyT/99FNra6uLi4uEhISenh7eCLh//76JiQmFQpGVlXV1dX337h1WzmQy jx8/PmXKFDKZPH78eCxiOTk5hoaG/9fenYdFdZ8NH/8xwLAMuyCDwIAiqwiKsmhcqmKICCpGfZM+ al3RoFlb+17mFaPVVtOqbeIVqcbGRJ/qo4lrFYOKcYkbIoqC4obIIOLKNmzKMO8fp5mHAI40USPD 93PlynXmd/b7njmec3N+5yiVSjc3t0GDBkmZAgAA+GWFh4f7+fk5ODi4u7t7enpevXpVungQQpiY mFj+oMU/TZ04ceLbb7/dtGlTZGSks7Nzr169fHx8mp9r9ezZc8GCBdLH2traadOmKZXKgICA1atX CyEaGhp8fX23bdumn2XGjBnTpk3btm3b2rVrd+/e3a1bt27dulVXV0unWGFhYa6urn369Dl06NCL D1dhYeHy5cuXL1/euHH16tUKhWL16tX+/v4dO3YcMmSIjY1NkxlNTU31wdy8ebOHh8fgwYOJVYux am8+//zz9957r3v37s7OzkuXLj1+/PjFixc5NLVI9wTt4drKeJ7f8dSSx1dffbVkyZLi4uKwsLCx Y8cePHjw5MmTJ06c2Llzp1S/0Gq1kydPzsvLU6vVcXFx48aNq66ubryEdevWzZgx45tvvomPj8/J yRk1atR7771369atrVu3/u1vf9u6dWsrN/X48ePp6enZ2dldunSZN2+eEGLv3r3S/3Nzc3/3u98J IRITE69cuXLkyJGCgoIePXqMGTNGq9VKs2/fvv2LL744d+7cu+++26tXr02bNkntx44dKykpef31 14UQrq6u33zzzd27d1NTU/fu3ZuSktL6SO7du3fmzJmnTp3avXt3cnJy8+d6VFdXx8TE+Pv75+Xl ZWVl5efnf/jhh9Ko4uJitVqdk5Nz4MCBlJSU+Pj42bNn37p1a/jw4UlJSdI0ZmZmy5YtU6vVubm5 Qoi3335bak9JSVm6dOlnn31WUlJy4sSJsLAwIcS0adNmzJhRUlKiVqv/9Kc/NSl1AwAA/FJ27Njh 5eXl7Oz8xz/+MTk5WX+WolarAwMDQ0NDp0+fXlhY2HzGw4cP+/r6Llu2zM3NzdfXd86cOU3OOTMz MwcPHvzOO+/or+G3b9/+q1/9qri4eP369R999FFaWppMJps8efK6deukCSorK7du3TplypTRo0dP mzYtLi4uNzc3NzfX2tp6zZo1K1as+PLLL2/fvp2cnDxu3LgWt+q5XmvNnDnzo48+cnFxaRKHgICA hIQEFxeX0NBQw0+70+l0//jHP6ZOndrkbJBYtU/l5eWFhYW9evWSPnbt2tXOzu7ChQscl2C09Q6p 5KE/kDU3ZcqUnj17WllZjR8//saNGx9//LGDg0OXLl2io6MzMzOFEO7u7iNHjlQoFHK5fM6cOY8f P9bXCHU63fz58z/55JP09PTevXsLIVavXj169OiRI0eampoGBATMmjVLX3d4qg8++EAq9g8fPlxa dRN37tzZtm3bp59+6urqKpfLk5OT1Wq1/gc8adKkTp06ScMTJ05cv369NLx+/frRo0dLtd6EhAQf Hx8TExM/P7+ZM2d+9913rQ/j4MGDpX3s0qWLv7//2bNnm0ywZ88eIcQf/vAHa2trR0fHhQsX6vfd 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 RK5CYII= --=-=-= Content-Type: image/png Content-Disposition: attachment; filename=em-heaptrack2.png Content-Transfer-Encoding: base64 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 PB6P/lwcDuffimpJScnendsDWwR9YK0FeUMAAAAAAABoUJBDhIaoxsl6GRkZhw8frqys9PLyat68 uYeHB0VRqamply9ftre3HzRoEJfL1ev1dU/qsVgskUiUl5eXlpaWmZnp7e0tFoulUmlFRYVYLC4p KSkvL+fz+cXFxYcPH3ZycjLc+0Wn0+n1ep1O96q5P41Gk5mZWVhY6Onp6ezszOVytVptRkaGRCIx MzP7h0HTarWveiMUlUq14OtZ0rJ8pUKOVgcAAAAAAADw/kIOERoWvV5fUlKiVCpZLJZKpbKzs5PL 5cnJyYWFhVlZWVKpVKVSPXr0KDU1lcvlSiSS0tLSysrKrKyspKSktm3bvuoyYbFYbGFhwWAw8vLy tFqtq6srj8fj8XhsNjs/Pz8jI8PV1fXBgwfJycne3t5KpZLBYJSWltLZQz6fT08kpG/zotfruVxu jaVQFCWXyzUazfXr15s2bUoXIZVKCSG3b99+8uSJk5NTTEzMP7knDEVRy5Yu7j9gSNOmTeu4S2Fh 4Y/LFudkPqX0FI+r/cAaEtYyAwAAAAAAQIOCHCI0LJWVlYWFhVwu18XFpby8nMPhFBcXP3z4UKlU ZmRkqFQqHo/HZDIrKysrKiqUSqWbm5ujo2NRUZFSqaz7JEQ65cdisbhcrpubG5fLTU9Pt7Cw0Gq1 +fn5TCaTz+eXlpbm5+dLJJLi4mIrKytXV9e8vDyRSFRUVMRisWxtbfl8PkVRarWaPqaJop88ecLh cLKzs2/fvq3T6by8vNLT052dnRUKRXJycnFx8YMHDzw8PDw9PYVCIb2LVqulKKru8xz1ev2LjLTZ 0yesXr/ZxdXDcHVIvV5Ppy85HI5QKKQrqdGoc3Oz58yILyrIsbC00Gg0lSrWB9aQkDcEAAAAAACA BgU5RGhwGAyGVqtVq9UVFRXl5eVpaWkcDker1YrF4kePHvH5fHNzczrNx+VyWSwWk8m0t7dnMpnF xcU2Njb07VZMF0Fn1tRqdWFhoVKpFIlEjRo1UqvVUqm0sLCwsLAwOzu7sLBQpVJFR0f379+/a9eu dKqRzsfZ2tpaW1trtdrS0lIGgyEUCtlsdm03ddHpdHReUigUFhcXP3r0SCgUWllZCYXCs2fPZmZm cjicrKysx48fX7lyZcSIEQKBoLKy8uTJk35+fp6ennWcWUlRlFajLSnK/+KziX37DereK1ZobkFR 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 j58xYwYhRKPRzJgxw8fHx83NLTAwcNeuXeghAAAAAAAAAADAfu9qvGXLljVr1uzYscPPz+/UqVMf ffTR5cuXXVxc3nhBzs7O69atmzp16u3bt+lXKisrY2JiYmNjN27cqFQqP/7447lz5/7000+EkMzM TB6PR+cZX1XHjh03bNhgbm4eEhLStGlTwzTGhw8fDhw4cMOGDdHR0c+ePYuNjbWzs+vXr1+VWlla Who/1Wq1xgc/ceLEkSNHgoOD09LSQkNDu3Tp4u3tfeHChblz5+7duzc4OPjIkSNjx44dPnw4IWTX rl3Xrl27du2aWCwuKCgoLS1FDwEAAAAAAAAAgHdoHmJISIinp6enp2ePHj1MbLZhw4bZs2cHBAQw mcyoqKj27dsfOnToNYqbMmWK53/VMVl27NgxQsi8efPMzMysrKy+/vrr3bt302/xeLxp06a93gdf vHjxrFmzDh8+HBMT4+npaZjemJCQ0Ldv35iYGBaL1aRJkwkTJhiKq7vw8PDg4GBCiIeHh4+Pz927 dwkhv//++8CBA0NCQphMZkxMTPv27Q2fQiaTJSUlqdVqe3v7+r6PDQAAAAAAAAAAvBfeoXmIf/75 p1gsJoSw2aZqlZGRsWTJkpUrV9JPKyoq/Pz8XqO4RYsWdevWjX5saWlZl10yMjIKCwtbt25NP9Xr 9Vwut7y8nBBiZ2dnutqmzgGbPXr06NGjR1MUdfXq1bi4OD6fv3jx4oyMjHv37hmKU6lUrzHd0sbG xvCYz+dXVFQQQnJzc8PDww2vGw4bGxubn58/d+7cJ0+edOjQYeHChUgjAgAAAAAAAADAO5RDbNSo kXHCqzYuLi5ffvll//79/2FxVlZWTk5OprehL8toXLSzs/P169dfuuXrYTAY7dq1i4qKun//Pl2c m5vb8uXLTZf1GkU7Ojoa3/o5MzPTw8ODEMJkMqdMmTJlyhSpVDp//vzJkyefPn0anQQAAAAAAAAA oIFjvnc1njBhwrfffnvnzh29Xq9UKi9dupSWllZPZTk4OJSUlJSUlNBPe/TooVKpFi9eLJPJKIrK zs4+fvz4Py9l4cKFZ86cKSoqUiqVFy5cOHbsWJs2bQghcXFxf/zxx8GDB9VqtVarffTo0bVr16rX qsrTuhgyZMgff/xx48YNvV5/+PDhS5cu0a9funTp/v37Op1OKBRaWlq+qXtVAwAAAAAAAADAe+39 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 AQG//fbbq9aZPuDatWt79+4dGRk5bNgwOrZvVmZm5ooVK5YuXTp27FhXV1eBQBAcHJyQkODm5kYI mTlzZlBQkKenZ/v27Xfu3Gn6UAqFYt68ea1atWratOlHH32UmZlJv96tW7dvvvkmNjY2LCzszz// rLLXrVu3zM3NqwxjTNdq69atHTp08PT0bNmy5YIFC0yPM2urVW2vv8Emx/svQgiHw6EfHz9+vHPn zvRkEEM0Fi5cOHr06IkTJ0ZHR3fq1Gnbtm0mjsxms7lcrkQiGT169Pfff79ly5bHjx8TQrRa7Y8/ /hgSEuLj4xMbG/vw4UNCiFQqdXJyonNMV65ccXBwoJuiTqfz8fG5efMm3cw2b94cHR3dvn372NjY nJycevpS4hlhMBhV3q2xsZ06dapVq1YJCQmBgYFeXl6LFi0qKSkZPXq0h4dHhw4dbt++TW9GUdT2 7ds7duzo7e0dGRl58eLF6qUvW7bM3Nz8P//5T+vWrS0tLa2srCIjI3fv3k2fILqgH374ISIiok+f PrXVx3SvzMvLGzp0qLu7e4cOHa5cufKWe2uN32Ymzu/WrVtbt27dpEkTf3//uXPn0sd3cHBQqVT0 BgcOHAgPDzf04uXLl8fGxrq5uXXu3DklJWXPnj0hISHe3t6zZ882zPzKzMyMi4vz9/dv3rz5559/ rlAo6Nfv3LnTrVs3Ly+vmJiY58+f198P344dO/r37x8ZGfnrr7++dOPDhw9X74x0ii0mJsbHx8fX 13fGjBkm2meVXwfjBa019ke6s48bN27atGkRERFt2rQx/AJmZ2cPGzasWbNmPj4+4eHhhh+pN4LN ZtP9jsvlEkK4XC79ODExsXqvWbhw4aRJk2bMmOHp6dmiRYuDBw8mJSV169bNw8Nj4MCBRUVFpjtC jb+P1X8ILl++HB0d7ePj06xZs7i4OMPuCxcujIuLmzRpUqdOnRYsWDB58uTPP//c8EF2794dEhJS 49xhnPraJCUlsdnsjz/+2NLS0tzcvFWrVnTlidFa5ri4uJb/1bhx4+joaBPfq5cuXYqMjPTx8fHx 8YmJiXk7Ez8BAAAAkEOsX3379j106NCDBw+GDRtmZ2dXx5HbuHHjgoODzczMRo4c+fz58x9//NHK ysrT0zMyMvLGjRuGzebOnevk5GRvb9+vXz8ejxcfH29mZtazZ097e/ukpCRCSFhYWNu2bTkcjpWV 1YIFC/7++2/DvuHh4R07dqQfx8XFnT179sWLF4SQXbt2ubi4hIWF1WtYTp06pdPp/P396fTKwIED w8LCkpKSEhMTd+3atX79ekIIPTVyz549V69enTp1apWnhJCJEyfKZLKLFy9euHChuLjYOEN64MCB PXv23Lp1Kycnp0ePHs7Oznfv3l2+fPkXX3yRn5//GhW+du3a3r17T506FRQUFBcX98YDcvbsWSaT WX2BLZ3iadmy5alTp548efLdd999/vnn9+7dM3GoTz755OnTp0ePHk1KSgoMDBw5cqROpzMM2Nau XXvx4sXqBR09erR79+6vVCs7O7tff/316dOne/bsOXXqlGEk9kq1MlHb+nP16tX4+Pi5c+empKR8 +eWXkyZNMnSrkydPjh079ujRozt37lyxYgU9Xeil+vTpw2az6aHd6tWr9+zZ8/vvvyclJbVr127Q oEHl5eWWlpYBAQHnz58nhJw/f75x48bnzp0jhNy7d0+v17do0cLQzA4ePHjp0iV3d/fFixf/K19Z tTW2vLy87OzsK1euHDhwYPPmzUOGDBk/fnxKSgo9DZPeZvv27evWrVu/fn1qaurs2bNHjx6dlZVV 5fhnzpzp37+/iUs6ZGVlcbnc06dPHz161HTjr61Xbt++/bPPPktNTe3fv//kyZPf+CppE/2itm+z 2s5vRkbGvHnzfvvtt8ePH1+/fr1///4vLf3333+fP39+ampq8+bNR40adf78+b/++uvUqVNHjx49 duwYIaSysrJ///5eXl43btw4d+5cRkbGN998Q3/TDh06dMCAAampqUuWLNmyZUs9NaHU1NQbN24M HTp06NChp06dysvLe43OmJSUNHTo0JEjRyYlJd26dcuQbamxPVT/dTCosT8aOvuYMWNOnz69a9eu xYsXG64ta29vf//+/ZSUlC1bthhmitUfE73m6NGjnTp1evjw4axZs2bMmLFkyZINGzbcv39fp9Ot WLHCdEcw8fto/EPAYrEWLVqUnJx89epVQsjs2bMNm504cWLUqFFnz5799ttvR44cuX//fsPKicTE xGHDhlX/CwROvQlBQUFMJnPatGlnzpwpKCiocZstW7bcuXPnzp07+/fvNzMzo1eE1NZCpk6dOmbM mNTU1AcPHsydO7f66QAAAACA9y+HSAiJjIzctWvXixcvHjx4IJfLBw8e/NJdnJyc6AdCoZDH4xn+ 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 NpttbW3t7Ox88uRJOgI7dux4pepFRUWp1eqlS5fKZDKKonJycuhDRUVFZWZm0jEsKyuryyUjXsOO HTv69Olz/vz506dPnz59+sKFC126dDFxe43aOuOoUaOOHDmyb98+jUZTWVl5+fJlE+2hyq9DlcxX jf2xNn/++Sd9sTlra2szM7Ma5+q+WXXpNaZV7wh1/32USqVNmjQxMzPTarU///yz6RRbz549J0+e zGKxasxV4dSbduXKlfXr1z979kylUuXl5a1cuVIkEjVt2tR4mx9++OHOnTvbtm0zvmJsjS1Eq9Xu 3r1bKpUyGAw7OzsWi1XbVUcAAAAAwLR3ay1zz549jdcqGuvYsaPx/QEMt1C4fv264cXg4GDjhXiG y/Obm5vTt/ukzZw503BbA/p/2PSDrl273r9/3/D6hAkT6AfLli2rXh8PD4/GjRt37ty5/qIxfvx4 epBsb28fExMzZ84cQoilpeXu3bvnzZu3Zs0akUg0ePDgyZMn09t//fXXs2bNUigUcXFxc+bMqfL0 l19+mTt3blhYGEVR4eHh9H0DXjspsHv37qVLl/78888URTVt2nTnzp1eXl7Go51+/foVFhYGBQVt 3ry5Pi489Nlnn3l7eyckJHzzzTdMJrNx48ZDhgyRSCQSieTChQudOnWytbVt3LjxSycarFq1avny 5f379y8qKhKLxaGhoVFRUSa2z83NTUtL69ChwyvVisPhzJ8/f+DAgTY2NhYWFlFRUfSi1Fet1avW 9o1o27btypUr582bl52d7ezsvHbtWkOGvVevXpcvX54/f765ufnnn3/etWvXGo+Qmprq7OzMZrPF YrG/v//SpUsNGedp06ZptdpBgwbJZDI/P79du3YZFsSFh4efP3+eziG2a9dOqVTWmLr9F/Xt2/eV GlsVY8aM4fF4n376KX1flBYtWlTvlY6OjidOnFixYsXEiRPz8/PNzMwCAwMTEhIMa2/rXp+30Ctf tbdyOJzavs1qpFKpfvjhhydPnjAYDGdn54SEBHoS4po1a7744ouEhAQbG5vIyEjDddzqQigU7tu3 b/HixWFhYQqFwsHBYdCgQd26dbO0tExMTPz666+XL19uYWHRr1+//fv3v9mwpKSk3Lx5c8mSJcbT SydPnjx48ODabmdfW2cMCAjYsWPH999/P2fOHA6HEx0dHRoaaqI9GP86GP8amuiPNbp37x6dejMz M+vcufMnn3xS322pLr3GtBo7Qh1/H5ctWzZv3jw6adWvX79du3aZKGjEiBF9+/adPn169XQVTv1L 2dra3r17NyEhobCwUCQSNW/efOfOnfRlJQy2bNmi0+k6depEPw0ICPj1119rayEHDhxYsGCBVqu1 tLScOHGiYS8AAAAAeCWMyMjIt1DM+PHjq9+X8/1VUVHRpUuX4cOHT5s27ZV23L9/f6dOnd7CvXT/ LXK53NPT88aNGyau91cbFot179695s2bv8vx2bJly7Vr1zZs2PB+nZf6iO3ChQuLi4sNl51qyKH4 gHslwojgfDDxqY+OYEJOTk6rVq2uXbv2dorDqa+n2la/9jEAAADA+8sq7J9OQmIiiK9q3bp1jo6O jo6OEydORDQaGnt7e5x3AAAwQafTrV69OioqCglEAAAAAPiQsBGCVxUfHx8fH484NEz1dC1OAAD4 MCQnJ8fExLi6upq4viEAAAAAwPvo3bovM7zvhEIhfftg+ODNnz8fQUCvBEBHqMLf39/4nvUAAAAA AB8MzEN82yiKQjq1tsggPogtQoEwIjiID+DUvyO1BQAAAABjyCG+bTqdDhfaR3wQW4QCYURwEB/E AaceAAAAAN4jyCH+C/971mq1iAPig9giFAgjgoP4AE49AAAAALwvGJGRkW+hmIkTJ/bu3Rvhvnz5 ckFBAeIAAAAAAAAAAABvzcAFP/zDI2Ae4lsVGhqKIAAAAAAAAAAAwFtz4MCBf34Q5tupq16vxwkD AAAAAAAAAAB4HzERAgAAAAAAAAAAADABOUQAAAAAAAAAAAAwBTlEAAAAAAAAAAAAMAU5RAAAAAAA AAAAADAFOUQAAAAAAAAAAAAwBTlEAAAAAAAAAAAAMAU5RAAAAAAAAAAAADAFOUQAAAAAAAAAAAAw BTlEAAAAAAAAAAAAMAU5RAAAAAAAAAAAADAFOUQAAAAAAAAAAAAwBTlEAAAAAAAAAAAAMAU5RAAA AAAAAAAAADAFOUQAAAAAAAAAAAAwBTlEAAAAAAAAAAAAMAU5RAAAAAAAAAAAADAFOUQAAAAAAAAA AAAwBTlEAAAAAAAAAAAAMAU5RAAAAAAAAAAAADAFOUQAAAAAAAAAAAAw5f3LIZaVlXE4HA6Hc+nS JdNburu7czicX3/9FacZAAAAAAA+DM+ePaMHROnp6RgQQX20HACAGmEeIgAAAAAAAMAH5d69e3TG MC8vj36Fx+O1bt26devWPB4P8QGA18BGCAAAAAAAAODDplaruVxuQ46As7PzSxfzAQCY8H7MQ0xP T+/Ro4dYLPbz8ztx4oTxWzqd7pdffgkODhaLxZ6envHx8aWlpcYbZGVl9erVy8LCIiAg4MCBA/SL PXv25HA4M2fOpJ/6+flxOJz169fTT1evXu3l5SUWi8eOHTtx4kQOhxMVFUW/debMmeDgYJFIFBER sWLFCg6Hw+fzX1qTsrKyWbNmNWvWjK7GihUrdDod/dbmzZt///13NEQAAAAAgA8VvaZ49uzZ3bt3 t7W1NR6YmBhEfPLJJ15eXpaWlgKBoEmTJt988w1FUVWOXFlZGR0dzeFwwsLCqoyDDHJycvr162dh YdGkSZNDhw69drmGlbCrVq0KCQmxtrbu3Lnzo0ePqpe4ceNGDofj5eW1evVqiURib2+/ePHiJ0+e dO7c2cLCol27dsnJyS8dKDk7O3M4nEWLFkVGRopEotDQ0CdPnixdutTJycnR0fGrr74yFHfixInO nTs3atTIwcEhIiLizJkz9OujRo3icDjDhg0bO3astbX1xIkTfXx8OBzO5s2b6Q3WrFnD4XBCQkKq f4Rnz56NGjXKy8tLKBR6eHisW7euLmXFxsbGxcU5Ozs7OTktXLjQMJjt16+fo6OjQCBwdnbu2rVr bm6u6TFp3QNoXK6Li4u7u/uiRYv0ev3BgwdbtWpFb+Pi4sLhcFavXl1lLXNpaenMmTObNm1qYWHR rFmz2bNnS6XSKi22R48eNjY2xi0nMzNzxowZJSUl6NcADdB7kEPUarUxMTF//fWXpaVlcHDw9OnT jd+dPn361KlT8/PzP/30Ux8fn40bN0ZGRhp+eAghixYt4vF4LVu2TElJGTx48L179wxvMRiM6sUl JibOnDkzIyOjc+fOmZmZ27ZtM7yVlpbWu3fv+/fv+/r6Ojo6zp07ty410Wq1Xbt2XblypUgkmjVr ll6vnz179owZM+i9Dh069Ndff6EhAgAAAAB82H755ZeQkJB+/foZD0xMDGeSkpLat28/a9as8ePH 5+bmLlq0yJD8oikUit69e586dapbt24nTpywsrKqsdwFCxbIZDJnZ+e0tLQxY8ZUVFT8w3LXrFkz YMCA4ODgixcv9ujRQ6FQ1FhuZmbmqlWr/P39S0tLFy5c2L59ew6HY2dnd/PmzUmTJtEDPRMDJdq3 337L5XKtrKxu3LjRvn37devWtWzZsqioaNmyZadOnSKE7N69u1evXhcvXuzYsWO7du3Onz/fvXv3 w4cPG46wZ8+eS5cu9evXr0mTJnS5W7Zsod/au3cvIWT06NFVap6ent6mTZv//Oc/hJDhw4cHBAQ8 fPiwLmUdOnSorKysV69ehYWFixcvvnDhAiHks88++/PPP9u1azdv3rwBAwYUFxfLZDLTY9I6BtC4 XAaDERcXV1pa+s0336xfv97T03Po0KH0u2PHjp06dWqLFi2qjLIjIiJWr16t1WqHDBmiVCpXrFgR FRWl1+uNT7S3t3fr1q2NW05BQcGaNWvKy8vRowEaoPdgLfOlS5dSUlIIIceOHfP19T1+/HhMTAz9 lkwm27RpEyHku+++i46OVqvVvr6+9+7dO3nyZI8ePQzfmGvXrqUoKiQk5N69e5s3b169ejX9FpNZ QwqV/oEcNGhQYmIiISQ8PPzy5cv0W7/++qtKpXJ2dr548SKHw5k3b96SJUteWhMmk3nv3j0mk/nb b79ZW1uHhITExMRs3Lhx0aJFFhYWBw8eRCsEAAAAAPjgxcfHL1q0iBCSmpp65cqVzZs3f/vttyaG M0ePHuXz+Xq9vrKyUqFQbN269dSpU+PGjTMccPDgwSkpKQMHDty2bZuJrQV8QwAAIABJREFUVbpD hgzZtm1benq6t7d3eXn548ePvb29/0m5a9eu7d69++TJkx0dHbOzs48dOxYbG1tj0WfPnnVxcXF2 ds7Pz+/YseOePXsOHToUGxt7+/ZtvV5/+vRpEwMl+gijR4/+5ZdfNm7cSM+UvHXrVmBgYKtWre7d u3fz5s3IyMiVK1cSQj766CN68seAAQMOHjy4cuVKw5hRIpHcvn1bIBAQQsrKyubPn3/9+vUHDx5Y WVldvnyZy+UOGTKkSrU3btwolUrt7e1v3bplaWlJCNFoNISQl5bl7++/b98+QsiFCxceP3588+bN Dh060Kk3a2trf3//AQMGrFixwjhvWOOYtI4BNOwbEhJCD2P1ev3SpUs3bdo0ZcqUmTNn0iveFixY 4ODgQAh59uyZ4ch//fVXUlISIeTkyZONGze+f/9+cHDwrVu3Lly4EB4eTm8zYcKElStX5uXlubi4 0C0nKCgoODiYjgYANEDvwTzEFy9eEEI4HI6vry8hpGXLloa3cnNztVotIWTs2LGOjo5ubm5yuZwQ 8vTpU8M2zZs3J4QwGAw/Pz9CSGZmZvUi6IPQ6A38/f3pp/Rexm/RE+CrvGWiJnT99Xq9n5+fo6Mj /QOj1WpxMywAAAAAgIajcePGxg8yMzNNDCIoilq2bJmnp6eZmZlYLN66dSshJD8/3/iAKSkpTCZz 8uTJpi/zFxYWRghp1KgR/VQmk/3Dcun6i0QiOzu72kZYhBAHBwcXFxdCiLW1NSGEXjIsFosJIWq1 Wq1W12WgRO9FH4HL5QYGBhoOQs/mo0s3DM3oB/SRaaGhoXQCkd5x2LBhhJAtW7bs37+foqjevXvb 2NjUOAINDAykE4j0aLQuZdFjT0IIvSNdwwULFnh7e2/fvr1fv37NmjXz8fFJTU01PSatYwBNNK2X tkZ6Gz6fT+9Cj7Vr/DiGIBhPnwSAhuk9mIdIf29qNJqcnBwnJyfjXxRHR0c2m63Var/77rugoCD6 RZ1O5+3tbdjGcKmIBw8eGI5mbm5OCKEv4lBSUpKdnW3Y3tXVNT09nZ6sTgih/zhjeIsQ8vjxY61W y2azjd8yURP6F4LNZv/xxx9mZmb0WyqVysPDA+0PAAAAAKCBuHv3LiGEoih6FbOLi4uJQcTRo0cX LVrE5/MTEhI8PDzWrFmzb9++KtdD/Pjjjzdt2tS7d+8jR460a9eutnLpDKPx3Ld/WO7du3ebNGmS l5dH3/CXHmFVR+fdDEXTT40PRe9oeqBE72V8hOoHycvLMwzf6AfGVTJcv54WHx+fkJCQmJjo6elJ CBk1alT1mtPjvqSkJJlMJhKJ6NEoh8N5aVksFsv4I9PatGnz8OHDnJyclJSU+fPnX7169eeff165 cqWJMWkdA2hw//59iqIYDAbdxgyBpd81Xp5cJfhKpTItLc3Dw8NwXcvqH8fEamsAaGjegxxiWFhY kyZNHj9+PHjw4H79+hlfoFAkEsXFxW3cuHHdunXDhw/n8XjPnz8/fvz4lStXDNts2rQpPz+/oKDg 3r17DAZjzJgxhJBWrVrt27dvz549NjY2Z8+eValUhu3Hjh17/vz5nTt3lpeXy2SyGzduGN4aOXLk smXLMjMz27dv7+HhYXzlCxM1iYiI8Pf3T05O/vbbb3v16qVQKB4+fPjkyRM6ublt2zaBQDBo0CC0 RQAAAACAD9iWLVsKCwsLCgqSk5PpgYmJQYThCu9qtfrRo0eGe3cYmz17trW19ffff9+zZ89jx461 adOmjjX5h+VOmTLl+PHjly9f1mq1Tk5O3bt3f72AmB4o1dG0adNGjBiRmJgol8u1Wi09Rvvkk09q 297f379Dhw4XLlwoLi6WSCSRkZHVt/n44483bNiQn58fFBQUERFRVFTk6Oi4Zs2aVy2LNnz4cLVa 3bRpUzMzM3pGJz0n1MSY9FWlpqaGh4c7OTnt37+fHtISQiQSCYvF0ul0EydO9PLymjZtWpXg+/n5 PXjwIDIyMiIigr64ZFBQUIcOHUyXlZWVtXr16i+++KK2628CwAfsPVjLzGazDx8+HBERkZycvHXr 1irf0atWrVqzZo2tre369euXL19+8+bNAQMGGE9H/+qrryoqKm7cuNGkSZPff/+dXgo9efLkwYMH s1isvXv39urVy8vLy7D9sGHDfvzxRzc3t3Pnznl4eNBz3em/4bi7ux86dIi+pG5BQcHXX39NjP68 U1tNOBzO6dOnp0+fXlZWtnTp0oSEhIKCAsOFe/fv31/lTtMAAAAAAPDh+frrrxUKxa1bt4wHJrUN ImJiYj799FOhUPjll18eP368d+/eNR5z8eLFU6ZMkclk0dHR169fr3tl/km5P/300507d3JyckJD Q48cOSIUCl8vIKYHSnU0ZMiQgwcPhoaGnj179uLFi2FhYUeOHOnTp4+JXSZPnkw/GD58uGHmoDEP D4/r168P+3/s3Xk8Vfn/OPC35di3a1+u/WbfIlJKCRmh0oY2RSiSImq0p0ypSRgtlLSMMpVIGUSZ tmmhohRKthayJiPLXX5/vD9zfvd7cdNMzdT0ev7R4zr3fd7bOZ1z3+/zfr/P3LlMJvP48eMlJSV6 enp/LS2EkLm5eWVl5U8//bR9+3Y6nb58+XL83hgubdKPNWfOHBMTk4KCAgUFhXXr1gUFBSGEpKSk duzYoaiomJubm5CQwDHOEVf+8uXLeXl509LSCIIICQnJzc0dtELYNTU1xcbGkm9wBgB8U3gGffDy yfn7+0+fPv2rqBEmk9nV1YUX8WWxWFZWVg8ePFi6dGlCQgJCqL29nXzeEhYWFh8fr6+vX1ZWBmcS AAAAAAAAYFAaGhovX748fPjwwoULv95SVFdX4660p0+famhofL0F6e3tlZaW7uvre/z4MfsqWF8j b2/vtLS0hQsXcrw7GwAAOGRmZs7evOtvRsIP9cihr69vxIgRs2bNUlJSKioqevDggaioKPmoasaM GcrKygYGBlVVVenp6Qih1atXQ6UBAAAAAAAAwJfv4MGDN2/e7Ovrc3Nz+9o7EAEA4B8GfYgDaoSf f+TIkWfPnu3s7FRWVvbw8Fi/fj1+4IYQGj16dHp6emZmJoVCGT9+fHh4+OTJk6HSAAAAAAAAAODL t27duvfv39vZ2e3fvx9qAwAAPgrMZQYAAAAAAAAAAAAA4D/rk8xl5oV6BAAAAAAAAAAAAAAAcAF9 iAAAAAAAAAAAAAAAAG6gDxEAAAAAAAAAAAAAAMAN9CEO4vbt27Kysl9p5sXExEpLS+EgAgDA5+Pt 7U0QhK+vL0KourqaIAiCIGpra//dXGloaBAEcezYMY4cfm4pKSkEQdBotE8Y56+//mpiYiIiIkIQ RF5e3tdYBAAA+A/o6ur6F29w5eXlo0aNkpOTW7169b9eFXQ6nSCIyspKOCsAAN8y6EP8HwaDoa2t fe3atX8y0adPn8rJyb179+4vx2BlZfW5M3n48OF/5sU7w7Fw4cJt27Z9CyfMl1NSAMAnV1pairsd Gxsbv7rMx8fHEwRhaGhIbpGTk7OysjIzM/tUSbBYLG9v7ydPnri7u//44496enqfu/4/eREAAOAf 09TUtHDhQmVlZRkZmYULF3Z0dAwMk5OTY2VlJSMjQ6FQxo0bd+nSJby9pKSEIAgtLS0Gg0EGnj9/ PkEQMTExfyEzPT09BEFUV1d/kqJFRUU5OTk1Nzfv3r07MjLS29v7b0a4YcMGCwsLERERe3v7j92X j48vLi5OQUGBe7D79+/b2NiIiYmNGDHiyJEjnyRpAAD4cvBDFWDnzp2TkZEZP378P9wSW7Rokbi4 +F/bvb29vays7B/I5Pbt27+EY/Tq1asLFy58IU//PusJ80WVFAAAuHNzc3Nzc/u07eH29naE0Pff f29kZPQ1FgEAAP4xXl5eeB4Si8VavHixj49PRkYGR5gRI0YkJSWpqKiwWKzMzEx3d/enT58qKSnh b0VFRfPy8qZMmYIQam1tzcnJ0dLS+hKKVlNT83cuzv39/QRBsG+h0Whbt27Nzs5++vTpx8bGw8MT GBjIPUxnZ6erq+uiRYt+/fXXa9eueXp6qqmp4U7Dv5M0AAB8OWAc4v/ExcWFhISQfwoICGzfvp1K pSooKPj6+tLpdLz9zJkzpqam8vLytra29+7dQwhVVlZOmDDB19dXXV39+PHj48aNMzExaWpqQgh1 d3cHBwdraGioqamtXLmyp6eHPcX29va0tLSgoCByy48//qivry8jI6OlpRUbG0tut7CwyM3NdXJy olKpurq6b968QQitWLFi7NixDAZDV1dXV1fX09OTDJ+fn6+joyMrK+vo6NjQ0IAGzM729/ePiIjA n0NDQ2NjY5ctW6ampqapqZmbm8ueyUuXLvX19eGfFAihjo4OBQWFq1evmpmZUalUFxcXvH3Qkt64 ccPS0nLDhg3jx483MDBgL1FZWdmkSZMUFBSMjIzS0tLI7WlpaYaGhnJyclQqNTQ0lOMY7du3b9as WXJyclwSnTdv3rp160aOHOnl5bVp0yYdHZ1du3bh3xC+vr5qamqysrJmZmbk01eEUENDw7x581RV VcXFxU1NTXH1MpnMyMhIDQ0NWVlZHR2d48ePcz9h7t27N378eAUFBQUFBUdHx+7ubi7HbqhEv8yS AvAtePv27fr1642MjCQkJBQVFX18fPD/a2tra0VFRWFhYVlZWWdn5+E8tiksLBw3bpyMjIyYmBiN Rhs4aCIrK2vUqFH4s6qqKkEQ8fHx+G7i4eGhoaFBoVAsLCySkpLYR4WQUlNTTUxMZGRkhIWFqVSq j49PW1vbB3PFJfLq6mpvb28ajSYqKqqpqZmYmMil7KGhoWFhYQihqqoqPJSvtLSUYyLwUGmRk77j 4uIsLS2lpKRsbGwGPiy5ceOGqqoq/jxy5EiCIF68eOHi4kIQBE4aIWRoaEgQxL59+9Cf05C1tLSi o6N1dXWlpaW9vLzIAf4DSzdo/XMUob29PSwsTE9PT0JCQl9fPyIi4u3bt/grPGE8IiLC2dlZRkZG R0fn/Pnz3A99UVERjCsHAHwmzc3N165d27Rpk5ycnLy8/JYtW7Kzs+vr6wf2IZqZmeEwOjo6vb29 dXV15LdLliw5fPgw/nzixAlnZ2eOZZ0KCgrwT3RXV9cXL14ghA4fPmxqakoGqKurExISqqmpmTx5 MkJo8uTJurq6eCRjbW3t7NmzVVRU1NTUgoOD//jjj4Gl2L9/v7GxMYVC0dTUDA8P7+vrQwhZWlo+ evRozZo1urq627ZtS05OPn/+PG74dHd3s1ispKQkfEO0srK6cuUKjioiImL27NkLFiwwMzMLDw/n SMjb29vFxUVaWppj++jRo7dv3+7o6CguLj5y5Mjy8vKff/6ZRqPJyMgEBgYymUz0f+cyR0REeHh4 +Pj4WFhY6Ojo/PTTTziezMxMBoOxZcsWCQkJFxcXd3f35ORk7knv379/xIgRsrKyKioqA5s/AAAA fYhfojt37tTX18+ZM4f9fvzmzZvq6uqysrLffvstPT0dIXTr1q3g4OCjR482NTWtXr3a2dm5ubkZ b//hhx8CAgLWr19fWFg4cuTI7OxshNDq1asbGxsfPXpUXl5eXl7O0YQ4dOjQ5MmTNTQ0yC2jRo26 ePFia2vrsWPHvv/+++fPn5NfRURExMfHv3jx4tatW/Ly8gih+Pj4zMxM3FqrrKw8deoUGfjChQs3 btx4+fKluLh4VFTUB4sfHR3t4uJSX1//5MmTiRMnDuwp4+X9/+dJW1tbYmLilStXXrx4ceLECbxx qJI+ePCARqNdu3btypUre/bsKSoqQgh1dnY6Ozv7+vq+fv369OnTkZGRhYWFCKGenh5fX9+TJ082 Nzc/ePBg0aJF7Dnp7u4+dOjQypUryS1DJdrV1fX777/n5ubKy8v/+uuvCQkJCCGCINzc3O7fv9/c 3Dx37tyAgAAcmE6nT5s2TURE5NatW01NTYcOHcLVe+XKlV9++aW0tLSlpeXXX3+1tbXlfsKsWrVq zpw5TU1NtbW1W7ZsERER4XLshkr0CywpAN8COp3u4OCwc+fOly9fzpw509HR8fHjxwih169fMxiM +fPnb9iwQUdHp6CgYMaMGbhhMxQWizV37tzbt28vXLjw+++/nzhxYkVFBUcYbW1tLy8v/NnX1zc4 ONjMzOz58+djxozJyMhQUVGZMWNGVVVVUFDQ2rVrByZRUVGhpqYWFBQUHh5OEMTx48fZn2cMikvk tbW1o0ePxs9y5s+fb2xszL3stra2ePw1hUIJDg4ODg7maGcOpyA7d+50dHRUUVG5c+fO8uXLOXKr oqKyePFi/HnevHnBwcHkaH0eHp6hytjQ0JCRkTFjxgyE0JkzZ+Li4oYq3aD1z3E+2Nvbx8fH0+l0 T0/Pnp6e2NhYJycn3IbEEhISRowYYWVlVVNTs3jx4q6uLi6H/t69e6mpqfAfDQDwOeBLE8flcdC1 0V+/fk2lUmVkZBwdHV1dXdkXRPLy8vrtt99ev36NOwcHrqV79OjRy5cv19fXKygo4B/AHh4eDQ0N t27dwgGOHDkyYcIETU3N/Px8hFB+fn5lZWVERER3d7eDg4Ouru7Tp08fPHjw/PnzNWvWDMybvLx8 ZmZmW1tbXl7exYsX8dOsu3fv6unp7dy5s7Kycv369X5+flOnTsUNHxERkYMHD+7atev48ePNzc2b Nm2aOXMm2SuanZ3t7+//4MGDvXv3Dr8mjxw5snPnzjdv3lhYWLi7u1++fPnu3bt3797NysrKysoa GP7ixYvLli0rKSnJzc2NjIzEfYulpaWmpqb8/P+b6mdhYcF9nfqamprVq1efP3++paWlqqqKvD0B AMAXC+Yy/6+nLDAwkGOs+5YtWwQFBRUUFGxtbXGbKjU11dPTEzc2pk6dGhsbe/r0aXt7ewUFBXl5 eU1NTSMjI0FBQWVl5aamJgaDcfTo0Zs3b4qJieGGyubNm8neHzqdvm/fvpMnT7KnOGHCBPxh3Lhx qqqq1dXV5DwCb29vXV1d3Gz7YHHCwsLwELZp06aRz764GDNmjKurK0JISEiIo6V69+5d3H/KLjw8 HGcD/8ulpHx8fPPmzUMIKSgouLq6ZmRkTJw48eLFiwoKCni7vr7+okWLkpKS7O3tBQQEVFRUDhw4 EBoaSqPRONqlJ06cMDc3NzAwwH9ySdTY2FhISEhRUXHUqFH4WOBdpk+fjj94enquW7eur69PQEDg 9u3b9fX1v//+u6CgIELI0tISh1FVVW1tbU1NTZ0/f762tvYHTxgtLa3MzExzc3MbG5uxY8eyBx54 7IZK9AssKQDfgsLCwgcPHiCE8vLycJuqv78fIWRvb49HW/f29np5eeno6NTV1T19+pR9KcCBbbk/ /viDh4dHWVnZ3Nzcx8eHnClGMjIyCgsLw9f/zZs3KyoqIoS+//77d+/eqaurX716lY+Pz8zMLDQ0 dP/+/VFRURxX5s2bN+Mt3d3dNBrN19eXfbjxoJKTk4eKPCkp6e3bt/Ly8iUlJZKSkh8s+/Tp0+vr 669duyYnJ7dnz56PSosMk5iY6O7ubmpqOn/+/OLiYo4YNDQ0Nm7ciNeQCg8PZ69t9gdaHPj4+HJy cuTl5d++fZucnIyjHbR0eDwjR/0/e/aMjKqgoODhw4e4DaylpVVWVmZhYVFSUnLt2jXyNh0QELB3 797GxkZVVdXOzs6qqipTU9OhDn1oaCgMLQEAfCYKCgpWVlZbt25NSUnB7ReEUGdn56Ahi4uLOzo6 0tPTZWVl2a+oEhIS06dPT01NtbW17evrs7Oz49h3/fr1eB3A3bt3KygoPHnyRF9f39PTMyUlxdra mslkHjt2bMeOHQMTxeMq8A9XERGRqKgoBwcHctQeaebMmfiDjo5OUFBQbm7uqlWruBc8ISFhw4YN eCyki4uLra3tuXPn8DP4CRMm/IXlhpYsWWJubo4QWrhw4dGjR3///XcKhUKhUBwdHYuLi93d3TnC 29vb45/TWlpaenp6JSUlurq6nZ2d+HaDSUlJcV/4no+PDyF07949JSUlKSkpjkYBAAB8gWAcImpo aMjNzfXz82PfKC4uLiUlhT/z8/PjNtXLly9VVFTIMCoqKnimgICAAG7b4HYdDw8Pg8FoamrCs4Cp VCqVSl21ahU5EwohdObMGWVlZWtra/ZET506NWXKFDs7O3t7+6amJvYhD1QqdfglImeBkTkf2Mpl /3OoyOPi4nx9fUVFRTm2c4TnUlIxMTHyQZyMjAyePDtUNfLy8l6/fl1UVHT8+PHfffddeXk5GYbF YsXHx7OPteGSKPvh4OHhwYXt7+/fvn37pEmT7OzscPcl3l5fX6+iooK71djp6OhcuXLl7t27Ojo6 /v7+7FMFBz1hDhw4MHXqVD8/P2NjY45nlQOrd6hEv7SSAvCNIK/k5KAM/ISgqqrKyclJUlJSTExM R0eH/C/JvTEQFxdHoVAiIyO/++47NTU1Jyen9+/fD+dOhBDS09PDzQnccdbb28ux0AFuj5mbm4uK ikpKSuKhIq2trYPOeh5O5LjsJiYmZJvnL5d9+AXBTT6cYldX1184ZOQCIyQlJSU8thpHi9tsQ5Vu OEUQEhLCj/HIJzrscwPZi4CT+8uHHgAA/qb09HRhYWFTU9NRo0ZNnjyZn5+f40n8/1p9vLyKiop6 enqbNm2KjY29ePEi+7d+fn4pKSnJycm+vr4DB31ramriDxQKRUJCAk9n9vf3P336dFdXV35+/vv3 78ln2Oxqa2ubm5sN/zRv3jwBAQH2NhGWm5vr6OhIo9G0tbW3bduGZ3pxh6f+kDE/ePCgtbWVbFz8 hWpUVlbGH0RFRQUFBWVkZPCfIiIig/YDsleysLAwvp1JSEiwl66jo4P7wvdqamqnTp06fvy4hobG 2LFjL1y4AOczAOALB32IKDEx0cvLi2NxikEHO6iqquJbJtnMUFNTGypaBQUFAQGBwsLCFy9evHjx 4vXr13iCANk9xz5ZFSF0+/btpUuX7tmz58qVK4WFhcMZbzjUrK6BmScIgr0zkT0nQ2ltbf3ll1/Y l2v8CyXt7OwkVwZ8+fIlfoDJpRoVFRV37dpVV1c3YcIEPDSS/GHBw8ODF1gZTvUOFBsbm5WVdfbs 2StXrrC/Ik1FReX169eD9rSamZmdOHGiqqqqvb2d/VnooCeMoKBgSEjI48ePd+3atXDhQu6LJXNJ 9IsqKQDfCHwJ6uvru3v3Lt6C/6f4+fldvnzZ3t4+Ly+PXPOOxWJxj83Hx6exsfHx48dnz56VkZG5 fPkyxzqzCCHy4Qr5RAc/+6msrMRb8OB3QUFB9oUOEEJv375dsGDBw4cPQ0NDCwsLt27dOpxccYkc l/3hw4dkA+mDZceZ53gWNZy0OG5SXCYmD4QHYuOHHG1tbS9fvuQIgLssOaIdqnQD639gEXp6empq ahBCT548Yd/OnhxHEYZz6AEA4JOjUqknT55saGh4/vw5jUbj5+cfPXo0912YTCbHq5NHjx4tJiZ2 +vTphQsXDgxfW1uLP7S3t3d2duIH5GZmZnp6eqdPnz5y5Mj8+fPJZ9scd1gqlVr+pydPnjQ2NrKP 1MNX9RkzZqxYsaKqqqq6unrDhg2D3tQGxhwdHU3GXFtbSw54/6j7y6dlampaVlZGPti7f/8++6qR g3Jzc8vNzX3z5s2SJUvmzJkz6Gu1AQDgy/Gt9yH+8ccfR44cWbFixXAC+/r6njp1qri4mMFgZGRk PH78mBx4PxAfH9/ixYvXrl1bX1/f29tbU1OD38GCELp58+abN284hsS3trYKCwsrKCiwWKzU1NTh dPMpKCjw8vLiRu/AQRnsNDU16XR6dnY2i8W6cuUKXpeQu6SkJBcXl+E8x+NSUhaLFRMT09/fX1pa ev78ebxSlYuLS1tb27Fjx+h0+qNHj1JTU/HrC968eXPjxo3+/n4BAYERI0awLzqGu1zZfxBwSXRQ ra2tsrKyEhIS79+/Z59/Z21tLScnt2rVqqampvfv35eUlOCVnh89elRZWclisSQlJalUKpmZoU6Y nJwc/PhxxIgR/Pz83A/HUIl+USUF4Nthb2+PF6lwcnLy8fFZtGgRnsZFtgE6OjrwHLHh0NfXX7Jk SXp6+p07d/AwNPz4hJ2KigruhFq6dGloaGhtbe2SJUtERUVra2ttbW19fX0jIyMRQgEBARwTmcks MRiMxsbGgWtNDIpL5H5+fhISEk1NTebm5kuXLp01axaedcul7Lhjrqamxt/ff+By9cMsyMfCb0E5 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 d3eXk5PT19dnH6fPPpd59OjRkZGRU6ZMMTU1NTU1vXr1Kt7e19e3atUqZWVlNTW16OhoU1NT9ili 7JKTkzU0NGRlZf38/Mh+vdra2tmzZ6uoqKipqQUHB//xxx94e0BAgJaWFoVCMTAwwFVHln3Xrl0T JkywtLR0dXV98eIFQigiIqK0tHT9+vW6urqzZs3CuV2zZo2jo6ORkdHZs2dfv37t5uamrKwsIyMz btw4stOWxWIlJSWZmppKS0traWklJSVx5PnSpUuqqqoD74/Nzc3e3t5UKpVKpS5evLi1tRW3Pc3M zMgw9fX1goKCz58/H6qYuDh79+61srLS1dXF041v3rw5cuRISUlJ9iP7xx9/hIWF0Wg0BQWFqVOn kvOd9+/fb2xsTKFQNDU1w8PDyaE5Qx1QfLu/cOECPtsbGhpCQ0OH034HAEAfIkIIzZ07F9+WjIyM goODAwIC6HS6vb19fHw8nU739PTs6emJjY11cnJiMpkDAyOEKioq1NTUgoKCwsPDCYI4fvx4SEjI MFP/4Ycf+vr65syZQzaiOAZ3sGtoaMjIyJgxYwZC6MyZM3FxcYKCgsHBwQICAgih7777Ljg42NXV dah94+LijIyM2tvbt2zZYmNjQxCEnJxccXExvmHT6XQHB4e9e/eKi4uHh4czmcyIiIjQ0FC8+/nz 5wsKCuCEBgCAr87169dlZGSoVCrH9srKypaWFrLtRMI/qdlvRjU1NZ2dnfgrf3//LVu2cFkrY6jk +vr6Hj9+bGBg8FGZX7JkyZMnT+7fv9/f33/27Nmenp5Jkybh9qepqSk/Pz8OZmFhgSclcck8Qigz M3PatGkIIR8fn2XLljU3N7969WrHjh1keCMjo/v378M5AwD4Sh04cMDS0tLd3b2iosLDwwNfGFet WhUcHNzU1LRy5UpdXd2kpCRHR0c8UODhw4c2Njbh4eH+/v6vX7+Oioo6fPgwe4Td3d1Tp069dOnS 5MmT8/LyKBTKUEmzWKyqqircN2diYoIQ4uXlxY+4li9fvm7dujNnzrS1tenp6SGE1NXV+fn5+/r6 XF1df/jhh0uXLvHw8JAdhezu37/P5cZx48aNoqKi8vJyLS0tcrFdX1/f+/fvFxQUtLW1nT17VkFB YZi1t2DBAhERkdra2qtXr3JZHjcrK+vIkSOlpaVr1qzx9vbG953o6OirV6/evXv32bNnHR0dVVVV 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 d3fn8XgmJiYbN260tLSktUQZGZmamhqmGy/trSYtLf2uibB3714XFxdlZWVmytq1ay9dunTy5Mmi oqKsrCx/f38fHx9vb+/ExMTg4GBaqe7K6tWrXVxcvv76a21t7YqKimHDhtE2gzIyMrQPIHO09FAf PXrk5OQ0d+7cmpqasrIybW3tL7/8kp7Ub7/9Zm9vT/tub9q0icfjTZo0SV1dfd68eUzXPJpQ8vLy uJgBoNdVZz6xOgLLQebn59vb28vKytLHJV2ef3jfhw8fvnnzxsLCwtLSkn1rpaWl9ANidNgNBQWF vn374nIFAGD0jhgifStFh8wghGhqahJCGhsb6TccmfbkdHq7haurq7/55pu7d+8GBATQphl0+luH NwoNDf3rr7+ysrKCg4Obm5u3b99Ohx2ZP38+IeTIkSNHjx4lhDBtK+bMmVNWVpabmxsTE6OoqHju 3Lnk5OSuDl5YWDguLi75b6dPn+YfS57D4RBCaOsP+rs7B/zWteiup02blsxn2bJlnW6B+bPjFvLy 8ujp5ObmEkJERUVVVFSYZZixtOjyzs7Ob9688fX1LS8vHzZsGFNCAgD45ImIiBgbG7fre9vNTruE ENpIhH/1duuGh4fPmTOn00EP6d7b2to61jAHDhz46tWrJ0+edLUWXcXU1LS5uZmJ6N26dUtZWVld Xf2dUuDp06eJiYne3t4dZzU2Ni5YsCA8PFxQUPDOnTujRo2SkJAwNzenfZO7IiYmtnnz5oKCgtLS 0tWrV+fm5o4aNYqe1J07d5iTvXXrFk29u3fvtrW1LVq0SFxcXFFR0c/PLzs7m9Zp4+PjnZ2d6fIK CgpBQUH5+flXr169devW5s2b6fQ//vgDFUgA6L3VmU+pjsBykN7e3ufOnbO1tU1JSWFetvEf3tix Y7W1tVNSUmbMmEGfFF1tjcvl0sSnzTtev35dVlaGqxcA4P/XR3rFUdLi+5kzZ/z9/ffu3Wtra0vf btnZ2fn6+tLBjMzMzL744ouOCzM1ipaWlrKyshMnTnRnj7du3TI1NV26dOn//vc/2qtLQkJCSkqK EGJiYvLFF19UVlbeuHFDQ0PDzs6OrmJsbOzl5XXixIkbN27QFoiqqqqdHryJiUlzc/OGDRuuXbt2 7ty5X375ZdmyZe/RuONdLVq0iNaa4uPjb9y4ERsb6+fnR8dt7CY6LH1RUdHIkSM9PT1pjzBfX18x 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 FTorIiKiq7yO3pUKCgomJiaTJ0+m7+cNDQ27ym3akZKS8vT03L59u5ubW2lp6apVq5gm1bTsmJOT IygoePjwYQUFhWHDho0bNy48PDwwMJC/rObm5jZ9+vSTJ0+KiIhcv369sbFRSUmprq7u/v37AwYM oIXaHTt2zJ49u6mpSVdX9/nz5wcOHFi9ejXdgoaGxu+//y4hIUEIOXv2bEJCwqFDh9atW5eYmNjQ 0GBmZmZiYtLNBGdJqPd4KNC0FRER6du3r6Gh4XfffUe7NQF8AtjvfZZyTlclgSVLltD21GvXrqVd Ilhqm+fOnQsICEhNTf3iiy/4hxirra2NiIgghGzcuNHR0bGpqalfv345OTmpqalMdXfWrFl79uwJ Dw+nTRSzs7NNTU2HDh2ak5OTlZVlZ2f31hJOu0KXhYXFtWvXjh07Nm/ePNoWptMmKkePHm1oaBAX F3d2dq6qqrpy5Up0dHRQUBB7tkA7jGtpaWVkZAgJCQ0aNCggICAsLCwwMDA8PLy6ulpFRSU7O1tW VpbWqwkhtra2X3/9NSHk9evXbm5uhoaGxcXFBQUFLMXIt+6LWSY0NHTixIkDBw708PDgL9oho4Oe zNraeujQodHR0bSB8KJFi2hDwrdWav5hGYkfS4lIRkamm7kTXUxERCQuLk5WVnbIkCEODg7x8fEV FRXduX+3bds2f/58+jspKUlMTKy1tbWhoaG+vn7//v1nz5718vLqdOE5c+Zs2bIlKirK3t6e5nLT p08XFhbuGCc9dOgQLYva2NioqqrSAtuaNWtYUqa2trarkt7w4cNp65+UlBRzc3Mml+uqSDZv3ryO jxL+YcRY9sWUKjvWwQcOHFhXVycgIKCurm5mZjZnzhx0i+510A4R3gcdD9HZ2dnHx+fo0aO0jk3f Ody/f5/L5XK53E2bNhFCaHvm6upqHx8fVVVVcXFxeXl52jPu+fPnzAarqqpKS0vV1dWnTp3a6R6Z bIu2DOdXUlJCCKEfeCGEMFVQ/ncgAwcOJITQQiHN8ljOTlVVlSWASAgZMGAADWXSujQ9gI75fvfT k26BGUuY/uA/fi6Xq6KiwpwCPX4vLy8bG5tr165Nnz592LBhXC4XQ/AAsDhz5oyZmZmkpKSsrCz9 kl1lZSV/g5qxY8e2uyuZeBn/UN8sed3atWsNDAx+/fXXiRMnGhsbGxkZvWsTkgULFnA4nKSkJFFR 0blz5/LPovttbW3t378/l8ulNfDm5mb+T+MNGzaM/N0/0dTUVFRUlD/fKy0tpVkTPR0RERHa544/ t7GysqIBRJoghoaGZWVlSUlJtEHQ7Nmzu38uH/ahYGlp6ePjU1lZ6e3tPWrUKBUVlXYtAgB6NZZ7 n6Wc889LAl999ZWxsXFycnJra+vixYv5ZzE5hqenJ5fL1dLSqqurY+7ijnmOiIgIHaFMTk6OKau8 tYTTrtBFq9lRUVH37t3Lz89XU1P76quvOh427dPn6OgoJSU1adIkISGhuro65iUQe3GLx+MJCQkx B/P69evy8nJ6SKampkyeSaOx+fn59vb2srKyUlJShoaGdBZ/ZvUe++q0dErDK8jooFdYvHjxmzdv UlNTBw0aZGNj081KzT8vI713iajT3IlSUFCg9yDNYOkpdOf+ZQqNbW1tW7du1dPTExcXl5OTo703 2uUS/CVMX19fISGhM2fOlJWV0aG6Ou3hkZSUVFpaSgiZOnWqkJAQbZz+66+/thvvqx2Wkh5NNBER ERpAZHK5txbJ3mNfLHVwISGh4OBgeXn5FStWfPXVV3379rW3t29oaMBthRgifOLoeIgxMTGhoaFT pkyh2Sttx05LoozDhw8TQjZu3HjkyBElJaW4uLgLFy7Qjr380UANDQ1HR8enT5+OHTuWP3dm0Hyz sLBw06ZNzIr37t0rLS2l+21sbCwsLKT1VTqXv109PcJ2bRjpC5+OGTFtqcTijz/+4P9BdyQlJUUn 0hHW2g0w3NW++A+V6cdHf3Q8/nanoKSkdPbs2RcvXmRkZHh6elZXV2/YsAEXJ0Cnqqurv/nmm7t3 7wYEBKSnpzNfD+TPiPjvfTrWKnNX8t/RLHnd8OHDc3Nzi4uLU1JSLCwsCgsLaRM89hyAX58+faZM mUIImT59On1z0G6/wsLCcXFxzH5Pnz5Nc1T+rIZmFB0bJqupqdEF6Hk1NTXRWAB/bsOfCAICAvRr 8r/88ktycrKoqGhXr3lYcrYP+FAIDQ3966+/srKygoODm5ubt2/fzoxoCdDbvfXe77Sc01VJgGnS 8tZsR0BAYNGiRYQQAwMDJycn/llcLpduZ+PGjcwtnJiYyL8YzWfa5Tn89/JbSzjtCl2TJk1SU1PL ycmhY5Z5eHgwRSDGrVu3aGuamJgYDofTp08f+jbord2Z6X7z8vJostCDERUVVVFRoXn+3bt3meAC baHj7e197tw5W1vblJQUZjAveoLdKdp1uq//Xw0TFOxYOkVGBz3fpEmTtLS0aDCx+5Waf15GeqcS 0VtzJ+rFixfPnj0jhDAjdGlqanbn/mU+TJyUlBQYGFheXr5v377z58/TSmu7HfF/xVhTU9PZ2fnN mze+vr7l5eXDhg1j3gzxY0Y/HDhwIIfDoWlVUlJCB5bpCktJj+ZyTU1NN2/e5M/lWIpk7I+S7pQq O62Dz5kzp6ysLDc3NyYmRlFR8dy5c/xf+oaeD32Z4YPx8vLas2fP/fv3w8PD6XgTN2/eNDAwsLe3 p2U7AQGBurq6Gzdu0EJwuxDbiRMnnJ2dz58/b2dnl5aWpqyszL/A7Nmzk5KSEhIS1qxZExUVpaur ++zZs7y8vMuXL9va2vbv3/+PP/6ws7OztbWlnRPNzMzo4BosaE5aWFjo4+MjKyu7bdu2bp5pbm6u jY2Nuro6bZhDGzTp6urKy8u/fPnSy8uLx+Pt27ev477OnDkjKirar1+/dkMiLly48Jtvvjly5Ehd XV1zczMdNKTdSG0dhYSE/Pbbb0OGDFFUVKRZtqqqKq5DACo9Pd3a2pr+lpaWpqNcEUJaWlrKyspO nDjBvrqnp2dGRsbx48drampqa2uZ8hZ7Xufh4dHU1MTj8cTFxekrXHpXvlNus2XLlhkzZnRsDW1r a2tiYnLv3r0NGzY4OTnV19fn5uYWFBTcu3evm2kiIyMze/bsiIiIxYsXX758+d69e8+fP5eVlWUZ 4nDGjBk//vjj+fPnCSFTp05tN256O+7u7kw4wN/f/8M+FEpKSmbNmkXzXprjSUhIMC9vAD4BLPd+ V+WcrkoCGhoaQkJCLS0t3377rb6+/sKFC7W1tbva7/Tp07W0tDQ1NdtV86SlpefMmRMeHh4aGko/ svTo0aPk5OSrV692/6TetYTD4XC8vLzWr1+flJREumieQ4tYMjIyTAOoly9fXrp06ebNm/fu3WMZ b8HLyyssLKyoqGjkyJFGRkbR0dGEEF9fXzExMW9v77179z5//tzMzMzW1raiooLL5e7atYtpq15V VUX79HWzGMmyL5bkunXrFjI66PmEhIQSEhKePn06cuTI7t/yH6SM9KFKRIy2tjYbG5sRI0bQlwTO zs5KSkrvdP8yuURTU9P9+/eZb8iwmDdvXlxcHM3lOu3h8ezZMxpWow3M6cRr166Vl5dHRUV12jr7 rSU9DQ2NQYMG3b59297efsKECa2trQ8ePLh8+TJLkazjo+QfliopY2Nja2trHR2dxsZG2gIRddje Be0Q4YPR09O7du2aq6vrzZs3AwMDjx8/LiUl5ezsTAhZvny5k5PT06dPly9f/urVKzMzs46ri4mJ xcXFWVhY5Obm2tnZvXjxol19MiYmZs+ePVZWVi9fvrxy5cqbN2++/fZbPT09DoeTnp6+YMECQUHB o0ePcjgcf3//5OTkji+u23FwcHB3d5eSktq/f/+uXbu6f6aurq4mJiapqamqqqorV66k/W7ExcX3 79+vp6eXlZV1//59/pFBCCF+fn7W1tY1NTW7d++mo4DzmzZt2unTp62srC5cuHD58uURI0YkJiaO Hz+e/TB4PF5jY+OBAwfWrl2bm5s7ceLEPXv24DoEoCorK2/8LSsrS0FBYd++fVpaWrt37w4JCZk4 cSL76u7u7j///LOWltbFixfpl+bI3+9jWfI6MzOzvLy8X375ZcOGDc3NzQsWLKAjfL9TbkO/Y9iu IRKtWqenpy9evLiqqmrz5s379u0rLy/v/hdOqJCQkO3bt2tpaUVHR5eWlk6aNOnKlSu0NUGnpKWl p0+fTn+/9cN5d+7cYdK8rKzswz4U6NA5sbHawOWTAAADIUlEQVSx69ati4+Pt7Kyio+PFxERwaUO nwz2e7/Tck5XJQE5ObnNmzerqaklJyfv2rXr6dOnLPsVFRW1tbVlOuryCw4O3rVrl5KS0u7du4OC grKysiZPntzu283s3qOE4+PjQxsNWVhYGBkZtZvb0NBAXwItWLAg5m/Jycnq6urkbU0R9fT0rl69 SocyjImJ0dfXDw4O3rp1KyFER0fnxo0b7u7ura2thw4dys7O5vF4hJC9e/eamZmlpaWtWbOGjpPb zWIky75YKCoqIqODXoHH49na2nbs8cByy3+QMtIHLBFRmpqaAQEBNPA3depUOgjsO92/48aNW7Ro kaSk5IoVK5KTk2k5h52NjQ1teygmJubq6tpxgYMHD7a0tEhLS9PBZKhVq1YRQhISEtg7GndV0hMW Fk5LS/v++++5XG50dHRycjLN9lmKZG99lLxrqZIyNze/ePHili1bdu3apaWlFRISYmVlhXuqFxFg xhP9qHx8fCZMmIDkBgCAXqG1tfXVq1d0ZO62tjZzc/Pbt29/++237/S+4dNw4cIFOzs7TU3NBw8e dPxmFADABzdmzJhLly7t2bOHdvUAAPjgoqKifH19tbS0+Md4/df89NNP69evd3NzO3jwIP4X8K+J j4+fsnbbP9wI+jIDAAC019TUZGBgMHnyZC6Xe+HChdu3b0tKStLBAT8fL168OHLkCB20wd/fHwFE APjYEhISrl27dvXqVTU1NdoAHADgU3L79u3U1NSoqCgBAYGOA0oC9HyIIQIAAHR4OgoLDx48OCYm pqamhn4deNWqVbRr2+fj2bNnS5culZaW9vb2XrBgAa4KAPjY9u/fn5CQYGRktGfPHnFxcSQIAHxi MjIyVq5cqaamFhoaOnjwYCQI9DroywwAAAAAAAAAAPDJ+iB9mdEvCQAAAAAAAAAAANgghggAAAAA AAAAAABsEEMEAAAAAAAAAAAANoghAgAAAAAAAAAAABvEEAEAAAAAAAAAAIANYogAAAAAAAAAAADA RrhXH316ejr+hQDw37K1tUVWBgDIzZCbAQCyMgCAHpKVfST/D6JjT3nojaLjAAAAAElFTkSuQmCC --=-=-= Content-Type: image/png Content-Disposition: attachment; filename=em-heaptrack3.png Content-Transfer-Encoding: base64 iVBORw0KGgoAAAANSUhEUgAABssAAATWCAIAAADsKw9xAAABhGlDQ1BJQ0MgcHJvZmlsZQAAKJF9 kTtIw0Acxr+mSkUrDgZ84JChOlkQLeKoVShChVArtOpgHn1Bk4YkxcVRcC04+FisOrg46+rgKgiC DxAnRydFFynxf0mhRYwHx/347r6Pu+8Arl5WNKtjAtB020wl4kImuyqEXtGDAfCIYUhSLGNOFJPw HV/3CLD1Lsqy/M/9OXrVnKUAAYF4VjFMm3iDeHrTNhjvE/NKUVKJz4nHTbog8SPTZY/fGBdc5lgm b6ZT88Q8sVBoY7mNlaKpEceII6qmUz6X8VhlvMVYK1eV5j3ZC8M5fWWZ6TRHkMAiliBCgIwqSijD RpRWnRQLKdqP+/iHXb9ILplcJSjkWEAFGiTXD/YHv7u18lOTXlI4DnS+OM7HKBDaBRo1x/k+dpzG CRB8Bq70lr9SB2Y+Sa+1tMgR0LcNXFy3NHkPuNwBBp8MyZRcKUiTy+eB9zP6pizQfwt0r3m9Nfdx +gCkqavkDXBwCIwVKHvd591d7b39e6bZ3w+xsHLA9yuUEgAAAAlwSFlzAAAPsAAAD4gB/uEgRgAA AAd0SU1FB+QLFxQ5EYQEC+cAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAg AElEQVR42uzdd1gUV/s38NkOLLBLr9IRqSoIGkVREUiwodi7xpjEluhj1BS7icb4RI0lUYmJGqOi RhA1lmBBwS6IgGIDRJDOLtvrvH/M9eyPl7Iisgb1+/nDa3ecPXPmnnNmz96cmaFFRUURAO2Sra1t YWFh/SVisTgrK6vlJZAkqdFoGAwGSZI0Go1Go2k0GrFYbGZmRqfTDVRtjUajVqvZbDaNRnt3DlZ0 dLShN1FRUSEUCnv16tWKz6anpzs5OdVf4ubm9seXc9HLAAAAAAAAAF4dEyGAtxhJkiqViiAIoVBo amrKZDIrKirEYjGXyzVchlEqlUqlUmtrawaD8faFtOz5c4VC4erm9hbsC230HPQRAAAAAAAAgFeH DCO8nUiSVCgULBbLyMiImr3IYDBkMplKpXJwcGhF7k8mk9XW1vL5fDabzWQydVvRarU0Go1Op2s0 mmfPnllaWtbU1BQWFgYHB5uZmb36XrS3iZC3bt+sqaqY6Pbh29RaxkRG6F4fSL2I7gMAAAAAAADw UpBhhLeTSqWqrKw0Nzc3MTFhsVgWFhZarVYqlQqFQgaDwWKxGAyGLlHYEmw2WyaT1dTUMBgMFxcX LperVqtFIpFCoTAxMaHT6QKBQCKRMBiMnJycnJycbt261f84SZIkSb7UxEmFQlFWVsZms62srEiS 5HA41H6xWKx/K6o1NTVHDuwO6hL8lrUWZBUBAAAAAAAAXgUyjPDGa3KiX1FRUUpKikwm8/Ly6ty5 s7u7O0mS+fn5GRkZtra2o0aNYrPZWq225Sk/BoNhZmZWVlZWUFBQXFzs7e3N5/OFQqFYLObz+TU1 NXV1dUZGRtXV1SkpKY6OjiYmJtQHNRqNVqvVaDQvmxlUqVTFxcWVlZWenp7Ozs5sNlutVhcVFTk5 ORkbG79i0NRq9UslWAmCUCgUy7/5Qigol0slaHUAAAAAAAAAoIMMI7zBtFptTU2NXC5nMBgKhcLG xkYikeTk5FRWVj579kwoFCoUinv37uXn57PZbCcnp9raWplM9uzZs7t37/bo0eNlL0Dm8/nm5uY0 Gq2srEytVru4uHA4HA6Hw2Qyy8vLi4qKXFxccnNzc3JyvL295XI5jUarra2lcotGRkbUJETq4TNa rZbNZje5FZIkJRKJSqW6fv16p06dqE0IhUKCIG7fvv3w4UNHR8fBgwe/yn0kSZJct3b18BFjOnXq 1MKPVFZWrl+3urT4EaklOWz1W9aQcJU0AAAAAAAAwKtAhhHeYDKZrLKyks1md+jQoa6ujsViVVdX 5+XlyeXyoqIihULB4XDodLpMJhOLxXK53NXV1cHBoaqqSi6Xt3wCI5UQZDAYbDbb1dWVzWYXFhaa m5ur1ery8nI6nW5kZFRbW1teXu7k5FRdXW1hYeHi4lJWVmZmZlZVVcVgMKytrY2MjEiSVCqVVJl6 Nv3w4UMWi1VSUnL79m2NRuPl5VVYWOjs7CyVSnNycqqrq3Nzc93d3T09PblcLvURtVpNkmTL50hq tdqnRQUL533807ZfO7i46+5KqdVqqeQmi8XSPQxHpVI+f16yaP6sqopSc565SqWSKd62J9ggqwgA AAAAAADwKpBhhDcbjUZTq9VKpVIsFtfV1RUUFLBYLLVazefz7927Z2RkZGpqSiUB2Ww2g8Gg0+m2 trZ0Or26utrKyop6CIz+TVB5N6VSWVlZKZfLzczM7OzslEqlUCisrKysrKwsKSmprKxUKBSxsbHD hw8fMGAAlYiksnXW1taWlpZqtbq2tpZGo3G5XCaT2dyjZjQaDZW15HK51dXV9+7d43K5FhYWXC73 woULxcXFLBbr2bNnDx48uHLlysSJE01MTGQy2ZkzZ/z9/T09PVs4K5MkSbVKXVNV/uWCT+KGjXp/ UDzX1JwkiSsZGY5OTnw+//nz58+flwQFBjwvLfo75ei1q+m1AoFCqRYKRQwGjaCh3QEAAAAAAADA /0GGEd5UJElSz2zJzc318PDgcDhZWVkPHjyoqakRiUTUpEU2m02j0Tgcjo2NDYfDEYlESqXS1NSU ykWamJiYmJi88HnNLBbL1NS0oqKiqKjoxo0bDx8+DAoKCggIePToUXV1tUAgKC8vLygo8PPzMzEx oRKCSqWyuLjYysrK1taWy+XW1dXR6XS5XK4/vUilMqlLrWtqah49elRZWRkeHi6VSjMzM01NTe3s 7EiS9Pf3Lyws9PPzY7FYFRUV+fn5mZmZgYGBLQ+dVqvlcGgWFuZWFmbpF09cSz8VOSDW2z8kOCSE emqNhYWFjY3NjasXkw7+QpIk15iuUnJoBCGRyphMhkqFq6QBAAAAAAAA4P8gwwhvKip1aGdnl5qa qlAojIyMNBqNUCjUarVGRkZ1dXUajcbCwsLIyEggEHC5XBMTE61Wq1KpqqqqysvLJRIJjUbz9/dn s9l0Ol3/FdNMJtPOzq5Tp065ublSqbSoqKh79+7UFuVyOYvFou6rqFartVptdXV1cXExn8/n8XgF BQVnzpyh0WgdOnTw9vb29vbmcrlNZhg1Go1IJKqqqsrPz1er1VevXi0rK/P09Lx8+bK/v39GRoaZ mVlYWNiTJ0+0Wi2NRrO2tq6oqDh16pREIikrKysuLvbw8Ghh6LRaLd/cdNTiVb7+gWJx3bWLfwlq S4y5MSwWi4pDrUDAYbO9fIJCQwKrqysEAgmHw6qoFCqVKoVSrVSRb1lbQlYRAAAAAAAA4FUgwwhv MBqNZmpq2qNHj8rKSmdnZ+pqYoFAwGAwOByOs7Ozk5MTk8k0MTERiURMJpPH45EkWV5ertFoZDLZ 06dPzczMnJ2dqZRfcw9opp7NolarraysIiIiWCxWz549AwICnJ2db968+ejRo+fPn5ubm3ft2rWo qCg3N1ej0SgUCupWiaWlpbdv3+7QoYOrq6uHh4ednV1zT3C+ffs2k8msq6s7ceLE+++/X1dXFxoa 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 LFmyZOzYse2kYr179/7ll18Igvjnn38cHBxwpAAAAAAAAADgXYAMIxgQ2WKJiYm9e/c2Nzfn8Xih oaFbt25VKpV61n+pwl/o448//vbbb9ukVlTFXnb3XxaaVlsZMmTI7t273459iY6OPnjwII7pCx0/ frxXr16vc4tr1679+OOPX0OTU6vV9vb2jx49wlFuJ3Do350zMAAAAAAYNsO4c+fO8PBwV1dXX1/f oUOHXrhw4d2MsoeHh729vb29vYuLS9++fZOTk/Wvr1Ao7O3tCwoKmnzbtubPnz9lypT6S2bNmqX7 RfR6rFy58qOPPho1alRWVlZJSclPP/104cKFp0+fGmJbKpWqwRKSJFNSUoYOHfov1soQ0tLS7Jsy bNiwVpe5bds2qhBnZ+fAwMCxY8ceO3bsjYjGnTt3GsTh2rVrr78aFRUVixcvDg0N7dChQ1BQ0MiR I48ePfrGpYyPHTs2ZMgQT09PLy+v6Ojo3377rXG3emcpFAofH59u3bq9ngfsNvh2YDAY3333nY2N TXsLy9q1a5s8Ha1fvx6H/u0+9JTz588PGjTIy8vLy8urf//+27dvp5Z//PHHPXr0wHkDAAAA4O1g wAzj4cOH169fv2rVqvz8/EuXLs2ePZvFYrWrnX+dv4p37Njx7Nmze/fuTZ06debMmZhjolNYWLh6 9eqtW7fOnj3b3d2dy+X26NEjMTHRw8ODIIgZM2a4ubnxeDxfX9/ff/9df1ESiWT+/PkeHh42NjaD Bg0qLCykloeFhS1cuDAyMtLf3//IkSMNPnX16lUzMzN/f/+W12rbtm0BAQE8Hs/V1XXBggVKpbIV tWpueVsJDw8v+h8bG5v169dTrxMTE1+lWB8fn2fPnj158uTUqVMxMTH/+c9/vv766zelsWVmZupi EhYW9pq3/vz585iYmMePH2/dujUnJ+fixYszZszYv39/4/bTnhN269evnz9//tChQ8+fP5+dnb1m zZr09PSSkhKcyijJyckajaasrOxf+YsajUabNm0aj8drb2FZsGAB1e/OnTtHEER6ejr19vPPP2/P 3/4v1RNx6JtTVFQ0adKkoUOH3rp1Kysra926dVZWVtR/DRw40MfHB+cNAAAAgLeDATOMt2/f7tat W79+/YyMjKytraOioqgL04qLi+3t7RUKBbVaUlJSREQE9To6OvrHH3+Mj493dXXt16/f/fv3Dx8+ HBoa6u3tvXDhQmpegEQisbe3P3jwIDU7csKECUKhcOXKlZ06dQoMDPzjjz+oojIyMmJjY318fHx9 fadNm/b8+XNq+YoVK6ZNm/bpp5/27dt32bJlwcHBKSkpujp//vnnc+fONUig6XQmk8nlcidPnsxk Mu/du0ctz83NHT58uI+PT1hY2H//+1+1Wk0QxIgRI6h/e/TosXnz5gZvCYKorq6eNWtWYGBgYGDg nDlzamtrWx6ZlqMK3LJly5AhQ6KiosaNG6cLYxs6e/Ysg8EYM2ZM499LBEGEhYXduHGjtrZ28+bN s2fPvnnzpp6ipk2bdv/+/YyMjJKSkuDg4Li4OI1GQ/3XkSNH9uzZk5ub23hDSUlJjScw6q+VnZ1d UlKSQCA4c+bMiRMntmzZ0opa6altWzU5zv8QBMFisajXp06d6tevHzWR5Pjx47p+MWXKlE8++SQ2 NrZv3776k7lMJpPNZjs5OU2ZMuX777/ftWvXgwcPCIJQq9Xr168PDQ318fGJj4/Py8sjCEIoFDo6 OlIZqCtXrtjb21NNUaPR+Pj43Lx5k2pmv/76a2xsbK9eveLj40tLSw10UuLUQx3K+v7zn/8EBwd7 enr26tXrwIEDupbQrVu3hISEoKAgLy+vVatW1dTUTJkyxd3dvXfv3rdv36ZWI59HUUkAACAASURB VEly9+7dffr08fb2joqKunz5cuOtr1u3ztTU9M8//wwLC+PxeBYWFlFRUYmJidQBojb0ww8/REZG Ug2yyfro75VlZWVjx451c3Pr3bv3lStX2jyAxcXFGzZsWLt27Ycffuji4mJiYhISEpKQkODq6trc 2UzP8f3tt9/CwsI6duwYEBCwZMmSV/92oEqYNm1aQEBA586dFy9eLJVKqeWZmZnR0dFeXl6DBw9+ 8uSJ4b749u7dO3z48KioqD179rxw5ZSUlMadkUrADR482MfHx8/Pb/78+XraZ4Nvh/qXyjbZH6nO Pn369Llz50ZGRnbv3j0hIYFaXlJSMm7cOF9fXx8fn4iICN2XVJtgMplUv2Oz2QRBsNls6vW+ffsa 95oVK1Z8+umn8+fP9/T07NKlS3Jy8t27d6Ojo93d3UeOHFlVVaW/IzT5/Ug1oZUrV8bHx4eHhx8/ frwlg4Tly5fPnDlz8eLFuh1JTEwMDQ1tct4xDn1z7t69y2QyP/roIx6PZ2pq2q1bN6ryRL2rpKdN m9b1fzw8PGJjY/WcV9PT06Oionx8fHx8fAYPHvx6Jo0CAAAAwL+ZYQwPD09LS1u/fv21a9fEYnEL P7V///5ly5bl5+d37tx58uTJaWlp//zzz9mzZ0+ePPn333/XzwodPnz41q1bpaWlH3zwgbOzc1ZW 1o8//vjll1+Wl5cTBMFgMFatWpWTk3P16lWCIBYuXKj77OnTpydPnnzhwoXvvvtu/Pjx+/bto5aL xeJjx46NHz/eoBE/e/asRqMJCAigki8jR44MDw+/e/fuvn37Dh48uG3bNoIgDh8+TP179erVOXPm NHhLEMQnn3wiEokuX7586dKl6urqTz/9tOWReVnXrl07cuTI2bNng4ODp02b1uYBqaystLe3ZzAY Tf7v9OnTbWxs6HT6gAED3n///fPnzzdXTllZ2eHDh6nLeNls9vLly58+fXrnzh1dms/JyanJDx47 dqxxhlF/reLj4728vGg0mo+Pz6xZs1JTU1+2VvprazhXr16dNWvWkiVL7t+//9VXX3366ac3btyg /uvMmTMffvjhyZMnDxw4sGHDBmqq0QsNHTqUyWRSP/x++umnw4cP79+//+7du++9996oUaPq6up4 PF5gYGBaWhpBEGlpaR4eHhcvXiQI4s6dO1qttkuXLrpmlpycnJ6e7ubmtnr16n/lbNi1a9ezZ88+ fPjwu+++W7x4se5wlJWVlZSUXLlyJSkp6ddffx0zZsyMGTPu379PTeGk1tm9e/fWrVu3bduWn5+/ cOHCKVOmPHv2rEH5586dGz58uJ6p3M+ePWOz2ampqSdPntRTHz29cvfu3QsWLMjPzx8+fPjMmTPb /PrrCxcu0On0xhfa02i05s5mzR3foqKipUuX/vHHHw8ePLh+/frw4cNf/dtBJpMNHz7cy8vrxo0b Fy9eLCoqWrlyJXWmHTt27IgRI/Lz89esWbNr1y4DNaH8/PwbN26MHTt27NixZ8+eLSsra0VnvHv3 7tixYydNmnT37t1bt27pcjFNtofG3w46TfZHXWefOnVqamrqwYMHV69eTaWl1q5da2trm52dff/+ /V27dulmmRmOnl5z8uTJvn375uXlffHFF/Pnz1+zZs327duzs7M1Gs2GDRv0dwQ9348pKSlbtmy5 fPnysGHDWjJI+PbbbydNmnT06FG5XE791759+8aNG9f47xM49HoEBwfT6fS5c+eeO3euoqKiyXV2 7dqVmZmZmZl59OhRY2Nj6uYtzbWQOXPmTJ06NT8/Pzc3d8mSJY0PBwAAAAC8bRnG2NjYvXv35ufn f/LJJ76+vhMmTCgqKnrhpyZMmBAUFGRkZDR69OiioqIVK1bweDw3N7e+fftmZWXpVps/f769vb21 tXVsbCybzZ42bZqRkVFUVJS1tTX15/ru3buHhISwWCwej/fFF1/Un1LUs2dP3X1/xo0bp7vELykp ydHRsXv37oaIxn/+85/AwMCOHTtOnTp1xYoV7u7u1M8YExOTefPmsdlsb2/v2bNn69KdepSUlFy6 dGnVqlU8Ho/P569aterChQu6aUEvjMzL+vTTT6mcyKxZs7KysqjZam3IxsamrKysuel7mzZtCg0N dXV19fDwOHv2bGVlZXPlULejio2N9fPz8/PzCwgI4HA4uqRqc+nFvLy8urq6xveB0l+rU6dORUZG enh4uLu7r1q1ippT81K10l9bwzlw4MDQoUP79+/PZDIHDBgwcODAP//8k/qv7t27h4aGEgRhb28/ cuTI/fv3t6RABoNha2tbU1NDFf7ZZ595eXmx2ez58+ezWKzTp08TBNGnTx9dhnHRokWXL1/WarVp aWk9e/ZkMplUObNmzaKaWUxMTGZmpoF2v2fPnr6+vtRtYZs8+VhZWdHp9IiIiMjISN1Jg8lkfv31 11wuNyAgIDg4uFu3bj179uRwOBMmTLh//z414W7nzp3/+c9/AgIC6HR6VFTUe++9V39eEqW6ulr3 hPHq6urA/6ESHARBcDicWbNmvbA+enrlxIkTQ0JCOBwONSdLf5qjFaqrq21tbZvMvOs/mzU+vtSh z87OFgqFJiYmXbt2ffVvB6q9ffXVV8bGxnw+/8svv6SyMKdPn7awsJgxYwaDwQgICJgwYYKBGtie PXt8fHy6du0aGRlpbW2t61wv1Rl3794dGxs7cuRINpttbGzcs2fPF7aH5spvsj9SXZIKuJubm7e3 N5WxYrPZZWVlDx8+JAjC09PT1tbW0KcjPb2mR48eQ4YM4XA4Y8eOlcvl48aNc3d3NzMzGzFiRP2R QOOOoP/7cdy4cbo+2MJBQo8ePWxsbKiKPXny5NatW43ntuPQ6+fo6HjmzBljY+MlS5Z07dp1wIAB ly5danJNgUAwfvz4qVOnjho1Sk8L4XA4jx49Ki0tZTKZYWFhyDACAAAAtBNMg5bet2/fvn37EgRR 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 GRkZNTU1s2fPFtU/fvz41q1bS0tLTU1N3d3d7927l5yc/OzZs3/++efq1auiaufOnbt582ZeXl5J ScmwYcPU1dULCgoOHz68cuXK8vJy5GNx165dxcXFOTk5AID2F1W8efOmr6/v8+fPr127FhISkpub CwB4/Pixv79/VFRUaWnpmDFj4uPje7J1LBbL1dV1xIgRDAbj0qVLJ0+e3LNnTzflbb/4nz5NSEhI Tk62sLDw8PD46lKePn2amJiYmZmpqakZHBzcucLChQvz8vIePnxYVFRkbGw8ZcoU/sfzC3qSp7m5 +bNnzyoqKvbs2bNixYp///0XANDY2Dh69Gg1NbWsrKySkpLw8HAUCnX69Olnz55lZmaWl5c/evTI pNOfQCEIgiAI+pX4jxl2KS2nlFnP5nCj7j231FKnKsp/UwuetkYP3rwrYzUAAGLup84fYdGhwvGH /95bt/D9/jVkOemp+/4CAEyzMSquYSXnv0cqHHuQNlxPQ4OkcHuNNwDg9pr5uRGrAscNZ3O4TluO 6ioT3+4JyNi64l1Fzer4m70b18VHL9WmbZYfH7L55N31Xs6i0a7OiiqYt9PyfMZaf5aVg8mDzHdl tQ0AgJibqfNdLTtmdTv9XoTv+/h1ZHnpqRtPAgCm2RsXV7KSX7X9dfnYrdThRpoaygq3dywEANze sTA3LjDQYwS7leu0KkpXnfj2ZFBGtN+7sprV0df7Y4cUCoXRz1IX2Fi0z3bdtdsDNu6w23fkeMq/ SAlfIHhUUCSFwZjuOqC4dvPQP6MeFhQiL91/W6hPIY4/epKwZpPBtr1Hnqb05e3lCwSPioqkMBjT AwcUN28eGhX1sLCw+7fcLyzUUVTc8fAhacsWzZ07/a5fZ3O5X++6OTlq27bJb9q0+d699Q4O3XTd Pquuru79+/dmZmbIj9ra2rKysi9fvuxQraGh4c6dO6JqvyeY1XfPCoJZQeAnjDCWlZX9888/Bw4c oNFoYmJi2trampqaxcXFSUlJO3fulJeXJxAIO3bsuHv3rujUvHnz5pmYmOBwuJkzZxYWFm7fvl1e Xl5TU9PJySktLU3U8tq1a5WVlYlE4oQJE7BY7KJFi3A4nKurK5FIRDqxra2tpaUlGo2Wl5cPCQm5 f/++6L0ODg7m5uYAAE1NTV1d3RcvXgAATpw4MXXq1GHDhomLi7u7u1tbW/dkA69fvy4lJRUUFITF Yul0ur+//7Fjx7opRyxfvhyNRgMA/Pz80tPTX79+3f1S/Pz8kPpjxoxpHwKioqLi4sWL+/btI5PJ GAwmJCSkuLhYtCf3JM958+YpKSmJi4s7OjqOHDkSyer69es8Hm/79u1ycnIoFMra2lpaWhqLxdbX 12dmZnI4HBKJpKenB/ciCIIgCPqFDdGhSYiL0f7YJjd//fnnL6PmTxL/xqEHWZzkRHODuAdpT/KK ODy+vb5mhwrBkxzIctI4DHrXjDFp7z68/lApLYnxsDWKvZ8GABAIhScepXcelwQAXP33NQAgbOpI PAatII3b7D7y9JOM3o3L1Uov9fCKxF0+C8dam+iodlPz6PXnhlrKFrrqn2WFl5w4dFDcrdQn2UUc Ls/eWKtjVjMcyQRpHBa9a9G4tLyS14wKaRzGw8E49lZqW1a30zuPSwIArj57BQAImzcaj0UryOA3 zx19+u6L/tgh7+YVlLDqZluafspkpP35eTPuLJ4318psxaVrBx8lAwAaWjkcPv/si6yjHm4lG4Mm DNYbH32ymFUHAKhuarqU9crLwqRs89o/3cb6X75xKavvnmLTwOFw+PyzWVlH3dxKgoIm6OmNP3my uK6um7dUNzW9qqzESEi8Cwi4NXduwtu3axMSvt51dXVTlyxJ9PZeaGnZ+bzIfqGhoQEAICsrKyqR k5Orr2875zovL49Go1GpVBUVlZqami1btvzOH+wwq++VFQSzgtr74SOMDAYDGVhsX1hSUiImJjZg wADkR01NTaQQ+VFZWRl5IiUlhcViFRQURD82NjaKGmlfTaXdb0FRtby8vOnTpxsYGGhra0+cOJHN Zjc1NSF12l+qFofDIXvChw8ftLQ+Hca1f96NkpKSAQMGiP7Kp6mpicx6/lI5gkKhIE/weLysrGyX E6XbE62waG3bKyoqAgCMHz/eyMjIyMjIxMQEg8EgJ3L2MM8DBw7Y2Nhoa2vr6uomJiZWVVUh/3ea mpoSEp9dmGbq1KmLFy8OCgpSUVGZPHnyV8dGIQiCIAjqv4RC4ajtsWRZ6dJD6xpiNwWOHT4i7Agy kfmbLLC3jH2QFn0vZf4I887nRmkQ2w5OCFI4WRwWaX+hg+W551mNLZzbWW+bObyJ5gadmy2qqq2q bzQI3I08Zhw6g0FJ1LFbejExSQxKWUHGkk71d7dzW3+8qq6py2pcHj8uIbXDCYxtWblaxd5Kjb6e PN/FsouslD9mJY2TxWORidILx1ife5DZ2My5nZbXzOFOHDKoi6zKa6tYjQbzdiGPGeGnMWiJuqaW ftcno54+dzMyIEp/mjzubjzYWFVZh6g018rMb8TQ46n/AgDwGLS4mNgcSzNTNRUcGh3gYCeNxSTm 5gMAZLBY6wHUaSaGkiiU00Dt8YP0rmT33RFGPBotLiY2x8zMVEUFh0YH2NlJYzCJ+fndvEUGi5UQ Fw8fNUoagxmopLTc1vZKD47YJVEoZRkZSzU1/6FD3f76q6qpqd/1DRkZGQBA++GMuro60WCHpqZm SkpKampqamqqubm5q6tra2vrb/vZDrP6XllBMCuovR8+wkij0YRCYUFBQftCNTU1oVD4/n3bzJfC wkKk8Psues6cOVpaWqmpqfn5+f/88w9ylNxNfVVVVdGoHACgoqKiJ0tRU1NjMBiilgsLC1VVVbsp R4gCqampqaura//Sf0ClUgEACQkJmR+9f/9+9OjRPXz7jRs3du3aFRsbm5+fn5ub6+TkhKw2jUYr LCwUXauxrceIiy9fvvzZs2f5+fkUCmXBggVwL4IgCIKgX1V9c2thZe0iZ2uijJQkGuXrZC0UCp/m Mb61HSttdWlJ7LnnL72GdTHbrqiaiTxhNjXXN7eqKcgBAIxpKnQV0rnnWccepM0caoJBSQAAOpw+ SVUkqCnK5ezwQx6vd/qXHw6Ww0v2heiEQtDcyi2t7no09tKTbHYL18O+i6vNWOlRpXGYcw+yvEaa d5FV+cesGpvr2a1qSnIAAGNtFTqVdO5B5rFbqTOdTNuyEv88KxJBjSifE7sKebw+FlB+fn37S0D2 Cx/q6q/n5C6wsfhSBQxKgi8QAAAwEhJ6FFKHEVokEyNV5Q4Dt+J9eEYwRkJCj0T6phU2UlYGAIj9 1w0UCoXNXG5pPzztSE5OjkqlIpd7AgC8e/euvr5+8ODByI8oFIpMJpPJZDqdvmrVqpycnN958ibM 6ntlBcGsoM9+Pf3oBSgrK48bN27ZsmXFxcVCoTA/P//du3fq6uojRowIDAxksVgsFisoKMjR0fG7 jzCyWCw9PT08Hs/j8f7888+v1p85c+aZM2eQUykzMjLu3r3bk6WMGTOmoaFh9+7dHA4nLy8vIiJi zpw53ZQjtm3bVlFRwWazAwMDzczM6HT6/xnypEmTFi9eXFxcjGz4pUuXOBxOz4OSl5dHzjPNysq6 c+eOaNPExMSCgoLq6+t5PN7z588bGxsfPXqUmZnJ5/OlpaWR2dNwL4IgCIKgX/bbAl5SX5V8JDGF 2dTM5fOPJqWwOVwjqjIAIL3wA3rWWmRwUCgUtnB5rVweAIDD47dweYJOf9b9+4/pScELyXLSnZey 5fK9yvrGZg43MP6GmYYqXYWIlC+wt9h788m1F6/nj2gba8OgJBSkcbll1ciP40z1Wrn80PN36ptb hUJhcU3dtRdvejGuLX8lvnlfWdfUkvWuzHfvBSpJXo9GBgCk55WgR64uqmCKakZdTfZ0NJHGdX2D kb9DZiXt9iUTpLtcRCWrsbmVGxh13WygKp1KasvK1WrvhUfXnr2a72L5KSsZfG5xVVtWNvqtXF5o XEI9u0UoFBZXsa4l9+ZMFL5A0MLjIfclb+HxWj7eKVEoFLbweK08HgCAw+e38D7rSzHJadpERTst DVFJUS3zn5evy+obatnNV7Jf70567G7c9m120RCrY8/TX5aWc/j8PfcfN3O5jgO1AQDe1uap70su ZObwBIIH+YVXc95MMjToy7vhIiurY+npL8vLOXz+nsePm7lcR23tbrJyGThQTVY25O7dZi63sLZ2 /7NnkwzaNpDL57fweHyBQCAUtvB4nI/Xbd+SlPSmqqqupSWrvNz3n3+o8vJ6JFJ//MhasGDBvn37 3rx5w2Kx1qxZY2Njo6+vL3qVx+PxeLzq6uqoqChJSUnRjLrfE8zqe2UFwawgkZ8xPHT06NGNGzci dyKm0WgHDx7U1NQ8ceLEqlWrjIyMhEKho6Pjzp07v/ty9+/fHxgYGBUVhcFgpk6devLkye7r29nZ bdq0acKECYqKimpqalOmTOnJUuTl5a9fvx4YGLhz5045ObmZM2euXLmym3KEl5eXs7NzZWWlhYVF fHz8/38p5SNHjmzdunXUqFFVVVUEAmHYsGFjx47t4XunTJly7949c3NzJSUlHR2dUaNGIeXS0tK3 bt0KCgrS19fn8XiDBg06f/58RUXF8uXLS0pK0Gi0sbFxZGQk3IsgCIIg6Bd2YcXMwPgbeqsiWnk8 bbJS/FJPXRUiAIBRzdQgKagSZAEAjBqWzsq2YznXHccAAKeWeEyzNmzfjg5F6UuLmDnExD7sSEVd o6WW+tk/pouOi6bZGAWcvmGhqU5X+TTYET519OLYS02tnMXONhunON9d573ubMKgwN1NrRwVgtys oSZjTei9lVVGfmnU1Wc19WwlOalhgzUO/jEJOZ2QUcHUUFZQVWybKZZbXPUw692exeO/1I6O2pez cjK194usYDZY0qlnQ2Z9ysreOCDqugVdXTTmCAAIn++y+M+LTS2cxeNtN84ZeXeXz7qjNwfN29XU wlVRkp3lZDbWutcuqP1Xesb8+IvIc5nADQCA4o1BFBlpBpOlExbR1pei4gAAp2ZNnWZiCADgCwSx yWn+9sPat8Pl83fce/CmoorLF9AU5IOchi8fPgR5ycfWksluHnvkeF1L62AVytUFXqpysgCAwSqU s3M81167Peevc1QF+T/dxo41oPflfdDH0pLZ3Dz2+PG61tbBFMpVLy9VWVkAAIPF0on4mFVcHADg 1NSp0wwNcWj09dmzl129Sg4PV8DhphoabnJyQqr5Xr584kXb9TdlNmwYqKSUs2IFACCjrCwqJaWG zVbC44dpaBwcPx7z+YWS+gs/Pz8mk+nk5NTc3Gxvb3/69GnRS69evUKmcMrKyhoYGFy8eFFJSel3 /myHWX2XrCCYFdSemLOz87e+Z+HChRMnTuymQmJi4vDhw2G4XWpsbCQSiW/evKHRaDANCIIgCIL6 INT5PV+tsyj28jD6gOm2xj90TeirItZNdJg11OQnJ8CbsrKnWT3a9/Ws9l4cZqgx3eHHbgV9zo51 MxxnOf+Qu77yhv3xHfrV4Qi4c30x4UX+n2UVAbPqWW7+/jAECIL6iydPnmhoaOBwuG7q8Pl8gUDw +vVrR0fHbqpdvnzZfcPOvraBcIorBEEQBEEQ9M0Oz5v4oxdx5llmY0vrVOt+fwmnwyvcfnhWSRmN za1TRxjBnglBEARBUK+AI4xfcfXq1VWrVnUo3LJlSw/nUEMQBEEQBEH/gfrSrQKh8Ii3GxZe9Pmr WXmECQTCI/5TsGiYFQRBEARBvQMehXzFuHHjxo0b9x0blJaWbm5uhsFCEARBEAR1o/jAGhhCT7M6 EwxDgCAIgiCod/2oEUZJSUkYLgRBEARBUP88Qvzd/wiN6vmh7O+RFeq7HNvD01F7njDM6mf2TAiC IOh7EIcRQBAEQRAEQRAEQRAEQRD0n8ERRgiCIAiCIAiCIAiCIAiC/rvfboRx6NChkZGRP3OJ58+f p9PpPV86j8cTExN78+YN7J0QBEEQBP3aGls4Yp6BRVVMGMXXs2puFXPwLyqvhVFAEARBENQH/YwR xrFjx4q14+Tk1Isb7OfnN2zYsF5f+q1bt9TU1LqsIyEhsX//fgqFAnsnBEEQBEG9rpzVMO3Pv4gL N8rMDbbbeDiloLhznUxGmcu2GLLPJjHPwPuvCkTlae9KxDwDqUvD+QKBqNBz/2kxz8Bt/yT9h5Vp 4fLEPAPzy2v6ZlbhfyXqem3DuwQpTQydEByb/6G6c50pG46LOfi3fxxPSAUApOUWizn4Uz02f5ZV 2CkxB/9t8ff+S1YcnpiDf5fr0Bec+Tdz6N7DMgGhYn8EfdaXPpS5HI4lrwsT+yPo/tt3ovIDD5+K /RHU/jH3r3Pt31jTxCavC5NeFfrVRQAAipl1HnGnCas3Sq0KsYo4yGT39dswPi4qsouKwgUHK2zc 6PX3321ZlZW5xMaSw8LEgoLuv/uUVXVTk1hQkOghHfopk+fFxXZRUbLr1ytt2jTt9Onyhoa23byh Ydrp08TNm2VCQ+2iolKKi/vp55VAIAgKCiKRSFJSUhMmTCgvL0fKd+3aJfo2SiKRZs6cWV1dDX5v MKv/PysIZgV18JPOYfT19W3+6ObNm+1f4nK5331xfD5f0O7grD03NzcDA4PeirsnSxcTE1u6dKm8 vDzsnRAEQRAE9brFsZdKalkZ21ZURK631FJn028DAAAgAElEQVR33RbD5fM71MGgJCZbDb7kP7vL FqQlMbcyc5HnNY3s6y9ea5EVf8msHE11rmyZ9+Hv9elRK4ny0m7r4zrXiQ+e2XxrO/I4t342HouZ OHTwp6xw2FspH7Oqb7qe/EpL5dfMioDDLbWz3THBtYu+ZDz4kvesDuWLhlo3R4Qhj+JNazASEtPN jNtXWHLusqEKpSeLYDU3D/szEotCPfNb/G796rAxI9ESEn05q+fFxaNiYsbr6eWuWpW5YsUM47YN x0hITB48+NKsWV2+q2j16uawsOawsJqPI4x8gWBsXJwhhVK2bl32ypVVTU0+ly617eaXL5fU1WUs X14REmKppuZ67Fjn3bxf2LFjx6lTp+7evVtUVCQUCt3d3UUvGRgYcLlcDofz5MmTN2/eLF++/Df/ bIdZfZesIJgV1N5PGmGUkJCQ/AiNRl+7dm3AgAHr1683NjZGzul78ODBkCFDCASCtrb2/v37RW9M SkpCyolEore3NwAgLi7O2tpaVMHX13fp0qUAgMbGRjExsd27d5uZmWlra5eWliYlJZmZmREIBAUF hSFDhiBjjsg8ZT6fr6amduHCBVE78+fP9/LyAgAIhcLIyEgDAwM5OTkzM7N797r7o3FRUZGbmxuZ TFZRUVmyZElTUxNSnpKSYm5uLisrO2TIkLdv34rqI0t///79vHnzysvLtbW1tbW1k5I++xt++1nS q1atmjJlyuzZs42NjbW0tPbt29fz1UACiYuL09PTw+FwY8eOZbFYgYGBioqKFAolOjoaee/9+/et ra0JBIKSkpKbm9uHDx+QciSHQYMGycrKUqlUZHL3+/fvXVxclJSUCATCoEGDXr58CXchCIIgCPq1 5ZdXT7U2UlWQw2PRvk42NY3sD7X1HeroqZK87S1NNVS7bGGBg1X0vRTk+YmH6a7GdCUZqfYVbmfl 0f13Euavd9kWU1JbBwCIvvd8UECEqAKjmomaEfSustYxLAoA4LglSnvFduQsyKIqptvuE2SfTSqL wpbEXmpq5fRiVlZ6VF11EkEGp0aUo5Lk84qrhEJhhzpolIQkBoU8Ym8+n2ZvLCf16Wa4C8ZYR19P bsvqdrqrlZ6S3OdZpeXRZ28njA92CYouqaoDAERfTx40b+enrCqYKKeAd2U1jv6HAQCO/pHaM8OR syCLymvdQuPIbutV3Dcu+fNiU0tvZjVKb6CHqZGGokLHvkQmedtYmKp17EsS4uKSaBTyOJ2WoU6Q d9LVFr16MTO7rK5hoa1VTxZx8NEzKQw6dvoUOplIlpF2putIYzF9eR8MTkiYZWq6ys6OKi+vLic3 auDAtqxIJG8LC1PVrvc7LAoliUJJolDYj7elrmtpqW5qWmBpKYXBUGRkphsbZ5aVte3mNTVTDQ1V ZWXxaLSvtXUNm/2hvr4/fl5FRkb6+/sbGhoSicSIiIjHjx/n5OSIXkWhUGg0WkdHx93dPSMj4zf/ bIdZfa+sIJgVJNJr12FkMBhYLDYjIyM5Ofnly5eurq7+/v7V1dVXr17dtWvX33//DQB48eKFi4uL r69veXk5g8GYOXPmV5u9f//+06dPCwsL1dTUZs+evXjxYiaTWVlZuWPHDjExsU/HKBISXl5ex44d Q35ks9nnzp2bO3cuAODw4cM7duz466+/mEzmxo0bJ06cyGAwulwWm822t7en0+mFhYXZ2dkFBQUB AQEAABaL5eLiMnPmTCaTefDgwQMHDnR4I5VKjY2NpVAo+fn5+fn59vb23WzRtWvXlixZkpGRcfv2 7aCgoM7XZ/zSaiDOnDmTmJjIYDCKi4stLS2pVGpJScnRo0eXLl1aVlaG/PLYu3dvZWUlMhLq6+uL vPHAgQNhYWFHjhxhsVjp6elmZmYAgODgYGVl5dLS0tra2gsXLhCJRLgLQRAEQdCvLWDciIup2aXM enYrN/LuMyttKlXp22ZazBhqcv9VQRmrHgBwNCllgYNVhwpxD9IehC4qPRxMlpOevPsEAMDT1uR9 DevZ27ZjsJik1BH6mpokhcRgHwBA4jqf/L2rgybYs1u59psj6SrEwn1rsnf6FVTUBPx1vXfjuvAw izJ5g7Trmo3Hb2+cM6r98WcHReW1Cam5vuNtPsvKyfR+Rn5ZTT0A4Oj15AVjrDtmdSv1wd7FpefW kwkyk9fHAQA8HUzeVzKfvSpqy+rG8xHGWprKiokRiwAAiRG++afWBnk6sFs59n6H6VRSYfy67NiA gtLqgMir/bFDCoXCI09TFtpairKtaWL7Xbp+dPrkL4f9maS8d/oU8pioOJmAUHpYROTj5315e/kC wcPCQikMxujPP+XWr7c5dOhBuwnR3bCLitLYvt312LHHRW19QwGPX2hpGZ2S0sThlDc0nM7ImDq4 7fzZADu7i9nZpfX1bC43MjnZSl2d2g8nVNXV1TEYDAsLC+RHHR0dWVnZzMzMDtUaGhoSEhJE1X5P MKvvnhUEs4LATxthjImJUfro6tWrAABJScnAwEDk1YMHD7q7u7u5uUlISOjp6f3xxx+nTp0CABw+ fHjSpEmzZs3CYrF4PH7EiBFfXVBgYCAWi0WeY7HYN2/eFBcXo1CoIUOGdDjCmzt3bkJCAjLKdv78 eSUlJaT9ffv2hYaGGhsbi4uLjx07dvjw4e1PdWzvypUrAIDw8HA8Hq+goLBlyxZktf/55x8FBYUV K1ZISEgYGxsvWLDg/4nOycnJ0tISAKClpaWnp5eent7D1UCEhoaqqKiQSCQ3NzcsFrt06VLkfEYS iZSVlQUAGDp0qLW1NRqNJhAIGzduFJ2zuX///pCQEFtbW3FxcSKRiHxMYLHYDx8+IKOcurq68GKR EARBEPTLG6I7QEJcTHVxmNScdX8nZ0UvnCLew4Gcj2Rxkm6Wg2KTUh/nFnF4PAcDrQ4VQic7keWk cRj0Hq/xqe9KXpVUSEtiptuaxCSlAgAEQmHcg7TO45IAgCvpOQCAcA8XPBatII3f4jH61ON/ezeu Mdb6L4743d+zxHe8relAtW5qHrmWbKStYkmnfpYVXtJtmGHszZTHLws5PL6DiXbHrLycyQQZHBa9 Z/GE1NziV4wKaRx2uqNpzI2UtqwSUjuPSwIArjzJAQCEe7visRgFGfyW+a6n7qb3xw55Jze/mMma a20uKlly7vLiodY6RKUetlDd1HQxM3uOlVlVeOj+KeNXXrp6MTO7z25vQ2srh8+Pz8iInTKlPDh4 ooHBmLi44rq6bt6Cx2BOTZv2j5fXldmzDSkUx+jo9I+zlKYaGt7MzZUODVXeskUgFAY7Orbt5gMG SIiLq4aHS4WE/J2VFT158rfu5n1BfX09AEBOTk5UIi8vX//xZMzc3FwKhUImkxUUFKqrq7dv3/47 f7DDrL5XVhDMCmrvJ40wenh4ZHyE3OmFRCKhPp6xX1hYeP36dfpHBw4cQHphUVHRwI+zAHpItd00 gcuXLxcXF5uYmOjo6Gzbtq1DTR0dHSsrq5MnTwIAjh07NnfuXGQIsrCwcP369aKVefHiRU1N11cT LywsrKysFNX09PTEYDB1dXUlJSXa2p8OB9s//w+UlD4dLeFwuIaP12P+6mogr6qoqCBPpKSk2ocj JSWFNJWbm+vu7q6tra2uru7q6spms5FJ1gwGo3P427dv19PTmzRpEolE8vX1ZbFYcBeCIAiCoF+Y UCh03nKELCdTGbW++UR40AT7YRsOIROZv8lCB+uY+6lRd5O97a06n9anQWybx0qQwsnisEj7Pk5W Z59lNLZwEjJzmzncSRaDujgYq2JW1jfS/XciD899pzESEnXsll5MTBKDUlaUtdKjrpo6YkJwbBWr sctqXB4/9maK7zjbLrIaax1z83nUtWferl1lpfwxKxmcLB5bUsUCAPiMtTmblNHY3JqQmtvcyp00 bHAXWZXXVjIb6bO3Iw/PsJMYFKquqaXf9cnDj5MnGw8iSrdNHr+UlZNfVePv8A03cpTBYm00qB6m RpJolDNdZ8Jg/ctZr/rs9uIxGHExsXkWFmaqqjg0evXw4dIYzJ12V2Hq4i1o9AwTEz0SaTCFss3F xZZGO52RAQAoqKlxOXZssY0Ne/Pm6tDQAQSCY3S0UCgUCoXOR4+SpaUrQ0Kaw8KCRowYFhlZUlfX 7/qGrKwsAKCu3ZqzWCykEACgpaWVkZGRmZmZlZVlaWnp5OTU2tr62362w6y+V1YQzApqD/VzFiMl JdXh1sntD5hoNJqGhgZypb/2BgwY8LbTr09paemWlk8HQ9XV1e3PpGvfrIGBwZkzZ4RCYXJysouL i6GhoavrZ1d6njt3bkREhLu7+6NHj44fPy5amU2bNnl4eHx1o2g0mrq6eudpy2pqau1vmdTl7ZPE xb/b2O6XVqOxsbEnb58xY4azs/Px48fxeHx2dvbgwYORCwbRaLS3b992mMGtoKCwd+/evXv3FhYW Tps2LTw8fMeOHXAvgiAIgqBfVX1z67vK2uOLPYiyUgCAxc42a+JvPsktmmZj9E3tWOtQpbGYv5Mz d80c2/nVomqmrgoRAMBsaq5vblVTkAMAmAxQ1VMln32WcTMj18vODIOSAAB0OK+KpiSvrij/JiKg D0YnBMLmVu6H6jqivHTnVy8+eslu5Ux3NOkiK32aNA77d1LGrrMhXWRVztRVJwEAmA3N9exWNaI8 AMBER1WPSjqblHEz5Y3XSPO2rMQ/z4pMUCfJvzm+ul93yA919deyX99d6i0qSXid97qikrwuDADA 4fGbOBylNZtOzprmoq/7pUaM1VQySko/OzLvw+frYSQk9EmkDuv3TSuMkZBAblD+srxcKBT6DR0q JiaGQ6OXDxlium9fZVOTJAr1rrb2+NSpRCkpAMBiG5s1t249YTCmGRr2r+4hJydHo9HS09OHDh0K ACgoKKivrzcyavuwQqFQyNdGCoUSFBSko6OTmZmJzBX7DcGsvldWEMwK+uzXU19YiUWLFp0+ffr8 +fMcDofH42VnZz958gQA4Ovre/HixdOnT3M4HDabff/+fQCAiYlJXl5efn4+ACArK6vDnalFeDze iRMnmEymmJgYmUxGoVCiUyZFpk6d+v79+yVLljg4OFCpbVNU/vjjj5CQkLS0NIFA0Nzc/ODBg4KC gi4XMX78+NbW1uDg4Pr6eqFQWFxcjEwAHz9+PIPBuHXrFgCgtrZWdE+V9pSVlaurq790duQ3+dJq 9BCTydTX18fj8TweLyLi0yXVlyxZEhYWlpycLBAIqqqq0tLSAAAXLlxArkqppKSEx+M7RwpBEARB 0C/1bQEvaaBGjrz7jNnUzOXzjyQ+Z3M4RjRlAEDauxIxz8CiKiYAQCgUtnB5rVweMsrTwuUJOt3h 5PzKWQ/XLyLLdTHctvni3cr6xmYOd9Wpa+aaanqqJKR8oaPVnhuPrv77ytu+7ZstBiWhII3PLats OwoyM2jl8oL/TqhvbhEKhcU1rKv/9ubJaJtP3nnNqKhrasksKF0YcY5KIugPoAAA0nKLxRz8i8pr RTUPX3k6w9FMGoftsp3zG2Y//HMpmSDT5SIqWY3NrdxVkVfMB6rpUT9mNdZmz/mHV5/meLtafcpK Bp9bXNWWla1BK5cXHHuznt0iFAqLK1lXn/Xm1ff5AkELl4fcsLiFy2vh8pDytr7E4wEAOPyOfSn6 aYoOUWm4tqaoZNv40bnBqzJWL89YvXzXpDF4DDpj9XJ7Ha1uFrHA1iKFUXw+4yVPILj/9t2Vl68n Gw/qy7vhYhubmNTUrLIyDp8f8ehRM5frrKPTlhWvXVa8tqweFxU9LiqqYbPLGxp2PXx4r6Bg8qBB AAAzNTWUuPi+p085fH5dS8uBp0/V5eRIUlJykpIGZHLk8+fM5mYun38kJYXN5RopK/fHjyxfX9/d u3e/fv2axWIFBAQMGTLEwMCg/TdEHo9XVVV16NAhSUlJDQ2N3/njHWb1vbKCYFaQSJ8YITIxMbl2 7VpoaKiPj49QKNTV1V27di0AwNTU9OrVqyEhIYsWLcJgMJMmTRoxYoSWltaOHTtcXFzIZPKAAQPG jRv3pWbj4+P9/f25XC6BQPDz8xs5cmSHCjIyMpMnTz5x4kR8fLyocMmSJZKSkvPmzUPuRWNhYbF7 9+4u25eWlk5KSgoKCqLT6U1NTaqqql5eXuPGjSMQCNevX1++fPmmTZvk5eWnT5/evn3E4MGDZ8+e TafTeTzemTNnRo0a9Z/T+9Jq9PDtkZGRK1euPHToEAaD8fT0jIuLQ8qXLVsmLi4+d+7ckpISBQWF tWvXmpubp6Wl+fn5MZlMPB4/evRo5L8JgiAIgqBf2CX/2atOXdNZsb2Vx9OhEP9ePpOuQgIAMKqZ miQFVQVZAACjmqXxx1ak/qitRwEA8cume9gat29noPIXbxA3a5ip3cbD5awGK23q+RWzRFNSPG2N /U9es9RSF405AgC2ebr4HL3Y1MJZOsp289RRSSG+QfE36H67mlo5qgqyXsPMxpnq91ZWL95+OHzl aU1dk5KclJ2R1uEVU5DTCRkVTE1lRVWltktTvXlf+SCz4M+lE7/UzkC1L2flbGa3/GB5bb2VHu38 xtmfsnI08T98xVKPqkcjf8pq4Rif3eeaWjhLJw7dPG900u5FQdHX6bO3NzVzVIlyXiPNx9n02he/ k6kv5v51DnmO8w8GAJSFraPIyjCYLI0NbRd9G3UoBgAQP8fTw9QIAMAXCI4+TQlwHN6+HXkcTh6H Q54r4HFiQExNXq77RRiqKJ+fPzPoys1ZJ8/SCIT9U8aPG6TXl/fBRdbWzOZml2PH6lpaDCmUG/Pm qcrKAgAYLJbGxwvkjYqJAQDEe3p6GBlVNjaG3L5dyGQi5z9emjVrmIYGAEBdTu6f2bNDb98OuX0b JS5uoaZ2/eN1oi7NmrXqxg2dnTtbeTwdJaW/Z8yg9887OgYGBjKZTDs7Ozab7ejoeO7cOdFLOTk5 aDQaACArKzt48OBr16795nethFl9l6wgmBXUnpizs/O3vmfhwoUTJ07spkJiYuL/M2QGQRAEQRAE 9aYzO79axefoBTu65oyhJj90RXRWbg+Z5ORlZ/azE/Do8czrpN1fz2r3OTtDrRlOpj82q1lbQ2Y5 e400/yGt2/t9h0b2b4f71hct+3wC+3aYVc+sXg0zgCCov0hMTNTQ0MB9/MNYl/h8vkAgeP36tePH m3F16fLly+4bdva1DYSzXCEIgiAIgqBvFuU9+UcvIv5pRkNz67de87EvZuXn/sOzuveigd06zd4Y 9kwIgiAIgnoFHGHskREjRhQVFbUvUVZWfvbsGUwGgiAIgiDoR1BetFkgEMb4uGPR8Hj1a1lN2SAQ CGMCpsGsIAiCIAjqLfAopEeQm8xAEARBEARBP0fZ4RAYQk+zOr8BhgBBEARBUO/6USOMLS0tMFwI giAIgqB+eYDI4/3mCfB6fCj7m2TF+x7H9rBf9TxhmNXP7JkQBEHQdyEOI4AgCIIgCIIgCIIgCIIg 6D+DI4wQBEEQBEEQBEEQBEEQBP13P2OE0cHBITo6ui9s7c9fk5UrVy5btgwAwOPxcDhcbm5u5zr3 7t2j0Wj9q990szkQBEEQBEE91NjCQc9aW1TNhFF8PatmDnrk6qIKmBUEQRAEQX3RzxhhXL58+ZAh Q7qp0NLSgsPhCgoKfuGgJSQkdu/eTSaTAQC3b9/W0tISvaSrq7t58+b+uzkQBEEQBP3Cyusaph+I V168hbBgg33YkdSCks51st6Xjd0Zp7okHD1r7YPX70Tl6YUf0LPWaq7YzhcIRIUzD55Bz1q74+qD /7AyLVweetbagoqavpnVtvh7+vN2yo4LpkzZ6Lb+eEFpF+s5bfMp9MjV7R8n7qQDANLzStAjV2vO 2PpZVuGn0SNX7zhz/79kxeGhR67uch36grMvsobvjyas2YT2C/6sL5WWjz1yXDV0K9ov+EF+oaj8 0ONktF9w+8f8+IuiV2OT0wZv/1MqYD1tw/aDj5K7X8SFzJz27Uw4erLv74ZPGAz7o0dlNmwgbdky 9/z5tqzKy8ceP666dSs6OPhBYeFn//s8XlBCwoAdO6Q3bDDYu/dxURFSHnLnjtmBA/j16x1jYj7r ug8e6O/dK7txIyU83O3UqYKamn76eSUQCIKDg9XV1RUVFd3d3SsqKpDyvXv34j5SV1efO3duTb/d RphV38kKgllBHfyMEcYJEybo6+t/3zb5fL6g3eFX3ycmJrZo0SJ5efnOL6mqqnp5efWvftPN5kAQ BEEQ9CtZFnelpLYubcuyDwfXWWipjdsVx+XzO9TBoCTcLAzOr5jZZQtSWGxC1lvkeU0j+0ZGriZJ 4ZfMysFE+/KmOYz4dc8P/qEkJzVl44nOdU6t8Wy4tgV5nAmZiceiJ9gafMoKh0lIzWvLqp594/kb TRXFXzIrAg63eKjVtnGjO/YlCQk3Q4Pz82Z0KPextWzYsQF5FIYGYiQkPM0MkZf2PXwaevPuJhfn d6EBdxbPN6eqdr8IAIAOUUnU2vm50/t4ViklJa5xcePo9JwVK9KXLvU0MvqUlYHB+RkzOr9lxtmz D969O+PhURgQcNzdXVlGBinXVlTc5OzsZWLSsetqaV2eOZMRGPh88WIlKakpp0/30361e/fu+Pj4 Gzdu5ObmCoXC6dM//efq6+s3NDTU19cnJSXl5ub6+/v/5p/tMKvvkhUEs4La+6mzpG/cuKGrq7t9 +/YhQ4bo6+v7+vpyuVwAgIuLC/KvgYHBrl27AAAMBmPatGlUKlVDQ2PFihVNTU0AgMbGRhwOt2/f PhsbGwMDg7KyMltb2+Dg4HHjxpmZmZmZmT169AhZ4sOHD+3s7CgUiqqq6rRp00pLS3uynkKhMDo6 2szMjEQi6ejoIOvM4/HCwsLodDqFQhk9evTLly+RykFBQZ6ent7e3lZWVvr6+gcPHhS1c/z4cX19 fQqFMmfOHDabjRSKphUXFxf7+PhUVFQYGBgYGBg8ePCg/Szp6urquXPn0mg0Go02f/782tpapPxL W9qlwsJCDw8PGo1GoVAcHBxYLBYAIDIy0sTEhEgkamtrr169msPhIJUjIyP19PQoFAqVSg0ICEAK u8y/vfazpLuJor1u/k9PnjxpbGxMIBDc3NxYLNbatWtVVFRoNFpsbGz3/6Fd/pcVFxdPmDBBVVWV QqGYmZllZ2fD/RyCIAiC/rP8ihp3K0NVguz/2LvvsCaSPg7gE0ogEAiBNHrvSFPBBipgoQiCiiLF hgpiFxEVbCCi6FnuPERFORsWbGdBFOzYEBUVBaT3KhBaICF5/1iMHCB6vipy/j5PHp8wO9u+2cTN ZGZXDC8838q8prG5pJbZpY6OHG32qMEmKnI9LsF79ODoWykd7Wv3n9saa1MkxDtXSHz1Tj/gN+r8 TQ4RMcXv6xFC0bdSjAJ3fzyLqK4TnRGUV/l+7JaDCKGxW6K1V2zHekHmV9dO2X1c3i9MadGWRX/9 3dTa1odZmekoaSlQyUSCApWkRJN6V1zN4/G61BEWEhTFC2GPmGspU0YZkcRFP2ZlZxYd/7gjq8RU WzMdiuQ/s0rN0p+9neqywWHtoeLqeoRQ9NUnRnN/+5hVRa3o+NV5Ze/HBuxHCI0N2K89cxvWCzK/ onbKxqPyriFK00IX/X6hidWXWY3V0ZxqYqgiTe56LNGps4cMMlHoeiwJCgiICglhj5PP0hSkSNaa 6gihFjZ747WkHRPtnA316BJELRrFXFmx91UghHA4xF+asKDgT/4eXHfjhrux8fIRI5SkpBRJpLGa mh1ZUamzBw0ykeua1YOCgvisrFNubkOUlKji4oPk5dVlOtqpZ5ia2mtrS4uJdT10FRS0KBQygaAg KakkJfWupqb7odsvHDhwYOnSpQMGDKBQKOHh4Q8ePHjz5g1/qpCQkLCwsIaGxqRJk16+fPmLf7ZD Vt8qKwBZAb4ffaeXwsJCcXHx5OTk1NTU1NTUo0ePIoTi4+Oxf9PT0/39/Zubm8eNG6etrZ2RkfHs 2bPc3Nw1a9bwl3D37t3bt29nZGTIy8sjhC5duhQdHZ2amrpy5cpZs2Zh/xcKCQlt3769qKgoPT0d IYRdCfGzIiMjw8PD9+7dW15e/vDhQ1NTU4RQREREbGzsxYsXCwoKRowYYW9vX19fj9WPj4/38fF5 /Pjx5cuXg4ODsea2+/fvr1ixIioqqrS01N7ePjY2tstaFBUVo6Ki6HR6enp6enr6yJEjO0/18vJq aGhIS0t78eJFTU3NjBkz+JN63NPuGhsbx48fr6Cg8PLly+Li4rCwMCEhIYQQnU6Pi4urrKy8evVq fHx8ZGQkQigvL2/VqlXnzp0rLy9/+/bt1KlTEUK959+jHqPorPdlnjlzJj4+Pisrq7i42MLCQlFR MScnJzIyctmyZeXl5b28oD2+ZBs2bGAwGHl5eWVlZbGxsVQqFd7nAAAAwFdbYW9x/ml6aS2zuY0d dfOxmbqiksy/G8TgNszoTkZuWV0DQij6dsqcUYO7VPjr7rOba+cV/r6aTiK67jmOEJo61Kiopu5R diFW4fCdpyN1VVVp0tdXeyOErq+ek7nDP2DCyOY2ts3mg9qy1Hc7V77YsjS3omZVbHzfxnXu3iuF qSFSjsEhRxPXe43B4XCfqplfUXv9adZ8hyH/yMrK5E5abtn7BoRQdHzKHDuzrlldT725w6cwdi1d iui68ShCaOpo46LKukdvCjqyupYy0khNVVb6+rZ5CKHr2+ZlxgQETBvV3Mq28Y/SVqS+Oxr44sDy 3LKaVQeu9McDksfjHXiYMnfoYCzbZ8WlTFZrXk2t2qYI2eCwyYePF9TWfXYhRbX1mqE79MN3zYk9 +yX1+1A7l3svP18cjzf94w+ZkJARUVF3/zkgurvbeXmaMjLb7t6lbd6sFhGx/MqVZjb784duerpC eLjUpk0hN2+ut7Lq5dD9adXX1xcWFul3sJIAACAASURBVA4cOBD7U0NDQ1JSkt9BhK+hoeHGjRv8 ar8myOqbZwUgK4B+fAsjkUj08/NDCBEIBCsrq6dPn3avc+XKFYTQpk2bxMTEyGTyxo0bO7fTLV++ XEREhP/nrFmzaDQaQsje3r6kpKSsrAwhNGzYMDMzM2FhYSkpqeDg4Nu3b3/JtkVGRq5evXrIkCEC AgIUCgV7Yxw5ciQgIEBbW1tERGTNmjXCwsLY5iGErKysBg0ahBBSU1PT1tZ+/vw5Vt/V1dXCwkJA QGDKlClDhgz58nCKiopu3boVEREhJSVFJpO3bduWmJhYXFzcy572mB6Hw9m6dSuJRBISEhoyZAiR SEQIOTs7q6ur43A4LS0tHx+fW7duIYSwxscXL17U1dWJi4tju9N7/j3qMYovf03XrFkjKytLpVKd nJxERER8fX0JBIKdnR2VSsU+jz71gvb4komIiJSWlmKtnFpaWnCxSAAAAOD/MVxTWVAAp7w4nDRn fdzjV1FznAX+ZdODJEF04iD9mDtPk7Py2zjto/XUulQIcraik4gEvPB2d/unuSVvSyqJovhpw4wO 3X6KEOLyeEfupXZvl0QIXXr2FiEU6jpWDC8sTSSETBl7IvlF38ZlZ66bErk0afv8eQ5DTDTle6l5 8MpjQ3XZwdqK/8hKTHTiCIOYaynJr/Pb2JzRxupds3K3ppOJBBHh7b4TnmYVvy2oIBLw06yMD11L 6cjqemr3dkmE0KWHbxBCobPHi4kIS0uIhcwafyLxeX88IBOzcorr6meYmWJ/Vjc2I4SuZ767v9Qn ffUyARzOJfpY7/3vDGRpp2a6XfOZGT3Npbqp2WZvNJPV+tPub0NbW1t7+6mXLw+6uBQHBjrp6joe PVr0ocdDj6qbmt5UVuIFBXNXrrw2a1bCu3drEhI+f+hqa6f4+SV5e88zM+veL7JfaGhoQAhJSkry S0gkEpPZ0ec6KytLWVlZSUlJTk6upqZm8+bNv/IHO2T1rbICkBXoTOgHr09aWpr/gxiBQOhx/HJ+ fn5VVZXRhyuMcLlcYWHh+vp6QUFBhJDcP//Dk/nQ559AIPCP6aysrA0bNqSlpbW2tiKEmpubm5qa xMXFe9+2wsJCzQ+DDvhKSkrU1DrOgwUEBJSVlflNfvxVY2vHVl1SUmJlZcUv73xHl88qLi7G4XAq KirYn9h6i4uLFRQUPrWn3RUUFKipqQl2G+6RkJCwc+fOvLw8Ho/X3NyMjctWVFQ8fvx4ZGTkokWL dHV1AwMD7e3tP5U/iUT61Jb3GMWXv6aysrJYubi4eOfXV1xcvLGxsZcXtMeXbPPmzWFhYVOnTmUy mc7OziEhIXC9SAAAAODr8Hi8cVsPmakplP65VkJUJObO01Gh+19sWaIgTfpXy5k72szjz5OZZVVz Rg3q3jdKldpxWUayOEGSIFL8vl5XnjbPymx06P7fPBzuZ+a3tHEmDtLv4aSx6n0Vs1E/oGOMMJfH wwsJ1jezSGKifZWYKF5IVlpCVlqCJkU0nPtbzrHVVFIPp6BsTntMQsqGGWN7yMrO3GNLbGZR5Rxb sx6ykv2QFZEgKSZSXF2vq0yfZz9k9IrI33wd77/Oa2ljTxxu0ENW5e+r6hr1Z2//mJWwYH0Tq/MY 7X4h6sFjFyN9KrEjVQlRPEJo7ZjRcpISCKEQuzEG4bvz39eqynzyWp/aNKo2jYoQUqfInJrpRl0T ejcnz0Ff5+fcXzFhYQEcbubAgaZycgihlZaWux88SMrOnvnpbmUSIiKCAgJh48aJCglpUShLhg0L v3Nnl4PDZw5dISFZCQlZCQmauLjhnj05/v7Uz317+tlISEgghDo3Z9TX1/MbO9TU1K5fv44Qqq2t 3b17t52dXXJycueeK78UyOpbZQUgK9CZ0M+wEQIC/+hKqaSkpKCgkJaW1qUa1tj0JT32Z86caW1t ffDgQTExsfT09EGDBn3JlUSUlJSys7O7DFuWl5fPz8+3sLBACHG53IKCAqy971Pk5eWxgb2YiooK bDR3L/vLp6CgwOPxCgsLsea/vLw8rPBfhamsrJyXl8flcjuvpba2dsqUKSdOnLCzsxMQEIiMjMTG pyOEHBwcHBwc2trajh8/7ubmVlhY+Kn8/x+9v6Zf/YL2+JKRyeSIiIiIiIj8/HwPD49t27aFhYXB Wx0AAAD4CsyW1rzK94fnT6ZKiCOEfGyGrD2d8CCrwHWI4b9ajrmGIlFU5MzjV1vd7LpPza+u1ZKl IIRqm1qYLa1Y86WxspyOHO3M45fX0rI8RpjghQQRQl26TyrJkBVkSOnblv+E0fF4qKWVXVpd32ML 4/nk180s9rTRJj1kpatEJODP3Hm5dV4PTUL55bVaClSEUG1jC7O5VYFCQggZa8jpKNHO3Em7lpLp YWPakZXAP7OikRWoUumH/Pv1AVlSz7ySnpngO4tfMkCWIYDr+v3gy0f4CgkICAoItHN/3msO4gUF dWm0LvvTez9iI1lZhBDui+t3O3R5LWx2KZPZ71oYSSSSkpLSs2fPhg0bhhDKzc1lMpkDBgzoeK2F hLCxTXQ63d/f38DA4NWrV9gwrF8QZPWtsgKQFfjHf08/xX+ceDyZTM7K6rhxnr29fWtr64YNG5hM Jo/HKy4u5g9M/kJ1dXW6urpiYmIcDmf37t1fONf8+fPDw8OfPHnC5XKrq6ufPXuGEPL09Ny+fXt2 dnZbW1t4eHhbW5udnV0vC/Hw8Dh58iTWz/HFixeJiYnd6zAYjJqaGv5dXPgUFRVHjRoVEBBQV1dX V1cXGBhobW39b1sY7e3tcThcYGAgk8nkcDiPHz9ubGxsbGzkcDhGRkYCAgK1tbWHDx/GKufk5CQm JrJYLDweT6VScTickJDQ/59/j1v1/yzzUy9ojy/ZhQsXCgsLEUIyMjJiYmLYSHAAAAAAfM23BTFR PXn6/qQntU0t7Pb2g7eeNLexjZRkEUKpeSXCnmvyq2uxJgkWm9PK5iCE2jjtLDaH2+3H3dOLp98K mkcnEbuvZfOFm5XMxpY2dkDs1YGq8jpyHddQnjt68K745MvP384Z1fHNFi8kKE0kZJZVY39OMNVt Zbevi7vBbGnl8XhFNfWXn2f0YVybjydlFFbWN7Fe5pb57DqrRJPSVaYjhFKzioXHrsqvqOXXjLr0 yM3ahEjA97ic08Get37zoZOJPa6isq6xpZUdEHVloJa8jhKtIys7811n711++GaOrdnHrCTEMouq OrIaqtfK5qyLSWA2s3g8XlFV3eVHb/swq3Yul8XhYPclZ3E4LA6H37zF4nBaORyEUFt7O4vzj2Mp +tFTDaqMpboqv4RKFJ9kZLDlxp3KxiYmq3VDfJKpgpwyWaqXVZxNS39dVlHPYuVU13jHnpMQwVuo q/zMb0Nfc/PDqamvysvb2tt33r/fwmZba2j0kpWtlpaCpGRwYmILm533/v3vDx8663d0AWa3t7M4 nHYul8vjsTictg/3hd9861ZGVVU9i/WyvNzn4kUlKSldGq0/fmTNnTt3z549GRkZdXV1q1evHjp0 qJ6eHn8qh8PhcDjV1dVRUVGioqL8oWO/JsjqW2UFICvA97M0voSGhi5cuLCpqcnX13f9+vUJCQlB QUFGRkbNzc1ycnLu7u729vZfvrTff/89ICAgKioKj8e7urry++v1bsGCBQICAvPmzSspKSGTyQEB AaampitXrmSz2dgNXoyMjK5cudL7kFtLS8tNmzY5OTnJyMgoKChMnjy5ex0DAwMPDw9DQ0MOh3P0 6NHOI5qPHDni7+9vZGTE4/Gsra0jIiL+bZJEIvHatWuBgYF6enocDsfAwCAuLk5RUTE8PNzOzo5C oUhJSdnb2yckJCCEWCxWSEhIZmYmDodTUlI6fvw4dtHG/zP/Hrfq/1nmp17QHl+y1NRUrJWWQCCM HTs2ICAA3ucAAADAVzu71CMg9qqu/45WDkeDTold6KYtR0UIFVTXqtKk5cmSCKGCmjrNZR0nLXbb DiOEjvlNm/rPfo6aDMqnVuEx3GR06P6K+kYzdcVTi6fzO6BNHWq08sTVwWqKOnIfGzvCXMcvOHS+ qbVtwZihGyePSVzrvfZUgkHAb02tbXJkkucIEweTPhvu+iK7NOrSwxpmM4UkbjFAde9iZ6w7YUFF raqstLxMx0ixzKKquy9zdy5w/NRyNBU+nZWN6ejl+ypqG8x0lE4Fe37MarTxyqgrg3UU+W2OCKGw ObYLdp9rYrUtcBy2cebYxO3z1x6MN5i9vYnFlqNIetoMdBii21dZHU99MSf2HPZcImADQqhoYyBD glhQW6cZuqPjWIqKQQgd83SdamKIEGrncg89erpitEWXRUVNnbj03GW9sJ2CArhRGmpnZ3tgsXxq Fa/KygP+ji9nNpDFCObKigm+s6XFCD/ze3C+mVltS4vDX3/Vt7YOYDAueXnJS0oihArq6jR3fMgq JgYhdMzVdaqhIUFY+MqMGYsuXaKHhUkTCK6GhptsbLBqPhcuHPlwwXSJDRu0KJT0pUsRQi/KyqKe PKlpbqaIiVmoqu51dMT/9LfY7tHy5ctra2ttbGxaWlpGjx594sQJ/qQ3b95gQzglJSX19fXPnTtH oVB+5c92yOqbZAUgK9AZbsyYMf92nnnz5k2cOLGXCklJSV0GrgIAAAAAgP5CKG7nZ+v4HrpgoaMy fZjxd90SHf8daydaeY4w+cEJcCYv+9Ks7u35fFa7zlkYqk63+r57oTNz21p3a88x3+WurxyLxd/g uIrcAW+uTybsu+IfWe2ArL4stxUrIAQAQH+RnJysqqqK3VrjU9rb27lc7tu3b62trXupduHChSkb In62HYQBpAAAAAAA4F+LnD3xe6/i5MO0Rlar65B+fwmnyKUu3z2rWy8aW1pdRxnBkQkAAACAPvEr tjBeunTJ37/rVa43b97c44jmn9nYsWMLCgo6lzAYjDt37sBhDQAAAID+TnHhFi6Pt9/bRQQuqfzZ rKaFcrm8/SsmiwhDVgAAAADoG7/iWciECRMmTJjwH9iR69evwxEMAAAAgP+koj9WQwhfmtXJIAgB AAAAAH3re7UwioqKQrgAAAAAAP1RtcegH7MiChrzcybwL06RVYj/hZdcc8GP+M4wlvSfep/oL/yO hxwDuqP+05xVP/TbLAAAgH9PACIAAAAAAAAAAAAAAAB8NWhhBAAAAAAAAAAAAAAAfL2+bGFctWoV nU6XkpKqrKz8ritKTExkMBjY8xEjRuzbt69LBQ6Hg8PhMjIy4IAAAAAAAPhhGhsbcThcfn4+RPH5 rJpbcVp++SU1EAUAAAAAfkI/ooXRwcEB14mNjQ1CKD09fe/evW/evKmrq6PRaH2bgqCg4O+//85v hQQAAAAAAJhdYbFDtGcrik3Qpkz2dFqfl13avc6NK4+tBy5QI01UkXCyHbrk1vVUrPzF0ywqbqyx knt7O5dfeZ5bGBU3dnf4ya/YGBaLhcPhsrOzf86swvYlaI/dKGa4lGIW4OQblV1Q1b3OsYtPLNx+ kxroLzM4wGFe5Nuccqz86etCnJaf0sigzlm5LTuE0/ILj/qam/uxWtk4Lb8et+FnUF7NnLriMNVi tYSZv+WMXU9eFWDlcddf4AwW8R8OC/Z13qOAHRcUrIJFTZfpOITcS83Byicvi1a0DhYxWSpvFbRw 85lmVht/lvvPcixn7CIMXC49bJXX6qP99D248PhFnHcg/7E94S5/UtH7+mlRJ8iLN4ovCDbfvLe2 uQUh9Di3yOmPI4zloUS/dWahf1x52dGLooLZOCcmTjVwK8E3SGvt9s7LCbtyS3vtdrEFwZSlm5z+ OJJd2V8bsrlcbmBgII1GExcXd3JyKi/veH9t376d/22URqN5eHhUV1f/4p/tkNX/nxWArEAXP6gP o4+PT8sH8fHxCKG8vDwGgyEjI/MzpIDD4RYuXCglJQUHBAAAAABAZxbWJsf+3vSqJDYxda8MlTTD ZWP3Omqa8rsOLk/J/utpzl9TZ4zxcFxXUfaeP1WcSLh5LQV7/r6GeePKYxV1uf9kVtZDtf+O8im5 F5Z6PpAqTXTx29+9Tl5xjZ/HyLS/1zw9v0pURGjc7D86NykSxUSu3XuDPa+pa7pyO11difKfzGpB yOniitoXZ1dV3A0zG6Bs5xvJ5rRjk7RUaC2pv2GP83vm8meZtjLmdkr2mZ2zi5JCjoZ7yVIlsfL5 rsPvH11WcXdLQpTfk1cFgTv/xsofv8wfN+9Px9EDMi8Hp50LdHcY1H/j8rYY3BIZij2WjRmBFdY1 t1hs3SciLPRwzYLc8FWhzmOFBQURQnnV76101G/6z8vZEjDRRN9579H00gqEUHVjkwxR7LSPe+G2 1RFT7Db8nXjg7pOOQ1dX4+9FM0q2r0kNXkSVEHf5s7+2xm7btu3YsWOJiYn5+fk8Hm/KlCn8Sfr6 +mw2u62tLTk5OSMjY8mSJb/4Zztk9U2yApAV6OwHtTAKCgqKfiAsLBwTEzN37tzCwkINDQ3smFNR Ubl27RpWuby8HIfDYT+V+Pv7T548ecaMGcbGxurq6nv27OEv89atW8OHDyeTyVQq1dvbGyFUVlZm Z2dHo9FIJNLQoUMfPnz4hZvXeZT05cuXVVRUNm/ePHjwYHV19Tlz5rDZ7O6z5Ofnu7i40Ol0OTk5 Pz+/pqYm9GGkT0xMjK6uLoFAcHBwqKurCwgIkJGRYTAYBw4cwObtZTu771RhYaGtrS2FQiGTyQYG Bq9evYKjFgAAAAA/zEBzHQ1tBSkyUU6BqqBEy8kq5vF4XeqoaykMMNGQoZIoNCkNbcW2VnZh/sdu C55z7Y4eiMeenz6SaGNnJkOR7Dz79evXdXR0yGSyra1tcXExQujAgQMGBgb8CgUFBUJCQrm5udbW 1ggha2trDQ2N8PDwT52S9RVzIxVtVTqZJKbAkFKSJWflV3bPKtjPdpr9QGV5aVUFmY2LHYrKagvL avlT57oOP3A6GXt+5Pxju5H6FPI/7lV9/f5bnXGbyIP8bb33FpfXIYQOnE42sA/9mFXJeyHdRblF 1dYz9iCErGfs0bBZj/WCzC+pcfHbTx8aKDd8jd/GU00tbX2YVXZhlet4U3malJgo3sd1RE1dU0lF PTYJh5CoiDD2EBYSxAqTn+devZset3POUCNVKpk42EBZQ4mKTRozVEdZTlpKgqCqIEMhi2fmVWDl Qb9f9nQc7D/TWkmWrMggjxuu23/fhoICAqLCQthDUKDjG9zeWw/FRYQPzZysw6DSJYlj9DSJIniE 0DQzoyU2w/XkaHRJ4hr70SSC6JO8IoSQvhx922S7wSoKVAlxJ2M9WwPt+9n5HYeumqI2g0oWIyiQ SUrSUlnl1d0P3X5h3759K1asMDQ0pFKpO3bsuH//fnp6On+qkJCQsLCwpqbmlClTXrx48Yt/tkNW 3yorAFkBvr65DuPMmTMjIyOVlJSys7PPnDnTe+XLly/7+fm9ePHi+vXrgYGBWDvg8+fPbW1tfXx8 ysvLCwoKPDw8EELt7e3e3t55eXlVVVWOjo7Ozs7Nzc1fsXkFBQXi4uIpKSmvX79OSUmJiYnpUqG5 uXn06NE6Ojp5eXmvX7/OyclZuXIlf+rJkyeTkpIKCgqKiorMzMyUlJSKi4sPHjy4cOHCsrKyXraz x50KCgqSlZUtLS19//792bNnqVQqHLUAAAAA+JEun72nx5iqTHSM2Hh01UYvHA7XvU5F2Xs9xlQ1 0kRnq5XjJgwZaP6xNWeyu1Xy7TSsV+Oxg/Gec+26zBsTE3Pnzp3S0lI6nT5p0iSEkJubW2FhIf9X 2Ojo6FGjRqmpqSUlJSGEkpKSsrOzAwMDez8l6xNnE14whgUSjZdv/OPqxsX2PWbFd+9ptoyUuKIs mV/i7jj49uN3ZVX1CKGDZx7MnTq8a1bnHt05vqz0/ha6jOSkhQcQQm4OgwpLax8+z+vIKu7BKDNN NUVK0l+LEUJJfy3OTtwYOH9sc0vbaI/dOmqMvJubXl9dm1NYtXLruT4MauVs63OJaaWV9c2stn2n 75sbqih9yKGwrFZt3AYdh5CZa48VlHZ0hr315J2WCi384A3pYauUbNYtDT/beTT0iojzNIvVUkNW Jj/PDZhtgxBq53LvPs0WJ4gYuYSThqwc6r7jztPs/vsePP8sXWFlmMnGPcEXrje1duz4rYxcPVm6 /e4YCb91OkE79t1+3H3GjPKq6sYmY8WuvYZbOZwneUUmncrPpr7GBlZv/Dtxo9OY3g/dn1N9fX1B QcHgwYOxPzU1NSUlJdPS0rpUa2hoSEhI4Ff7NUFW3zwrAFkB9MNaGKOjoykfXLp06V/Na2NjY2Zm hhBSV1fX1dVNTU1FCEVGRjo7O3t6eoqIiIiJiY0aNQohpKCg4OLiIi4ujsfjV69ezWazX79+/RVb SyQSsa7gBAJhzJgxT5486VLh77//RgiFhYWJiYlJS0tv3rz52LFj/Knr1q2Tk5Oj0WguLi4iIiIL Fy7E+jPSaLSXL1/2sp097pSIiEhJSQnWrqqtrQ0XiwQAAADADzbG3vzW88iLt7fP9HEwNNXssQ6V Tr79IvLaoz3+6zxGjTEVEPjYPCEhKWbvMuLEoWuP779ua2NbWBl3mXfdunV0Op1AIOzcuTMlJeXN mzdEInH69OnR0dEIIS6Xiw1/6b7S3k/J+oT9KP3nF1ffPrbUx83CVF+pl5qprwsDt1/cHzpdSPDj CbkkUdRlrPGhuIf3U3Pa2ByrIVpds/Kzo1MkCKLCO9dMSnlV8Ca7jCgmMn3CoOi4BwghLpcXc+5R 93ZJhNDfN18hhMJWOIoR8NIk8c3LHI9dTOnDoIabqAkK4OStgsQHrTh97fmBjW7YMWOgKRu3c871 A36HN3tU1zaOnrWH2chCCFXXNqZnl+GFBQsTN904uPDa/Tf80dAIofW+ts/iVl34fZ7rOFNVBRmE UENTaxu7Pfbq00Oh7uV3wiZaGdr7RhaV1/bHN+CkgQZnF3jcXjk/1Hls3NNXXtGnsfLqxqZzz17P HD6wate636c7Ljt16dyzf3z3ed/UPCXy2NIxI0yU/tHCyOXxvGPOyklJ+o4e8vHQNdR5vn7J7ZXz fUYNMVXul9cxYDKZCCESicQvkZKSwgoRQpmZmQwGg06nS0tLV1dXb9269Vf+VIesvlVWALICnf2g FsZp06a9+AC708uXo1A+Xn2GQCA0NDQghPLz87W0up5yNTY2Llq0SFdXV1FRUUVFhclkVlV9zcWt ZWRk+L/a8dfYWV5eXmVlpc4Hbm5ueDy+vr5jZIecXMd/yeLi4vLy8vy5xMXFsUV9ajt73KmtW7fq 6uo6OzvTaDQfH5+6ujo4agEAAADwI4mI4umy0gPNdfz8p3g6ra+pqu/hnFIAR2NIa+kqrdro9eeO s9cv/6M7ldc8u2PR1/6KuuLhbdu9b5Sqqir2hEwmS0pKYgOl58+ff+rUqcbGxoSEhJaWFmdn5+4r 7f2UrE+IigjLUknmRir+c2ycfPdVvW/ssdqDZ7nj5+z9c8NUl7Fd21vnTR0efeZB1Mn73lOG9ZCV YsdFzMkkMUmiKDZQev60EaeupDY2tybcf9PCYjuPMeohq+LqyvcNOuM2YQ+35YfxwoL1DS19khKP xxvjvZcuI1l5b0tL6m+B3mMsPHcVV9QhhHRU6XaW+hpK1KFGqnE755RVM7G+hxLiIoICAuHLHIli ItoqtKVeoy8kveQvUJIoqkCXsrfUH2as6rr8EEJITBQvIICb7Tx0oJ4iQUR41ZwxRDGRGw8z++Mb cLSO+ghNFQ2ajL2hzj5P5/PP05ktrQghCVGRoepK08yMRIWFxuhpOhnrXXj+hj9XBbNxdMSBkVpq v7nad14ah8v1PHgqp6omfuksESGhj4eusJAsScJcTdF/nIXTH0eqGpr6XVCSkpIIoc6fAHV1dVgh QkhdXf3FixdpaWkvX740MzOzsbFpbW39ZT/VIatvlRWArMA/zgZ/zGrExcUVPiAQCN0rEIlEFouF Pf+Sm1WpqKi8e/euS+GGDRvevn179+7doqKi/Px8KSmp73QBEWVlZUVFxYwPsrKyqqurOzfV9+5T 29njTklLS+/atSsnJ+fJkyfPnj0LCwuDoxYAAAAAfYLH47FaWstKPnOqxuVy87JLOpcMGqIrTiRc PH3HbebY7vXz8/OxJ7W1tUwmU0FBASFkYmKiq6t76tSp6OhoLy8vPB6PEBIQEPiGp2TfO6sWFruk ooffhm8kZzjMj9wfOn36hB7GHg4xViWKiZy++mymy9AesiruGDVcW9/MbGQpMKQQQiZ6irrqjFNX UqPPPPCaaI4XFkIIde5GihBSlpNWZJAzEtZhj6zr66ufbCNJEPokHGYTK7e42s/NgkomiooIL5hm wUO85Oe5XaoJCQkKCuCwO+EY6ygghDo3uXbZwY7YEcourEYI4YUF9dQZXVpoBfrhyN8u8EJCPB6v ncdFCBkrynVpg+bvYEFN7YjwyLH6mn+4O3Wuw2JzXPYeLa1jXl/uLSVG+MShi1ra2CV19f0uHBKJ pKysjI14Qwjl5OQwmUwjI6MPh5MQg8FgMBi6urqBgYGvX7/+lQdvQlbfKisAWYF//Df0k2zHoEGD sNHT7e3t27dv/2x9Hx+fc+fOnThxoq2trbm5+fbt29hZqbKyMnalwujo6C9pqfw6jo6Ora2tQUFB TCaTx+MVFRX9q6Hfn9rOHnfq7NmzBQUFCCEKhSImJibU6ZdGAAAAAIDvbUfI8ay3hcz6pvS03OXz diko0bT0lBFCL55mUXFji/IrEEIx+y6nPs6oq20syq9YuzSyqqK2+1Dow3HBf9/9jUond19FSEhI ZWVlS0uLv7//oEGDdHU7ruE4b968nTt3Xrp0Cbv9HUIIj8dLS0tnZmZ+k1Oyby5kb/zbnPL6hpa0 jJJ5QSeU5KT1NBgIoaevC3Fa8r48aQAAIABJREFUfvklNQihC4lpkxYeiA7zsLXUY7WyWa3s7r+I x/0x9+6JZXSKRE+ruFpZ09DCYvtvPTfIQElXveP6OfOmjdgZc/PSzdfersM6shIWkiZ9vO2Jo7Vh axsnaOclZiOLx+MVldVeutln9w8kEQn6GrL7Tt+vZTazOe37zyQ3t7QZacsjhOKuv3j1rrS+sSW7 sGrW2mMS4qKWgzQQQnaW+goMqbV7LrW0snOLq/ccuzNpjDFC6G1u+eHzj/JL3tcymxMfZm6KjLe1 0MPWsmCaRfS5hy+zStrY7Ttibra0sscM0+6P78EDd5/kVb+vb2E9yStadOLiGD1NshgBITTXcvCT vKK41FccLvd2Zu7faW8nDTRACGVVVFts3ediahAycSyLzWGxOe1cLkKoqbXNfvfhpta2c36eQgIC LDaH3d5x/+6Qy0lvyyrrW1hpRWXzjpxTkpbSk6X3x6x8fHx+++23t2/f1tXVrVy5cvjw4fr6+vyp HA6Hw+FUVVX9+eefoqKi/N7TvybI6ltlBSArwPezNFeFhobOmDFjwIABVCp14sSJf/31V+/1TU1N L126FBwc7Ovri8fjnZ2dR40aFRwcPGPGDBMTEwkJifHjx6upqX2nrSUSibdu3QoMDNTR0WlqapKX l/fy8powYcIXzv6p7exxp54+fbp8+fLa2loxMbHx48evWbMGjloAAAAA/DCvnmcfjrxUW8OUppCG Wg6IiFyMxwshhIoLKpTVZBnyMgih99VMH/fw0uIqIpGgZ6h6/HKonmHX0zB1LYVPrcLT09PS0rK8 vNzc3DwuLo7f5crNzW3FihVmZmb8NkeEUHh4+Pz585uamhYuXBgSEvL/nJJ9c8/fFEWeuFdT10Qh i1sO1ojcOA3rTlhQ8l5NkSJPl0IIhUddb2hiufjt5891L3b5iIHqnZejpUL7ZFYTzS2n7yyvZpob qcT97v0xK4dBK7acNTNU5rc5IoTCVzrND45tamld6DEyZOmEW8eWBEZc1Bm3qamlVZ4u5TXRfILV gL7K6vzuuf7bz2vabWpt42gqU0//NltHlY4QeplVsiLiXHk1kywpNsRINfHgQmmSGEKIICJ8LWqB X+hpmWGrpEni0+xMQxc5IISEBAWP/P1kRcT5lla2HJU0eazxet+OWwn5TrWoZbbY+kTWN7QYaslf jfSVp0n1x/fg+efpa88n1LewZEmSE4x0Nzp1XHLKUEE2ztcj8Gy858FTyjLk390cJxjpIoQO3U8p el+/7dqdbdfuYDVDJo4NcrC69y7/ZkYOQkh68Uas3FpXI3GFN0LoeWFp5K1HNU3NFKK4pZZqpMdE /Ie7ePcvAQEBtbW1lpaWzc3N1tbWne8pmp6eLiwsjBCSlJQcMGDA5cuXf/FbaEJW3yQrAFmBznBj xoz5t/PMmzdv4sSJvVRISkoaN24chAsAAAAA0B9VoxufrbNi/q6hloaT3a3+nxVR0GdORDU1NYOD g728vH7esN79+dkq84NjLQdruDt+3/uxao7ZEOxn6zXR/KtmXvAjskr/4z/1PtFf+B0XHv1L31uj B3NWQQYAgP4uKSlJVVW1xysH8rW3t3O53Ldv31pbW/dS7cKFC1M2RPxsOwhDbgEAAAAAwL+2I2rp 915FbGxsQ0PD1KlT+3tWUSFu3z2ry08bmlhT7QbCkQkAAACAPgEtjAAAAAAA4KcjKyvL5XKjo6NF REQgjc9kNXw1l8uLDvMQwcO5PQAAAAD6BpyFAAAAAACAn05ZWRmE8KVZJW+BEAAAAADQt75XCyOL xYJwAQAAAAD6I5ZA+/deBYU7CiHEQv3+jFEQz+unW95On9P53P1HZMXj/GfeI+0aPt81NCFeOwIf cDyWI/h2CQAAPz0BiAAAAAAAAAAAAAAAAPDVoIURAAAAAAAAAAAAAADw9fpNC+PNmzeVlZW/yaKu Xr2qra392WpWVlYHDhyAQwQAAAAA4DtpbGwkEAgFBQUQxeezamrFqywsKK6BKAAAAADwE4I+jJ+0 ZMmS4cOHQw4AAAAA+JX9vvXkSANvTSknQ7mpsydtzM8p7V7nzctczwnBJgpuiiK2D+++5Je/TH2n KGJrru7V3s7lF/p5hiuK2G7fvv0rNobFYhEIhJycnJ8zq+Btf5uODyPpLFM2X+u35mR9Q0v3OmxO +4YdlzWGr5PUXmblujM9syPP1JeFeJWFakODO2flsegwXmXhtsjrX5NVKxuvsjAnv+rnzKq8umG6 /19ylkHS5oFWM35PeVWIlV+9+8bcdQdl6Gpp80AL9103HmRi5X/G3sMPWNb54R0Ui02aujxG1WYj 0dRf2XrDkrCzzay23lfR7yw+cUl47lr+47eEe1j52dTXncudfj/y8dVncwLjrqms3Er0Xa8fvPP+ u/yOQ/T8jYGb/hDzWWcdcbDzKoLOXzfZsEdywQbllVsXHLtY39JfL3rI5XKDgoIUFRVlZGSmTJlS UVGBle/atYvwgaKi4qxZs2pqfvXGesjq/88KQFagC2hh/CQnJyc9PT3IAQAAAAC/shGjTQ6d2/A0 7/jVR7/LUElzXUO61xHGC9s5Dz9wJrjHJYgRRW9ff4o9r61h3ox/oqwm+5/MqrKmISJoUua9jecO zL+fkr0o6FT3Olt+v3biQsrFQz7lL7ZamGnYee1tbGrlTyWKiyTceYM9r6ltir+ZrqZM+U9mtSj0 TElF/dO4lcV3Ng0eoOS4YD+b044Q0lSmRm2c9vbq2oz4IE8nM5dFB8uqmAih+VOHM59GYI+8xPV4 YcFp9qbYouZOGXrnyOLiOyFXo+anvCpcu/Ny76voj2ZbDGr4cyP2WDLmYx8ITTqFXx63wJ1f7r7/ 5J3MvJM+bnnbAv6aM0WWJIGVa9CkN0208Rpm2vXQZTZtn2qftWXFOT+P++/yFx3/u58G9dtvv8XG xl69ejUzM5PH402fPp0/SU9Pr6Ghgclk3rp1KzMzc8WKFb/4Zztk9U2yApAV6OxHtDA2NTWtXLlS W1tbTk7O2dkZGwjj6em5fPlyfp0TJ05oaWnxeLzy8vKJEycqKirS6fSRI0c+fvz4S1ZRVFTk5OQk Ly/PYDAGDhz4+vVrhNDRo0ctLS0/nscsWrRs2TL+nzt37lRTU1NQUFi6dGmPd77mj5LGRlVv3bp1 +PDhenp6Pj4+bDb7C3cTITRs2LAtW7aMHz+eTCYPHjw4PT09NjZWR0eHTqcvWrSIy+UihHrZ6zt3 7owePZrBYCgoKPj6+iKE2Gz24sWLlZWVGQyGtrb2iRMn4DgGAAAAwHdiYqatrqVAIhNl5SnyirTc dyU8Xte7J2vqKLrNHj/ARKPHJUyfY3si+hr2PO540ujxg6Upkp0rJCYmGhkZMRgMJyenkpIShNCh Q4cGDhzIr1BYWEgkEvPy8mxtbRFCtra2+vr6WC/IgoKCqVOnKikpqaqqLl26tKmpqQ+zitrqbj1C m0GVHGio5ONpmZzSQ1/LuCvPfTwt9bXlxAj49csdGhpZFxPS+FPnuA2Ljn2APT927vH40XoUMrHz 7DfuZhhYhdAMV06Y8WdJWR1CKDo22Xjs5o9ZlbwnqC/OK6weN/13hNDY6Xt0Rm7AekEWFNdMmX9A YeBqZbO1i4NP921WOYXVk8cZy9FIYqL4ea7Da+qaSivrEUKaylRjXXkqmUiTJmqp0FrbOAWl7xFC ggICoiJC2CP2yjMFBtl6iBa2KJuh2kpyZCkJgoq8DEVKPCu/svdV9EeCAgKiwkLYQ1Dg4zc4HA7x y4UFBbHCB9kF8a+yTvm6DVFXokqID1JRUKfJYJNmDB9ob6gjLU7osvz9M5ytddUZJImBKvK+o8yT 3/XXCxccOHBg6dKlAwYMoFAo4eHhDx48ePPmDX+qkJCQsLCwhobGpEmTXr58+Yt/tkNW3yorAFkB vh/Rwjhv3rysrKy7d+/m5+cbGxtPnjy5vb19xowZJ0+ebG3t+M326NGjnp6eOByuvb191qxZGRkZ RUVFDg4Orq6uzc3Nn13Fhg0bGAxGXl5eWVlZbGwslUrtvX5JSUlOTs6bN29SUlIePnwYEhLSe/3C wkJxcfHk5OTU1NTU1NSjR49+4W5ik/76668tW7aUlpaamppOmTLl5s2bjx49evjw4cWLFy9duoQQ +tRep6WlOTk5zZ07t6CgICsry83NDSF04sSJhw8fpqWllZeX37t3z8TEBI5jAAAAAHw/V8/fN1Gc ri3tvDP02Ip1njgc7l/N7uw2+uHdl5Xl7xFCsYeuTZ9j26XC0aNHb9y4kZeXR6PRpk2bhhBydXUt Kiri/+YaExNjaWmpqqoaHx+PEIqPj09PT/f3929ubh43bpy2tnZGRsazZ89yc3PXrFnzk4R2/0m2 sb5i93Iej9clvxfpxfznbhMH3330rqyyHiF06OSDOW5dr9hzJO5R0umlBU/CaBQJV58DCKGpjoOK SmofPcvDKhw+9XDkEE1VJUrCiUUIoesnFmfc2RDgO7a5pc1m2h4ddXrW/Y3Pr6/NLajq26xWzLK6 kPiyrLK+mdW2/3SymaGyIoOMTSqrYiqOWkcZunrsnL32o/TNBih3CfBg3EPvyUM7H4cBERflLYOp Q1c/eJG3YrbVZ1fR71x8lq6ycuugTX+sv5DY1NrGLy+qqddcvV0/eOecw2cLauqwwtuZuZp0mW3x d2lLQtVWbVt+8kpzG/tfHLrv8o2V+mUv4/r6+sLCQv6PExoaGpKSkq9evepSraGh4caNG51/w/gF QVbfPCsAWQH0A1oYKyoqzp07t2fPHjqdjsfjg4ODi4qKXr16ZWVlJS4ufuXKFYRQYWHhvXv3PD09 EULy8vJOTk7i4uJ4PH7lypVsNvtL2rxFRERKS0szMzMRQlpaWnQ6vff6OBwuPDxcVFRUVlY2KCjo yJEjvdcnEol+fn4IIQKBYGVl9fTp0y/cTWzq7NmzTUxMCASCh4dHXl7e1q1bpaSk1NTUbGxssEV9 aq/379/v6Og4ffp0ERERMTExrEumiIgIk8lMS0tra2uj0Wi6urpwHAMAAADg+7G2NUtI+ePMjW0e 8+wHmKj/29klJMRsJw4/FXM9JTmd3cYZPsqoS4U1a9bQaDQCgRAREZGamvr27VsikTh16tSYmBiE EJfLPXr06OzZs7svGTuT3LRpk5iYGJlM3rhxY2xs7M+Q2METybceZEUEuXSf5DjWcN/Re1m5Fa1t nNDdVxubWpmNHy/XKEkUnTjeKOb0o+SUnDZ2++hhWl1mX7vElk6RIIgKb1836enLwrfvyoniItOc Bh0+9QAhxOXy/jrzqHu7JELocuIrhFBIgKMYAS8tJbZp5YS+zWqYiaqgIE7ZeoPU4FVnEl7s2zBV QKCjxZAuI5ESt/L+8aVBPuNshmrzyzGJD7OKy2tnOJt1LgzyHffkzIq4PXMmjzNWlZf57Cr6FxdT /dML3JNWem+aOOZs6utZh+KwcgN5+ilft2vLZkXPnFTd2GSz/SCzpRUhVN3Q/Ka0Ei8omLst4Nqy 2QnpWWvOJnzpoXs35ebbnAhXu/4YVENDA0JIUvJjF2kSicRkMrHnWVlZysrKSkpKcnJyNTU1mzdv /pU/1SGrb5UVgKxAZ0LfewX5+fkIIUdHR34JHo8vLy83NjZ2d3c/cuSIi4vL0aNHLSwsVFRUEEKN jY3r1q27efNmY2OjoKBgQ0NDVdXnL1C9efPmsLCwqVOnMplMZ2fnkJAQKSmpXurLyMgQiR1DTpSV laurq1tbW0VERD5VX1pamv8zKYFAKC0t/cLdxJ7Lynb8DCguLi4iIiItLc3/s7GxsZe9LigoMDc3 77IuV1fXioqKwMDAd+/ejRw5MjQ0FBoZAQAAAPD9iIjiaQxpGkOaQiNZGc9/9O6IDJX0r5bgPsd2 odfW7Mwit9nju3eBxE4CEUJSUlKSkpIlJSW6urre3t42NjYRERHJycktLS2dz7I6n4BVVVUZGXU0 WXK5XGFh4fr6ehKJ1IdxRR65G/5HwvUTi3u8hGLwUjsul+cw48/GptbJ9qaDjZQp0v8YB+09fbjn 4pjMnPLZU4d1z0pVsaP5jEwSkySKFpfX6moy5rqPsHLduWPd5PspOaxWttM4o+7rzSuqqappMLDq GLjD5fVlVjweb/zcyMEDlEruhkiIicacfzzaa8+LC6vk6VIIIQEBHIMiwaBIrPMbrzFuk4q8tP1I ff68UaeSnccYUf85eFySKCpJFJWnS1W9b3Rb8dejU8t7X0X/MkpHDXuiTpMhiuJttkczW1olCSLa DKo2g4qVn/KZTl0Scjcrz8FIR0JURFBAIGzSOFFhIS0GZYnN8PCrt3e5OXz+0L31aMuV2zf8vdWo 0v3xk0pCQgIh1Lk5o76+nt/Yoaamdv36dYRQbW3t7t277ezskpOTe/kC+N8GWX2rrABkBTr77n0Y lZSUEEIJCQlpHxQWFo4fPx4h5OnpmZSUVFpaevz4cS8vL6x+aGhoRkZGYmJidnZ2ZmYmiUTqfq2f 7shkckRExJs3b+7fv//8+fNt27YhhIhEIn8UNkKourqa/7ympgZr2kMIFRQUUCiU//MTs5fd/BKf 2mtlZeXs7Oyur5mAwJIlSx4+fJidnc1gMObOnQvHMQAAAAB+AB4PsVraykv/9X1FTc11xImil+Lu unrZdJ/Kv3p1XV0dk8mUl5dHCBkZGWlra8fFxcXExLi7u+PxeOwsqMsJmIKCAv/s69WrVyUlJX3b vBi+N2Fb5PUbJxcb6Mj1WEFURHjL6olZ9zaWPgsPXmb35l2Z5RDNzhXMTVSJ4iJxl595TRnSffb8 4vfYk9r6ZmYjS4FBRggZ6yvoaDDOXH52+NQDDxczvLBg96yU5aUVZMmvbwZjjze31vdhVsym1rzi Gt9pI6hkoqiIkM+04TyEHjzP616Ty+XlFH48hy+trL96J33ulGGfPkR5OYVV/2oV/QteUJDH47Xz uF3KhQQFBAUE2rlchJCRkixCqHPrtMAXXNkg/OrtbfF3E/29DeTp/TQcEomkpKT07Nkz7M/c3Fwm kzlgwICOiISE6HQ6nU7X0dHx9/dPT0//lQdvQlbfKisAWYHOvnsLo6ysrLOz84IFC4qKirATx/Pn z7e1tSGE1NXVzc3NFyxY8P79+4kTJ/LPLJWUlCgUCkIoJiampuaLTmEvXLhQWFiIEJKRkRETExMS EsJOTN+9e5eTk4MQevXqFfY7DP/kY+3atSwWq7y8PCwszMPD4/vt5pf41F7PnTv34sWLp06damtr a25uvnv3LkLo3r17aWlp7e3tRCKRRCJhOwsAAAAA8D3sDjvxLqOoob7pzcvcVb675RVpWrpKCKGX qe8URWyLCyqwM6tWVltbKxshxG7jtLLauNyuvxBHnQw6m7SdQuvhQnhbtmypqqpqaWkJDAw0NTXV 0dHByufMmfP7779fvXp11qxZHc0reDyZTM7KysL+tLe3b21t3bBhA5PJ5PF4xcXF2LjpvrJ268Wo Y/fijy5UkpdmtbJb2zhYeerLQrzKwoLiGoRQUWlt2pvi+oaWtDfF7n6HBhupjLXsOhjlVKT3zTPL 6BSJ7qsI2xNfWdPQwmKv2nx+oKGSjkZHY5C32/Dd0TevJL6aPa2j9Q0vLCgtJZaZW4H96WAzoLWN s377JWYji8fjFZfV9mFWJKKongZj/+kHtcxmNqf9YNzD5pY2Q215hND+0w+evCyoZTYXlL5fsfV8 ZU3DaPOPLbDRcQ81lKmWgz4O1c/IrfjrwpOC0ve1zOakR1mh+xLGWej2vop+J/peSn51bX0LKyWv eEnsZRs9DbIYASF0NvX165KK+hZWTmWN9+GzEqIiFlqqCCHbAVoKZMng8zda2Oy8qve/Jz1wNu3o BMpub2exOe08HpfHY7E5bR9urr3mbELU7Sfxy2YpyUix2JxWDqeffl7NnTt3z549GRkZdXV1q1ev Hjp0qJ6eHn8qh8PhcDjV1dVRUVGioqL83tO/JsjqW2UFICvA9yMap/bv379ly5Zx48ZVVVWRyWQL CwsHh45e+l5eXvPnz/f29iYQOu5otnr1am9vb3NzcwkJibFjx6qqqn7JKlJTUwMCAurq6ggEwtix YwMCAhBCampqmzdvdnJyotFoysrKdnYfryciLy+voqKip6fX2trq4uKybt2677qbn/WpvTY2Nj57 9uzGjRsXL14sLCzs5ORkaWlZUVGxZMmS4uJiYWFhY2Pjffv2wXEMAAAAgO/k9YucI1FXat8zpWVI 5hYGYX8sFMYLIYSKCyuUVBkMORmEUElh5VCtmVh9d/u1CKG9RwMdXUd2Xo6a5icbd6ZPn25jY1NR UTF48ODY2Fj+0GBXV9fAwMBBgwbx2xwRQqGhoQsXLmxqavL19V2/fn1CQkJQUJCRkVFzc7OcnJy7 u7u9vX2fBMVqZUdE3kAIGdqEYiWCggItOXsQQoUl71WVKHIMKYRQeRVzxtKYgqL3ZJLYJHuTzauc ug+F1lSlfWot7i5mVlN2VVQxzYxVTkV68+ed6jgoIPTcYGMVHQ0Gv/LmVU4L1pxsbm5dMGPkhhUO iScXrwm/OMAqpKm5VY4h5T7Dr6+yQgjF7ZodsONvPfuw1jaOhjIldsdMbVUaQqi6ttEr8FhJRR1R TGSAluyFvXMHaHX0Bm3ncqPPPloxy+ofX2YEBY79nRIQcbGltU2WSpo0xijId3zvq+h3Ljx7E3z+ Rn0LS5YkYW+ks96xoyPwq+LygNPx5cwGshjBXE0xYfls7CbRBGHhK0tnLjr+N33JZmlxgquZ4aaJ Y7BZfI5cOPKgo3uRxIL1WgxKesgyFpsTce0uQmjAul0dh66AACsqpD9mtXz58traWhsbm5aWltGj R584cYI/6c2bN9gQTklJSX19/XPnzmHdO35ZkNU3yQpAVqAz3JgxY/7tPPPmzeN3OexRUlLSyJEj IVwAAAAAgP6oWuD2Z+sE+u0xHzHA2W30162Cwh31JdUMDAxWr17t7u7+02YlWBH92ToL1sRamGm4 TRz8XbdEd9TGtYvGe0wy/8L67fQ5Pzqr7P/O7+LtGj7fdflCx36DDyI+jsdyCAEA8B+QnJysqqrK 72DX8/8v7e1cLvft27fW1ta9VLtw4cKUDRE/2w7CAFsAAAAAAPCvhe9d/L1Xcfr06YaGhsmTJ/f3 rP4Mc/veqzj199PGRtaUCQPhyAQAAABAn+hnLYwVFRWWlpZdCh0dHSMiIuC1BAAAAAD4z1BRUeFy ufv27ftlb2D65ZQGr+FyeVHb3EXw0HsAAAAAAH2jn52F0On0zMxMeNkAAAAAAP7b8vPzIYQvVJgS BiEAAAAAoG99rxZGUVFRCBcAAAAAoD/CI/x3XT4NWf13whIW7q8b/uNP1/ttVn2QnhB0R+0UBny1 BACA/kAAIgAAAAAAAAAAAAAAAHw1aGEEAAAAAAAAAAAAAAB8vf7dwhgUFDRt2rTu5SNGjNi3bx+8 ugAAAAAAP7PGxkYcDgeXXPyirJpacfLz84tqIAoAAAAA/IR+RAujg4MDrhMbG5vvvcbly5dbWFjA qwsAAAAA8H/aHXZimPYMZTE7HYqzl1NwXnZJ9zrpaTlutoH69El0nPWD22n88hdPM+k4axOlae3t XH7hfLdQHA4XHh7+FRvDYrFwOFx2dvbPmdWa8AuG1pvE1BfKm67yWXW8vqGlex02pz1420UV8zUE tYWWLttfZ5Ri5U/TCnDy85UGB3bOym3BQZz8/PA/rn1NVq1snPz87PzKnzOr8mrm1GWHqEMDJUxX WHrsfPKyACu/cvv1QJetpEH+EqYrhk7dcT35bec9Coi4oDAySNRwqY5tyL2nOVi5gcNmnM5C/uPp 60L+LPdTcyw9dhKMlkmbBXitOtJP34MLj13AzVrFf2y/dhcrj3v6qnO5w67DWHl1Y1PncqJPMH9R j3MLLbfsk/RdR1m0cWrk8fL6ht5X0e9wudzAwEAajSYuLu7k5FReXo6Vb9++nf9tlEajeXh4VFdX /+Kf7ZDV/58VgKxAFz+oD6OPj0/LB/Hx8d97dS4uLvr6+vDqAgAAAAD8nyysTY78HZpWcioxdZ8M lTTLZX33Oni8sMMky5jzm3pcgjiRcPPaE+x5bQ0z8cpjdXX1/2RWldXM3zZMyX0YdvHwgntP3i1Y faJ7ndBdV4+ff3L5r4U16b9ZmmuOm767samVP5UoLnrtdjr2vKa26UrSK3Vl6n8yqwUbTxWX1724 EFjxYIvZABW7eX+yOe0IIU0V2sFQ9+zrG3JubJjhbO7oG1VWVY/NMm354dtP3p3ZPafodujRbV6y NEn+0o5s9WpJ24k9BuorYoWP0/LHzdnraGWYeW1d2sXV7hMG99+4vC3NWvZvxh7Lxo7gl2sxKPzy 84u8Os+Svz0QK6/5o+M9287lOuyMMVRklO0Keh26vKqhaf5f5z67iv5l27Ztx44dS0xMzM/P5/F4 U6ZM4U/S19dns9ltbW3JyckZGRlLliz5xT/bIatvkhWArEBnP6iFUVBQUPQDYWFhhFB+fr6Liwud TpeTk/Pz82tqampvb1dQUDh79ix/rjlz5nh5eSGEbt++PWTIEDKZTKFQXFxcSkpKel8df5T05cuX VVRUNm/ePHjwYHV19Tlz5rDZ7O71m5qali1bpqKiIiMjY29vzx+qM2jQoJCQECsrKwKBYGho+Pr1 62PHjqmqqpJIJB8fHy6XixAqKyuzs7Oj0WgkEmno0KEPHz7kL/bWrVvDhw8nk8lUKtXb2xshxGaz fX19GQyGlJSUiorK0aNH4RAEAAAAwM/M1FxXQ1tRiiwhq0BVUKLnZBXzeLwudTR1ldy97QxNNXtc gudc+2MHrmLPTx+5bm1nRqFQOle4fv26jo4OmUy2tbUtLi5GCB04cMDAwIBfoaCgQEhIKDc319ra GiFkbW2toaGB9YLsfkqNO0kwAAAgAElEQVTZh1kd3O5lY6HLoEkOMlJeMGPU/Sc99LU8czl1wYyR BjpyYgT8ppWOzMaW8/HP+VPnuo84cPwe9vxI3EM7KwOKNPEfWd15o2O5jqy7zNZjT3FZLULowPF7 BlYbP2ZVXCOk5JtbUG3tuhMhZO26U2NYENYLMr+oxsV7H93IX84kwG9NbN9mlV1Q5WprKk+XEhPF +7iNqKlrKqmoQwhpqdBM9BSo0kSajIS2Kq21jZNf8h4hlPws9+qd9Lg93kONVanSxMEDlDWUPra9 CgsJiooIYw8cDocVBu2+5Olk5j/bWkmWrChLHjdCt/++DQUFcKLCQthDUODjNzgc+lguLCjYeRYR oY5ykQ+3pa5vYVU3Ns0daS4ugmeQJKYPMU4rLPvsKvqXffv2rVixwtDQkEql7tix4/79++np6fyp QkJCwsLCmpqaU6ZMefHixS/+2Q5ZfausAGQF+PrmP4/m5ubRo0fr6Ojk5eW9fv06Jydn5cqVgoKC Xl5ehw8f5tc5c+bMrFmzsA+4Xbt2VVZWvnv3DiHk4+Pz5esqKCgQFxdPSUl5/fp1SkpKTExM9zqz Zs3KyMh49OhRWVmZqampo6Nje3s7NunQoUMRERHv378fNGiQk5NTYmLis2fPnj17dv78+QsXLiCE 2tvbvb298/LyqqqqHB0dnZ2dm5ubEULPnz+3tbX18fEpLy8vKCjw8PBACB09ejQ5Ofnt27d1dXWP Hz8eOHAgHIIAAAAA+MldPnvXgDFZlWi/feNfARtn8ltwvtAkd5sHt19UlNUghI4dvOo5175LhZiY mDt37pSWltLp9EmTJiGE3NzcCgsL+T/cRkdHjxo1Sk1NLSkpCSGUlJSUnZ0dGBjY4ynlTxLavcfv TAwUu5fzeLwuAT5/XcR/7u5sfvtBVlllPULo4In7c927XvYn5vSDO2f9S59vo1MkJ3nvQwi5TTQr LHn/MDW3I6vY5FFDtdSUKUmnlyGEkk4vy34QGrhwfHNL2+gpO3Q0GHn/Y+/M46Hq/jh+bDPGPpaZ se/ZQrK1UbYUSSlkSRRSqZRIRRtJIj09lSUiLUpKq1JKtjZRKaHsS/YwtsEsvz+uZx6PreXXQp33 6/4xvvd7z/Jx7p1zv3OWp4Fv0/eUVTX/Wq281hhevf/qY1NHD6k/IiFbW1VCTJAXOVXf3EGYvYNb Y5v+qmNmesraKhIAgPRn76dI4IKi7vFqeYvp+XkEJvWQ+ump+YReF5nrO9vmSOzVp4iFQqFm5pay s6FUzQ9ya2ybaR2akfth8t6DyfmFIlsD1fb85Xf1XnffvxWv/tQu5X1IfkeIY3RiVWvb0Et0D0ZI egWZhJ3O/lCJWHjZ2VznaZ/KeNbd19/Q0Xnh6SsrLZXPZjGJ6OjoqKqq0tQcHKwqKyvLxcX1+vXr YW6dnZ2pqal0tz8TqNV31woCtYKAnxZhjImJ4f+Hmzdv3rhxAwAQGBjIxsbGy8t74MCBc+fOAQCc nJxSU1Pr6+sBAElJSfz8/PPmzQMAzJkzZ8aMGSwsLFgsdt++fQ8fPvzyrDk4OJBx3RgMxsjI6Pnz 58McGhoaLl++HB4eTiAQUCjUvn37qqur6beBi4uLuro6BoNZtWpVeXl5aGgoFouVlpaeP39+bm4u AEBERMTCwoKdnR2FQu3YsWNgYODt27cAgPDw8KVLl65cuRKNRrOxsSEVQaPRRCLx1atX/f39eDxe UVERNkEIBAKBQCATHCPTGQ9eRl57dGSV2+KxBiqOAycXm6mFTsLpu8+y3w70k+foqw1z2L17Nx6P x2AwYWFhubm579694+DgsLW1jYmJAQBQqdS4uDgXF5eRKY/VpfzlRJ3LepBdHLpnlNlh5saqJ888 Kilr7Osn7ztyq6u7j9j173KNXJysFiZqpy/mZD8v7e+n6M+WG67VlkV4AS4MK0vYPqvc11Xv3tdz sKNtl2jFJGQDAKhUWlzi45FxSQDAjXuvAQCBPkvYMCheHvYD281/rVazp0sxMTIK6+5in7Y18W7+ KX9bRsbBwCuej+vV9R1PL23bvWGh0Wx5xN7S1lVYWo9iYap+5H//tPvdrCKfkOuDmmxYmHzc9eGZ TauXzdwUcPnvcxkAgM7uvv4BSsKtvNOBdg3ZB5cYqpi6htfUt03GG3CZuvIV95WPfNYGWBgnvShw OHUJsU8VJiRtsL+3zTl2jWVLV7feoShiLwkAwIZCnXNdcX3TqhubHVVEBA2Co/IqB2eAWWmq3Cko 4XDzE/QIoFJpvmb642cxuSASiQAAbm5uuoWHhwcxAgBKSkoIBAIej+fl5W1paTl06NCf/FSHWn0v rSBQK8hQmH9ONitWrPD390c+8/HxIQMS5eXlEQuVSkWhUB0dHbKystra2mfPnvX29o6NjXVyckJ+ 4y0pKfH19X358mVfXx8AoKenp7u7m52d/Uuy5uPjo/9QjMFgRs6wrqioAAAsWLCAbkGj0fQVSYWE hJAP7OzsaDSaj4+P/mdnZycAoKura8eOHWlpaV1dXUxMTEQisbm5GQBQWVk5c+bMYXnZ2Ng0NDRs 27atpKRET0/v0KFDMMgIgUAgEAhkgoNmReEF+fCCfPw4rI7S6vyqC3wCPF+VwkpXUzfbAx+Kq+2c TUYOgZSUlEQ+YLFYLi6u2tpaRUXFtWvX6urqHj16NCsrq7e3d+nSpSOTraioGLVLOfT15udzIu7R gb9SHl7eOuoSins9zahU2kL7Y51dJCszDa1pEsPmQbva69huiCkubXC2nTOKVmKDE8yx3GxcHKy1 9W2KUwTXrtTVtTh8dJ911rMPvaSBpQunjaJVdUtTS6e87u5/tKL9Qq1oNJrR6uNaKuJNj4M42dGn rzzRsQt7e3OXCIEHAMDIyEDg5yLwc+3baCqhv1tShG/RvKmc7KxMTIxBnuasaBY5SbzHKr3AyNRj vpYAAKuF05Fkp0jgahva4q4+3Wg/lw2DYmRkWL1shrqSGABgu4tRWNzD+4+LVy+bOeluQD2FwXVL ZXB8HKwoJJLIhWGVFxSQFxRA7EkbVmI37MkoqTCbpsCGYrGbORjHD7Jc+Ky8+sLTl+oSwmVNrQuP nD64fMF6/Zk9/QOeF28ZBJ96vtudgYFhrCwml1BcXFwAgI6ODrqlvb0dMQIApKWlHz16BABoa2sL DQ01NDR88eIFGo3+M5/qUKvvpRUEagUZyk8aw8jOzi7yDxgMRlxcXFRUtPgf3r9/39LSgvRvnJyc 4uLiKioqsrKyVq1ahVxuZ2cnIyNTUFBQU1ODbBQzcgGgb0ZcXBwAkJ6eTi9PY2OjiYnJF16+d+/e oqKizMzMmpqayspKHh4epGwSEhLInO7/yM3I6OnpmZeXV1tbKygo6OjoCJsgBAKBQCCQyQKNRiP1 9tXXffW+ouozFNk5MNcTH61wNB55lr4EdltbG5FIFBERAQCoqakpKChcunQpJibGwcEBhUIhXalh vbixupS/isBjd4KO301P8lSWFx7VgRXNEuy7rPzJgeY3oXs9FxW+r5838z8DFWdMl+JgQyfeyHO0 GiUWVlkzKH5bRw+xiyQiiAUAqE0VVZAVvHTjRczFHIflM1AszAAA+pDAQa1E+ESFsMWZ+5Hjfbb/ L9SK2EUqr2nZYKsrwMvBimZZb6tLo9Fy8stHelJptNKqZgDANAURAMDQkCvjaLP1UShmCpUKAECx MClKCw4L0Q7TZDKCYmKi0WgU6vBXIWYmRiZGRqTuwy9hZkb839Q20Gi0rcY6GBQLHwfbZqM5Lypr mzq7vzCLiQ83N7e4uHheXh7yZ1lZGZFIVFVVHZSImZlAIBAIBAUFBR8fn7dv3/7JkzehVt9LKwjU CvKf79lfkuvixYv7+vp8fX2JRCKNRqupqbl58yZyysrKqrq6esOGDfr6+mJiYvTupqKiIhsbG5lM Dg0N/b6FERISWr58uYuLS3V1NZJXUlJSf/+XLj7S1tYmLi4uICAAAIiJiWlpGez2ubm5Xb169cKF C/39/T09PcivQBkZGS9fvqRQKBwcHDw8PMzMzLAJQiAQCAQCmcgc8T/7oaia2NFd+LrM0/WIsBhO TlECAPDqRQmewaCmsgEAQKPR+kj9fX0DAID+/oE+Uj91RHgiJmnvjcyjAnjsyCz8/f2bmpp6e3u3 bdumoaGhoDC4I4erq2tYWNjNmzeRHfMAACgUipeXt6Sk5LNdyl+CT+DV8PiMewmbxUV4SX0Dff1k xP7idRWD8NrKmlYAQHXdp1eFNR2dva8Ka6zdTmlNkzCeN3xGS9KptZnJ2/ACo4z78D96u6mls5c0 sG1/koaquIIsYVArO52wU2k37xU42w7uAoxiYeblYS8paxzUar5qXz/Z99B1YieJRqPVfGz7hVpx c2KUZAQjLma3EXsGyJSoxJye3n5VeWEAQMTF7GevK9uIPZV1rR6BSY0tRP0ZUwAAJrpKInieXWE3 e0kD5TUtx84+WmY8DQBQWdd6La2gvrnjU0fP9QcFITFp9CGN6211YpKeFJTU9Q9QQmMf9PYNGM2S n4z34KmM5xXNnzp6Sc/Lazaev26kJItlxwAAkl68eVPb0NFLKm1qdYpO5GRF68pJAgCyP1Rmf6hs 7epp6OgMuZv58F3pMo2pAAB1CWFmJsZjaTn9ZEpHL+n4g8eivDw4TvZxsph0uLm5HTlyBFn13svL a/bs2UpKSvSzZDKZTCY3NzefPHmSlZWVPnr6zwRq9b20gkCtIHR+TYSLg4MjPT3dx8dHXl6+u7tb WFjYwcHBzMwMAMDJybls2bL4+PiEhAS6f0RExJYtW06ePIlCoWxsbEbdreX/ITY21t/fX09Pr6mp iZeXd+7cuebm5l94rZ+f36pVq9TU1Dg5ORcsWCAlJYXYp0+ffvPmTT8/v3Xr1qFQqKVLl86bN6+h oWH9+vU1NTUoFEpNTQ1ZXQgCgUAgEAhkwvLmZWlc+M1PrR18/NwzdFWCwz1YUMwAgNqqRnEpQYIw P/JZQ9IO8bc23g4AiEzwXbJCb2g60lNExspi5cqVurq6DQ0N2traSUlJ9HFnNjY2np6eWlpa9Jgj ACAoKGjt2rXd3d3u7u7+/v5jdSl/PqS+gUMnUgEAivP2IhYmJkZydTgAoKq2VUqcX1iQBwDQ0Ey0 d4+prGnF8rBZLlIP2mkxcir0FCn8mFotm6Frcbihiag9XTIpau2/Wi3R9Nx/WUtNQkFW8F+tdi5d 632uu6ff3Wmev7d5+mVPn8Cr8rq7u3v7hAlYh9WbfpVWAIDkE67bDl2Vnb+vr58sKyGQeHSNvBQe ANDS1mXnFVfb0M7BhlaRE74VuU5FThgAgGFluRu9YcP+S3wzvHm52VeYqAd4LAIA9A9Qgk7dKypr GCBTJIT5droZb1k1uLbgOhudNmLPQpeTHZ29KnLCKVHrhfE8k/EeTM5/u+vK3Y5ekiA3l9k0hX1L jRB7QU2958VbDR2dWDbMDGmxNC8XXnY2AEATscvv6r2Klk8oJiZFYXzyJgedKZIAAFFenuubVu1O vu939R4zE6OmpOjtLYNrUo2VxaTD29u7ra1NV1e3p6fHwMDg8uXL9FOFhYUsLCwAAC4uLmVl5Vu3 biFjRP5YoFbfRSsI1AoyFAYjo6/+/nB1dV2yZMk4Dg8ePDA2NobiQiAQCAQCgUxGmsDnd9XbtjZs pq7KMjuDb0gfB/S/0FNWVtbPz8/BwWHiivUx6rMua7ef09WWtbPQ/qEFkZ3t57fF1GH5jC+9QMj1 Z2tVcuL3uUnkNvzY9OOC4YPoXxy9oQYQCOQ34MGDB5KSkhjMeIPEKRQKlUotKioyMBivi3Xt2jXL vYcnWgXhLF0IBAKBQCAQyFcTErnlR2eRkJDQ2dlpbW092bWKPGT/w7W6ltvZTbJerAFbJgQCgUAg kF8CjDBCIBAIBAKBQCYcgoKCVCo1Jibmj93A9Cu0UvOiUmkxoQ5oFOzbQyAQCAQC+TXAXggEAoFA IBAIZMJRX18PRfhSrV4ehiJAIBAIBAL5tfyoCCOJRILiQiAQCAQCgUxGehmZvm+CeOp/liAkgd+n o8jEPXF/sKcw2Y7fX//ZWg0M/Db/d8oPVo+ZTIYPIjpk+GoJgUAgkwFGKAEEAoFAIBAIBAKBQCAQ CAQC+WZghBECgUAgEAgEAoFAIBAIBAKBfDu/W4QxJSVFTk5u4pdTXV398uXLX+j88OFDcXFx2Fgh EAgEAoH8ZnR1dWEwmKqqKijF57Xq7kNxrKmqaoFSQCAQCAQCmYD86WMY7927Jy0tPcELKScn5+/v DxsrBAKBQCCQn0+w36kF6qvleYy1JZbvdD/S2dE9qlt9bZO7/X4V/CIF7ALzOes62joBAAV5JRLo eTOlrSgUCt3TwcEBg8GEhIR8Q2FIJBIGgykrK5uYWvntvTJdew+3wDpxWc8Nm+M7iL0jfa5ee4Hi WEM/liz/C7Hn5VeiONZIyXtRKFS6s71jJIpjTXBoyjdpNTCRtWpo6bTddkZI15dX20d/1d+5b6oR e0rmO22rUP6ZO3i1fXTsjt5/XILYTyZkoZS3DD2cfROQU88LqvRX/c03w0dQx9d225mGlk7ELqjj O+ySqo+fJuM9uOnCTRaXXfTjSGoWYr+S93ao3fzveMTe0tUz1M7jvo+elHX4BUnvYPZ1u8W9Dm26 cLOnf3BlzKCUR4q+YVzr9xK2HLA4fq6sqXWSPq+oVKqvr6+oqCgfH5+lpWVjYyNiP3r0KOYfREVF nZycWlsnax2hVhNHKwjUCjIMOEt6EiAsLOzg4AB1gEAgEAgE8vNpbW73PbwhqyTh1JUDudkFvpvC RvoQ27uW621Eo1mSM09mlSRs27eGmeXf/U/YOTD37t1DPn/69Onu3btSUlK/pVZNzZ2Hg6xL3gZd vbQxO+fDRo+zo7rJyuCJLRHIcTnBfegpDnZ06v23g8p/6rpzt0BKEvdbarUx4HJdY8eLJK/ajP2a ymKL10cNkCkAAFlxgch9K4pSdhXf8V1prmWxMbq+mQgAWGs9m/jiMHJUpO1BsTCtMJ0OAKBQqUvc TynLCVWn73+ZvL2lrWv9/kQki8oHe+mXbLDVmTlNUlyId5LKtVpHo/PkPuTYbDT737aE56fbk9bb Db2kNMgLsTce3UU3uszVerTdtS50Z4qHY25F7c4rqYhdX0H6mvvKqpDtz3w38HOyLz95fpIKdeTI kYSEhJSUlJKSEhqNZmv772ZHioqKnZ2dRCIxPT29pKTE09PzD3+2Q62+i1YQqBVkKD8jwtjd3e3l 5SUnJyckJLR06VJkIsyjR49wONy7d+8AAL29vZqamrt37x7LGQDQ2dnp7e0tLy8vICCgrq7+9OnT cXIMCwuTkpISERHx8PBAdrV2dHT08PCgO5w/f15eXr66unrt2rWNjY1KSkpKSkoZGRkAgKysLD09 PQKBoKSkdPLkyXFyGbVIZDI5ICBAXl6eQCAsWLDgzZs3iPPAwIC3t7eoqKikpOShQ4eGpvPZHIfO kp41a5avr6+ZmZm6urq6unpWVtaoZRs1TWQK+YkTJyQkJHA43K5du1pbW62srPj4+NTU1HJzcxG3 iIgINTU1AQEBGRmZ7du39/f3j1PfjIyMmTNnEggEQUFBPT09KpUKbyoIBAKBQH4nDkV4zdFXF8Dz qqjLrXQzz815M9InPiKZjR0THLVdWk6MH4fVMdBg58DQz9qsWRQbG0vvgxkbG/Px8Q29PC0tTVVV lUAgmJub19XVAQBOnz6trq5Od6iurubg4KioqFi4cCEAYOHChUpKSsgoyKqqKmtrazExMUlJSQ8P j+7u7l+oVeQJRwM9RQKeW326hJurXs6TD6O6MTAwsLKyIAcLy3+27V7jpBsTl4l8Pnfh8QJjFX5+ jqEO9x8UTlXbhRPeaLY0rK6uDQAQE5s5TdNviFatGG6XiopmY9OQiaxVWXXLcuNpQjhuNlaUq9Xs 1vbuj00dAABZcYFpCsICWA4cL8cUCVxfPxkZeMjEyMiKZkaOhNv5IgSswYwpAICOTlJLW/eaZTPZ MSgCP+cKE/WCkjokCzRq0B8AkHA7z8Vy5uS9DZkYGVlZmJGDiZFxSFsCdDsL03/aEpqZCbGjmf8N 9xsqyojz8fCwsUrwY/k52N43Dk6615IUnULgx7JhRLBcYrzcHxpbaTTaZBTq1KlTHh4eysrK/Pz8 QUFBjx8/Rt43EZiZmVlYWGRkZJYtW1ZQUPCHP9uhVt9LKwjUCkLnZ0QYXV1d379/n5mZWVlZOW3a tOXLl1MolHnz5nl4eNjZ2XV3d2/ZsoWHh2fPnj1jOQMAXFxcXr16lZqa2tTUdOnSJRxuzJ9z6+rq ysrK3r17l5ub++TJE2R+sbOz88WLF3t7B+eqxMbGOjo6iomJRUZG4vH4wsLCwsLCuXPnvn37dsmS JR4eHnV1dVeuXDl69OiVK1fGymjUIh0+fDghIeH69etVVVVz5swxNTXt6OgAAAQHB6elpT1+/Li4 uLi5ufn9+/dIIl+VI8LNmzdjYmLy8vK8vLycnJxGfv2Pk+bHjx9ramrevn2blpYWHh5uZmbm7u5e V1dnamq6fv16xAePxyclJTU1NaWkpNy5cyc8PHyc+jo7O69du7ahoaGmpiYwMJCBgQHeVBAIBAKB /K48z36jNE1mpP3Jo5eyCuJO5tuV+BbqK688H3Vj6NklNoaZmZkNDQ1IH2z16tXDLj979uz9+/cr KipwONyKFSsAAFZWVjU1Nc+ePUMc4uLidHV1JSUl79y5AwC4c+dOYWHhtm3benp6jI2N5eTkiouL 8/Pzy8vLd+7cOUG0ys75ME119HW0a2o/TZm6fararjVrY6qr/zP90MZ6RmZmcX1DBwDgdFzWGifd YdfGn895kLq9qjQUh+OysjsBALC20q6p+fT02eBs6Nj4rLk6cpKSAqm3t01krTyd9K+lFdQ3dfSQ +qMSc7RUxEUJWORUfTNRdN5u/pk75q85YTpPSUv5PzLSaLTopCfOy2ci3U5ebjbn5TNjrjzp7u1v aOm8mJJnaaw2LK+k1JcAgOUj7JOI6/mFEl6HNPYf33Mtrbuv/9+21NohuyNEyS9sTeyVqtb2oZfo BZ+S8Qkx++tMTul/1jn1SkwR2hrIv8n/cVnVNmMduv1qfqGI50Ee933+Nx/uMTeYjL36jo6O6upq +o8TMjIyXFxc9AEfdDo7O+/fvz/0N4w/EKjVd9cKArWCgJ8QYWxsbLx69eqxY8fweDwKhfLz86up qUEamY+Pj4iIiL6+fkpKytmzZ5mYmMZyrq+vv379+vHjx8XFxRkYGGRkZMaZXMPAwBAUFMTKyioo KOjr6xsfHw8AmDNnDoFAuHbtGgCgtLT02bNno847joyMtLCwMDc3Z2JikpeX37BhQ0JCwqi5jFWk +Ph4b29vOTk5NBq9c+dOFhaW27dvI11nZAwjGo329/dnYWH52hzpODk5IdE9U1PTurq6+vr6L68F CwtLQEAABweHioqKpqbmjBkzdHV1WVlZV69eXVhYiIz3XLp0qbS0NAMDw5QpU9zc3NLT08epLxqN Likpqa2tZWZmnjlzJowwQiAQCATyu3Ih+ubj9Dzf4A0jT31q7bh7LcvSYWF+3fV9Rzfv9zp+91om /SwHJ7u5ufmZM2ceP37c398/b968YZfv3LkTh8NhMJjDhw/n5eUVFRVxcHBYW1vHxcUBAKhU6tmz Z0fGJQEASC9r//79bGxsWCx23759n+1H/RyiT2ekP3p3+KDVyFNKisIXz627c8MzOmJ1a2uXoUkw sfPf5Rq5ODFLzNXj4rNynnzo7yfrzZUfdvkun8V4HBcGgwo5ZPMir7Ko+CMHO3qFtXZsfBYAgEql nTmXMzIuOQG1mqUmycTEIG6wl0dz++XUVxF7rRkZB7uReD7O3CSv7PMevm7GhjPl6HaEtCfvaxva Vi3VoluWL5h2N6sIq7VdTG83lUrb4Wo0LK+oxMcrzTWRwYyTEYvpSonr7R54Oe9fYnQl763T6STE PlUYf2mdzd0tTjGOy1q6ug1Doom9fQAANhTLGWerZPeV1zauVBYhzA+Nya+qo6fmZ2bw3G/DlQ32 yzWUJfmxdLuJslzubvcHXs6uc7XUxIQmo1CdnZ0AAC4uLrqFm5ubSCQin9+/fy8uLi4mJiYkJNTa 2nrgwIE/+XkOtfpeWkGgVpCh/PAv2srKSgDA4sWL6RYUCoX8iM3IyOjm5rZ8+XJvb28CgTCOM4lE QqJaX5IjHx8fB8fgdBJxcfGWlpa+vj40Gr1mzZrY2FgbG5vY2FhjY2MhIaFRS/vy5UtVVVXkz76+ PjExsVFzqaqqGrVIdXV19OgnIyOjuLh4bW0tAODjx4/0LWUwGIygoODX5ji0gvR06LfxF9ZCQECA +Z+JEuzs7HQR2NnZaTRad3c3KytrampqWFhYRUUFjUbr6elBJmiPVd/ExMSDBw9qa2tjsVhHR8dt 27bBmwoCgUAgkN+P+Ijk4wfPXUgNE5capQfFwck2fYaimZU+AEDHQMPIbM69G9kLlvwb51qzZs2q VatKSkqcnJxG/h4pISGBfODh4eHi4qqrq1NQUHB2djY0NDx8+HBOTk5vb+/Q/uHQPk9zczO9z0Ol UllYWDo6Ori5uX+hVuFRD4OCb91L8Rp1CUW5KYJyUwQBANJSuIvn1uNENmZlvTc1UaU7ODvNXbk6 suR9w2pH3ZFaSUrwIx+wPGxcnKy1dW0K8kIuq+fpzw8KDbbJznlP6u03N5s+wbWi0WgLXMI1lcXq Mv052Vjjkp/pORx7dW27MJ4HAMDIyEDg5yTwc+7esEDGeL+EMK/pXCX6tZGXcpYaqQpgB3v75TUt Zm5RAR6L3FbM7unt9w65bux88nHCFrp0b95/fPq6MjrAZvLeffPkB18upHF8HKwow5AYYm8fFwYt RxCQIwgg9ktutkRaRFAAACAASURBVAKb/TPfVyxSlWdDsdhqD/6jA5cZP6+oSXj2erq4MGLhwqC5 MGgRLHdzZ9eKyIvPfAenMbGyMAtycwpyc+I4OVR2/1V2yEuAk31yCcXJyQkAGBrO6OjooAc7pKSk kAVh29ra/vrrLxMTk5ycHDQa/Wc+0qFW30srCNQKMpQfHmFEYlupqalIDHEora2tmzdvdnFxOXny 5PLly5WVlcdyrq+vp9FoZWVlsrKyn82xtbW1q6sLCTJWVVXx8/MjT0N7e/s9e/YUFxefP3/+xIkT iDMjI+Ow0kpISPz999+fzUVcXHzUIgkLC1dWVuro6CBdt6qqKhEREQCAkJAQElcFAFAolJaWlq/N 8as0/+Y029raLC0tL1y4YGJiwsjIGB4efvbs2XHqq6ioePbsWRqN9vz5c3Nz86lTpy5YsADeVxAI BAKB/E6cOHTuXOT1i/ePSk0RHdVBUUXmXUHpUAvDf7tYWlpaHBwcV65cCQoKGnl5VVXVlClTAADt 7e1EIlFYWBgAoKqqKicnl5SUlJqaamdnh0KhRu25iYiIvH79euJoFXT4dmR0+v073lNkCZ/viDMz MTExDt08GgCgrSXFwc6adDX3UOAoQyArq1qQlNvae4idJBFhLABgmqqYvLzQ5aTnd++9sbedhUIx AwCGDf2bUFoRu/sqaltPH7BFAoVuK2b7/nXr8csKywXDJzJTqbSy6hb6nx+bOlIyCu9Gr6db3n6o p9FoHg5zGRgYMGiWjXZztaxCmj514fk4EYfISzlzNWWmSPwmG+agmJhoNBqFNnzpc2YmRiZGRspo S6KjmJkp1FEWVaTRwKh7RtNotN6BgY/txEkXYeTm5hYTE8vPz581axYAoLy8nEgkKisr/3O7MePx eAAAHo/ftm3b1KlT37x5o6Gh8Wc+1aFW30srCNQKMpQfPktaUFBw6dKl69evr6mpQTqOycnJ/f39 NBpt9erVs2fPPnbsmLe3t52dXWdn51jOgoKCZmZmGzdurKmpodFopaWl5eXlY+VIo9F27dpFIpEa GhoCAwPt7e0ROxaLNTc3d3R0ZGJiokfBCARCa2vrp0+fkD9dXV0vXbqEZEomkwsLC588eTJWvUYt 0sqVK0NCQkpLS/v7+4OCgvr7+01MTAAA9vb2x48fR6YhR0VF0eP6X57jl/P/pNnV1UUmk1VVVRkZ Gdva2ujrso9aXzKZfP78+fb2dgYGBhwOx8TExMzMDG8qCAQCgUB+Jw7tijoXef1sSoiwGL6P1N/f N4DYC/JKJNDzaqsaAAA2axa9yi1OuZpBJlOeZr5Ku5WzcOnwiboXLlxIS0sbdSntgwcPNjc39/b2 +vj4TJ8+XV5+cGrwmjVr/v7775SUFCcnp8FYCQqFxWLp61mbmpr29fXt3buXSCTSaLTa2lpkLvCv YtfupMjo9Ds3PMVE+Uikgb4+MmLPy69EcaypqmoBAFy99uJtYW0HsbesvMnZ7TQnB+ucOVOGpXPp /PqHqdvxuFHGfQQG3WxqJvb29m/feUl9uoS83OC0GGcn3b+O37t95/VqR91/tGKesFpxc7AqyhCi Eh+3EXsGyJTopCc9vf0qcsIAgKjEx88LqtqIPVUfP3keSm5q7dTT/vfn7ZikJzLiAroa0nTLdEVR ZmbG4+ez+gcoHV2kkwlZIgQeHO/gCMeunr6E23muVrMm9T0Yk5Vb2dLW0UvKrajdnHDLUFEGy4YB AFzJe/u2rrGjl1TW1Ooce4WTFa0zRRIAkFNalVNa1drV09DReSQ1K72ozEJdCQBQXN98JievsrWt raf3QVFZwK2HC6YOtr0Dt9KL65s7ekkFNfVuZ6+J8fIoCE7KmKyLi8uxY8eKi4vb29t37Ngxc+ZM RUVF+lkymUwmk1taWiIjI1lZWemjp/9MoFbfSysI1ApC52fEg6Kiog4ePGhsbNzc3IzFYnV0dBYt WhQcHFxZWZmTkwMA2LZtW05OzoYNG+Lj40d1BgBER0fv27dPX1+/vb1dXFz8xIkTYy3FKCwsLCEh oaio2NfXZ2FhgWxRPdj3cnY2NDT08fFh+mertalTp9rb26uoqJDJ5LNnzxoZGV29enX//v0bNmyg 0WhTpkzx9vYeq16jFsnLy2tgYADZ4EVVVfX27ds8PDwAAG9v7/b29lmzZgkJCWlpaSkoKCCJqKqq fnmOX8j/k6aoqGhQUJCJiQk/Pz8PD4+pqWlqaupY9RUTE0tMTNy+fTuZTObh4dm8ebOhoSG8qSAQ CAQC+W3oI/WHh1wAABiqrkIsTEyMZT0PAQB11Y1ikkIEIX4AgLyydPjFfYd2RW1xOiAsht8XtsnQ dHhMZ5yZKLa2toaGho2NjZqamgkJCfT5rVZWVj4+PhoaGvSYIwAgICDA3d29u7t73bp1e/bsSU1N 9fX1VVVV7enpERISsrOzMzU1/SVakUgDh4/cAQCoqPvStertOAUAqK5plZQUEBLCAgDevK312nGp sZGI5WHT0pK+e2sbL3b4SDFZGfxYudjZzNKff6ixsUNLU+rSufV0rawttb13JGqqS9JjjhNZKwBA 0tHV3qE3FE0D+/rJMuL8CaGOcpI4AEBLW5eDz7m6xnYONrTyFMFrJ1yUpwxOzKdQqTFXnno66Q9N R4TAc+WY874Td/YeT2FmYtKYKnrjpCtdlgu38jBoFnMDlUl9G17Lf+eXfL+jlyTIzWmqKr9n8WB/ +01tg3finQZiJ5YNoy0lmrp1NS87BgDQROzacz2tsrkNxcykIIRL2mA3R1YCAMDMxHj2yUuvxDu9 AwOCPFwW6lP9zAbFfFX9MfLRs9buHn4Odh1ZiRP25ihmpsmo1datW9va2gwNDXt7e/X09C5cuEA/ 9e7dO2QKJxcXl5KS0tWrV/n5+f/kxzvU6rtoBYFaQYbCYGRk9LXXuLq6LlmyZByHBw8ezJ07dwLW tra2Vk5O7t27d8jaghAIBAKBQCCQkTQyPvusz84NoVpzVJbYfFFPEk/V/raSTJ06dceOHXZ2dhNW KybK51+f1m+K15k9xcZ6xg8tiYLKjl0+Zva2/8Z2KUy2E0ur0ojf5h6hyLj90PSZzx2BDyI6ZPut UAQIBPIbkJOTIykpieyoMeb3C4VCpVKLiooMDAzGcbt27Zrl3sMTrYJ/0JxWCoUSEhJiamoKw4sQ CAQCgUAg/yeBJzx/dBaJiYmdnZ3Lly+f7FqdPObwo7O4dPlZVxfJcpkWbJkQCAQCgUB+CZM1wtjY 2KirO3x9n8WLFx8+PHoQt6CgQE9PT0JCIikp6Wvz8vX1vXz58jDj/fv3P7vpMwQCgUAgEAjk25CQ kKBSqREREX/sBqZfjpj0ViqVFnnSEY2GK2JDIBAIBAL5NUzWXggejy8pKflyfxUVldbW1m/LKyAg ICAgALYVCAQCgUAgkJ9GZWUlFOELqS6DM2ohEAgEAoH8Yn5UhJGVlRWKC4FAIBAIBDIZQQHMd0xN EPzWU3cpE3WIJZMdy0QrEvdkfkEQ/c/Ciz9cW1Y4HBUAAIC9N/ijFvaCQCCQyQwjlAACgUAgEAgE AoFAIBAIBAKBfDMwwgiBQCAQCAQCgUAgEAgEAoFAvp1JGWEkk8kMDAzFxcXfMc05c+ZERET8Pymk paURCATYpCAQCAQCgUC+kK6uLgYGBrjk4pdpRWJgtq+sbIZSQCAQCAQCmYD8jAjjjBkzoqOjJ7VM Fy9enDNnDicnJwMDw1g+8vLyBw8ehE0KAoFAIBDI78TBnScNVGyl2HTVhE23uwURO7rGcT6yP0aI QTs85Dzy5+sXRUIM2mJiYhQKhe5jY2PDwMAQFBT0DYUhkUgMDAylpaUTU6udvokq03awca4WFtvo tv50R0fPOM77/ZMZmO1DQm8jf77Iq2BgtheT3EyhUP/Vyu4EA7N90KGbv59W/KrbGMTWDT0qa1sB ABQK1edgsqj2TrYpmxT19529+gzx7yUNWLqdktHZzSi+fm/YraFJ7Qq+Pm3BAZSU+zyr4TveZOeW 6i4Pxchu4lX2dPCIm6T3oPuZawwrt9OPkJTM4W0pOW2ovaWze6g/h7Mf3fNFRe28A5GcLn5CGwP2 Xr1Po9EQe2NHl114Am79fm7XPXbhCe09vZNUKyqV6uPjg8Ph2NnZzc3NGxoaEHtISAjDP+BwOHt7 +5aWlj/82Q61+v+1gkCtIMOAs6S/CCwW6+7uHhwcPI6PiIiIk5MT1AoCgUAgEMjvREtT294jHk/L k+OuhzzLerVj/ZjdoaKC0msJ98SlhIfZOTg47t69i3xubW29ffu2tLT0b6lVUxPxSKhd+Yew68lb s7JL1rvHjeVZ8KY64dITKSncCK3Qd1ML/tGq63bKS2lp/G+pVV1uUO+HY8ix0UlvlrqUhAgfAOBE fEb0xZzrMW4d78L2eZo5ecbnvakGADAwgNma0jGHV6oqDm9gMhK4AK/FjlYzh9mfvawwtv97sZFK yaO9r1N97ZZO4h2HnOdp9Z4+gBxbFsz5T1uqqU94+koKxzvsksowH8S/NWIPYmnu7F4QHDNXQarx xO5Ub+e4rLyjqdnIKavj59q7SYWHPD+EeLV29qyKTJykQgUHB587dy4tLa2yspJGo1laWtJPKSkp DQwM9Pf35+TkFBcXb968+Q9/tkOtvotWEKgVZCg/PMK4bdu2V69e7dy5U0ZGZunSpQCA5uZme3t7 AoFAIBAcHBxaW1sRTw0NjS1bthgZGWlpaWlqamZlZX1J+jQaLSIiQklJiZubW11d/eHDhwCA4uJi FhaWofFyWVnZ06dPAwC6u7u3bNkiISHBx8dnamr6hbNyjI2NV6xYISkpOY7P0FnSGhoaPj4+xsbG U6dOnTp1akZGxqiXZGRkzJ49G4vFysjI/P3334jx1q1bEhISx44dExQU5OLi2r59e0tLy5IlS9jZ 2RUVFZ89G/wh98SJE4qKipycnKKiop6env39/Yi9s7Nz69atkpKSnJycU6dOffz4MQAgPT1dXV0d i8Xy8vLOnj2bSqXCpg+BQCAQCORLCI3epWOohSPwqWoorFq//Hn261HdyGSKh9P+wOPbWDHD91Z2 cXE5deoU8jk+Pt7ExISfn3+ow7179+Tl5bFY7MKFC2trawEAp06dmjp1Kt2hqqqKmZm5vLzcwMAA AGBgYCAjI4OMgqysrLSwsMDj8UJCQhs2bOju7v6FWkVHORsaTCUQuDXUJde7GWbnlIylldPqqOPH VmFYUcO1WqN3Kjp9UKuzWSYLp/HzcfxHq/tv5JW8sPyuC02Da2s/AQBORadPVfEZolULM9qhvLxp gmuFRjGzollY0SwAgPPJz9fa6yD20spmHS2Z6VPFWJiZLE2nEwS43hTXAQBY0Swea/TnzpBFo4Zv 4+xkNXORgTIvN9swu+/hGysttLetNRIT5hUVwhrPVZy8tyETIwMrCzNyMDH++wZHplCdoi4fd1iC YRkuC/offzTz4FbM6e/K+smUPUsN2VAsyqKEDYYzj99/DABo7uzOLK7Yt8xIgJMdx8Xhv9z4Rv67 6tb2yShURESEp6enioqKgIBAaGhodnZ2YWEh/SwzMzMLC4usrKylpeWrV6/+8Gc71Op7aQWBWkHo /PAIY0hIyLRp0wIDA0tLS5OTkwEANjY2RCKxqKjo3bt3LS0ttra2dOfk5ORz5849f/48ODjY1NS0 qanps+mHh4cHBwefP3++ra1t3759S5YsqaqqkpeX19TUPHfuHOKTlZVVX19vZWUFAHByciouLn76 9Gl9ff306dMXL148dNrOd+TatWvx8fFv377dsWOHvb09fQ4CnTdv3piYmHh6era0tNy8eTMkJCQx cfDXwrq6uurq6g8fPmRmZv79998LFizw8PBobW1dvHixi4sL4oPH42/cuEEkEtPS0m7dukUPUDo6 Oubn56enpxOJxOTkZDweDwBYtWrV+vXr29rampqagoODx5nrDYFAIBAIBDIWz7JeTVWbMuqpY4Fx U9Xk5hhojjxlZ2f36NGj+vp6AEB0dDS9M0MnLi4uIyPj48ePeDx+2bJlSHexurr6yZMniENMTMy8 efOkpKQePHgAAHjw4EFpaamPj09PT4+enp68vHxFRcXbt2/Lysq8vLwmiFZZ2SVq0yRGPRV48Iaa moSBvtIoWtnOfpRRVF/fDgCIPv3IxVlvuFZnsjIe+n6sOY7Hcy+z/AsAYLNiZnVNy5OnHwa1in00 b66ClBRusmiVeCsPAGC1SB3508VmdlFpQ/7b6gEyJSkln9Q3YDhH/huSpVComc9K2dnQqsYB3Ipb Zi4JzvhHoslI8otCkU2Bar5/+SXd6+7r/7ct3XioJi5koCQz8hLdgAjJLUEmIaez31ciFuR9ZOhr QHnTJ2IviUpF7P95QXhV9XHSqdTR0VFVVaWpOfgUkpWV5eLiev16+I8inZ2dqampdLc/E6jVd9cK ArWCgJ8/S7q6uvrBgwdHjx5FxtOFhYXdu3evpqYGOevo6IhExPT09BQVFZOSkj6b4LFjx3bv3j1t 2jRGRsZFixbNnTv3ypUrAAAnJ6fY2FjEJzY21tLSkoODo6Gh4fLly+Hh4QQCAYVC7du3r7q6+ge1 eGdnZ6Quixcvrq2t/fhx+Jf0iRMnLC0tLSwsmJiYFBQUNm3aRA+JsrCwBAUFcXBwTJs2TVtbe+bM mfPmzWNlZXVxcXn79i2JRAIALF++XEZGhoGBQU5Ozt3dHelEfvz48erVq5GRkRISEgwMDLKyssgs JDQaXVxcXFNTw8zMPHv2bBhhhEAgEAgE8rWci7qW/SB3T+go0+WKCkovxd7cE7Jp1Au5uLgsLCxO nz6dnZ3d39+vr68/zGH37t14PB6DwYSFheXm5r57946Dg8PW1jYmJgYAQKVS4+LiRsYlAQA3btwA AAQGBrKxsfHy8h44cIDem/q1RJ16+OBhYehh25GnCt5Ux57JDAm2HUMrjMVSjdOxGdk5Jf39ZH29 4cPudvstxeO5MRhUWKh97ovyd+/qODhYbW1mxZzOAABQqbS4M1kj45ITWauIc1mrls9ABjMCAKTE +PVnyWmYBqGk3B084o77rxARxH5Dsp3dff0D5ITruadDHBryg5cYTzN1PFHzsW0y3nrLNJWvbF75 aNfagOXGSbkFDhGXBttSTX1s5osQW9Nh/mxo1Ll1K65vWXVjq6OKqKDBwai8ijoAwDwFaUZGBv9r D/rI5KKPTeEPngIAiL19eG4ObWmxvcn3P3X1fOrq2XP1HmKfdEIRiUQAADc3N93Cw8ODGAEAJSUl BAIBj8fz8vK2tLQcOnToT36eQ62+l1YQqBVkKMw/Ob+amhoGBgb6dGMk/lVTUyMqKgoAEBQUpHsK Cgoi02TGp6KiYs+ePfTFwru6ulRUVAAA1tbWHh4ez58/V1JSunz5ckpKCuIMAFiwYAH9cjQa/YMW H6VP/8FgMACAzs7OkSXPz8+Xlx/8Vbavr09cXBz5jMPhmP+ZzsDOzi4sLEz/TKPRurq6WFlZ79y5 c/jw4fLychqN1tPTIyEhAQCorKxEAovD8rp27Zq/v7+amhoWi12zZo2Pjw9s+hAIBAKBQL6c2BNJ xw7EXn54UkJaZNgpCoXq4bR/X9gWLh7OsS53dXW1tbUtLi52dnYe+UsnvWeIxWK5uLhqa2sVFRXX rl2rq6t79OjRrKys3t5eZLGdkb2ppqYmem+KSqWiUKiOjo6hrzc/nxMn7x84eP1h2s6RSyhSKFSn 1VFhofY8PGxjauWib2t/orjko/PqeaNoJSHwj1bsXFyY2rpPiorCa131decFHD1in5Vd0tvbv3SJ xmTRqqCo7kleeWyIA93i7nfpRUHVu4e7pcUFHr8oX+oSwYZBLTZS+dqU2TAsjIwMq61nqSuLAQC2 r5sfdurB/ayi1dazJt3dp6c4uG6pDJ6PgxWlFxhF7CWxo1FOUZfD7M142DDD645isZulhnwOsl74 rKz6wpOX6pLCeG6OlG2rfS7d+etejhAP1yod9f3JaVh2DAAgaZP91vO3lHyOsDAzeS7Uuf/2Az8n 26QTiouLCwDQ0dFBt7S3tyNG5MXz0aNHAIC2trbQ0FBDQ8MXL16g0eg/85EOtfpeWkGgVpCh/IwI I+OQtUJERUVpNFpVVRUSESsvL0eMyNmhu92VlpYaGRl9NnFxcfH9+/evWLFiZOO2sLCIi4vT1tYm EAg6OjqIMwAgPT19aCjzVyEuLi4pKRkREfEN13769Mnc3DwpKWnRokWMjIzHjx+Pi4sDAEhISNBo tNLS0ilT/jODSUlJ6eLFizQa7enTpwsXLlRRUTExMYGtHwKBQCAQyJdwLDDuTPiVpPST0nLiI8+2 Nre9yS/xdD7g6XwAAEBs7wzZE/XgdnZSejjdZ8aMGRwcHImJiSEhISNTqKyslJOTQ95miUSiiIgI AEBNTU1BQeHSpUt37txxcHBAoVDDepVIb0pUVLS4uHjiaBV48EZ4ZFp62i45uVF6m83NnfkvK51d Tzm7ngIAtLf37Nl35XbKq/QHu/7VSluGg5018fKzUcc5VlY1Iym3tXUTib0iwrwAALVpEgryQpcS n965+9ph5RwUinlSaAUACD+bOW/mFLkhodiXhTXWZhry0gQAwNwZsjpaMnfSC78hwohiYVaUFRwW oWVknPTzeFDMTDQajUKlNXd251fWOUcnOUcnAQDae0h7rty7/aoofefaEZcwU6iD6zXNkhXP9HVD PntfTNGUEmVHowAAIrzciRvtEHvK62JmRsYZMmKTThxubm5xcfG8vLw5c+YAAMrKyohEoqqq6uB7 LzMzsmg+gUDw8fGRlZV9/fq1lpYW+COBWn0vrSBQK8h/vmd/Qh6CgoIlJYMLXYuJienr62/durW9 vb2trc3T09PIyIgeYTxz5kxubi6FQgkPD6+oqEAW4hmfTZs2+fn5vXjxgkql9vb2ZmRklJWVIaec nJwSEhIiIyPpWzwLCQktX77cxcWluroa6cUmJSXR90gZBwqFQiKRBgYGAAAkEgmZp/x/sm7dugsX LiAFIJPJb9++zcnJ+cJru7q6yGQyMjf806dP9NXThYSElixZ4ubmVl1dTaPRPnz4UFZWRiaT4+Pj 29raGBgY8Hg8MzMzfYAkBAKBQCAQyPgc8DlxJvzKxXt/i4gL9pH6+/9ZA+71iyIhBu2aynp+HDav 5mbaq3PIISEjunarbcSlwGHpJCUlZWZmImvIDMPf37+pqam3t3fbtm0aGhoKCgqI3dXVNSws7ObN m87OzoOxEhSKl5eX3rFcvHhxX1+fr68vkUik0Wg1NTU3b978hVr57LwUHpl2746PuDg/iTTQ1zeA 2F/kVTAw21dWNuNwXDWVx17lBSKHjAx+6xaTSwkbh2uVuDnzkR8eP8roQv+Aa01NxN7e/m3eFzTU JRUUhAa1ctEPO3r35q2Xzqv1JoVWAICu7r7z1567/bPHC8IcTenLt/PKqpqpVFrOi7LMZx80VAZD XX39ZFLfAI1GI5OppL4BMnlw68IBMoXUN0Ch0qhUGqlvoH+AjNjXO8yNufi4oKiuf4AcGpXWS+o3 0lGYjPfgqfTnFc2fOnpIz8tqNsZfN5oqi2XH4Lg4av7a+eqAB3LI4Pm2LtS95G4HAMh+X5n9vrK1 q6ehozMkJfPhu9JlmoP7JmUUlzd0dDZ2dEWlPzuZ9uSApTFiz6+sK2/61Nbdm/rm/fq4az5meiOH Rk4K3Nzcjhw5UlRU1N7e7uXlNXv2bCWlfxc8JZPJZDK5ubn55MmTrKys42/j+dsDtfpeWkGgVhA6 PyPS5OXltXr16ujo6GnTpqWnpyckJHh4eMjLy9NoNCMjo7CwMLrnunXrPD09X716JSkpeevWrVH7 oMPYsGEDKyvr6tWrq6qq0Gi0pqbmkSNHkFN6eno8PDzPnj27fPky3T82Ntbf319PT6+pqYmXl3fu 3Lnm5uafzeXs2bP0MCUy67m+vp6+c/S3oaamduvWrd27d69du5ZGo8nJye3cufMLrxUTEwsJCTE0 NBQQEODh4Vm8ePGdO3eQU2fOnPH19Z0zZ05bW5uEhERUVJS4uHhCQoKnp+fAwAAWi926dev8+fNh 04dAIBAIBPJZ+kj9Jw7FAwDmKlojFiYmxhryEwBAbVWDuJQwQViAkZFRUAT3b+eSmYmTm4MfN3zt vGETLIaycuVKXV3dhoYGbW3tpKQk+tRgGxsbT09PLS0teswRABAUFLR27dru7m53d3d/f//09HQf Hx95efnu7m5hYWEHBwczM7NfohWJNHAo+CYAQFHZm64VuS8eAFBV1SIlhRMW5mVkZBAR4f1XKyYm bi4MDsc1QqsxO5kr7efo6vk3NHRoa0knJW7+V6sVMz29zmtpStNjjhNZK4Rzyc8waJalC6YNNR7a sdQ7MHmu5ZFP7d2COG5PVyP6vGa5uXuq6j4BAJ6/qjzw9521djoRB20BAC7e584kPR3sqMtukpPG F6fvBQCsW6nb1tGz0OHvjk6SioJwSry7MIFnMt6GyXlvd12+29FLEuThMlNT2GdhBABgZGAQ4f03 Bs3MyMjNxorj4gAANBG7/JLuVTR/QjEzKQrhkzc76MgNhofOZucn5b4h9ZNVxQWvbl5J3yImt7x2 79X7rV094vw8WxbM2Ww8Z5I+sry9vdva2nR1dXt6egwMDIa+BhYWFrKwsAAAuLi4lJWVb926JSAg 8Cc/3qFW30UrCNQKMhSGL5mJPAxXV9clS5aM4/DgwQNjY+OvTVZDQ8Pd3d3R0RH+VyAQCAQCgUB+ IfXg+effItYenKGrZmG34LOeguDb59bJysr6+fk5ODhMXLEo5z/rsnbdaV0dOTvb2T+0ILLynn67 ljqs/Cc2xGQ34bSqiZjEd4Wo20/N7lwwfBABAIC9N9QAAoH8Njx48EBSUhIZtTZmt4JCoVKpRUVF BgYG47hdge4uGAAAIABJREFUu3bNcu/hiVZBOFsWAoFAIBAIBPLVBEfu+NFZJCQkdHZ2WltbT3at IsNX/3CtLj7p7CRZW2nDlgmBQCAQCOSXMNEjjPPmzausrBxqERQUfPLkyQ/KzsfH5+LFi8OMGRkZ 9F2eIRAIBAKBQCA/AUFBQSqVGhMT88duYPoVWolsoFJpMadc0GgWqAYEAoFAIJBfwgSKML548WKk 8dGjRz+zDEFBQUFBQbBZQCAQCAQCgfxa6uvroQhfqlXtCSgCBAKBQCCQX8uPijB+l92WIRAIBAKB QCA/n37G/u/ZLaT+zt1CJjAwMQtGGZhwsjMNDEzefzTl577dMJPJ8EEEACDDl0oIBAKZPDBCCSAQ CAQCgUAgEAgEAoFAIBDINwMjjBAIBAKBQCAQCAQCgUAgEAjk2/kdIoyFhYXa2toEAsHb2/vH5aKu rn758uWJU+vk5GRVVdXJKGZraysGg2lsbIS330Rg7969K1eu/Jk56uvrnzp1akJVgUwmYzCYkpKS 3+Af6uPj4+LiMtKekpIiJycHG/yXP0uHPqnGUnXisGXLlo0bN47vM2vWrLNnz/7QLDo7Oy0sLAQF BefMmTOWT1dXFwaDqaqq+v9b9aTjJ3QkJlpf5Uv4hibxx9LV1YfCOFVVtUApIBAIBAKBTEB+RoTR wsICMwQTExPEXltbu3LlSgKBwMfHp6Oj097ePn46JBJp586d0tLSPDw8qqqqOTk5iP3AgQPz589v aGgIDg4ODw/H/BdXV1cAQFNTk5ubm7y8PBaLVVZWPnr06NCUHz9+bGhoiMViBQUF16xZ89kajVWS PXv2aGtrc3FxzZ8/f9glX55Fbm6upaWluLg4Pz//nDlz7ty589nyCAsLD6v1sJ56YGAgBoMZWusv EdPGxmZYsufOnUPcXr16paury8PDo6CgEBcXhxjHF3ksvrYZxMbGqqmpcXNzS0lJnTx5kv7qO7Sc 9KzHqcJYCnxtFt9QhUmEr6+vk5PTZK/FqM11KExMTEeOHMHj8f9PLvfu3ZOWlv6GC3V1dWNjYyeg bqPeCF/LWE+nhIQEAwMDAoEgJCRkYWFRXFyM+FdVVc2fP19ERASLxaqqqp44cWJo6GRoOvn5+UMz otFoJiYmQ+29vb22trZKSkpsbGwBAQE/QiIkCkmHn5///xRwZC3GEmr8GNM4Qo1knOfkON9ThoaG OBxOWFjY3t6e/ovR+fPn29vba2trs7OzkT+nT5/Oy8srIyPj6+tLoVDGT/by5cv6+voCAgIYDOZL 5BqntXzJQ+AbvrO+toSfJTs7m42NzcLCgm7Jz8+fP3++gICApKRkQEAAjUajl9bR0VFUVBSPxzs6 Ov7kL5pgv6gF6qvkeQy1JZbudA/p7Ogex/mvA3ESaJ2osATkz4K8Ygm0jqys7NAG4ODggMFgQkJC vqEwJBIJg8GUlZVNzG8cv91J0zX9uHnXiktt2bDxTEdH7zjOAYHXURinI0fvIn/m5VeiME5Ssp4U CpXuY+8QgcI4BYfc/v20ElTfgZLeNPSoqv0EAKBQqLuCb0jO3s2t5KlifOB8cu7gU500sML9tLze frTMZv+//tM9fv6qSn/FX3wqXoLqO2w3xTY0ExE7lUrbFXxDWHMnz9RtFmtP0e2Tjk3nbrI47aIf R+5mDW9L1x8Otbd09Qz153HbR/fMq6wzCIrGuu0T2xK0/9oD+kOmkdjlEJkotCmQb/1+h8jE9p7J uvohlUr19fUVFRXl4+OztLSkf0MdPXqU/jUnKirq5OTU2tr6hwcCoFb/v1YQqBXkF0QYAQAuLi5t /3D9+nUAQHt7u4GBARqNzsjIKCoq2rt3LzPzZ7adcXBwyMzMvHDhQmlp6enTpwkEAmKvrKxUVFRE Pru6utIzKi0tRaFQ1tbWAICWlhZeXt7z589/+PAhMDAwICDg9OnT9DclMzOzRYsWFRQU5Obmrlix 4rPVGask0tLSe/bsGTmc6quyqKysnDt37t27d9+9e7d48WJra+t3796NX57y8nJ6rdevXz9jxgxx cXH62Tdv3iQmJkpKSn6tmPHx8fRkL1y4wMbGZmZmBgAgEomLFy+eO3dudXV1aGjoli1bHj58OL7I Y/G1zeD48eN79+7du3fvhw8f7t69q6GhQT/l5ORELy19oM1YVRhHga/N4hta8ndkYDKvmP5zGKu5 DoWBgWHdunU8PDw/uWwT+d83zo3wVYz1dKqsrHRzc3v+/Pnjx4/RaLSZmRkSfeDi4tq9e/eLFy/K y8v/+uuvgIAA5CsDISYmhp6ampra0Iyio6MZGBiG/VtnzZoVERGhrKz8Q7UqKSlBilRXV/d/Cjiy FmMJNT7jCDWScZ6To0KhUJYuXaqsrFxRUZGfn9/S0uLu7k4vrZycHBMTEwCgoKDAxcXF29u7oaEh OTn53Llznw2z8vDwrFu37sCBA1+o/Pit5bMPgW/4zvraEo5Pd3e3u7v77Nmz6ZaWlhYzMzMdHZ2q qqqbN2+ePXv2+PHjyCk7O7uOjo6XL1++ffv206dPP3lQZ2tzm+/hjVkliaeuHMzNfu27KXQsz+I3 ZTcupYlJCg2zc3Bw3Lt3D/n86dOnu3fvSklJ/ZZfOk3NnYcP2ZQUBV9N2pyd837j5vixPN+8qbmU +ExSUmCEVqyp994MKv+p687d11JSuN9Sq8on/sR3ocixwUF35nRJcRFeAED4uazTl55cjXJpeR28 Z7OJ8/bz+W9rAAAMDGCWulRUkK2KgtB/H0rUJc4RyvJC1U8PvLy7o6W1a73vJeRUSFTa+Wu5d8+6 f8jcS6PRbNxPT165VutqdEbtQ47N82f/py3VNFx8ViApwDvsktIQL8S/8fguxNLc2W0aGqcrL1l3 bGeKp1N8dv6x+4+RUzYnE9p7SK8PbC4K8mzt6lkdnTRJhTpy5EhCQkJKSkpJSQmNRrO1taWfUlRU 7OzsJBKJ6enpJSUlnp6ef3gnGWr1XbSCQK0gvyDCyMTExPoPLCwsAIDIyEh2dvbIyEg5OTkcDmdg YMDBwYE4Z2Vl6enpEQgEJSUl+gvJkydP7t69m5CQoK2tzc/Pr66ujgwXmjFjRmFhoY+Pj5KSUk5O ztCMLl26JCIioq+vjzwlAwMD1dXV+fn5zczM5s+f//jx4Bfq3r17bW1tPTw8REVFRUREjIyM6C// 3t7eoqKikpKShw4dotdlrJIgQSsTExMsFjus+mNlQaPRTp06pa6ujsPhZGVlkamjlpaW7u7uCgoK OBzO29ubi4vrxYsXiP+LFy9mzZqFw+H09PRKS0vp6aPRaKTKAICEhARnZ2f6KTKZ7OrqGhYWNnTA xReKycLCQhfzzJkzy5cv5+bmBgBcv36dQqHs2bOHi4vLxMTE3Nw8Ojp6fJEbGxuXL19OIBCUlZVT UlLoJRmnGWRkZCDNQEREZN26dQCA3t5ef3//kJAQc3NzHA43ZcoULS2tUdsY8n4LABirCmMp8A1Z fFUVRsXHx8fGxsbZ2VlbW1tRUXHoMJyrV69qamricDgtLa1r164hRmS6q7+/v7a2toGBAfLniRMn JCQkcDjcrl27Wltbrays+Pj41NTUcnMHf/nPzMzU1dUlEAjCwsLW1tYfP3787G179erV6OjoW7du KSkpKSkp9fT0kMnkgIAAeXl5AoGwYMGCN2/e0KtgZWXl4OCgq6uroaERGRn5hU+Gqqoqa2trMTEx SUlJDw+P7u5uAMDKlSu3bt1K97lw4cKUKVNoNBpyv0yfPh2Px8+cOfPRo0dfksVYzXUoQ2dJI3oe OnRo9uzZioqKbm5uI+OAAwMDmzZtEhcXJxAIcnJyFy5cqKmpWbt2bWNjI6JVRkYGAGD9+vWysrIC AgIqKirx8fGj/vt8fHwKCgp2796tpKRkZWUFAJCTk6O/hzc2NmIwGOR34y8XmUQiOTs7EwgEeXn5 YW5hYWFSUlIiIiIeHh6kfzZnrKioWLFiBVIdfX399vb2cW6E7u5uLy8vOTk5ISGhpUuX0odLR0RE qKmpCQgIyMjIbN++vb+/f/yn044dOywtLcXExCQkJPz8/Gpr/8felcdTtb395RiPc4yZyZAhZCxJ LooGIaRSihKZrtzSrEEit1TSoBKFZopooDIXaZSMjeahzMMxHRznvH+s2vdczt4Nt/fe6/729+OP WmftNXzXs5691rOf9ayG+vp6AICQkJCRkZGEhISQkJCSkhIvL+/79++R9jPPaGZLHLQcHTnyJ6sH Dw+Pj4+PsbExNzf3KIrQdCmapsJmFekjUtEPEIjWCzSiAAAXLlxQV1eXkJBYs2ZNf38/81NoRNXU 1EDfwxkzZiCO22h6Eq0KCoXS3t7u4uJCIpHExcWXL19eUlICAFi/fv358+eTkpKmTJly7Nix6upq fn5+BwcHLi4uTU1NU1NTmA0iMzNTW1tbQkLC1tYWsczOmzfP3t5eXl7+G6UaW1q+qgQw3llow4TW QjTthLaQgPD391+8eLGGhgaS8vDhw+Hh4V27dvHy8mpoaHh5eUVEREDL46NHj/z9/UVERERFRQMC AlJSUqAkYFfxs3DwzHYjMz1RcWGtaaqrvOxe5JewzEajjWxx3x90fCMPcfSkc3V1RZy1r1y5Ym5u PmHCBOYMY0UiJiZm2rRpzBOETCZXV1dbWFgAACwsLKZMmQK9IFm+Sv4pREa4zDFTlxAXmDZV3svD LP/xBxSu6G4e0cePOhGJXKN+Wus6Kzr2Ifz35SuPF5hriUwgM2fIyCzT0N4hJrHO2jassbETABAd 81Bn2m4mrtqJ5LXV1a3/cq64uTh4uDl5uDkBAHG3C9xXfraaVda0/jJdUXfKRE4O9iWWuuIifGXv PgIAeLg517vMNpmhxM31p0+53T3Uts6+tcsNSbxcEqL8DjZ6JW8+a5Woq/kb3cw0VaVEhcmHd9rl F1S9/vBpnO7Z2AkEHk4O+MdO+GMHR6PT10bfOOFkTeQa/YWbm4Md5uf+8vH7wZuqIdqIv60ZLxen hoz4r3MMTmU+hZbHvHc1AXZzRPlIYvykwMVz77x6U9c+Lg/lnD171tfXV1NTU0REJCQk5PHjx8y+ GhwcHJycnEpKSkuWLGF+K/1vAufqZ3GFA+cKx99tYRyLhw8fqqqq2tnZiYqKamtrI3HZysrKFi1a 5Ovr29jYeOPGjWPHjt24cQPmV1ZWDg0NlZSUVFZW3rp1K9ztPH36VFVVNSQkpLy8nNkRgMFgREdH r127dpQ/CABgcHCwoKBAR0cHADAyMgLPKOnr64uLi8+aNSsv7/P5gkOHDmVmZj5+/Pjt27etra3I vgWtJWjAqCIiIiIkJOTUqVNNTU1PnjyZOnXqqGffvXvX3t4OY4R1dXXZ2NisXLny06dPx48fh7uO UYBcLVmyBEk5dOiQjo6OqanpKPK/i8za2tqMjAzEY6KkpERbWxvx1Js2bRpiaWJJMgDA2dkZntPJ yclhPn+HJgbFxcW2trbu7u61tbXv379fsWIFAODVq1cUCqW6ulpZWVlGRmbZsmV1dXXMe0hFRcUZ M2YEBgaOXTGP6gIaAz9QxXd1AQ337t3z8vJ69uxZSkqKv78/NHXl5+e7uroGBwd//PgxMDDQ2dn5 6dOnyEaLm5v72bNnubm5AICPHz/W19eXlZVlZmZGRERYW1v7+Pg0NjZaWVl5e3sjq4TQ0ND6+vry 8nIAwFfjqQEAFi9e7ObmtnDhwvLy8vLycl5e3sOHD8fFxd26dau2ttbIyMjKyqq7uxtmTk1N9fb2 zs3NvXPnTkhISFpa2lfL7+/vNzc3nzx58tu3bwsLC6uqqnbu3AmlJT4+fnBwEGa7dOnSqlWr2NjY oqKiwsLCzp8//+nTJ39//1Gjg4ZvEddRqKurI5FI+fn5L1++fPny5djQdVevXn3y5ElxcXFTU1Ne Xp6uru7EiRMjIyPFxcUhV7NmzQIA6OnpPXnypLm5+ejRo76+vshhVebhCwkJ0dLSCgoKKi8vv379 OnbDvpHk5OTk2bNnf/z48eLFiwEBAUi2xsbGysrK169fv3jx4smTJ/v27QMA9Pb2LliwQEZGpqSk pKGhYf/+/RwcHBgTwcPD4/3797m5uTU1NTo6OkuXLoUudeLi4omJiS0tLXfv3r13795YBTVWOyHI z88XFhaWkZFBUmbNmiUtLa2iokIikRwdHZH03bt3KyoqmpqaIhZbqO29vLwCAgJERUW/5e2DoUvR NBUGqwCAuXPnqqqqLlq0CLFP/QCB39ILZqIePXq0efPmyMjIjx8/WllZxcXFMedkSRRc8x06dOjT p08eHh6LFi1qbW3F0JNoVQgJCa1duzY2Nravr6+5ufnatWtwWE+cOLFq1arFixeXl5f7+vrOnTtX QUEhPj5+eHi4tLT04cOHixYtQuq6dOlSRkZGdXW1mJjYtxwdwOAfTVq+SwmMemehDRMa0LQT2kIC 0pubm+vn5zfKUgkAYF63VFdXUygUOp0+Kh2+ZbCr+H/C80clU3SUWf506uClKToqv5hOG/uTg4ND bm5uU1MTACA2NtbV1XVUhrEisWzZsvr6+mfPnsEM58+fNzExUVBQgNFj7t27V15evmXLFrRXyb8B j/Lf6+jIsvwp5NAdHR05M1P1sT+tcDDIzX37qakLABAT+3Ct66xRGS5eys/K2FFbfVRMjH+Zw0kA wPJlBvX17U+fff5eEns+d5aJqoKC6HjhKvHuKwDAUsvPDtdrHQzfVja9Kq8fpo0k3SsaHKTN+QUr jrCwIK+bg2H0tcd9/UNNrZT42wX2lroAgO6egbrGDj2tz8d6lORF+ck8iPFx3OFWYbn8poN6AScD kjL7Bof+kKU7D3TkpMzUWcRpMT1wVmlrqPXRC/kfPn8mgSeimVVJdWsHZWCQDpXPnx8vrht/1tju 7u66ujrk44SSkhI/P/9Ynd/T05ORkcH8DeN/EDhXP50rHDhXOP4+C+P58+elvyA1NRUA0N7efuvW rVWrVtXX14eFhW3btg0eboqMjFy8eLGtrS07O7uqquq6devgrqa9vf3169dcXFwfPnxITU1NT0/3 9/fHqDErK6uhoWH16tWj0ul0+q+//iopKQk3UT09PUNDQ9evX4+MjKypqbGxsbGzs2toaICLXegX wM3NvW/fPuh6+QMtwagiIiJix44dBgYGBAIBetIxP9jZ2eno6Ojj4wMtjCkpKcLCwj4+Puzs7Fpa WmNX53D36OTkBN2FAAClpaUXL148cODAqGzf24Xo6GhNTU3klF9PTw8/Pz/yq4CAAIVCwSC5rq7u 4cOHBw8eJJFIIiIiu3btYm4JSzGIioqCJgBubm5eXl4TExOYGQCQkZGRm5tbWlpKIBDs7e3hfmzR okXx8fHp6el79+5NTk4eG+lyVBfQGPiBKr6rC2gwMzODbZs0adLkyZNfvXoFALh48eKSJUvMzc05 ODgsLCxsbW2R8GE8PDzMXn6cnJzBwcFkMllLS2v69OkGBgYmJiY8PDyurq7l5eXQVc3Q0FBfX5+T k1NQUNDf3/8bHQBH72ouXty2bdvkyZO5ubl37tzJyckJpzMA4JdffjEwMAAASEpKOjo6jrJroNnL AABBQUG8vLxCQkKBgYFwspuZmZFIJPhrXV1dXl4ejDxw+vTpnTt3amlpEQgES0tLY2NjxK8TewJi i+tYkMnkdevWAQCIRKKZmRniRIyAm5ubQqEUFxcPDQ2JiYmpqamxLMfV1VVERIRAIMyZM2f+/PkI 56OG79vxjSRPnTrVycmJQCDo6+uvWrUKycbGxhYSEsLDwyMpKbl7926YnpqaSqPRDh48KCAgwMHB YWBgQCaT0SZCc3NzUlLSiRMnxMXFubi4/P396+vr4aLBzs5OUVGRjY1NRUXFy8srJycHWzshePXq lb+//+nTp5nDCyQlJeXn558+fXrBggWIP93OnTuvX79+//59Z2fnzZs3Ix7u586d4+LiwjbiMwNN l2JoKjRWiURibGxsQkJCYmKihoaGhYUFnLw/QOBXezGKqIsXLy5btszY2BgWDgUDmygAwOrVq6dO ncrOzr527dpJkyYlJSVh6EmMKpYsWZKWliYiIiIvL0+n00eZySBIJJKzs/Nvv/3Gz8+vr6+/dOlS JAozbKSYmBiRSDx8+PDLly/fvHmDPWpoUo0mLd+lBEa9szCGCQ1o2gltIdHX1/frr7+ePn2ai+tP /msmJiYEAuHAgQODg4Nv376NioqC7RcTE5s+fXpwcDA8zA4/D/T09GBU8f+Eq+duP84p2H3IZ+xP b0srEy6k7gpZx/JBPj4+W1vbCxcuPH78eGhoaPbs2aMyjBUJMpm8fPly+OKj0+mXLl1iufJBe5X8 4zgX/SAn5/XhEBYG9NLS+gsXHx08sJzlg/x8xEW2085fyMt//GFoiGY6e/QrZtdOG3ExfiKRK/Tw ioKX1W/efCSTuR2WG8SezwMA0OmMC5cejbVL/pu5irqSv2rxDOjMCABQmChiOlPFwDaUNHmjy5ZL xwPtpSW+EsZkqdXU+w9eC2lukTXYTWcwdviYAwB6eqkAAAG+P947AvxESu+4DC+4eNqU6z6OWX5u QYvn3Sgoczn7+QhzaX3T+UeFh5ZbjMrPy8V5wWNZ8vpVNzes0pSRmH8ourCmEQAwS1WBwMb2++2c QRrt7cfWMznPAAAUKlWcn6w/aWLQzeyOvoGOvoHAm1kAAAp1cNwRBRUjms5///69nJycrKyslJRU e3v7zwp5MU6Bc/WzuMKBc4XjH7Aw2tvbP/8CeGyZTCbPmDHD3t6eh4dnzpw5CxcuvH37NgCgpqbm 3r172l8QEREBJZJMJrOzs+/bt49MJquoqPj4+MD8qIuVqKhFixaNirtPo9FcXV2rqqpu3boFj7Px 8vISCARnZ2ddXV0ikbh582YSiZSVlQUA+PjxI3L8mUgkSkpKItaH72oJRhV1dXXKyqwdAVpaWszN zY2NjQ8dOgRTGhsbme+RGHunRGlp6bNnz5BDiCMjIx4eHocPHx4bXe67ujA8PHzhwgXmkE98fHzM aqK7u5tZiYwlubGxkYeHR0pKamzL0cSgtrZ2LDPw9PGOHTskJSXhyrikpKSmpgYAMGvWLENDQ0VF RQsLi/Dw8Nu3bzO3cGwX0Bj4gSq+qwtoYD4sRiQSoWpuaGhgDlM1adIkaJgGAIiKijKbY5j/SyKR EKpJJBKDwYDulu/fv4e3XigpKS1atKi/v/8HzkY1NjYiTSIQCHJyckiTkECW8N/MAenQUFNT09ra ikz21atXc3Jydnd3EwgExHx26dIlY2NjeCaxpqZm3759SP6ioqJvCTuNLa4sISwsjPgKIcPBjGXL lnl7e/v5+UlJSS1ZsgTNOHLy5MmZM2cqKSlNnjw5KysL8RcbNXzfDpYka2trw1DcGzduhD8xH+GU k5NDxmLChAnIEX45Obm2trbBwcHa2tpJkyYhp/6x5xqcCzY2NnAIdHV1ubi4oFNSWlraggULJk+e rKKisn///lHOcaO0E4KnT59aW1sfP37c1tZ21IyQl5dfs2ZNR0cHNKZAq5a2traysvKaNWt8fX2h b2l9ff2BAweQWHXfKMYsdSmGpkJjlZeX18HBQVVVVUNDIzg42MDAID4+/gcI/GovxhKF8UZgSRS2 bLDUk2hVVFVV2draenp6dnR0NDY2ysnJWVhYIHcFILh8+fLu3buvXbtGoVBKS0vz8vKYDZFISwQF Bfn5+b+qMTBaPlZafvvtNzgp4He7731nYcg5hjZjqZ3QFhJ79uxZsGABcxQOCDExsZs3b2ZnZyso KDg5OUGjKnyJx8XF8fDw6Orq6uvrz507l4ODA7440Kr4/8DFM0nH9sVcTTshN0l61E8jI/Qt7vv3 hK7nFySjPb527drz58+fO3fOxcVl7PkSliLh5uaWmJjY29ubkZExMDBgY2Pz7a+Sf3Z5HXEma1/w rfT728eGUBwZobt5RB85vEJQkBftcbe1s2PP5509l+PqMmssVwrynz2dhQRJ/Pw8DY0dAAB3t9kJ ic96ewfTM0qpA0O2NlPHC1elbz8+fVXtvuKPozMb9iY8elFZkraz793ROzG//rbnekomlom/qq7N 2iXCy8m4u/zIp5cH5KSFzZ1OMhgMPjIPAKC75w+TYjdlgJ/MMx43bLPVJv2iLKcoNsFSe/JpZ9ub ha8pA4MjdPra6BtHVlgK8vKMtTCunKmtKiWqISO+3958ppJs3NNiAIA4P/nOJues15WyviEOp+NW /zKVwMYmxEsEAFzzWUHk4tDedVxvT/h8DWUOAkGEzDvuiOLj4wMAoOn8SZMmPX/+/MWLFy9evNDT 07O0tEROzPwPAufqZ3GFA+cKBzP+pispSCSStPSf1qPa2trwgM8fxk4CAQAAo02Fh4ePKgH68TEv swgEVPPox48f7927NzaKlpOTU09PT0pKCrLN5uLiUlNTG7V6gyVLSUkhO4qRkZG2trYfaAl2FbKy shUVFfBAJTPq6uosLS2tra2Z3Q+lpaWZdzhjb2U6e/asiYmJiooK/G9bW1tRUZGXl5eXlxec2/v2 7bt3715aWtp3deHWrVsDAwPwwhwILS2tuLi4kZERaJV49eoVcpECS5KlpaWpVGpXVxfcJjG3HE0M 5OTkmIOjQWhqahIIBJZMjiKcwWDAM2VoXUBj4Aeq+K4ufBdkZGTgRheiuroaOUY6dr/xVaxZs2bO nDnnzp3j5eUtLy/X09MbaxFg8Qniz32XlpauqakxNjYGANDp9NraWqRJzFdVVlVVjZrvLCErKysj IzOKPYhVq1YdOXLk48ePV65cQRxsZWVl9+zZY29v/10dxxDXH/8yQyBs2LBhw4YNXV1du3btcnd3 f/To0Siu7t69Gxoaeu/ePejhuGLFCoRwbAEjk8nIGg5ROxgkjyWQObRfbW0tMhbt7e29vb1wYtbW 1orYEFQmAAAgAElEQVSIiHBzc8vJyVVXV9PpdOZmoE0EWVlZaExktnUCADo7O+3t7a9evWppaUkg ECIiIkYdLR+lnSCysrKcnJwiIyNZWg0gGAxGVVUVS70KJ+DTp0/b2tpmzJgBvpwwtbS09PLy2rt3 L1qZaLoUQ1NhsMqyVd9LYEJCAkYvWBI1thfYTWLZizlz5mDoSbQqysvLGQzG+vXr2djYiESij4+P gYFBa2urmNifLCnFxcX6+vrwm6KSktLKlSujo6ORQIG1tbVQHrq6uigUylc1xrfwj0hLeHg48yri e99ZaMOErc1Yaie0hURmZmZzc/PVq1cBAP39/SMjI9LS0m/evOHn5zcwMMjMzITZdu7cOW3aNBKJ BIfjypUrMP3+/fscHBzQQIlWxU/HqYOXLkcmx2ecmKTC4thvR1tX2av3270Obvc6CACgdPUcDYrJ vvskPuMEkkdfX59MJt+4cSMkJITlEI8VCW1t7cmTJycmJqalpTk6OkKXz1E6E+NV8k8h5FBKZFR2 Rtp2FRUWItTa1vOqqNbTK9bTKxYA0NXdH7Qv+d694oy07UieGfqKZDJ34o0XB1m5QNbUtsGSO7v6 KBSqjLQwAEBHW051slRC4rP7aaVOjr9wcXGMC64AAJFXHs2aoazCZIotet1gv3DqZEVxAIDJDKVf pivef/hm4VzUd3fZu48MBsN3rSkbGxuRh/M3l9n61oda2nvFRfhkpYULy+p+0ZsEDZGUXqqWmjQY 5+BiZ2cwGCN0emtP36vaj56xyZ6xyQCArn5qYHLW3eJ3mdtHf8/j4uAYoX9ehMxUks3Z8fljkt/1 +3oKMiRuLgCAjJBAnPdnP/p7Je842AkzFGXHHTkCAgKysrKFhYWGhoZwsUShUBCdz8HBIS4uDgAQ FxffsmWLhoZGaWnpD99lN96Bc/WzuMKBc4XjT1uef6piFxeXgoKC5ORkGo2Wm5ubmpoKIzR5eHhc u3YtOTl5aGiIRqOVl5c/efIEAGBubi4tLR0QEDAwMFBdXX369GnmiE6jEBMTo6SkBO0gEH19fXZ2 dn19fdeuXePg4KBSqcjtDR4eHufPny8tLR0aGjp+/DiVSoWbLicnp5MnT8ITplFRUYglHqMlw8PD VCp1ZGSETqdTqVTkrgO0Kjw9PUNCQp4/f06n09va2mCYtg8fPsyZM8fW1jYgIIBKpcICAQALFy6s q6uDV0B0dnaOuvKyt7c3Pj6e2f1EVFS0oqICcR1VVFRcv349jCz2XWRGRUU5ODggWy8AgK2tLYFA 2L9/f39/f2Zm5s2bN6FrEhrJsrKyxsbG8PqCkZGRsLCwr4qBu7v7rVu3rl27NjQ01N/fD6MNioiI 2NnZHTx4sLW1lUKhBAUF6erqwq1gTExMTU1Nd3d3QUHBxo0b58yZw+y5ObYLaAz8QBXf1YXvwqpV q27cuJGVlTUyMpKWlnbr1i1nZ+cfnnFdXV1qamq8vLw0Gu348ePf+JSEhERVVRUSgGzVqlWhoaEV FRVDQ0MhISFDQ0PIsceSkpKLFy/S6fSnT59evnzZycnpq4VbWVkNDg7u3buXQqEwGIyGhgbkzDWM d+nt7d3R0YEIp7e3d2BgYGFhIZ1OHxgYyMvLY2l7GgU0cf0ryMvLKy4uHhkZIZPJ8HAx5Kq9vb2j owMhXFBQUElJCZKTkZGBQTJz6LSpU6dCHkZGRo4dO8ac8xtJfvnyZVxcHJ1OLygouHTpEpKNwWDs 2rWLSqU2NTXt378fpltZWbGxsfn5+VEoFBqN9uzZs97eXrSJICkpaWdn5+3tDa+Y6Orqgrq6t7eX RqNpa2sTCITOzk7kPgc07QQAuHPnzooVKyIjI+fPnw8VHbSs3b179/79+83NzS0tLRcuXEhISJg/ fz60Pty5c6epqamzs/POnTtHjx6Fsf8WLlz45s0bqOWgejx//jzizjk4OAhLptFoVCqVRqNh6FIM TYXG6uPHjx8/ftzR0dHc3Hzs2LEHDx5gaxI0AjF6gUaUk5NTfHw8dCIuKipCbFJoREFcvHixqKiI TqfHxsZWVlba2dlh6Em0KnR1dTk4OE6dOjU0NNTd3R0RESEjIzM2fKShoeGLFy9yc3Ph14j4+Hjm WMMHDhxobW0dGBjw8/ObOnWqqqoqpB15ccDOYvOPJi3fqATQ3llow4TRQjTthLaQyMjIePnyJRxx e3t7IyOj58+fw8/+eXl5sEfR0dFRUVGBgYGfbS5FRdXV1V1dXRkZGRs2bNiyZQt8B6FVAQDYtWtX UVER/Hd8fDxi9y8rK/Pz82M2PX8VB3eduRyZfOnuUWlZiUHq0NDg5xVUycu38tzGDbVNE0QFn1Ql 3X0RC//kFGXcNiw/dTVwVDlXr17NzMwcZYzGEAkAwNq1a8PDw+/evevi4oLYzYWEhBC1ifEq+Uew a3dCZFT2vZQtsrITqNThwUHaZxkurOEiutTWtomJ8ldXhBU8D4J/iopivuvNr1wefR3ctavrsjN3 iIux8PvYf+B2SytlYGBou9+1aVPlVVU/O666rZ19PDw99W6Rq4vJuOAKANDbPxh364WH459uRv5F b9KNu6+q6trodMbjl1WPnldM05z4WasP0aiDwwwGoI2MUAeHaSN0AMBUjYkcHOwnLzwcGh7p7hk4 fTFXRlJIbAIZAOCx8pdj0TlvK5q7KAPbD9w0nDZJXVkSjENEP3xR09rZPUB9UdWw4UrK3ClKQiSi GD+5OmxbQZAP/FMUE/Y1N7r66woAQP6H2vwPte29/U3dPWH383JeVy7WmwKLyn1X3dTd00zpPffg xZnsZ/uWfL5/8lXtx+rWjs6+gfSyD79dvL3NatZY18hxAXd39xMnTrx9+7arq2vHjh0zZ85UV/8j 4CmNRqPRaG1tbZGRkTw8PCzvFvvfAc7Vz+IKB84VDgQc/1TFmpqaV69e9ff3d3V1lZWVDQsLs7Ky AgBoa2snJSUFBQWtW7eOwWCoqKhs27YNAEAkEm/fvu3r6ystLS0kJGRvb4/mojIyMhIbG4vsMCHy 8/NhEDTkAJGpqSl0cvTw8Ojq6rK1taVQKBoaGjdv3oSn5LZt29bV1WVoaCglJaWvr4+EWsNoibe3 N3I5gJCQkIqKCvxQjFaFt7c3gUDw8PBobGwUEhLatm3b1KlTL1y40NDQEBYWhuxvAwIC/Pz8BAUF b968uXnz5v379wsKCi5fvpz5Xgh4forZw4VAIDB7eXBwcAgICMBN4LeT+e7du7y8PHj/IAJ+fv5b t26tX7/+yJEj4uLiYWFh0EsFg+SLFy96e3sbGBhMmDDBzs4O3vmAIQY6Ojo3btwIDAxcv349Jyen ra0tjGMYERGxadMm6B80a9ashIQE6CV0+/btgIAACoUiISFhZWXFHFaSZRcwGPjeKr63C98OIyOj yMjIbdu21dfXy8rKRkdHz5w584dnXHh4+LZt2yIjI7m4uJYtWzb29hKWcHBwuHnzpoyMDIPBqKys 3Lp16/DwMLzgRVtbOzU1FbHk2tnZ5ebmwtvPAwIC4P2V2CCTyWlpabt379bW1u7v75eSknJ0dITs AQBWr17t6enp5uaGXIPu5eXFw8Pj6elZV1fHxcWlp6f3LRenoonrX0Fzc/OGDRsaGho4OTl1dHTO nDkDANDQ0HByctLS0qLRaJcuXVq6dGl2draenp6IiIiysrK5uTlaaZs2bfL09IyNjdXW1k5LS9u7 d6+bmxt80Nramvm+kW8k2c7OLisra+PGjfz8/P7+/kg2aWlpeXl5dXX1wcHBxYsX79mzB47C/fv3 /fz81NXVaTSahoZGYmIixkSIioo6cOCAubl5a2urkJCQsbHxwoULJ06cGBISYmlpKSIiIigoaGVl xXwRx1jtBAA4fPhwT08Ps8dcVlaWoaEhnU4PCgqqqKggEAgKCgqHDh2CxqChoaHDhw+/e/dueHhY Tk5u+/bt8LYiIpGIKDoY5FFMTAwJxqelpQUv3CgoKDh48KCbm1t4eDiGLkXTVGistra2BgYG1tTU cHFxqaqqXrt2Dbkj67sIxOgFGlEmJiZBQUG2trYTJkyQkZFZunQp/BWNqM8GCDe3LVu2lJSUyMvL JyUlIYYelnoSrQoZGZmEhISgoKCgoCB2dnY9Pb3k5OSxjtV2dnaNjY0+Pj4NDQ38/Pzm5ubME3bl ypVz585tbm6ePn16XFwcfPzq1aseHh7IOxQAUFNTA30oWPKPJi3fqAQw3lkshwmjhWjaCW0hwWxi I5FIPDw8iABcvXo1OTmZSqVqamrGx8cjF7UVFBQEBwd3dHTIysr+9ttvPj6fIyGiVQEAOH78uIaG Bry+JjU1dXBwEMa0/fDhw/Hjx4ODg7FPYCAYpA5FhF4BAMzV/vy5gp2dUNn/EADQWNcsqyAlISVC IBAkpUWZlhzsfAKkCaJCo4rCCB7CUiQAAMuWLfPz89PT00NsjgCA4OBgHx8fGM4S3vyD9ir5m0Gl Dh8+chcAoKW7C+FqoDcaAFBX16agIColJUQgsElLCzFzxS/AKybKP4YrVBdax5WGZnMPNDd3609X vBa3DuFq+bIZ2/zip+spqKpK/fu5+izwN18Qebhs52v/yYS6zXbHwVtmDsc7u/slRPl93czW2H+O AztlbnBdYwcA4EVx7YFT6e4rfjkVvFxGUuhGpHvgsdS9YakcHOx6WrK3oz0hLVs85nZ1D5g5HOun DpsaqsSddB2nG7abha/9b2R0D1AlBfisdFQD7OYCAAhsbDJCfwSf5WAnCPByi/GTAAAtlN6ApMya tk4udnY1abHE9Y5GKp/NQ5cfFyW9KKMO07RkJRJ8ViJXxBRUNwTdzG7v7ZedILjB/Jff5hmOU642 bdrU2dk5d+7cgYEBU1NT6C0O8fr1a/gth5+ff8qUKUlJSaMCav2vAefqp3CFA+cKBzPY5s2b973P wDsoMTJkZWWNPfmLAweO/yr8/Pza29uRe7Rx4CTjwIFjvKOZUPDVPDvXHdY30l60Yv5Xc4rTf/xs nYaGxo4dO1heFP4vATuI/2oeb58LxkYqKxxm/r+2RE1j+64dNk5fXAJHgMO/jquP4/gtNiLl/ndW xxEfhisiAADNYRNOAg4cOP4zyM/PV1BQQHxoWL9uRkbodPqbN2+YIxqNxc2bN+33Hv63dZADH2Mc OHDgwIEDBw4c34v9p7b+f1dx/fr1np4exIV2/OL0Sef/7yquXX/W20O1XzoDl0wcOHDgwIEDxz8C 3MKIA8ffhDt37mzZsmVU4u+///5v2Dj9f7Rt9+7dCQkJoxIzMjJgXMufjubm5rHn0G1sbA4fPozL Hg4cOHCMR8jLy9Pp9DNnzsBrvnFgQFbel05nRJ5x5ebG1/Y4cODAgQMHjn8G+CoEB46/CdbW1tbW 1v/JtrG8GDQ4ODg4OPhv64K4uPi7d+/+w/LDkmQcOHDg+A+jpqYGJ+EbUVdzDCcBBw4cOHDgwPHP 4v/Lwghj1ePAgQMHDhw4cOAYd+AEP2chJwX0/vNcMcC/a9HL9iX8Iue/kCxurvE6zNKefzefXLgj CAAAcOCbShw4cOAYPyDgFODAgQMHDhw4cODAgQMHDhw4cODAgeOHgVsYceDAgQMHDhw4cODAgQMH Dhw4cODA8eP4j1gYt2/fLi4uLigo2NLS8i3529ra2NjYmpqavr0KHx8fLy+v8U6UhoZGfHw8Lvf/ NmBL1+7dux0cHAAANBqNjY3t7du3f2fbMjMzJSQk/gMk9/b2srGxsYzqpaend/78eVwOv11jIBKL weq/BN+i7VNSUuTl5f9fqwAAlJWV6erqCgkJbdq06Se25L8hvT/wUv4XVoFrp5/efRxjuKIS2FbU 1LTiVODAgQMHDhw4/oX4OyyMCxcuZGPC3LlzYXp9fb2Dg4OQkBCJRJoxY0ZnZycAoKamZvbs2aKi okQiUVVV9cSJE8xFPXr0yMTEhEgkCgsLr169GiaWl5efOnXq9evXXV1dYmJiAIBz586pq6tzc3NL S0uHh4d/tYUsW4INllXEx8cbGRnx8fGxsbH9xSqoVOq2bdtkZGR4eHhUVVXz8vKYf21vbxcXFyeT yUjKzp07tbS0eHl5paWlvby8uru7v9oF7CrGgiX5w8PD/v7+8vLyRCLRxMSkrKzsh8tHY9XHx4dZ fkJDQ/9npys7O3t4ePhPtPfR6XQ/Pz8xMTESiWRra8ty762qqnrgwIG/WJGfn5+Tk9P3PnX//n0Z GZl/4UD8gGyPRVlZGdufoaCggD2dU1NTp02bJiAgwMfHN3PmzPT0dGbTCQJmzYCmMTCU1c8Cxsz9 AZULAMjNzSUQCAsXLoT/bW5uXrt2rYKCApFIVFFR+RbNkJiYyNwkpKgfGCM0jIyM+Pn5TZw4kZeX V11d/dKlS8hPgYGBCxYs6OzsDAsLw8iGhl27duno6HBxcc2ePftb6EKTlrG4cuWKkpISDw+Pnp7e 06dPYeKzZ89sbW0lJCTIZLK+vn5qaupPb+FXERQUNEpy4uLiNDQ0iESimppaUlISkl5QUDB79mw+ Pj4pKam9e/cyGIwfGyaMqfTs2TMTExN+fn4REZHly5cj2vJbtCgzLl68OGXKFF5e3okTJ/r5+Y2M jIyLt0/IzlNztFYo8hpNlbbc7nWgp7t3bJ6s1EcLpq1SFZitwjfLeqbrw/SnyOiwsbHJysoyd3bF ihVsbGw/doEVlUplY2OrqKj4d3K1a2e8ttY2Eq+zjLT3r17nurv7WU3PV3rTdgoKuPLzuRjO3JOe XvKFqyoC2wo5WZ+RETqSeeWKcALbipCQW/89rkQ0N7PJeDH/1dS3AwCWekSOSr+Q8AQ+UlhaZ2B9 kGeSzyTD3dFx+X/M0FfVJktC+VV9RTQ3L//1bFMrBaY3tVKW/3pWVGsL3+QNJktCnxfVjNMVoM/5 m2yO25G/0NTc0QozKZM5vaa1c3ZwpKhXEHHNLtUtoSfS/uBq1/U0nR3HuFbvnB0cyVxCc3ev46k4 sV+DBNwCHE/FdfUPjFOu0NRyaGgoot7FxMScnJza2tr+xw0BOFc/d9OEA+cKB/jbfBi9vLwGvuDe vXsAgK6uLmNjY25u7idPnlRVVQUHB3NycgIA+Pn5g4KCSkpKGhsbT58+vXfvXmQX8ezZM3Nzcxsb m3fv3hUXFzs6OsL06upqCQmJCRMmwP8eO3Zs9+7dwcHBdXV12dnZ06dPx24bWkswgFaFkJCQj4/P oUOH/noVDg4ODx48SEhIqK+vv3TpkqSkJPOv69at09LSYk5paWkJCwurqqq6detWXl6et7f3VwcF u4pRQCM/ODj4ypUrKSkp7e3tJiYm5ubmvb29P1A+9sC5ubkh8rNx48b/2enKxsbm4+MjKCj4swo8 dOjQ5cuXMzMza2pqGAyGvb392DwyMjIuLi5/f2eHh4f/tQPxvbLNElOmTBlggo6OzsqVK7Gns7Ky 8rlz5yoqKiorK52dnW1sbD59+oQUWFNTA4tqb28fVddYjYGmrH4uWM7cH9CHAIC+vj5PT09jY2Mk pa2tbcKECdevX6+rqzt8+PDevXvPnj371XJUVFSQJiUnJ//wGKHh1KlT586du3XrVnd3d2BgoIuL y8uXL5FX1ZQpU76aDQ1KSkrBwcFr1qz5RvKxpQXB48ePXV1dQ0JCWltbbW1tLSws4C6iurrazMws Ozu7srJy0aJFdnZ25eXlP7eF2CgpKYmLi5s0aRKSkp2d7ezsfODAga6urpCQkJUrVxYUFAAAWltb FyxYMGvWrObm5rS0tPPnzx87duyHh4nlVBoZGVm4cKGWltanT5/KyspaW1s9PT2/XYsiKC4uXrNm zc6dO7u6ulJTUy9cuDDqM+q/Fm0tnXvDNj6puhV768jzvFc7vA+OzaOgLBt6bnd+RfLjyuRlzlZr bDa3fPpjR0omk+/fvw//3d7enpqaqqio+J98U7e0UI6EraqsOn7z1pa8vHfrvGNYTU+Js+c8PlQc q6g8vtrZxNYm9NOnLiaueO7fL/7CVW9q6itFRfH/JFeNLw8OVIbDv99cTA31FOUnTgAAxJ12Q9IT Ij14iVyLFugAACg9VItV4aaGk1uKQ08ELffZHZ+Z9wYAMDJCX+h8SktN5lPhwbLsgNb2Xs/tl2EV 3juuNnzqKkrf3Vx0WF9HwXJV+DBtZJzS5WaqP3D+d/i30cLoTwqz7lPck6JJYsJICj+RO2jp/JKQ jY0nd512sdt7IyPpxWcnACXxCcHLzNeYTBtV/rITl7v6qeUHN38I29re2+8ccX2cEoWhlqdMmTI8 PDw0NJSfn//27dsNGzb8jxsCcK5+7qYJB84Vjr/PwsjOzs7zBXAzeerUKRKJFBMTo6qqKi4uPm/e POgsICwsbGJiIikpKSwsrKyszMvL++7dO1jI7t27V61atWXLFllZ2YkTJ5qbmwMAzp8/7+7uXldX p6SkZG9vPzAwEBAQcOzYscWLF4uLi0+ePNnAwAA+3tTUZGNjIyQkpKKikpKSwrzTYNkSAEBMTIyi oqKgoKCjo2N//+ev0BhVmJubOzg4jHVywaji4cOHv/zyi5CQkJKSEuK1l5+ff/fu3cTExJkzZ4qK ik6fPl1JSQkpLSkp6dOnTx4eHsxVnDt3bu7cuRISEnp6et7e3o8ePULMNJs2bRITE5OSkvr999+R /BhVVFVVLVmyREJCQlBQ0MjIqKurC418AEBCQoK3t7eGhgYvL29QUBCFQoGbdozya2pqIHVSUlLr 1q3r6+vDZnWU/LCzs2NIGsvGt7a2Ojk5SUhISEhIrF69Gtk06unp7du3z8zMjEgkamlplZWVXb58 WUFBQUBAwMvLi06ngy+HFk+cOCEpKcnPz799+/a2trZFixaRSCR1dfVnz57Boh48eGBgYCAkJCQi IrJ48eLGxkaYvmXLlqVLlzo7O+vo6CgqKjJvJllKFzaYT0ljlMxSqFjizJkzmzdv1tLSEhUVPXLk yKNHj8YaEZhPSevp6fn5+Zmbm2toaGhoaDx8+HBsmXV1dRYWFiIiIkJCQhoaGqWlpQkJCZGRkbdu 3VJSUlJSUurv78ega/HixStXrtTU1PTw8HB1dW1qaoJP5eTk1NTUsLGxUalUmDk+Pl5DQwNp2MaN G+fNm6evrz99+nQMp8L09HRVVVUhISELC4uGhgYkvbq6Gjoo6ejoII8zGIwzZ85oaGjw8/PLysqe OXPmB2QbAODu7i4rK8vHxzd58uTY2FjEXoxIdUlJSUlJibu7O/Z0VlFR0dXVFRUVFRMTmzx58uDg IPO5Qm5ublgaNzc3c5dZagw0ZYWmMbAlFo1VljP3e/UhhJ+fn729vaamJvPa99ChQ9OnTxcVFYWm MYQoNG0/ivZRls3Dhw9LS0uLioquW7cOihnGGKFVUVFRYWxsPHXqVE5OTnt7ewkJidLSUgDA1KlT S0tLt2zZoqSklJeXh5YNrSUAABcXl4ULFwoLC4+VapbSiy0tCKKiohYsWLB06VI+Pr7du3eTyeRr 165BM/qGDRvU1dXFxcV37twpICDw/PlzbDlHa2FfX9/GjRvl5eUnTJhgZWWFNANjmGg0mouLy8mT J4lEIpKYmJg4f/58a2trbm5uW1vbOXPmREREAABycnKGhoYCAgJ4eXk1NTXXrVt38uTJHxsmtKnU 3d3d1tbm7u5OIpEkJCRWrlxZXFyMrUVZao/KykoBAQFHR0cuLi4tLa05c+Yg5fwU7cQy8acg9Nxu 47n6YhITtPXUnL3tnz8qGptnkoqshu7kCaJCImLCipPlhgaH6mv+MGq7u7sj3wAuXrxoaWkpIiKC rUbOnj2LKHkAQG1tLQcHR1VV1Zw5cwAAc+bMUVJSgl6QaDL5j+DsOY+5czUlJAT19Cb96j3v0aN3 rD51SOrqyouK8ouJ8U+eLDk4OMx88NnN3ezc2ewvXOVaWuqIiPD9masSNdXNwkJrLS1CGho6AABn z2Zramwdd1xxc3HwcHPycHMCAK4kP/d0+vwNiZODHabzcHPGxD9ebqMnwEcEACTdezUyQt+31Yaf j2fhXM3FFrqRl/MAAN09A20dve4rjUi83BKi/Cvtphe//jyDKmpal1lPk5YQ5CVyea0yae/sa2Qy 5o4vsBPYeDg54B874Y8dHG2E7hKZcHLNIiLXHy81YTKviaqCpCCfMJlXWWICLxfXu0+fZcxllt5C XTVhMi9z4a2Uvty31YFL5onyk8T4yfvszW8Xvq5rH5dcYS9uOTg4ODk5lZWV7e3ti4qK/scNAThX P4srHDhXOP5uC+NY5OTkqKurW1lZ8fHxqaqqjloHz5w5U0RERE5OjkQiwQO5IyMjubm5JBJJW1tb QEBg5syZ0LqxZs2aiIgIWVnZioqKhISEly9fUiiUqqoqWVlZUVFROzu72tpaWObKlSt5eXkbGhry 8/MvXLjw1Zbk5uauX78+Jiamo6PD2tr68uXPn0MxqvjezpaWllpaWm7evLmtre3OnTuhoaHXr1+H +VVUVEJCQoSFhWVlZX19fZH9fHt7+6ZNm86dO4dxtjEvL09XVxf+e//+/WlpaQUFBdXV1S0tLYi5 Fq2K3t5eMzMzGRmZd+/etbW1HTp0iIODA418uJ8Z1ZJXr15hlN/f329qaqqqqlpdXV1WVlZZWbl1 69avspqcnCwjI6Orq+vv74+xGmbZeADAihUrKBTKmzdvXr9+3dbWxuyFFBMTc/jw4Y6ODj09PVtb 28zMzMLCwsLCwuTk5Js3b8I8jY2NdXV1Hz58yM3NDQ8PX7Bgga+vb3t7u42NDWJu4ODgOHbsWEtL y4cPHwAAzEEVU1JS1q1bV1RUlJ6e7ufnB+2DaNL1XWBZMppQjUV3d3dtbS3iK6qsrMzPz8+83WWJ mzdvXrx4saysbMeOHU5OTmNPI+7evVtSUvLjx48dHR03btwQFRW1t7f39PS0tbWtqKioqKjg5YFa JZ0AACAASURBVOXFoOv27dteXl6lpaWxsbExMTESEhLwKVNTU+yGJScnX758+fnz54cOHbKyskIL yXr+/PmHDx9+/PhRXFx8yZIlzO/CsLCwzs5Ob29vS0tL+PjJkyeDg4OjoqK6urpevnw5bdq0H5Bt AIC+vv7Lly+7u7tPnjy5bt066Hg16k1sbm7OMgAf83QGAHz69ElCQkJAQMDMzMza2nrGjBnITyYm JgoKCpaWloih7Rs1BjPQNAa2xKKxynLmfq8+hLU/ePBg9+7daM0eHBx8/vw5QhSatocW8EmTJqmq qq5Zs4ZZyTQ0NEB3v+Li4sePHwcEBGCPEVoV7u7ub968KSwsHB4eTkxMpFKpMDBIYWGhmppaaGgo tG2hZfuWlrBcyY2VXmxpQVBcXIwoATY2tqlTp45VAm/fvm1ra9PR0cGWczS4uLi8ffv26dOnnz59 mjp1qo2NDTwtizFM+/fv19XVhcYRBGivG6iFmH+qqqqiUCg/MExoU0lYWNjDw+Ps2bN9fX1NTU1X r15dtmwZthZlqT3Mzc0nTZp05cqV4eHhkpKSnJwc5vny17UTy8Sfjmd5rzR0J7P8qeVTm46EuarA bHuzX+dZG+vOmIL85Ojo+ODBA+hIe+7cOeTtidH9FStW1NXVPXny+XhsdHT07NmzJ02alJWVBQDI ysqqqKjw8/P7AZn82/Ao762urjzLnz596pKU8BIUcJ1jFmxtPXXGDCUmrowePHgNvRqjz+W4uZuN evbC+YcPHu5p/BghLi6wdEkYAGDFCsO6uvYnTz6MU66u33kJAFhmPVpia+rb0x6We60y+ayvXjfo TJnIwfF586KnLQcticKCJA9H47NXH/X1Dza1Uq4mv1hmrQfzbP11ftLdVx+bu/oHhs5cyp2hqyAr LTxO92zJL8plfPbr7jzun5DeNzj0h8K8la0rLzVnitLYR2YGnBLxDJTbEELi4VxtPBWjcPoYRQoA KKr9OO5Y+sbFbU9PT1pa2lcPuv23gXP107nCgXOF4++zMEZHR4t8wZ07dwAAbW1tSUlJa9asaW1t DQ8P37hxI3NMpTt37rx48eLs2bNWVlbwTGhPT8/Q0FBcXFxMTExTU9OiRYusrKzq6+tHVQSPd6Wl pT19+vTdu3cEAsHW1pbBYNTW1ubk5Bw5coREIomKijLv2dBaEhsbu2LFilmzZhEIBAcHB0NDQ+wq MLqPVsWpU6fs7e0XL17Mzs6upqa2fv16uG9va2srLy/n4uKqq6vLyMi4f/++n58fLGrdunXe3t7K yspodUVFRWVlZR05cgRZsu/cuVNWVpabmzskJATx2UGr4vbt2zQaLSwsTEBAgIODw9DQkEwmY5Bv a2t7+vTpd+/eDQ4OBgYG9vb2wn0dRvlw98jLyyssLPz7778jXUZjdcmSJTdu3Hjw4EFwcHBiYiIS AnIsWDa+rq4uKyvr2LFjQkJCwsLCR48eTU9PRyTH3d192rRpRCLR2dm5qqrqyJEjQkJCioqK8+fP f/HiBczDyckZEhJCJpN1dHRmzJgxc+bM2bNn8/DwuLu7l5WVQQ8jIyMjAwMDTk5OISGhwMDA7Oxs pFVz587V19cHACgqKqqpqcGzeGjS9V1gWTKaUI0FHCkBAQEkRVBQECZiwM3NTVxcHABgY2PT0NDw 8ePo1Sc3N3djYyM0d06ePJll1EgMumbPnm1iYvIDbKxZswY2zNTUVF1dPTExkWW2PXv2iIuLE4nE o0ePvnjx4vXr14gRRE9Pj52d3cPDQ1FRET4eHh7u7+9vaGhIIBCgu+IPyDYUM1FRUQKBMG/ePAsL C+b+AgC6urquXbvG8qqfUdMZACAuLl5UVPT06dM9e/bMmzePQCAAAHh5eS9fvnzr1q3bt29Dxyjk yOdXNcbYTT5LjYEtsSxZRZu536sP+/r63Nzczp49y8XFxXpfRKe7ublJSUn9+uuvAAAMba+hoZGY mJienh4bG9vW1mZqaooIPBsb25EjR3h4eKSkpAICAhBXU5ZjhFHFpEmTzMzM9PT0uLi4Vq9effLk SZaxRDGyYbcEzYQ3VnrRpGWsHsBWAh0dHfb29r6+vtCAiyHnLNHU1JSQkBARESEhIcHFxRUYGFhX V1dcXIzBYUlJSWxs7NjAmra2tmlpaffv36fRaKmpqRkZGbCps2fPJhAI+/btGxwcfPPmDXRspFAo PzBMGFNp2bJl9+7dI5PJkpKSdDod2rsxtChL7UEikVxdXb28vLi4uLS1tZcvX84cDPSvayeWiT8X l6OSH2W9CDjiy/JXEXHh9KKrd57GbtzjZjJvBrPI8fPzL168OCYm5tGjR0NDQ2ZmZl9VzmQyeeXK ldHR0XCawzMrLF/93yWTfxuiorKysspCj7COQSwuLvCqKOTJ03179iyZO0+LQGBj4oq4eLF+TEzO o0fvhoZoZmZTRj3rv2eJuLgAkcgVdnT1ixdVr183kMk8K1caxkTnAADodMa44+rMpVxnewPozPgn Dq/kaavL6Ot8ttJSegegM+Pn6cZPpPR+9vJeZj3tXnYZWWWDpO42Op2xe70lTP9luiI7O0F6mh9J ef31OwVnDzsxUz2OsERf84bvqgf+nsH25onPS1ZHXPusMOs+xeYWhDpasXzqzpY1L4J/O+u2xEpH TZCXiFG+uAB5hpLs3hsZHb39Hb39AYnpAABK/+C4Iwp7cfvu3TsJCQlxcXFhYeG2traDBw/+L1sB cK5+Flc4cK5w/AMWRgcHh6IvgJ4CMPa8g4MDDw/PvHnzbG1tEZcxAICIiIiCgsLatWvb29vhroCX l5dAILi6ukJ70Pbt28lkckZGxqiK+Pj4AAD+/v5SUlJw8VRcXFxdXd3Q0MDDwyMtLQ2zMR86RmtJ Q0MDczbk32hVYHQfrYrq6urU1FTVLzh58iScfnx8fOzs7NCqNXnyZF9fX5g/OTm5oqJi8+bNaBWd OnVq79692dnZSHijxsZGpOVEIlFKSgppEssqampqFBUVR51ExiB/7969S5YssbCwkJGRaWtr09fX h+ee0MqHjlFIl1esWMHFxdXd3Y3BqqmpqZGRkZKSkpWV1ZkzZ5KTk9GUFMvG19fXM9/PAJlBLIwI ISQSiZubG4nmSSKRenp64L/FxMSgLyRMR6SIRCIxGAwYd/Ldu3f29vZKSkoTJ060tLTs7+9HPLaY D4IRiURYLJp0fRdYlowmVGPBz88PPzQxm1Fg4rdUCk8vIiwhOHjwoJqamp2dnZiYmJeXFzyoPgoY dCH0fi+YgyFKSko2NDQ0NTUhYaoRmwsiCUJCQvz8/MhRRObzwvLy8jC9trZWRUVl7HT+LtkGABw7 dmzatGkTJ06Ul5dPT09vbf3TNaAXLlwQFha2srL66nQGABAIBAkJCTU1tcDAwCNHjsCDn7y8vI6O jmpqapqamiEhIYaGhlevXv0WjTEWaBoDW2JZsoo2c79XH+7YscPKyoo5bAIzaDTaqlWrKisr7927 B8+0Ymh7VVVVS0tLJSWlmTNnJiYmfvr0CXHHFhERQQ5ry8vLt7a2Dg4Ooo0RRhU+Pj55eXmvX78e Ghq6d++et7c33NKPAkY27JawBEvpRZMWVVVVOCl8fHygHsBQAs3NzaamprNmzQoLC4MpGHLOElCN L1iwAOaHd3k1NTWhcTgyMuLi4nL06NGxAWcXLFhw5syZrVu3ioqKnjhxYtWqVVAdiYuL3717NzMz U0pKatmyZc7OzgQCQUhI6AeGCW0qVVZWWlhYeHt79/f3t7W1ycvLz5kzh8FgYGhRltrjwoUL27dv T05OHhoaev/+/cOHD7ds2YI9j75LO7FM/Ik4fyrhyN6ohOwIOUXWd3ARCAQxiQnKagpbAj0jj1zJ TPlTwAoPD4/o6OjIyEg3N7exXtUsu+/p6Xnt2rXe3t60tLSBgQE7OzuWMvZdMvn34NSp9MC9iVnZ /mghFAkENgkJQTU16b2BS8OOpKSkFDL/6u5hFhP9ICoyc62bKSuuRL9wReLnJ8KD0h6ec69de9Lb S01LKx5fXJW8aXzyssrTafTHxWHaSMy1x4gDIwCAn0zs7vnj+pEuygA/mQcAUFnbauEU7u08q78i vK30iPzECXOWH2UwGAwGY57DMXFRvpbiwwOV4X7rFhjbhTZ86gTjEKbqikaT5ZXEJ1jpqp5xXZxc UE4ZoI7Q6S6RCUedrNGshyJ8JAVR4bWzp7f39gckZmBXkbjBicjFOWV7mM7O4+ZaKhzsBBE+3nFH FPbiVlFRsaioqLi4uKSkRF9ff+7cuV99w/6HgXP1s7jCgXOF4x+wMJJIJJkvgIYJHR2dUWsmlu4V DAYDXoHHxcWlrq7+1Ue0tLQIBMLYbDIyMlQqFTF2MF9phNYSGRkZ5mzIv9GqwOg+WhVycnJLlix5 +wXV1dUPHjyA+cGfjyrA/GlpaW/evBEXFxcREXF1de3r6xMREYE35wAA9u/fHxISkpOTwxyqTFpa Gmn5yMgIYtpAq0JeXr6qqgqGIESAQT4PD8+hQ4eqqqpaW1v37t1bXl4ObxFFK19OTm7ixIlIl9+/ f9/W1iYgIPCNrHJxcTEYDLTLN1k2fuLEidCJFf63qqoKJv5cCXd0dFRSUiopKamvr4cjgu3WiiZd fx1oQjUWAgICcnJyiIdOZWUlhULR1tb+iw0QFhY+duxYZWXl8+fPCwsL9+/fP3YoMegaKzMIoNkF CUs36lY75rsyKyoqZGRkJCQkGF+wdOlSxAwN/9HZ2UmhUBDHMeYQdTU1NTBdTk4OnuMeNZ2/S7ZT UlIOHjx46dKl+vr6mpoac3PzUbIB99ujLOMsp/Mo0Ol0ljeEcnFxwTmCrTFYAk1jYEssGqssZ+73 6kPocghd4KOjo9PT00VERKDxkUqlLl68+OPHj+np6YhBCkPbM4ODg4OdnR1RJm1tbcgtVTU1NaKi oszhLEeNEUYVr169Wr58uaqqKicn56xZs4yNjVkSjpENuyVoH1fGSi+atLx9+xZOChisUFtbG1EC DAajqKgIUQK1tbVGRkbz588/efIkMmRoco6hkQAAOTk5yCPNzc2WlpZoHLa2thYWFrq5ucERf/v2 bUBAABIkwdXVtbS0tLOzMy0traysDLm02tDQMDc3t729vbS0tK+vb/r06XDV8ReHCZlKpaWlDAZj 06ZNRCJxwoQJGzZsKCgoaGlpwdCiLLXHq1evDAwM5s6dCyNbOTk53b1796vz6Nu1E8vEn4UT+2NP hpxPzDmjqvlNn8TodHp1RQNzioGBAZlMvn79OsvrgFh2X1dXV01N7dq1a9HR0atXr4aOzKNeDd8r k38D9u+/eTDkVnaOv6bmxG/jilFR0fxnrpTJZO7r15+uWTOLFVdtX7jqo1AGZGSEAQC6uvJqatLX rj2Jic4ZR1wBACIuPpw9U2XyGFNs0t1X/QNDKxfpIyna6jLFrxuQi7YLS+u01WUAAKVvGhmAsclj LpGHc4IQacNas4KS2pa2HkovtaqubZ3zbNEJfDzcnN7OsxiAkf+icrxv3rg42BkMxgid0UrpK6xp dDubKOIZKOIZ+PZja0Biuumfb4j+Yz/V/JW7gGWEBa6vd/x0anfdiR3KEiIcBIKBsuy4Iwd7ccvB wQHDsqupqfn5+ZWVlf0vH97EufpZXOHAucLxD1gYx8Ld3f358+eJiYk0Gu3Bgwe3b9+GYXdSUlLu 3r3b1NTU3NwcExMTHx9vYWEBH/H29o6Oji4pKRkaGjpy5MjAwMC8efNGFSsqKrp06dLff/+9paWF QqHs2bNn2rRpcnJycnJys2bNgg7eIyMjhw8f/mpLnJ2dr1y5Ap3dCgsL09PTsauAJVOpVHgHLpVK RUwhaFX8+uuvV69eTUxMHBoaotFoZWVl+fn5AAC4+9q1a9fAwEBVVdWJEydg/pCQkHfv3kFX0NDQ UF5e3qKiIrj18vPzi4iISE9Pl5OTo1KpyFcmZ2fnY8eOwZZEREQg7mxoVdjY2LCxsW3ZsoVCodBo tCdPnsC9Lhr5dXV1RUVF3d3dRUVFy5cv19fXh5fAYJQ/ODi4e/duCoXCYDDq6+vhqXkMVs+ePVtd Xd3d3f38+fPffvtt3rx5QkJCLIWKZeNlZWXNzMw2bdrU1dXV2dm5efPmefPm/XQLY2dnp7q6Oi8v L41GYz7TigY06frrQBMqlvDy8goLC3vz5k1XV9fWrVt/+eUX5K7bH8aNGzegPVdERASGXAQASEpK VlZWItacb6RLUlKyra0NuZkHxmaFAtPR0REVFcWc+cKFCy9evBgZGYmIiKiurmaOYsaMffv2tbS0 DAwMbNmyRU9PT01NDabHxsYWFhbS6XR4/S58fN26dcHBwU+fPqXT6a2trTB+4vfKdmdnp6CgIDyn XFxcjNymCvHgwYP379+7ubkxJ6JN5zNnzjx79qyzs7OmpsbX17e5uRmeNHz06NGjR4/a29ubmppC Q0Ozs7O/qjHQlBWaxsCWWJasos3c79WHDx8+LCsrg71wcHAwMTEpKiri4+Pr6+uzsrLq6+tLSkri 4OBAuoOh7RMTE0tLS7u7uysqKlxcXPj4+JAj+QwGY9u2bVQq9dOnT/v27XN2dsYYI4wqjIyMEhIS Kisr6XR6fn5+bm6unp7eWDnEyIbWkuHhYSqVOjIyQqfTqVTq0NAfQbhYSi+atIyCh4fHvXv3bt++ PTAwcOjQIQqFsnz5cgDA+/fvjY2NFy9evG/fPighcP6iyTlaC6WkpJYuXQovZIPTAQ4xGodiYmL1 9fXIoQclJaVNmzbBy2eGhoays7M7Ojqqq6vXr19fW1uLXFD+8OFDuGyIioo6ffo0vKToB4YJbSpN mzaNg4PjxIkTQ0NDMKDqxIkTxcTEMLQoS+1hZGT07NmzBw8e0On0mpqaq1evMovHX9dOLBMBANu3 by8s/Owid+XKlfPnz8N/w9uHRn2WY20y8zt5MSIxLv2kjJzkIHVo6EsMuOKCN9Js0+GNLpfO3Hj1 rKy7k1Jf8ynA90hrc4eR2WjhT0xMzM3NhREtvlE5e3h4HD169M6dO8gc5OLiEhYWRqLEYsjkP4Id fnFnIjLS0nfKyYlSqcODg8MwvaCgisC2At7ocuZM5rNnFZ2dfTU1rRt9LzY3d489Cp2QuPFhboC4 OAvzX/C+pJYWysDA0NYtl/X0JqmpfXbUdfeYc+zo3Tt3CscLVwCA3r7BK8nPmR0VmSyPuY52+mTS H59YFlvoEghsQcdS+weG0h++vnG3EF4OM01LjoOd/URMztAwrbtn4OT5nIlSQmIifAJ8xCkqUmcu 5XZ29w/TRqKu5PUPDEGj5LjD2Zzn1a0d3f3U55X1v124NU9TWYhEFBMg14fvLDrgC/+UxCdssjS5 tt4RAJDy6s3dordNXT3N3b0xD1/EPym20Fb9rKtHRqjDtBE6nU5nUIdpQ18u1y6saaxq6ejsG0gr ee8de9PPxhT7YPW/FtiLWxqNRqPRWltbT58+zcPDM/bKu/8p4Fz9LK5w4Fzh+OctjFpaWomJiQEB AXx8fF5eXuHh4dbW1gAAGN5ISUlJWVn5xIkTR48e9fT0REwnPj4+FhYWwsLCN27cuHv3LssDlefO nZOVlVVRUVFQUKDT6Tdv3oTOF3FxcaWlpVOnTl2wYAHzRgutJbNnz96/f7+FhcXs2bOPHj0KN13Y VVy6dIlIJNrY2AAAiEQikUiEThNoVejq6qakpJw8eVJSUlJMTMzd3b2jowM+e//+/VevXk2YMMHE xMTS0hLulwQFBRFXUGFhYTY2NhkZGR4eHiqVevDgwYaGBnV1dVgviUSCTd25c6eWlta0adPmz5/f 0tKirq4O09GqIJPJ2dnZlZWVioqKIiIi27dvp9FoGOQ3NTUtW7ZMVFTU3NxcXV399u3bkAqM8nNy cioqKlRVVQUFBc3NzZG7pdBYTU5OnjFjhpiY2LJly2bOnBkfH48mVGiNj4uL4+HhgWeCBAQErly5 8tPl+cyZMwcPHpw5c+acOXNYXqcwChjS9ReBJlQssW3bNmiykZaWptFoCQkJf70BBQUF8NpTZWVl eXn5nTt3AgBWrlzJzc0tKioqKCjY19f3jXRpamo6OzvD20XT0tKgGRFeH+zk5MQcvwyK6ObNm4WE hM6cOZOSksJyBwsAWLVqFbytvqGhITExEfHM8vT09PX1FRQUDA8PRx7/7bfftm7d6uLiIiAgoKen Bz/Hfa9sQ8u7pqamsbHxiRMnLC0tR0mOtbU1syrDmM5tbW2Ojo6SkpJ6enolJSUpKSlaWloAgJaW Fk9Pz4kTJ6qqqiYlJSUnJxsbG2NoDAxlhaYxsCWWJatoM/d79aG4uDjSCxKJxMPDIyMjw8bGlpeX l52dnZ2dLSwsDLuAfI5C0/YlJSULFy4UExMzMjLq6enJzMxELj6WkZFRUFBQVFTU1NScPn16UFAQ xhhhVHHw4EEjI6NZs2aRyeTVq1dv3rzZ1dV1rBxiZENribu7O5FIDA0NzcvLIxKJcOgxpBdNWkbB 0NAwOjp648aNQkJC169fv3v3Ljx6HBMTU19ff+jQIeIXHDhwAFuHo7UwNjZ2ypQppqamfHx8Ojo6 yGuCJYfwzMH/sXfn8VCtfxzAn7GNYSxjHfuerWhBQhJKkiyFrKWQlnsrbSqVdtJ+b7dFSqm0SKlU ihalRRFFloixZN/Gvs38/jjuaX6Uul3d0Pf9mj/Gc545Z85n5hzPeeac5+A4ODgEBASwvryurq61 a9dKS0tra2vTaLQnT57gm3lERISampqcnFxYWFh0dDR+i5h/+jF9aVOSkZGJiYmJjIzEhnApKSmJ jY3F1uJLe9HP7j1mz569bdu2hQsXksnkCRMmjBo16tChQwO4d/psIUJo7969+KiON27cwAelycnJ 2bt371d7GNvbOg4Hny4rqTTRcFQkGSqSDJV5e+75W0Irk1OUkpASRQjVVtcvcd04WsLSUsf93Zu8 Mzf3q2v1HgF2xIgRX9rnf2n1nZ2di4uL9fT08D5H7OeThQsXUiiUjRs39vOd/O+1tXUGB18vKanV 1FjFQ/LgIXmQeedhk2i0akVFMSkpIYRQdXWjm+ufkhKLdHXWv3lTdOPmGi0t2T5ZSbDe/oWVm/vE ScZbJCUWlZTUXo5azpKVQXFxjZ6e0pDICnM2+gWJm9POcnSv8uy88kfPc3v1PPLzcd8689udB5lC mn4+a8/+sW2O+UR1hJCMJCXm5KLIay9FRq1S0N9QUlYfe2Zpz3+iMN/G5jYVo41Cmn5HIxIvHfVR U6YOxQO2qy8zxm/6U2zRVsdD5yaoyF1Y6oIQYiMQpIUE8AcHO5sAD7cYPxkhxGAyAy7HKfvtVvHb fehO0n5364VmPZued+gV0rwNe2ITH+cUkOZt0PLfj5W/zC8x3PKX+KJtS8OvrbA02mxvPkQPbvtp 3GZmZnJycnJyciorKycnJ9+8eVNUVPRX7giArAYkKwBZAVaEvqcBfpWPj4+trW0/FRISErAT2QAA 4D+go6OzdOnSz155BwAA4Dt8RK++Wmftwp3jjcfau07rp44k0vmX70RFRWXjxo393Oftp2OiC1+t 47vwxERjNVdXox/6TkaorAjYaDfX46/B+8UqPTZUNwmphf/1Es/vhh0RQgi5rIEMAADDRkJCgoKC AjZy4JdglwRlZWXhv5p/1rVr1xwCQwbbCnLAZwwAAAAAAP6p4GPrf/QiIiMjGxsbB/BM/5/l6DGv H5/V08bGVienCfDNBAAAAMBPAT2MYEgyMTFhHfweISQhIfHs2bMhvVLXrl1bvnx57+O34OB/f2Tl 7+/f9+ryR48eYSNdAgAAAIOQhIQEg8EICwv76v2OgKTEIgaDcSJsIZHICWkAAAAA4KeAHkYwJH3p /shDmq2tbf/jD3y3oKCgoKCgYfx9wG9oAAAAYNgoKyuDEL7Rx7IjEAIAAAAAfq4f1cOI35kUAAAA AAAMLR0Eru94FZU5oneDEA3/BmEtG/m/WZAQ4xtvvjF4M2dnYwytD7eb4okf2/znB2ndv/heqMt+ xU9JHgAAwHdjgwgAAAAAAAAAAAAAAADfDXoYAQAAAAAAAAAAAAAA329o9zDev3//H92qwtTUNDQ0 FD51AAAAAIDBoKmpiUQi0Wg0iAKyAgAAAMCQ9l/0MNrb25NYTJ8+/Wet7bJlywwNDeFTBwAAAAD4 Rjcu3XGYPFdTZIICt/aX6ix2XqnArc3a3jt79ixCKDU1lUQiqaiodHd/GlTOw8ODRCLt2bPnO95M W1sbiUTKz88fnFnFXEq0nbxmhLCDFNH6S3V85uySIlqzPi5HJCCE0lPeSxGtdZU8u7s/DVa42D1E imj9Z0jU8MtKQnM1l+Ri1getuAYhdCs+Y7zFLhFVPyGVFROtQ+49ysLq/3XqYa/6XivOsM6wpq5Z WmstRXk5XsJgMDfsuCY1ao2g0nL7eUfLK+lDdBv8Pfw6p+t6/LEv9jFWfut1jt6GP4W9tlAWBBpt PnLv7Xv8Ja8LPxpuPkKet0lleciph59uiJfyodRseyhlQaDskl1bryQwmcz+FzHkMBiMgIAAGRkZ YWFhBweHiooKrPzAgQP43klGRsbT07OmpuYX37dDVv8+KwBZgV7+o3MYvb296/4WExPzs9bWxsZG Q0MDPnUAAAAAgG8kQOH3WOS8bueKfuocOhOcXZ+MtfTOnz/Pw8Njbf2pi41MJt+9exd7Xltbe+fO HUVFxWGaFdlz0YyAnZ791PkrYvWHhivY43ikP4mHOG2mPj6Vl0x6eDcFe15X05hw+6WcosSwzKrw 9S56wUHssWS+yQQdRTkZYYSQiqLYsb1uWU+3Zj/b6u6gbz/3SFlFA0JooYcxXr8gZScXJ8ccO13W Gf6+7sIodSnWkj1/3T13JfnOpWXvk7czmUxnnyF8JdP8ybqN4VuxxzLLnhMmVKjCx73tRxoTRQAA IABJREFUs/etytm/ysN4rN3eiLL6RoQQvbV9RnC4iYbixyMbDsy1/j38ekJGHkKoit5sFXzKWF2h 9MiGW/6eZxJTDt152v8ihpx9+/ZFRkbeunUrJyeHyWS6uLjgkzQ0NBobG+l0+oMHD3JyclauXPmL 79shqwHJCkBWgNV/1MPIzs7O/TdOTs7ExERjY2MqlSolJeXk5PTx40esmoGBwerVq62srIyMjAwN DZOSkrByf39/R0dHDw8PY2NjHR2dY8eO9Zr/+/fv+fn5y8vLsT+ZTKampuaZM2d6VcOvksYuM/nr r7+MjY21tbWnTZtWUlLS9203NzevXr1aVVVVUlLSzs4OvyzFwMBg165d06ZNo1Aourq6mZmZkZGR ampq4uLiv/32G4PR88vz4sWLVVRUREVFtbS0WN/Mo0ePJk+eTKVSpaWlFy1ahBDq7Oz8/fff5eTk qFSqqqrq+fPn4asJAAAAgMHAeIqBteM0GXmpfupwcHIQuYlYS+/06dOzZ88WEBD41HMxf/6pU6ew 5+fOnbOwsBAWFmZ9eXx8vLa2NpVKtbGxKS0tRQidPHly3LhxeIWioiIymVxQUGBpaYkQsrS01NTU xM6CpNFoTk5OsrKyCgoKy5cvb25u/olZmUwZa+NoLKMg/rWsuLDHhfB7Mx0m8gnw4lNdF1icC4vD nkedu286TUdIhH9YZkXk4uAmcnITORFCkdEvvd0nYuUqimKjR8qICpPFRPhGKIm3d3TRSmoQQuzs bFh9biJn5NWX0lIUs4lq+Nyu3Uorr2zwcjNiXcTxM49X+JqPUpcSFSaHBM5KSs5/l1M2RDdDdjYC NycH9mBn6zmCU5EQGS0vKcrPK8ZPHiEh2t7ZRauqQwhde5nZzWBsmT2Fn0S0GqNmp6sZmpCMEHr4 7kNHV/dGezMeLs6RMtRFUyYcvvus/0UMOaGhocuXLx81apSIiEhQUNDTp0/fvXv3aevj4ODk5FRW Vp41a9abN29+8X07ZDVQWQHICuB+zj8PDg6OPXv2FBcXZ2ZmIoR+++03fNL169dPnTr15MmTnTt3 2tnZVVVVYeWxsbGLFy9OTEy8ceNGUFBQXFwc6wxVVFQMDAwiIiKwPx89elRdXT1r1qz+38bTp08T EhLS09MVFRUDAgL6VvDx8cnNzU1MTCwsLBw9evTs2bPxa3xOnz69a9eujx8/jh071sHB4f79+8+f P3/27FlMTMyNGzewOjo6Os+ePauoqNi/f//y5ctTU1MRQunp6TY2Nt7e3jQaLTc319nZGSF0/vz5 Z8+epaenl5eXP378eMyYMfDVBAAAAMCQQ6PR7t275+3tzVo4Z86cxMRE7JfgU6dOzZ8/v9erIiIi 7t27V1BQICYmNmfOHISQo6NjcXHxixcvsArh4eHGxsYKCgq3b99GCN2+fTszM3PVqlUtLS0WFhaq qqrZ2dmpqakfPnxYv379UMmqmFb58F6qh7cla6Gds8nTxIzK8lqE0PmTca4LLIZ9VlHXUxFCs2eO xUvKKhpktP1FVP2mOhywmjJKb4wCa30mk3ni7BMvNyMCgYCV1NQ1rwqMOrbXDS9BCDXQW4tKanVG 94zYrqwgxs/H/eZdyRDdsmJevpNfGqSz/o/Nl+81t3d8yqq+UXrxTmGvLVN2nJgxVk1PWQYhlE4r 05aT4GDvOdAbpyidXlSGEGIiJkKIwDLbgspaemt7/4sYQhoaGoqKivAOd2VlZX5+/rdv3/aq1tjY eO/ePdZ++V8QZDXgWQHICqD/rIcxPDxc6m+xsbEGBgZ6enqcnJyCgoIbN258+PAhXtPd3V1MTAwh NGnSJDU1tejoaKzc0NBQX18fISQhIeHq6tr3/MQFCxacPn0aG0wkPDzcycmJl5e3/3fl5+fHycmJ ELKysnr16lWvqRUVFdHR0YcOHRIXF+fi4tq4cWNxcTG+ecyfP3/MmDEkEsnNza2goCA4OFhQUFBR UdHc3Byf1fz580VERNjY2MzMzKZOnYqt5vHjx2fOnOni4kIkEnl4eIyNjRFCRCKRTqenp6d3dHSI iYmpq6vDVxMAAAAAQ05YWNioUaN0dHRYC/n4+GxsbE6fPv306dOOjg4TE5Ner1q/fr2YmBiJRAoJ CUlJScnKyiKTyU5OTuHh4QghBoMRERHRt18SIRQbG4sQ2rp1Kw8PD4VC2bJlS2Rk5FDJ6tyJOxpa CqN1R/x/VqTpthMuhMcnJ73r6OgyNNEa9lkdP/PY3XE8djIjRlyU/+W99U9urgnwm24+SZ2NjbVP DMUnZpeU1s11moCX/L7ugu+8ScoKYv/XM9LUhhAS4CPhJQL8PPTGtqG4Wdnrjby03CVho/dWh6lX kjM8j1z+lJUA+dXO35K2LAqwNzUfqcJGICCE6K1tAjzceB1BHu7G1naE0CR1RTY2wo6rD9o7u7JL K4/GP8cq97+IIaSxsREhxM//6bRfAQEBOr1n/M3c3Fw5OTlZWVlJScmampodO3b8yvtqyGqgsgKQ FWDF8d8sxsHBYfPmzdhzISGh3NzcwMDA9PT09vZ2hFBLS0tzczPWIUilUvFXUalU7OqPvuVPnjzp tQgbGxs/P7/Hjx9raWnFxMQ8ePDgq+8Kv0KHRCJhGwOrwsJChNDMmTPxEi4uLvxCbAmJnjFxeHl5 iUSikJAQ/mdTUxP2/M8//zx37lxVVRU7O3ttba2CggJCiEajjR8/vteyHB0dKyoq/P39379/P2nS pO3bt0MnIwAAAACGls7OztOnT2/atKnvpAULFsydOzcnJ8fT05P1RDOMvLx8T1eIoCA/P39paam6 urqXl5e5uXlISEhSUlJraytrk4y1tVZVVaWt3XMLGgaDwcnJ2dDQwHqN9uDU1dl1Ifzeqs2ufSe5 LZi2xCMkL6fEZf7UYZ/V26zS5ykfThxwZy1kYyNQxfipYvybVs1Q1guQlxG2mjIKn3rsdKKd1WhR YTL2Z8zttPzCqjOHe499yUfmRgg1NLbiJQ30Fn4+7qG4ZZlo9IxbqiQuTObmMt9xgt7azk8iIoTY CASqIB9VkG/zLHPlZbvlxShWY9T4SdxF1fX4y+tb2vhIRISQuAD5xup56y/c+SMuSUKQ38N47Pbo +xReUv+LGEL4+PgQQqzdGQ0NDXhnh6KiIjYgbF1d3cGDB6dPn56UlEQkEtEvCbIaqKwAZAVY/Uc9 jLy8vFJSn4bvmTdvnpmZ2YkTJ3h4eDIzM3V0dPAbmbHe8O7Dhw9mZmafLWedG4aLi8vd3T08PFxX V1dNTW306NH/8j3LysoihOLi4lg7N7/drVu39uzZc/v2bayv0NnZGVtHOTm5vLy8XpXZ2NiWLVu2 bNmy+vr6DRs2eHt79+1CBQAAAAAYzGJiYlpbW52cnPpO0tPTI5PJV65cCQoK6juVRqONGDECIVRf X0+n07Fmnra2tqqqalRUVFxcnKurKxcXF9Zk6tVak5aWTk9PH3JZ3br2rLW13W6OSd9JY8er8pBJ 16Mevww+NeyzOnY6cZLBiBFKXxy5ksFg5hdW4X9+LK+/Ff/2zsVleMndh1nZ78ultdYihDo6u5tb OiQ0V5/6Y940U01ZaaHUN0WGekoIoQ+FVfTGNi0N6aG+lXFxsDOZzG4G4zNZMZn5FTUIIW05ifNJ ad0MBjac4uvCUm3ZnnMjJoyQfbDJB3vuH3lbR0mal8j17YsY5AQEBGRlZVNTUw0MDLBjRjqdPmpU T/c0BweHuLg4QkhcXHzVqlUjR458+/ZtrxOufx2Q1UBlBSArwOrnjMNYX1+vrq7Ow8PT1dV18OBB 1klnz55NSUnp7u4+fvx4YWGhnZ0dVv7mzZszZ84wGIznz5+fPXvWzc2t72wXLFgQExNz7Nixz14b 8k9JSEjY2dktXry4uLgYe89Xr17t6Oj49nUUFBRUVlbG3vy9e/ewcm9v75iYmIsXL3Z0dLS0tCQm JiKEHj9+nJ6e3t3dTSaTBQQEODg44KsJAAAAgMGgu5vR3tbe1dmFEGpva29v6xm17W1KpgK3dgnt I17z+PHjc+bMIZPJn53P+fPn4+PjscFwetm1a1dVVVVra6u/v//YsWPV1NTwpt0ff/xx69YtT8+e M9S4uLgoFEpubi72p5WVVXt7e2BgIJ1OZzKZJSUl2LXAPzWrjq7OboRQe1tHe1tPuzE95b0U0bqY VonXPHP8lp2zCS/586fUhV7wv5oQJComOIyzQgg1NbdHRr/08ZjIWnj8zOPk1MK6hhZacc3KTZcr qxonG6niU8POJSkriBlPUMFLdmywzXwS+Cp+w6v4DcGb7HlIXK/iN5gYjkAI+XhMPHAsIft9eT29 de22qwa6ShqqQ/LG3GEPXhZW1TW0tL3ML1l2+ob5KGXsxMPjCS+S84rrmlsLq+r8Im5WNDRN1lBC CNnqarIRCNuv3m/p6Lz39n10cqa3mR42q8SsgvL6xoqGphP3k4/ee7HNcWr/ixhyvL29Dx06lJ2d XV9fv27dugkTJmhoaOBTu7q6urq6qqurjx07xs3NjZ8R/GuCrAYqKwBZAdzP6cn6448/1qxZc+zY MS4uLkdHR/wOLQghHx+ftWvXvnnzRl5ePjo6Gm+G2tnZJSYmrlmzhp+ff/Pmzdjd8XpRUlLS09NL Tk7+7I/n3+H48eO7du2ysLCoqqqiUCgTJ06cMWPGN7529uzZ9+/f19HRERERUVFRsbDoGah79OjR V65c2bJly++//87JyWljY2NsbFxRUbFs2bKSkhJOTs7Ro0cfPXoUvpoAAAAAGAyunr+x2rvnwmc1 QT2EUDItQVRcpKSoTFZBmirZ01TLzyl4/Pgxds/iz1JRUfnSJBcXF3Nz84qKCl1d3cjISPzSYEdH R39/fx0dHbwfDSG0ffv2pUuXNjc3L1q0aPPmzXFxcQEBAdra2i0tLZKSkq6urlZWVj8rqyvnHqzw PoA9VxSYhRB6XXRGTJxSUlQlp0CVkOwZVCcvp+RZYsbWvT5fmo+iitSwzwohdP5KMomb08ZSm7Ww urbJY+mp0o91ZF7iKA2paxGLRqn3pNHdzQg7l7Ry8RTW+oL8JEH+nr4wIUFeAgFJSfT0zK5aPLW+ vsXUbl9La8dkI9XI415DdBu89jJz46W7DS1tEoJ8VmPVN88y78mqscX9r4ultXQykWuULDVm1dxR slSEED+JeGPN3KWnYkJuJFIFyAfnWpuNVMZecvbJ6+jkjLbOLi1Z6uUVrqaaSv0vYsjx8/Orq6sz NzdvbW2dPHny+fPn8Unv3r3DLuHk5+fX1NSMjo4WERH5lfftkNWAZAUgK8CKMGXKlH/6Gh8fH1tb 234qJCQkTJo06TvejYGBwaJFi9zd3XuV+/v719TUhIaGfnUOixYtYjAYx44dg48WAAAAAOD7lBNy v1pn/ZJtekZjbZ0/dVFRmSMG/J2MHDly3bp1rq6ugzarWrb4r9ZZu+TweCNNe2eTf7MgIYb5UM+K ve7U0NoQuimeP2vRHNH7f/G9UJf9CtgVAwCGmaSkJAUFBRKpv5PEu7u7GQxGVlYWPmbgZ127ds0h MGSwreCwuho3Pz//8uXL9+/fhy8uAAAAAMAPtfPwxh+9iEuXLjU2Ns6ePXuoZxV8eAlkBQAAAIDh bfj0MLq7u9++fXv58uVaWlrwuQIAAAAADGny8vIMBuPo0aO/7A1MISsAAAAADCGDq4fx6dOnny3/ 7G0He2EdzBEAAAAAAAxphYWFEAJkBQAAAICh4kf1MHJzc0O4AAAAAABDkXzli+963Yuf+abFvH/K YglIdADnJoHGD+PvVaWE+o/9CiCTgZ0h58/LqsZlXv8VhJEEGtY4EAAAgCGGDSIAAAAAAAAAAAAA AAB8N+hhBAAAAAAAAAAAAAAAfD/oYfyipUuX+vr6fmlqQEDAnDlzBslbNTIyOnr0KHxkAAAAABha mprbCeI+hcU1EMXXs2pqIhAIMOQiAAAAAAYn6GEc1F68eGFjY0OlUslksp6eXmxs7Ger+fn5TZw4 EeICAAAAwIBbui6SIO6DP/b8dbdvndkLjrLWIYj7nL74DCH0Ko1GEPeRHePf3c3AKzsvDCWI+wQd uvMdb6atvZMg7pNXUDk4s4q5cM/GyEeFb7IkQf9LdeJjkyzGzVUVMFPhm2w9wevR3Z7BK9NfZUkS 9GVlZbu7uz9l5exMIBC+5Z6Hn8mqrY1AIOTl5Q3OrA7uPGeg6i7HM01NxMbDZkNBXilW3tnZFbTx 5Dj5ObIkCxvjZdkZBb1e+CzxDZXN1G3GOrwk9UWWjfEyJX4rERERJyen8vJyrHz9+vVaWlo8PDxS UlK+vr4NDQ1DdBscIaIpQpBkfRQVFmOTzp07p6yszM3NraOj8/z5c6ywtbXVwcFBWVmZjY0tMDCw 7wxramrExcXJZPLw218xGAx/f38xMTFeXl4bGxv8y7Bnzx7C38TExNzc3Kqrq3/xfTtk9e+zApAV 6AV6GAe1goICU1PT+/fv5+fn29ra2tnZZWZm9q1mb2+vqakJcQEAAADgR/ByNWotOow9Viw071sh 8qg3XuHyiYU8JC5by9H4VDIv8c79ngZMTV1zbPxbJXnRYRmUAIVv/lKHgN2/9VNHUUVm74kNT/Ou PMuPdpg7fe7MVRVln47eyWTynTs9fa81NTWxsbFKSkrDMquJZmPPXN+ZXno5PuW4sKigp/0mrHz/ 9ogr5+LP3dyVU3Nd31jLyWJ1c1Mr/qqW5rbVC/fqTxyFl3R3M1xnrNPQUnxbdiUjI6OqqmrhwoXY pMrKyn379n348CEmJubx48eLFy8eollllL4ubS3AHt6/zdcz0JGVl0EIPX36dP78+UFBQVVVVTY2 NpaWllhPEIFAMDQ0DAsL09bW/uwMlyxZoqWlNSy/V7t37z579mx8fHxhYSGTyXRwcMAnaWpqdnZ2 dnR0JCUlZWdnL1u27BffsUNWA5IVgKwAq/+ih7GxsdHPz09BQYGPj2/kyJFPnz5FCFVVVbm5uVGp VCqV6uHhUVPTc3WMjo7Otm3bTE1NSSSSlpZWRkbG2bNnFRQUBAQEfH19GQwG+vsikfDwcHV1dRKJ NGPGjPr6+jVr1ggLC1Op1NDQUGxWDx8+1NfXp1AoIiIi9vb2paU9P42uWrVq9uzZc+fOHT16tJKS 0qFDh/C3evLkSSUlJUFBQVdX15aWlm9cwfT09MmTJ1MoFEVFxa1bt3Z1dfVTjr354OBgIyOjsWPH WlpalpSUfGnOc+bMWbZsmYaGhri4+Pr16wUEBJKTk/tWw6+Svnnzpry8/I4dO3R1dZWUlBYsWNDZ 2dm3fmFhob29vbi4uKSk5JIlS5qbm7891bKysunTp4uJiQkICEyYMOHZs2f4bB88eGBoaEihUERF Rb28vBBCRUVFlpaWIiIiFApl5MiRb9++hU0OAAAAGHLY2dm4iZzYg539M61HTk52vMLJyCQnW10B fhI+1dt9YujZx9jzM5eeTTcbJSL0fydP3X2YqWa4iTJiuaXzwZKPdQih0LOPRxoH4hVoJTUckr4f aFVms/YhhMxm7VMevwE7C7KwuMbe84i45krWVs3PYmKhbzNniqyCZD91FEfIjhwzQlhUUESMoqQq 19HeWVJY9ikrb2+80XXmzJnp06eLiIj8X1Z376qpqVEoFLwNGRoaOnLkyE9Z0WgcHBwfPnwwMzND CJmZmSkrK2NnQX62BfizjB2vrqwqI0jhk5AWlZYVz88tZjKZCKHrlx95LrZRG6lA4iGu3erZSG+5 dfUx/qrt/setHUzURyl+OtBoaK6tbnDznsHDy02lUl1cXNLT07FJJ06cMDc3p1KpOjo6ixcvfvLk yRDdALmIXERuIpGbiBCKOhc9d6E7Vn78+PFp06bNnj2bj48vICCATCZfvHgRIcTNzb18+fJJkyYR icS+c4uOji4rK/Px8RmWO6ujR4+uXLlSS0tLVFR07969T548YT0/g4ODg5OTU0VFxcHBIS0t7Rff sUNWA5UVgKwA7r/oYZw3b15qauqDBw/odPrVq1fFxcURQs7OznQ6PSsr6927d9XV1S4uLnj9kydP hoSE1NbW6ujo2NjYxMfHp6ampqamXr169dq1a3i1CxcuJCQk0Gi04uJiPT09WVnZkpKSEydOLF26 tKysDNstHjhwoLKy8v379wgh1kEVb968uWTJkrS0tLt37/r7+2dnZyOEEhMTf//995MnT9bW1lpb W589e/Zb1q6urs7c3NzU1LS8vDw2NjY8PDwkJKSfcsyTJ08ePHiQmpo6fvz4WbNmfcuCsrOzq6ur R48e3X81Go3Gy8v78uXLjIyMly9fhoeH96rQ0tIyefJkNTW1goKCjIyM/Pz81atXf3uq3d3dXl5e BQUFVVVVM2fOtLOzw7piX79+bWlp6evrW15eTqPR3NzcEEIBAQESEhIfP36sra29cuWKqKgobHIA AADAkHP11mvp0WvGmG3bGBTT3NLeT83C4pq4B5m+c41ZC11njX/4NKesogEhdOLsY2/33kO7hF94 +ujaqo9vQsRF+WfNP4oQcrbTKyqtffbqA1Yh7NwTE4MRinKiCVf8EEIJV/zyXuzw/31aS2vHZLs9 airUgle7+rZqBq2Ksmpt6nRVATMH0yVTrI3GjP90JYqrq+vDhw+xRteJEye8vb17ZxUe/ujRo48f P4qLi2NtSGdn56KiIvxH37CwMBMTE0VFxYSEBIRQQkJCXl6ev79//y3An+LmlcSRVHsFsuWeLeFr tngSCASEEGIye5787e3rngu9nyW+SXqY5hfgzjpVUIjP3WfG2dCbLc1t5eXl58+fd3R07Lusx48f jxkzZqhvidcuXUcI2TrOxP5MT0/X1dXFnhMIhLFjx+K9q19SU1Pj5+d34sSJXiEPDw0NDTQaDc9E RUWFn5+/byaNjY1xcXF4tV8TZDXgWQHICqD/oIfx48eP0dHRx44dk5eXJxAIKioqSkpKRUVFCQkJ Bw4coFAoQkJC+/fvv3v3bnFxz3gi3t7e48aNI5FIc+fO/fDhw969eykUipKS0tSpU1++fInPedOm TZKSkmJiYvb29kQicenSpdiZd2JiYm/evEEIGRkZ6evrc3JyUiiULVu23L9/H3+tubm5np4eQkhJ SUldXT0lJQUhdOrUKWdn50mTJrGxsc2ZM8fAwOBbVvDGjRu8vLwBAQFEIlFdXX3t2rUnTpzopxyz cuVKTk5OhNCaNWtevnz57t27/pdSW1vr4OCwfPnyr7aNyGQydh47iUSaMmVK33Mer1+/jhDauXMn Dw+PkJDQjh07WPtSv5qqtLS0vb09Ly8vFxfXunXrOjs7MzIyEEJHjhyxs7Nzd3cnEok8PDwmJiYI ISKRWFpainXgqqqqUqlU2OQAAACAoWXWjLFXTi56eHXVdn/bqJspHktP9VP5eESitqaM3hgF1kJ+ Pm57q7EnI5OevMjr6Ow2NVLt9apNK63FRflJ3Jz7tzq9TCt8l1tG5iW62OuFnXuCEGIwmOEXnvXt l0QIXY9LRwjtXG/HQ+Lq26oZtETFhe6lRdx8Hua3acGkKePZ2D41yPn5+e3t7U+ePPnkyZOOjg5T U9PeWW3aJC4uTiKR9u/fj7UhyWSyi4tLWFgYQojBYISHh/ftl/xqC/CnmGKln/A69NrDA3N9Z2qN VcEKp9kYnvrrWl5OcUd7554tp5ubWhvpzQihluY2P6+QfaGrOLk4es3HxnFywu0XCmRLCQkJBoMR EBDQ+2t5/HhCQsLevXuH+sYYfvTMnLmO2MmMCCE6nS4gIIBPFRQUpNPp/c9hyZIlixcvVlFRGZY7 K2z1v5RJTk4OlUoVFxcXEhKqrq4ODg7+lXfskNVAZQUgK8CK40cvoLCwEOtYZC0sLi4mEAgKCj2t T2x8meLiYhkZGYSQpGTPpSW8vLxEIlFYWBj/s7GxEZ8JazUpKSm8HK+Wk5MTEBDw+vXr9vZ2hFBL S0tzczMvLy9CiPV6ExKJhNUvKSkxN/80tJCysvK3rGBxcbGCggL+M6CSkhJ2xcqXyjESEhLYEx4e HgEBgZKSEg0NjS8toqKiYurUqZMmTdq3b99X34+wsDC+UBKJhF8bjisoKKisrFRTU8P+ZDAYXFxc DQ0N7Ozs35JqU1PTunXr4uPjm5qa2NnZ6XR6VVUV9kFPmDCh17KCg4O3bt1qZ2dHp9NnzZoVFBQk KCgIWx0AAAAwhEw27OkQVFYQI/MSJ9vvpTe28fNx963Z2dl98nzS1rUz+07ycZ/o4nsi+325l6tR 35OnFGR7GnsUQR5+Pu6Sj3UaIyQWehgb24Qc2O70+Pn71rYOu+mf+ZG1gFZdWd2oZrgJIYTY9+Kt GtbDm0GIjY1NjCosRhVetcVbT95WRkFiygyjT1n5+Li4uGRnZ3t5eX0mq7/bzxQKhZ+fH2tDLly4 0NjY+MCBA48fP25tbbWzs/tMVl9oAf7ErIjcXOISwuISwiJighM1PVNpF4RFBVcHzmMwmM6Wa5sa W2wcTcboqQmLCCCEdqwLNbfSH6ffu8FcmP/R2XLthl3enotteFt0Vq5caWZmlpycjEd3+PDhHTt2 3L9/f6iPaJn5Juvls5Q/Th3AS/j5+VlvX1NfX49dK/YlV69ezcvLO3fu3HDdWfHz8yOEemWCFWKH Yw8fPkQI1dXV7d2719zc/NWrV5+9kPxXAFkNVFYAsgL/18L50QuQl5dnMpm9bmMnIyPDZDJpNBr2 54cPH7DCgV20q6ursrLymzdviouLb9++jRDChnf5EmlpadZbHX3jbY9kZGSwQUzxdZGWlu6nHIMH Ul1dXV9fzzqpFxqNZmRkNHXq1D///HNALmeQk5OTkZHJ/ltubm51dfW3Ny4DAwOzsrISExOLi4sL CwsFBQWxdZSXl8euRmclJCR04MCB/Pz85OTk1NTUnTt3wiYHAAAADF1cXBxMJpOUVpCLAAAgAElE QVT1xtCsom+ltrR2uNiP7ztJf5wimZd4KebVvDmfuUaksLhnPO66+hZ6Y5u0JAUhNGaUrLqKxMWY l2Hnn3g4TuDi5EAIsbH9X1tITkZYRkooO2lrdtLW72jVDAYMBrMw7/+G5NbX1yeTyZcuXZo3b95n sios7Mmqro5Op2NtyDFjxqirq1+8eDEsLMzDw4OLiwshxHpq5L9vAf5QTCZqa20vK61GCBG5uTbt Xvjyw/msqmurA+flZBYamIxGCD28+/LCqdtqIjZqIjbnwm49vPtKTcSmkd6S9fYDk8n09XPgJhGF hYWXLVv26tWrysqeu43v3LkzKCjowYMHo0aNGupb36kjpw1NDJRVP/WTamtrY1diYYc5aWlpX7q1 CyYuLi4rK0tcXFxERGT+/PnNzc0iIiLYUdLwICAgICcnh2eSn59Pp9PxTDg4OLB7AKirq/v7+2dk ZPzKF29CVgOVFYCsAKsf3sMoKSlpa2vr6+tbVFTEZDLfv3+fn58vKytramrq5+dXX19fV1e3cuXK KVOmDHgPY11dnYaGBg8PT1dX17dcFjF37txz585hF2unpqbevXv3W5ZibW3d2Ni4e/fujo6OnJyc 4ODgBQsW9FOO2b59e3l5eUtLi5+fn66urrq6+mdnnpubO3HiRHt7+23btrW1tbW1tXV3d//LWGbO nNne3h4QEECn05lMZnFx8Y0bN/5RqnJyctiIimFhYdgd6xBCvr6+0dHR58+f7+joaGlpwX71unLl CtaPLCIiwsPDw8HBAZscAAAAMLSEnn1cUFTdQG9Nfl3w2/rIKZM0KII8CKFXaTSCuA/eOYgQOhL+ yHXWeDLv589ziQrzTby+Wlz0M+cybNsXW1nd2NrWuWrLZR1tOXWVnmFVfDyM9x+NvxH3xsut5xQ/ Lk4OIUHenLyKnlaNhXZ7e2fArmv0xrbvaNUMuO5uRntbR1dnF0Kova2jva0DK09/lSVJ0C8uLEMI nTkanfois6GusbiwbNPy/VUVtUamOr2ziopKTEz87Plo27Ztq6ysbG1tXbVqlY6ODt6G9PHx2b9/ /40bN7C77SGEuLi4hISEcnJyBqQFOOD2bTvzPotGb2jOTM9f6bNHSlZMVUMeIVRaVJmRlkdvaM5I y/N22jpGT32yhS5C6Nqjg48yTt1PO3E/7YTdHFN9Y637aSfIfCStcSPYOdhPHIru7OhqaGj4888/ ZWRkxMTEEEL+/v5Hjhy5e/eunJxcW1sbdlXTENXc1Bx1LnqerwdroY+Pz+3bt69fv97a2rp79246 ne7k5IRNam9vb2trYzKZXV1dbW1t2A0ng4KCcnJy0tLS0tLS9uzZw8PDk5aWNnny5OG0v/L19d23 b19WVlZ9ff3q1asNDQ01NT+Nc9rV1dXV1VVVVfXXX39xc3PjZwT/miCrgcoKQFYA91/c6eX06dMj R440MjLCRpbBflSMjIzk5uZWU1NTU1MTEBD4EafrHz16NDg4eMKECWZmZuPHj/9qfRMTk507d1pa WpqYmOzfvx//D90/CoVy9+7d27dvi4uLW1hYuLm5YcNmf6kc4+npOWnSJElJyYqKiqioqC+dnHjy 5Mni4uLdu3eT/rZr165/GQuZTH7w4EFeXp6ampqgoKCFhcU/urvTxo0b8/LyxowZY2xsXFFRoajY cy+/sWPH3rhx49ChQ6KionJycufPn0cIvXr1ytjYmJ+fX0VFRV5efv369bDJAQAAAEPL1Vuvx0/b Jaax0tHr+AQdxQvHe8b4o5XUKMqJSlF7xj/Jfl/+6Gmu79xJX5rPCCXx8WM/f4zq7qBvbBMiMWpV yce6qJO+eLvI2U63+GOt3lh5dRUJvHLQRvuFqyMoI5ZvDIoh8xIfXF2VV1ClZrjxO1o1Ay4q4rYC yXjuzFUIIQWSsQLJuLK8BiFUQiuXU5SiSokihGqrG5a6btKWmD5NZ17Wm7yIm3vVtXqPzDNixIgv tV3d3d2NjY0lJCRKSkpY25DOzs7YbfpYf7cOCgpauHAhhULZuHHjv2wBDri3r/Nmma3UELN1mb5W WFQwKn4vNsBiZXmtt+MWDVFbJ4vVqhpyEdd3YOsoKk6RlBbFHjy83NzcXJLSogQCQUpG7EzMjujI BDURGwUFhZKSktjYWAKB0NbWFhwcjF1FjrWisbGShqjLZ69wk7it7CxZCw0MDMLCwlasWEGhUC5d unTr1i18JChVVVUSiZScnLxjxw4SibR06VKEkKCgoPTfhISECASCtLQ0Nzf3cNpfrVmzZs6cOcbG xlJSUl1dXZcvX8YnZWZmcnJycnJyKisrJycn37x58xe/CyVkNSBZAcgKsCJMmTLln77Gx8fH1ta2 nwoJCQkWFhYQ7mc1NTXx8fEVFBTIy8tDGgAAAAAYjCpDv1pl4aqzxhNUXGeN/6FvREU/YKOflYfj hK9XFfP+KVGVoRdfP+JaGKRvPMbe9evNYwn0/XmqqKhs3LjRw8Nj8H6t0MMfOn8xZDJsNsEaVNZ/ BWEkATsqAAAYWhISEhQUFEgkUj91uru7GQxGVlaWmZlZP9WuXbvmEBgy2FYQrloFAAAAAAD/2LE9 bj96EZFXkxub2pxsdYd6VruP+f/wrCIjGxsbv/ESHAAAAACAAQc9jF9x7dq15cuX9yoMDg4e2AZc eXm5vr5+r0I7O7v9+/fDRwAAAACAX5DEqFUMBjPswFwiF7RXv5aVhASDwQgLC/tlb/YKAAAAgJ8O WmxfYWtr2/8l4f8UmUzue0trKpWK3xkQAAAAAACUvd0DIXxrVmVlEAIAAAAAfq4f1cPY1tYG4QIA AAAADEXsnZ1D7j13/6TGZztbx0A2oRnDuQndMaBZDe/02glfufN1GxOOtgAAAAwubBABAAAAAAAA AAAAAADgu0EPIwAAAAAAAAAAAAAA4PtBD+MXrVix4rfffvvS1MDAQHd390HyVk1NTUNDQ+EjAwAA AMDQ0tTcziW9hFZcA1F8PaumJhKJRKPRIAoAAAAADELQwziotba2uri4aGpq8vDwbN++/UvVli1b ZmhoCHEBAAAAYMAtC7jEJb0Ef+w7Gt+3jpNPKGsdLuklEZefI4RS3hRxSS9R1Avo7mbgld2WnOSS XrL78N3veDNt7Z1c0kvyC6sGZ1Y3LiU4TF6iKWyhQDT+Up37t59Z63uNErXUFLawN170OP4lVv42 JVuBaKyiotLd3Y1X9vDwIJFIe/Z8z01v2traSCRSfn7+4Mzqj+DISSMXqAjO1JJ0mD8rsDD/I1be 1dkVEnh6goq7soD1LLOVOZmFvV744vFbWe5p82w3Yn/mZBbKEC2wB4lEIpFIampq2KSKigo3Nzdp aWlRUVFzc/NXr14N0W1wpORYKW4F1kcxrQSbdOHCBU1NTUFBQQMDg+Tk5K8eQWzevHn8+PH8/PxT p04dlvsrBoMREBAgIyMjLCzs4OBQUVGBlR84cID0NxkZGU9Pz5qaX/2HDcjq32cFICvQC/QwDmoE AsHAwODo0aOjRo3qp5qNjY2GhgbEBQAAAIAfYb6zAT3/APZY5m3at8LZv+bjFS4c8+Ihcc2cpo1P JfMS4x6+w57X1DXfTshUlBMZlkEJUPg8Ftmv27monzoKytJBR9c+eheZmH1hlts0L3v/yvJPR+9k Mvnu3Z6+19ra2jt37igqKg7LrIwmjzkZveVVwflbzw8Liwp4O27Fyg/uOn818n74tW1vy6LGG41y tVrf3NSKv6qluc1/yUE9o5F4yQgNubyGG9ijrq5OS0vLyckJm/T777+XlpYmJyfTaDQdHR0bG5vO IXgLI4RQasHzD/XZ2GP+4rk6+uNk5KQRQs+fP1+4cOH27duLi4utra1nzpyJ9QT1cwShpKS0efPm wXMl1oDbt29fZGTkrVu3cnJymEymi4sLPklDQ6OxsZFOpz948CAnJ2flypW/+I4dshqQrABkBVj9 Fz2MjY2Na9asUVNTExUVHTdu3PPnzxFC1dXVnp6ecnJycnJyCxYsqK2txSobGBjs2rVr2rRpFApF V1c3MzMzMjJSTU1NXFz8t99+YzAY6O+LRCIiIkaPHk2hUOzt7evr69evXy8pKSknJ3fy5ElsVomJ icbGxlQqVUpKysnJ6ePHnp9G/f39nZ2dvby8xo8fr6GhcfjwYfytnj59WkNDg0qlzps3r6Wl5RtX 8M2bNxYWFlQqVV1dfefOnV1dXf2UY29+7969pqam+vr6NjY2paWlX5ozNzf30qVLJ06cSCQS+3kD +FXSt27dUlVVDQ4ONjQ01NDQ8PX1/WxDikajOTk5ycrKKigoLF++vLm5+dtTLS8vt7W1lZGRERcX nzRp0osXL/DZPnr0aPLkyVQqVVpaetGiRQih4uJiGxsbKSkpKpU6bty4jIwM2OQAAACAIYednY2b yIk92Nk/03rk5GDHK4RfeOYwc5wAHwmfusDFMOx8Evb8bNSLaaaaIkJk1pffS8waOWmrmMYqa7fD pWX1CKGw80mjTT+de1VUUkuS+62gqNrC6RBCaKrTITXDzdhZkLTiGgev49Kj/VlbNT+L8RQ9a0cz GQWJfuooqMhojlYREhUUFqUoqsp2tHeWFJbjU+fPn3/q1Cns+blz5ywsLISFhVlfHh8fr62tTaVS 8TbkyZMnx40b9ymroiIymVxQUGBpaYkQsrS01NTUxM6C/GwL8GcZo6emNEJagEKWkBKRkhH78L6E yWQihG5eeTzX11pVU57EQ1y1eW5TY8udmKf4q3ZtCLOaZaymqYCXEAgEIjcX9sjIyMjIyJg/fz42 6cOHD7NmzZKUlOTh4fH29q6trcUPB4YWLiIXkZtI5CYihKIvxLh79xyxh4WFTZ061c7Ojo+Pz9/f n0wmX758uf8jCA8Pj+nTp1MolOG6swoNDV2+fPmoUaNERESCgoKePn367t07fCoHBwcnJ6eysvKs WbPevHnzi+/YIauBygpAVgD3X/Qwent7p6WlxcXFVVZWXrx4UUxMDPv31tjYmJ6enpaWVlNTM3fu XLz+6dOnd+3a9fHjx7Fjxzo4ONy/f//58+fPnj2LiYm5ceMGXu3y5cu3b9/Ozc0tKSmZOHGijIxM fn7+kSNHVqxYUV5eju0W9+zZU1xcnJmZiRBiHVTx9u3bvr6+L168uHnz5saNG3NychBCT548Wbly 5bFjxz5+/GhlZRUZGfkta1dfXz99+nQTExMajXb16tWIiIj9+/f3U455+vRpXFzc8+fPdXV158yZ M4BpFxUV8fLyJiUlpaSkpKSkRERE9KrQ0tJiYWGhqqqanZ2dmpr64cOH9evXf3uq3d3dnp6e2dnZ xcXFM2bMcHR0xLpi09PTbWxsvL29aTRabm6us7MzQigwMJBKpRYUFJSVlUVGRoqKisImBwAAAAw5 MXfS5XU26FrsCgy50dzS0U9NWnHN3UfvfNyNWAud7XQTn74vq2xACJ2MfLrApffQLmcuPU+IWkFL 3SUmyu/oHYoQcrLRKf5Y9zylAKtw6sLTSRNUFGRF4i7+jhC6e/H37KQta5ZMbWntMHc8qKZMzX22 tW+rZtCqLK/RlbEZJWrpMnWZmZXhaD11fNKcOXMSExOxRtepU6fwzjJcRETEvXv3CgoKxMTEsDak o6NjcXEx/qNveHi4sbGxgoLC7du3sUZvZmbmqlWr+m8B/hS3rj4ZIzNHVchm//aIlZs8CAQCQggx mT1P/paZloc9efH47bPEN8vWufRzZDtlyhQ5OTnszxUrVsTExJSVlbW0tISGhurq6srIyAzpLfHG lViEkPUsK+zPN2/e4J3LBAJhzJgxb9++/ZX3VA0NDUVFRXgmysrK/Pz8fTNpbGy8d+8ea788ZAVZ /fusAGQF0H/Qw1hWVhYTE/Pnn3/KyckRCARlZWVFRcXi4uIHDx6EhIQICgpSKJTdu3fHx8eXlPSM JzJ//vwxY8aQSCQ3N7eCgoLg4GBBQUFFRcVe46esX79eQkJCVFTUxsaGSCQuWrSIRCJNnz5dVFQU +xIbGBjo6elxcnIKCgpu3Ljx4cOH+GtNTU11dHQQQoqKiqqqqq9fv0YInTlzxtHRceLEiWxsbA4O Dvr6+t+ygrGxsby8vP7+/kQiUU1NbeXKldgvz18qxyxbtoyTkxMh5Ofnl5KSkpWVNVCBk8nkJUuW IIRIJJKpqWnfEWdiY2MRQlu3buXh4aFQKFu2bGHtS/1qqlJSUjY2Nry8vFxcXKtXr+7s7MR+lDh+ /PjMmTNdXFyIRCIPD4+xsTFCiEgkfvz4EevAHTFihLi4OGxyAAAAwNBiN330xePeCVHLt6yxvhL7 2nPZ6X4qnziXpKUhrTtanrWQn4/bdvro8AvPkpLzOzq6JhuO6PWqDSumi4vykbg59wTOepVOy8ot I/MS59jqnLrwFCHEYDBPX3ret18SIXTz7luE0Db/mTwkrr6tmkFLRIxy69Wpq4+P/r5h3kRzHTa2 Tw1yPj4+Gxub06dPP336tKOjw8TEpNdr169fLyYmRiKRQkJCsDYkmUx2cnIKDw9HCDEYjIiIiL79 kl9tAf4UZpZ6cS//unwvxM1nxqgxyljhVOsJp4/eyM8t6Wjv3L89ormptbGxBSHU0ty22nf/7iPL Obk4Pjs3en1TVFSUl5cXXjJhwgR2dnZFRUVhYeErV6789ddfrFEPRWeOn3Nwm4WdzIj1/vDz8+NT BQQE6HT6r7yzamxsRAh9KZPc3Fw5OTlZWVlJScmampodO3ZAVpDVv88KQFaAFcePXgCNRsM6FlkL S0pKCASCvHxP6xMbX6akpERaWhohJCHRc2kJLy8vkUgUEhLC/2xqasJnwlpNUlISL8er5ebmBgYG pqent7e3I4RaWlqam5t5eXkRQqzXm5BIJGxLKC0tNTX9NLSQkpLSt6xgSUmJvLw8/luroqIidsXK l8oxVCoVe8LDw8PPz19aWqqurj4ggQsJCeELJZFIfS8GKSwsrKqq0tbuGR2JwWBwcnI2NDSws7N/ S6pNTU2bNm26f/9+U1MTOzt7Y2NjVVUV9kGPHz++17J27Nixc+dOJycnOp1uZ2e3bds2QUFB2OoA AACAIcTEoKdDUElelMxLnOJwkN7Yxs/H3bdmZ1d3+MWnm1fN6DvJy9XQfempnLyK+S4Gvc5QQwgp yPQ0zCgCPPxk7pKyevUREt5uRqaz9u8NnP0kOa+trdPGUrvvbAuKq6uqG0dO2ooQQuwH8VaNgIDA YI6UjY1NVFxIVFxoxab5RiqOMvISptMN8KkLFiyYO3duTk6Op6dn36zw9rOgoCDehvTy8jI3Nw8J CUlKSmptbZ05c2bfhX6pBfgTsyJyc4lRhcSoQiJigqajfZ6/jxAWFfDb6M5gMN2tNzQ3tc6YbTxa V1VImB8hFBRw0sxSb+z4LzaYL5+9R6FQsGvDEUJMJtPKykpHR6e4uJhMJp8+fdrc3DwlJUVKSmqI bolZb7NTXqTuDw3BS/j4+FgP3RsaGrBrxX5ZfHx8CKFemeCdHYqKitggp3V1dQcPHpw+fXpSUlL/ Q1FBVpDVV7MCkBX4vxbOj16AnJwck8nsdRs7aWlpJpNZVFTU0zosKMAKB3bR8+bNU1JSevnyZV5e XkxMDNbU6Ke+lJQUdk0K5htveyQtLU2j0fA5FxQUYA2XL5Vj8EBqamoaGhr+y7aOrKystLR0+t/e vn1bWlr67Y3L7du3Z2dnx8fH5+Xl5eTkCAgIYOsoJyeXl5fXqzKFQgkJCXn37t2TJ09ev369e/du 2OQAAACAoYuLk4PJZHYzGJ+deu1WWktr5xxb3b6Txo9VIPMQo26kejhM6Du1sKRnPO66hhZ6U5u0 hCBCaPRIGTVl6uXrKacin7rNHs/FyYEQYmP7vx43OWkhaUlKxqNNGY82fUerZjBgMBiF+f83JLee nh6ZTL5y5cpnb8dBo9GwJ/X19XQ6HWtDamtrq6qqRkVFhYeHu7q6cnFxIYR6na/3L1uAPxSTyWxr bS//WI0QInJzbdjl9TTndHrpJb8A99x3tAmTtBFCifEpF8/c1ZJ00JJ0uBB+51F8qpakQxP907Dp Z0NveXp6Yj+ZY4e4BQUFvr6+IiIi3NzcCxcuZDKZz549G7pb3+njZycY6yuN+HTnHy0trdTUVDzD 9PT0/m8OOewJCAjIysrimXz48IFOp+OZcHBwiIuLi4uLq6mprVq1KjMz81e+eBOyGqisAGQFWP3w HkYJCQlra+vffvutuLiYyWTm5eV9+PBBRkbGxMRkzZo19fX19fX1/v7+ZmZmA97DWF9fr66uzsPD 09XVdfDgwa/Wd3Nzu3DhAnaxdlpaWnx8/LcsxcrKqrGxcd++fR0dHbm5uXv37p03b14/5ZigoKCK ioqWlpY1a9aMGzdOTU3tS/Nvb29va2tjMpldXV1tbW34bWS+m5WVVXt7e2BgIJ1OZzKZJSUl2FUz 356qrKysiIgIQig8PBy7Yx1CyNvbOyYm5uLFix0dHS0tLYmJiQiha9euYf3IwsLCPDw8HBwcsMkB AAAAQ0vY+aTCopqGxtaXaYXLN14yN1ajCPAghFLeFHFJL6EVf7oP8rEzj53tdMm8nz/P5eJx7/vR K8RF+fpO2nngVmV1Y2tb59pt0eO0ZNVUei718HIzOhh6P/ZexnznnlP8uDg5hAR5c/J7fgaeMUWr vaNr8+4b9Ma272jVDLjubkZ7W0dXZxdCqL2to72tZ8zKtynZCkTjElo5Qujc8Zi05HcNdY0ltPKt Kw9VV9YZmIztNZ/z58/Hx8d/9ny0Xbt2VVVVtba2+vv7jx07Fm9DLliw4I8//rh165anp2dPVlxc FAolNzd3QFqAA+7gznPvs4saG5rfvfmwdtFBKRmxEepyCKHS4srM9PzGhubM9PzFrjtG66hOmjIO IRSVsCfh9fG4l0fiXh6Z6WiibzQq7uUR3r9vKPQs8U3B+xJ83bEDXQ0NjdDQ0Pr6+s7OzrCwsJaW lqF7oNvc1HL1wjUPb1fWwgULFty9e/fmzZutra379u2j0+kODg79H0F0dna2tbV1d3czGIy2traO jo5htr/y9vY+dOhQdnZ2fX39unXrJkyYoKGhgU/t6urq6uqqrq4+duwYNzc3fkbwrwmyGqisAGQF cP/FWCQnTpzQ1NQ0NTXFRqTGLqo9c+YMNze3tra2lpYWPz8/NnbMwPrjjz/27t07adIkS0tLXV3d r9Y3NjbeunWrjY3N1KlTDx06NHv27G9ZiqCgYGxsbFxcnKysrLW1tbOz84oVK/opx3h4eEyZMkVR UbGysjIyMrLvJTA4LS0tCoXy6tWr4OBgCoXCOpPvQyaT4+Li8vPzsRsRWltb/6NRINetW5efnz9+ /Hhzc/PKykoFhZ57+Y0ePfrKlSuHDx+WkZEZMWLExYsXEUIpKSnm5uZiYmIjR46Uk5Nbs2YNbHIA AADA0BJzO93QereUlr+zb5j+OIWzf/WM8VdUUqsgKyIp0TP+SU5eReLz9z7uE780HxVFMb0xnz9G dZ013nTWftkx60rL6i8e98LbRU42OiVldbpj5PA+R4TQjvU2i9dGimmsCgy5QeYlxl9alldYNWrS 1u9o1Qy4q+fi1ATMvezXIYTUBMzVBMyrKmoRQiVFFbIKklRJEYRQXU3D8rnb9ORsZ07wyn6bf/Ja sNqo3iPzqKiofKnt6uLiYm5urqCgUFpaytqGdHR0LCkp0dHRYf3devv27UuXLqVSqVu2bPmXLcAB l5GWP8dirba0o8fMACFRgcg7QdgAi1XldYtcdmhJObpZrVdRlzsZvQVbRxExioSUCPbg4eEmcnNK SIngqx9x/Ka5lT7rCD8IoYsXLzY1NWlqakpKSoaGhp47d05VVXWIbobRkVe5ubktbSxYC/X19Y8e PbpmzRoJCYmoqKiYmBh8JKgvHUEsXryYQqEcOHAgKSmJQqF8yyHS0OLn5+fg4GBubq6kpNTd3X3+ /Hl80rt37/j4+Pj4+DQ1NV+9ehUdHY2dM/HLgqwGJCsAWQFWhClTpvzT1/j4+Nja2vZTISEhYdKk SRDuZzU1NYmKimZnZ+P3uQMAAAAAGFTYa05+tc7itZET9ZWd7X5sD4W6UeCG5ZZus8d/tWa38Pyf klU528uv1lm/ZI+ekbat89db3VTG9+c5cuTIdevWubq6DtrvVTVb4g+dvwjDeNhsg7WE8v4rCDGp sKcCAIChJSkpSUFBgUQi9dee6e5mMBhZWVlmZmb9VLt27ZpDYMhgW0G4ahUAAAAAAPxjfwU7/+hF XLz2qqm5zWHmuKGe1c7Dq370Ii5dutTY2PiNl+AAAAAAAAw46GH8ihs3bqxa1btRuGPHjoFtwFVU VBgb9/7RdebMmSEhIfARAAAAAOAXJDtmHYPJPLbHjcgF7dWvkJeXZzAYR48e/WVv9goAAACAnw5a bF9hbW1tbW09gDMkk8mtra29CsXFxXNyciBtAAAAAABM0etdEMI3KiwshBAAAAAA8HP9qB5Gbm5u CBcAAAAAYEgiDalT4YQWIIQ4f9LCuRD5389EEo35Fb5WnOgHfq/E0bAaBZ6I+juYEkYwCCMAAIBB hw0iAAAAAAAAAAAAAAAAfDfoYQQAAAAAAAAAAAAAAHy/IdbDGBUVpaam9qWpN2/elJeXhw/1S+Lj 46lUuKQCAAAAAINFU3M7QdirsKgaovh6Vk1NBAIBhlwEAAAAwOAE5zD+QtTU1HbtgkHTAQAAAPAP LF1zjiDshT/2/BnXt07U9RTWOjOcD2Hlr9IKCcJeslprursZeGVn7+MEYa+gA7e/4820tXcShL3y CioHZ1YxF+JsjeaP4DOSIoz9Up136blulku1xc2lCGOfPXyFl7969YpAIMjKynZ3d3/KytmZQCAE BQV9T1ZtbQQCIS8vb3BmdXDnWUNVd3keC3WRmXNtNhTklWLl3d2M7f7Hx01rfBEAACAASURBVMg4 yPNYTNSYeznibq8XPk9Ml2Cb7DbDHy+prW7wcthMJpNFRERWrFjR1dWFT3ry5ImxsTGJRBISEvLw 8Bi6m+HzJ8kzjG2lSPLKQmqLPX7r2e6ioggsZsyYgZW3trY6ODgoKyuzsbEFBgayzufFixfGxsb8 /PwiIiJOTk7l5eXDbH/FYDD8/f3FxMR4eXltbGzwFdyzZw8elJiYmJubW3X1r/7DBmT177MCkBXo 5b/uYezs7ITQfxZpaWlPT0/IAQAAAAD/iJf7xNaPR7DHikVTPltnhJI4XufqmSWsk8i8xDsJGdjz mtqm2LtvlBREh2VQAhR+z6VOAbuX9VOHk4tz+iyzsKt7PzuVTCbfuXOnJ6uamtjYWCUlpWGZ1USz cWeu70wvjbqXEiosKjjffiNWfurw1XMnbp6J2fG+IXbNFs/lnkFvUnLxV7U0t61auHf8RC3WWS1x 206vb/rw4cPjx49jYmK2bNmClb948cLCwmLmzJk5OTnp6emurq5DNKuUF6kOFnMsZ1q8yEl6lH5/ tuusT9vdiBGtf7t69SpWSCAQDA0Nw8LCtLW1WefT3d09Y8YMLS2tsrKyjIyMqqqqhQsXDrPv1e7d u8+ePRsfH19YWMhkMh0cHPBJmpqanZ2dHR0dSUlJ2dnZy5Yt+8V37JDVgGQFICvA6r/oYdTR0Vm9 erWpqam6unpUVFRzc/OKFSvk5eWFhYWtrKzwaz0OHz6soaHBx8cnIyOzcuXKjo4OrDw5OVlHR4ef n9/Q0PD9+/ffuNC7d+9KSEjExMQghAoLC+3t/8fefYc1kfQBAJ7QA6EESKN3QlFAVFAQpSiCSFNE ijQpopwiiKKHnh4WUFDPclYQKxYUC9YDERQrTUUBBSF06YQWYki+P9bbywFyfp6nAvM+Pj5xdnZ3 9pfddTK7M+NMIpFkZGSWLVvW3d0NAPDw8Fi27K/q74kTJ5SVlTkczuBNffjwITg4mEwmS0hIKCkp nTx5EknPysoyMTHB4/Fqamp79+5F8ycmJqqqqkpISHh4ePj6+i5ZsgQpAwaDYTAYSJ6zZ8/q6uoi nz8VkIkTJ0ZGRlpbW+vq6urq6mZlZSHpHA7n4MGDurq6YmJiCgoKBw8eHL48KO5e0qtWrZo/f763 t7e+vr6qquqePXuGDOOQ20R6o+/Zs4dCoYiJia1Zs6a5udnR0VFERERbW/vJkydItnv37hkbG+Px eGlpaWdn59raj4+mOzs7w8LClJWVRUVFdXV1Hz58CADIzMw0NDTE4/GSkpImJiZsNhtenBAEQRD0 g+Dl5RES5Ef+8PIOXXvEYDBoHn5+Xu5FAV5mR05kf6xxnXtkO3OctKTo36ptma+pRlF4leU2C3bX 1LUBAI6cyNY12YBmoFW38BED31U2WTrGAQAsHePUJq5F3oKsrGoeXM37XmZYT3FYaC2vLDtMHnUt ZXd/p3ETtIZcGhAQcOTIEbR2amtrKy0tPaCKS6VS8Xi8jY1NTU0NAODIkSNorRIAQKPR+Pj43r17 Z2lpCQCwtLRUU1ND3oIcskr8vUww0lLVlBfHi1LkCLIKxPI31Ug9vKKs1nja+HETNPj5+ea6zCCS JYtfvkPX2hx5yN5lhtY4FTSlurIh8/az9duXEIlELS2ttWvXHjp0CFkUFRW1aNGiVatWKSgoyMvL W1tbj9ALcGtU7IJF85etCpZTkJWVl7GwnvG36+5P/PwfJ1QXEhIKDQ2dPn26oODfJu/u6Ohobm4O CAgQEREhk8nu7u7Pnz8fZTergwcPhoeHjx8/nkAgxMfHP3jw4NWrV+hSPj4+fn5+dXV1FxeXwsLC MX5jh7H6WrGCYKwg1Dd6hzElJeXkyZPFxcVubm6+vr4lJSWPHz+ur6+fMGGCvb090hmERCJdvXqV Tqenp6enpaUh7Vnt7e02Njaenp5tbW379+/ft2/f5+zu6NGjfn5+V65ccXBw6OnpMTc3p1KpFRUV RUVF5eXlERERAICgoKAzZ8709vaiqyxevBiDwQze2smTJ3NycoqLi9vb2588eWJoaAgAePnypa2t bXh4eHNz87Vr1+Li4s6fPw8AyM7OXrFiRVJSUmtrq6Oj4+nTp/+xtJ8KCADg8uXLJ06cKCoqWrt2 raenJ1Lx2rdv3+bNmw8fPtze3p6Xlzd8eYaRlpa2bNmywsLCO3fuREZGlpSUDMgwzDZra2urqqre vn2bnZ29d+/e2bNnh4aGtrS02NvbBwQEoP8t7d69u7GxEWkXRlpaAQA+Pj75+fmZmZl0Oj01NZVE IgEAvL29ly5d2tbW1tjYuH379iG/CAiCIAiCvovUtHw53QiDGZvWb73c3dM3ZJ6qmlaVCZFUoyif ZYm06hbuRR4uxvdySuvfdwAAjp68H+BlNmDdpOScrLTVda/jSASxed6/AwDc5hlV1bQ+elaOZEg4 dX+GiaaKEiHj8ioAQMblVWW52yJDbXp6meYOcYOreSOXh4fHvXv36uvrkdopWq36K1ZJSVlZWXV1 dSQSad68eQAANze3qqqqR48efYxVQsKMGTNUVFQyMjIAABkZGWVlZZGRkZ+qEn9HaRezx5GdVHCz 4zcdX73JF6n+eQbYvSmmvcx/8+EDKy0li8FgmlkZIvkfZz9/eK9wZdQi7o28el7Ox8erq6+G/HPi xIlNTU11dXX9/f3Z2dkiIiJ6enri4uJTpkxBn9aPLP39/Y+yH4mICE/Xs1QW15g9xe5h1qO/rruq KhUVFSqV6uPjQ6PRht+UpKRkYGDgkSNHuru7Gxoazpw5s2DBgtF0p+ro6KDRaJMmTUL+qa6uLiYm NrgVtbOz8/bt22i2sQnG6qvHCoKxgsA3a2FcvHixrKwsAKChoeHChQsHDhwgk8kCAgKbNm2qqqpC zrn58+erqalhMBhNTc2QkBCkVnTlyhVJScnQ0FBeXl59ff3B1awBOBzOunXr4uPj79+/P3nyZADA 1atXAQBbt24VFhaWlJTcsmXLqVOnAABmZmZkMvnixYsAgLdv3z569OhTPYgFBQXpdHphYSGTySSR SNra2gCA/fv3u7i4ODs78/LyamlpLV++HNnssWPHPDw8pk2bxsPD4+LiYmZmNnyBhwkIAMDf3x9p gLO3t6+pqamrqwMA7N27d/369VOnTuXh4SEQCMgF/KnyDMPKygoJkaqqqpaWVl5e3oAMw2yTn58/ JiYGh8Pp6+sbGRlNmTJlxowZQkJCAQEBRUVFyKuapqamxsbG/Pz8eDx+06ZNd+/eBQDU1dVdunTp 0KFDSkpKGAxGXV0d6fsjKChYUlJSXV3Nx8dnYmICWxghCIIg6Acxz97w4vGl965FbF7nlHI11ys4 YXAeXS3ZlKTgOxfDju3zbW7tMnfYQe/sRZeKiQo5201IPP3gweO3TCbLYtrAWfs2RMwlEcSwQgK7 tix8VlD5urQOJyLoPt8o4dQDAACbzUlKfji4XRIAcPVm4ZDVvJFLTEzM2dk5MTHxwYMHTCbTwsJi YKw2bCCRSFgsdteuXc+ePXv9+jUOh3N3d09ISAAAsNnspKSkISvMn6oSf0cz5xinFxxNvfeb1xL7 cRM0kERFFZlpFhNmTQySF7AK8dq6bV8oRY4AAOjpZoT574g/EsEvwP+3FhB6N05MBK06SkhIAADo dHpnZyeTyUxOTk5MTGxoaHB0dJwzZ051dfWIOyW6OruZzA8Xky/vSdxV3PDC1nH2wjmeyIHo6uqm pKTcuXPn2LFjzc3N5ubmdDp9+K0tWLDg5s2bOByOQqGw2eyoqKjRdLNCDl9cXBxNkZCQQGNSWlpK JpNJJJKkpGRzc3NsbOxYvrHDWH2tWEEwVhA3vm+zG6R5EQBQUVEBAJg9eza6SFBQEBn+8+bNmzt2 7Hj37h2Hw+np6UFmha6pqVFTU0Mzc38eUktLy969e3fu3KmsrIzusbGxEZ2Bms1mCwgIdHR0iIuL BwYGHj161NPT8+jRozY2NmghB3Bzc2toaFi1alVpaam5uXlsbKy2tnZFRUV+fj662b6+PkVFRaTA VlZW6Lr/OLf1MAEBAKD9YrBYLACgs7MTAECj0TQ0NAZvZ8jyDIO70w0Wi0U2/pnbJBKJfHwfTx4R ERE0dCIiIhwOp6urS0hIqLS0NCoqqqCgoK+vDwDQ09PT3d2N9BZXV1cfsK/Lly9HR0cbGBjg8fjF ixdHRkbCixOCIAiCfgTmph9rAmrKRJyIoLlDHL2zV0wUy52Hqk6mqpORPClJwXjl5Vk5b+bO/msM uEDv6e6Bh0ve1vsvmjb4OaKy4sc6CV5CWExUqKauTVtTJsh7upld7O6tC+8/etPLYDrNMRiiHlXV 3NhEH7KaN3IDHhgY6O7uXlJS4u/vP0Ss/qzi4vF4MTGxmpoabW3toKAgMzOz3bt3379/v7e318nJ acg656eqxN/rSAWFBEgUKRJFSpooYabjk0c7J0WQWBuy+3lu6f3XxxVVZXIfvvJxisIKC1rbm2xZ e9hqjrGhsfaAjYiKiXTRuzkcDsAAAEB7ezsAQExMTFhYmIeHx8/PD+nus2bNml27dv3xxx9+fn4j 63zACmN5eHg8/BbqGY4HACxfE3Jg12HkQKhUKvKFqqmppaSk4PH4rKysuXPnfmpT5eXlNjY227Zt W7p0aU9PT3h4uKWl5dOnT0fNo30xMTEAQEdHB5rS3t6OJAIAVFVV7927BwBoa2uLj4+3srLKzc0d 0JF87ICx+lqxgmCsIG7fqIUR/X8LaaLKzMykUCjcGVpbWx0cHFJSUuzs7Hh4ePbt25eUlAQAkJOT 455+6B+nIpKWlj579qydnR0/P7+Pjw+yR3l5+cFdgAEA3t7eP//8c3Fx8YkTJw4fPvypbfLw8ISH h4eHh7e3t69evdrHx+fp06eKiorKysroGIgoOTk5dCBFAEBlZSXSKorD4QAADAZDSEgIAIBOyPWp gAxDUVHx7du35ubmAxKHLM+/8S+36eHhMXPmzOPHjwsLCxcVFY0bN47D4SgpKXE4nLKysgGNpDo6 OmfPnuVwOI8fP7axsRk/frytrS28PiEIgiDohyIgwMfhcPr7OcNVLnl5eXl5+v8+pLLxRBWciND5 y7lxL4bolVlZ1aKpRgYAtLX30DsZcjJ4AIDBeAUtDcq51Kc304u8XKcKCPABAHj+3hSiKCclLys5 ZDVv5DI2NsbhcOfPn4+LixsiVpWVmpqayC9/Op0uJycHADAwMNDS0jp37tzNmze9vLwEBASQGuyA et2nqsTfHYfDYfT21dc2SxEkigreOrhaqFEVAABTpusZTxt/9+YTa3uTe3eeNTW0IlNL93Qz2P1s LWn7p++SdfRUWaz+1y/ekfVmAADy8/MJBIKMjAwAQFtbe0Db2YCYjJCLjl9TW+MfD4SPj4+Xl5d7 IvLBXr58yeFwwsLCMBgMFotdsWLFhAkTGhsbkS5To4C4uLiiomJeXp6pqSkAoLy8nE6no9Pd8PHx IUPSk8nkyMhIdXX158+fIz26xiAYq68VKwjGCvrbf0/feH8yMjLz588PCAioqqpC6kYpKSlMJrOr q4vFYunr6/Pw8LS2tqJDXNvb29NoNGROPe704atlGRkZkZGRyKCN9vb2fX19UVFRdDqdw+FUV1df u3YNySkpKens7Ozh4cHLyztMe1ZWVlZBQUF/fz8Oh5OQkEDe3QsODj5z5gxSeBaLVVRUlJOTAwDw 9vY+depUTk4Om82+ePFidvbHcc2lpaUVFRWRXbe2tqINmp8KyDAHuGzZss2bNz9+/JjNZjc1NeXm 5g5Tnn/jX26zra1NW1tbWFiYxWLFx8ejx+vo6LhkyZKqqioOh/P27dvy8nIWi3XixIm2tjYMBkMi kfj4+NAXJCEIgiAI+r6OnMiuoDV30Huf5lf8tObMzBnaeAlhAEBuYSVGyr+yqhkAkHI17+Xrmg56 b1lFo+9PiaI4IbMpA/tbpCQFZ6etJhGGeJchOu5aY3NnL4O5asP5ifqKWhofH7sGek/fdeCPa7ef +y+a9mdrC58kXqT07cdHzvY2+n1M1pDVvO+iv5/dx2CyPrAAAH0MZh/jY43uee5rWcyE6so6AACH w+ljMJl9TAAAk/mhj8EcPMFdSkpKdnb2kO0+0dHRjY2Nvb29q1atmjhxopbWxxljAgMDd+3ade3a NX9//z9jJSApKVlaWopWqj9VJf4udkafeFtMo3d0v3peviowTlaBpKmtCACYbDr+2oV7leV1bDb7 aU7R4+znehM1AQCXs/ZkFSXdLUy4W5jguNDC2Gz83cIEnKiwvBLZ3HrSlshDLS0tZWVlsbGxgYGB yC6WLl2akJDw4sULJpMZHx/f29s7c+bMkXgN+i31OZWQ/OrFaybzw+/xBxm9DORAUlJSXr582dHR UVZW5uvrKyoqig7Q1NfXx2AwOBwOi8ViMBgsFgsAYGhoyMfHt2fPHiaT2dHRsW/fPnl5eSKROJru V0uWLNm5cycygH5ERISJiYmOjg66lMVisVispqam33//XUhICH0jeGyCsfpasYJgrCDUd3iOd+zY MR0dHXNzc1FRUX19/atXr2IwGAUFhbi4OCsrKxMTk0WLFtnb2yOZ8Xj89evXN2zYMHXqVE9PT3d3 98/ZhZ6eXlZWVmxs7LZt23A4XGZmZllZGZVKlZCQsLa25p7MKCgoqKCgwNfXl5eX91Nba2ho8PT0 xOPxZDK5oKAAGebGwMAgLS1t3759FAqFSCQGBAS0trYCAGbMmLFr1y5PT09JScmLFy96eHig2zl+ /Pj27dsnTZrk6elpZ2c3fECGObqffvopIiLC19dXXFx84sSJyPiJnyrPv/Evt3nw4MHY2NgpU6ZY WloaGRlxx0FXV9fU1BQZaaixsREAkJycrKGhISEhYWlpGRYWNmvWLHhxQhAEQdCPIPV6gdGsLUTN lQv8Dk6ZpHr2aBCSTqtuUVEiyFLwAIAXr6rt3PYQNVea2sR0djLSU8Ml8SIDtqOhSjIyVBlyF4sW TDGbE0vRCq+pa0tJWopWhNzmTa6ubZs8QRltcwQAxGyYFxR2Eq+yfP3WyzgRwcwrqz5Vzfv2Lp5M U8Ea+9iHAgBUsMYqWOPGhhYAQA2tXlFFliJLRD6rYI2pEmYAAHfrZSpY42vn/xgYKw0N7rrT32K1 aJGZmRmFQqmpqUlJSfkrVm5u1dXVkydPRtscAQAxMTFBQUF4PH79+vXDV4m/vaKCt/Mtw3SIjh62 a6QIEhfS45EBFtfHBk02Hec0fbkKzuYnr61Lwl3d/GwBAAQSniJHQP4Ii2AFhQQocgTk8PefihIW EVJUVDQyMrK1td24cSOyi+Dg4JCQEBsbG6RafuPGjU+NifSD8w329g/xdbXxUJOkXrt4/eyN08iB vHjxws7OjkgkmpqadnZ2pqenS0pKIqtoampisdinT59u2bIFi8WGhIQAAOTl5a9cuZKcnCwtLa2s rFxTU3P9+vVRNvr56tWrFy5caGZmJisry2KxLly4gC569eoVPz8/Pz+/mpra06dP09LSCATCWL63 w1h9lVhBMFYQN8wXPMoLDAx0dHQcJkNGRoa1tfWIOP7q6molJaXy8vJ/HDDxy4SEhLBYrK/beRmC IAiCIOi/1Zrwj1mCwk6YTdHwcDH+TwuiPnHd+gg7L9epw2WSXPwdQ1UHCv4xz5qgzUZmE5w9Ptlj RgYYfIVYqauvX7/ey8vrhz2t3oP/cDZnEpg+mi7BFjDc2FBSgAzvUhAEQSNORkaGsrIyMs3Gp/T3 97PZ7OLiYktLy2GyXb582WXjjh/tAMd0X9T+/v6YmBh7e/v/qHkRgiAIgiBotDq08z9vyUq++LSz i+HqOOIH/4o99J/P2JucnNzZ2enq6grPTAiCIAiCvosR2cLY0NBgbDzwgbmTk9OuXbs+fyOFhYUm JibKyspXr15FE2fMmME9TwsAgEKhPHr0CJ4oEARBEARB3xJFK5zNZifs8RUUhKMz/1OsKBQ2m52Q kDBmJ3uFIAiCIOi7G5E1NjKZPKAd8Avo6+t3d3cPSLx3797XLSoy2wwEQRAEQRD0f6kvjodB+NxY 1dfDIEAQBEEQ9H39Vy2MDAYDBheCIAiCIGgk4v3wYQSVtv+7VjuZPMyvUHNmj4ma81eJ1RiJYR+m b7iD5cCfWhAEQdAPhweGAIIgCIIgCIIgCIIgCIKgLwZbGCEIgiAIgiAIgiAIgiAI+nIjrIUxNTVV T0/v/1qlq6sLi8XSaDT4ZX+Bu3fvKioqwjhAEARBEPRf6OruEyAH06pbYChgnRaCIAiCoBENvsP4 Q4iKivL19f3GO2Wz2VFRUfLy8lJSUi4uLu/fvx+cR1NTMzo6Gn5BEARBEDRmrVh7VoAcjP7Z+fsf g/NcSsvnzuPouR9Jz3tOEyAHq0xY19/PRjN7LkkQIAdv33v7CwrD6PsgQA4ur2j6MWN17fwfLuaB OlLmyoLGn8pT/OKtz9zQiXI2yoLGj7Pz0fT8/HwsFquurt7f348menl5YbHYuLi4L4kVg4HFYsvL y3/MWO2LTZ6h66chMVdPZv7ieb9Ultch6f397G0/JxipuGtIzLXQ8790On3Aik/uv1QUsvZxXI+m tDZ3LHGLlpaWlpWVjYiIYLFY3Pk5HI6trS0Wi83Pzx+5l+HTh8+cLReoSGhqU/RW+IUhiampqVgu zs7OSHpvb6+7u7uOjo6wsPDmzZu5t/Ps2TMrKysikSgrK+vp6Tlk/X9E+9QPnN27d6OBkpeX9/X1 bWkZ6w82YKy+7g9nCMYKAt++hfHDiBo4/EcucH9/P5vN/jdb2LlzZ3Jy8o0bN0pLSzkcjru7++A8 srKyXl5e8DqBIAiCoLHMz8OETtuD/FkRZDlkHnVVEprnwrEl3ItwIoK3M18jn1vaum+mF6koEUZl oMTxol7BLmu3/jRMHn4Bfhsni0MXtg+5FIfD3blzB/nc2tp669YtFRWVURkrE3ODhEu/PqtIvvF4 vxRBPHDBJiT9xMGrZ4/dTLj46+um1PANXuEBcS/z36Jr9XQzIpftnmyqy72pFT6x9Pbu4uLijIyM tLS0LVu2cC89evQoBoMZ0bEqeFbobuc1y87q/svM9Ge3nNwc/7ru1NXb/nTu3DkkEYPBTJ069eDB g+PGjRvw88HJyWncuHEVFRX5+fnNzc0hISGj7Lwa5geOtrZ2Z2cnnU7PzMwsLS0NDw8f4zd2GKuv +8MZgrGCwLdpYZw6deratWtnz56tr6+fmpra3d0dERGhqakpIyPj5OSE9vU4ePCggYEBgUBQU1Nb s2YNk/lxsrnc3NypU6cSiURzc/OysrLh95WVlWVubk4mk+Xk5IKDg9H0R48eTZo0SUpKavbs2TU1 NcPvcUCB0Y1wOJwjR44YGhoSiUR1dfUjR44AAFgs1ubNm6lUKplMnj179suXL5HMkZGRbm5u/v7+ RkZG2tra+/d/fJhfXV3t4OAgKytLJpMNDQ2LioouXbp09OjRtLQ0HR0dHR2dnp6eGzduaGhobNiw wcLCwtDQMDQ0FJmbG+kds2fPnilTpujo6NTX17948cLa2ppMJmtpaW3duhV5Zotki4+Pt7CwMDY2 dnBwqK2tHRyrI0eOhIaGjhs3TlpaOiYm5uHDh69fvx6Qh7uX9NSpU6OioubOnWtoaGhoaHj//v0h v4L79+8jX4GOjs7vv/+ORsPb2zs4OJhAIKioqKSkpBQWFk6dOlVKSsrW1rapqWn4b6Szs3P16tVU KpVAIBgaGj5+/BjJrKWlRSaTFRQUIiIi4MUMQRAEQf8RXl4eIUF+5A8v79C1RwwAaB5+fl7uRYs9 TRNOPUA+nzr/eLalrrQkjjvDH/eKdU02EjXD5rrvq61vAwAknHqgP/1XNENVTStWdlkFrdl6/m4A wKz5u6nGG5C3IGnVLa6urgoKCsrKyqGhod3d3d8xUGYzjecumCmvLDNMHjWqkqufva6B5pBL/fz8 jh07hnw+ffq0tbW1lJQUd4b09HQ9PT0ymYxW8BITEw0NDf+KVVUVDoerqKiwsbEBANjY2Ojo6CBv QdJotB8nVgaTqaoacuJ4HFmWICNPfPe2hsPhAAAqy+omm+jqGqjx8fPNmWdGIEmWFFWga8X8nGA3 z4yqo4ym1NDeZ/2R+/M2fwKBQKVSIyIijh49yh2N+Pj4+Pj4EX0Bxv4SN8/dacnKQFl5GRk5yoyZ Zn9ddxiM0J/4+fmRRCEhoZCQkGnTpgkKCnJvh06nt7S0+Pr6ioiIkEgkV1fXFy9ejLKb1fA/cPj4 +Pj5+dXU1ObNmzf6jh3G6nvFCoKxglDf6B3G1NTUxMTEwsLCBQsWBAYGvnnzJjs7u7KyUl9ff/78 +UhnEBKJlJKS0tjYeOPGjZs3bx44cAAA0N7ebm9v7+7uXl9f/9tvvyGJn/L8+XMHB4eAgAAajfbm zRs3Nzd00fHjxy9evFhRUSEsLBwVFYUkDrnHwQVGEw8cOBATE7N///6GhoZHjx5NmDABALBjx47k 5OQrV67QaDRTU9M5c+Z0dHQg+W/evLlkyZInT56kpaWtX7++tLQUALBx40YymVxRUVFfX5+cnEwg EJydnf39/e3s7F69evXq1SthYWEAQHV1tZiY2N27dx89elRWVsbdVTk7O/vevXslJSUiIiK2trYz Zsyg0WipqaknT57ctWsXmu3hw4e3b99+/PjxpEmTFi5cOCBWHR0dVVVVaH1UTU1NTEwMbR79lGvX riUkJOTl5UVERPj6+iIVQW5FRUWOjo6hoaG1tbUXL17cvXv3xYsXkUVXr161srKqrq5ev359cHDw xo0bT548WVFR0d/fHxMTM/w3EhAQUFhYePv27cbGxnPnzhGJxIqKijVr1ly6dKmhoaG4uNjV1RVe zBAEQRD0H7lyo1DJYO0kqy0bY6929/QNmae6tlVj8npdk42Llx+vOppaLAAAIABJREFUqmnlXuQ2 b3L2wzf17zsAAImncxZ7mgxY98S5RxmXw2jPY4nSogv8DgMAXJ0mVde2Pc59h2Q4diZn+lQNZUXp 2ymhAIA7KaElj39d/ZN1Ty/TynmXpqZmSUlJfn7+u3fv1q1bN6JDvXDhwuzs7IaGBgDAsWPH/Pz8 BmQ4efLkH3/8UVFRQSQSkQreggULqqurnzx5gmRISkoyMzNTVla+efMmUh199erVqlWrenp6rK2t f6hY3Ui9P0HelSppv3vzyfANXsibhm6LbcpKqooKylgfWDcu3e/rY5paTkDyP7n/8lH28+VrPbg3 8vpFOR8fr7aeKvJPQ0PD5ubm+vp6AACHw1myZMkvv/xCIIzgd2b7+/sfP3giLCJsNWk2lag718zp 0f0nf1131dVaWlp6enoBAQFVVVXDbwqPxy9evPjYsWPd3d3v378/d+7cvHnzRtOd6jN/4HR2dv7x xx/c7fJjEIzVV48VBGMFgW/Wwujj4yMjIwMAeP/+/aVLl/bs2UMikQQEBNavX19dXY2cc05OTqqq qhgMRkNDY8mSJZmZmQCAtLQ0SUnJkJAQXl7e8ePHD65mcTt8+DDSHCkoKCgsLGxm9tfzvfXr1yso KIiJifn6+ubm5iKJQ+5xQIG5HThwYO3atcbGxjw8PNLS0siVc+LEidWrV2tqagoKCq5bt46fn//6 9etIfgsLi4kTJwIAVFRUNDU1CwoKAACCgoJ1dXVIa6OGhgaJRBryWAQEBJYvX45+OHHiBLooLCwM eSB5/fp1ERGRyMhIQUFBKpUaHh6OPvQGAKxYsQJ5khkWFpaXl1dcXDzgfwsAgJiYGJoiLi5Op9OH /x59fX2JRCIAYM6cObW1tUjtjduhQ4ecnZ0dHBx4eXmpVOqyZcuSk5ORRSYmJvPmzRMSEvL29u7t 7fXx8VFVVRUTE3Nzcxv+G6mvr79y5cq+ffsUFRUxGIyampqKigofHx8AoLCwsL29XUREBIkzBEEQ BEFfnZPdhHMJgRmXwjZFOly8VuD70/HBeXSoMmcTAm+eW370N6+W1i4r5130Tga6VExUyNFWPyn5 Yc6TMuYHlrnpwNf3fg6zJRHEsEL8cdEuuYW04jf1OBHBhc6Tjp15CABgsznHzz4a3C4JAEi7/QIA 8OuvvwoLC+Px+E2bNqEVjxFKVFTUwcHh+PHjDx8+ZDKZM2bMGJBh3bp1RCIRi8Xu2LEDqeDhcDhX V9ekpCQAAJvNPnny5JAVZqSC+kPFytLG6NazA+f/iPMMtNM1UEcSFZQpU80N5kxZpoKzDfXbHr07 hCIrDQDo6WasXrIz9sBKfgE+7o100XtwYsJoP2hxcXEAAFKnPXr0qICAAPc7ByNRd2f3B+aHy+eu 7jy0o5CWO9t+lpejL9IlS1tb+8yZM2lpaYcPH25pabG2tv7Hyvy8efNu374tLS2tpKTEZrMjIyNH 081q+B84b968UVRUVFBQkJGRaWlpGdCbfqyBsfpasYJgrCBufN9mN2hrXWVlJQDA3t4eXSQgIIA8 p719+/auXbsqKio4HE5PTw/SObe2tlZVVRXNzP15MBqNZmRkNOQiWVlZ5IOIiAhy3n9qjwMKzK2q qkpdXX1AYm1tLTo+Dg8Pj6KiItoLm7tXCxaLRfa7ZcuWrVu3urq60ul0Jyen6OhoCQmJwfvC4/EC AgLIZzKZ3Nzc3NfXN6BsNTU1SkpKaI1KRUWFuzc0mUxGPggLC4uJidXW1mppaXHXX9HqF6Kjo4P7 XjAk9IiwWCx6B+FWWVlZUFCAzvfd19enoKCAfKZQKGiUhISE0KMQERHp6uoa5huh0WhIwyL3juTl 5U+fPn3gwIGffvpJS0srMjJyzpw58HqGIAiCoK9uhonGx2qYMgEnIjjTeRe9kyEmKsSdR1ONrKlG RvKcTQgkaoTff/RmzqzxaAb/RdMWBSeWljX4eZgOHhRPWVH6Y/1HXFhMVKimrl1LgxKwaJqFY3x8 tMuDJ2UMxgcHW/3BZauoam5q7kQrHmw2m5+fv6OjA2lmGqEWL17s7e1dWlrq6+s7OFZKSkrIBwkJ CbSC5+/vb2VltWPHjpycnN7eXu6aNnclramp6YeKlaCQAJEsSSRLShMlLPUDHr09JUUQXx+670Xe m7vPjyqqUHIfvQ5YsBErLDjTbkpsVKKFjdEEI60BG8GJCXfRe9CONUhfIjExserq6m3btmVnZ4/0 CxArjOXh4Vnos2D8hHEAgGWrgo/sScjIyPD29tbU1NTU1ER+Ip05c4ZCody/f3+YKvG7d+8cHByi o6MDAwN7e3vXrFljY2Pz4MGDkT5O5Wf+wFFRUUEGOW1ra/vtt99sbW1zcnIGdCQfO2CsvlasIBgr iNs3eocR/X8LaW+6ffv28z9VVVXNnj27ra3NxcUlJCSkuLj4zZs3P//8M1JRkJWVRdofEcNPRaSo qPiPAzWiPrXHAQXmpqCgMHj7srKySLMpUlej0WhycnLD7BePx+/YseP169cPHjwoKCjYvn07AICH Z+AX0dzcjF6Z7969k5aWRu/paNnk5ORoNBpa7IqKCrQhFQCATh3Y0tLS0dHBvQgAIC4urqCggM6p 9+7dOzqdPmA06C+goKDg5OSEfrklJSXoaOVf/I0oKipyOJzBMyHa2dldv369rq7Oz8/Pzc2tvb0d Xs8QBEEQ9J8S4OflcDj9w841x8fLy8vL09//t6FUjAyVcSKCKVfyvVyHmGS5surjRKVtHT30Toac jAQAQH+cPFWdfOFK7rEzOZ4LjAX4+QAAPDx/q6EpyknJyeDRisfLly9ra2tHdPMiAGDy5Mk4HO7i xYuLFi0avBQdwby9vZ1OpyMVPD09PU1NzZSUlKSkJA8PD+Qp9YDqpYKCgpyc3I8ZKw6Hw+jta6hr BgC8Kiyb6zJDVVOej5/P2Gz8ZJNxmbefAQCy03PPn7itJzNfT2b+2aRb2el5ejLzu+g92uNVWaz+ 4pcfx2osKCiQlpamUCiPHz9ubm42MjKSlZVFqri2trYbN24ccecDvwC/hpb6gN8mg3878PHx8fLy Dj8P5KtXrzgczvLly7FYLNJLLD8/Hx0PfRQY/gcOHx8fiUQikUhUKnXVqlWvXr0ay503Yay+Vqwg GCvob/89feP9USgUJyenpUuXVldXI3Wj1NRUJpPZ1dXFYrH09PR4eHja2trQ3r52dnZVVVXoI5TE xMRhNh4QEHDlypVz584xmcyenp7hH1p+ao8DXL58+fDhw8jnoKCgmJiYp0+fstns5uZm5MpZtGhR XFxcWVkZk8mMiYlhMpm2trbD7Pfy5cvIIClSUlLCwsJIb18ymfzu3TtkPEpUZGQkg8Goq6vbtm2b p6fn4E3NmTOns7Nz586dTCbzzZs38fHxPj4+6NKYmJj379/39PSsXr3a0NCQSqUOOJyAgIA9e/aU lJS0t7evXbt2ypQp2tra//L7DQwMPHfuHPKdslisV69ePXr06DPX/dQ3QqFQ5s6d+9NPP1VXV3M4 nLKysnfv3pWXl6enpzMYDAEBAQKBgMFgkEhCEARBEPR1JZx6UFnV3EHvfVZQGbrunNV0Lby4MAAg 7zlNgBxMq24BAFxKyy8qru2g95ZXNPmHHhfFCZpOURuwnXNHA+5eCSMRhniXYeuuG43Nnb2MD2s2 XjTUU6Cqf+yH4b9o2m+HMq7ffunn8bGLtAA/n6SESGn5x0fOdtbj+5isjRs30ul0DodTU1ODDlbz XfT3s/sYTNYHFgCgj8HsY3ycs+5lXrGyoHEN7ePggH0MJrOPCQD4wPzQx2AObhU6c+ZMeno6MjTN ANu2bWtqaurt7Y2MjJwwYQJSwQMALF68eO/evTdu3PD19f0YKwEBPB7/5s0btN7Y19f348Tqt62n y0qqOju6X794tyZ4t6w8UUNLEQAwaaru9YvZtHd1bDYn9+GrJw9ejp+gAQC4kBGfXnDk1rODt54d tF8ww8h03K1nB0VEsXKKpOkzJ8b8nNDa2lpeXh4fH7948WLkR0RxcfHTp0+fPn2K/JRISkpauXLl SLwGvYMWJR87V/yy5APzw6HdRxgMhqWlJQAgNTW1qKioo6OjvLw8MDAQh8OZmpoiq/T19TEYDA6H w2KxGAwGMhukgYEBHx/f/v37mUxmR0fHgQMH5OTkRvQglUP+HhzmBw6LxWKxWM3NzYcOHRISEkLf CB6bYKy+VqwgGCsIxfPtd3n48GEtLS1ra2sCgTB58uS0tDQMBiMvLx8TE2Nra2tubu7n54e+3i8h IXH58uVff/11xowZvr6+w0/ooa+vf/Hixf3798vLy2toaJw7d26YzJ/a4wAZGRkpKSnI56VLl65c uTIwMJBEIk2dOhVpYYyIiHB2dp4zZ46CgkJWVtb169eH7PWMysvLs7KyIhKJurq6ioqKq1evBgAs XLhQUFBQTk6OTCYj8/rJyspqaGhoa2tPmjRp8uTJGzZsGLwpCQmJ69ev3759W0FBYe7cuW5ubtzV Ji8vr5kzZ6qoqDQ2NiYnJyNPPrkPJywszMXFxcrKSlVVtb+//8yZM//+y9XT07t06dKBAweUlJTk 5eWXLl3a2tr6mesO840cPXpUR0fHwsICGdS8qamJwWBER0crKSlRKJTo6OjTp0/jcDh4PUMQBEHQ V3flRqGJTayszmq3gCPGE1VOHVqMpFdVtyorSsuQJQAAL1/XOnj+LquzeoZ9XGdX360LoZISIgO2 o65KmjxBechdeMw3snCIVxi/pra+7VxCIPq6lqvTxJq6tkkTlNA2RwDAlijHpRGniZphG2Ov4kQE 0y+tLC8vR6ZXnjt37oCBp7+x1NM3qeJm/s6rAABUcTOquFnT+xYAQE1Vg4KyLFmGAACorWqgipuN J1oBALzmrKCKm11PyRgYK3X1SZMmDbkLd3d3KysrZWXl2tpatIIHAFiwYEFNTc3EiRPRNkcAwObN m0NCQshk8qZNm3A43O3bt3+cWL0qLFtovVpfzsXb/mcpgviZW7HIAItrt/pPMtFxsVxFlbQP9dse GDrf1ccaACBNxFNkpZE/wsJCgkICFFlp5PB/S1ojLCKkoaExbdq02bNnI5M6YrFY2T8hY/UQicQR +n6rV6Cnb7C3h723NkXveurNk1eSkOGGXr586ezsrKCgYGFh0dXVdePGDTwej6wyfvx4PB6fm5sb GxuLx+OR3whycnIXLlw4f/68nJwclUqtra1NTU0dNV2k//EHzuvXr0VFRUVFRXV0dHJzcy9duiQt LT2W7+0wVl8lVhCMFcQNM3PmzP93ncDAQEdHx2EyZGRkTJ8+HQb3i924cWPlypXIbDBfoKuri0Ag lJSUcI8sCUEQBEEQ9Jl4O5L+Mc/SiNPTjNXd5k3+T0uiNWXDzyttPRcYD5OnX9znO8aqgef5P+ZZ tyxmsqmBo5v1pzKQ2Xr/viS6urpr16718PD4Yc+rJp77/93GCexpo+kabMUMNzaUJIcEb1MQBEEj Tk5OjrKyMjKtxSdrNf39bDa7uLgYeV39Uy5fvuyyccePdoCwYykEQRAEQRD0f/t9x3/eknUu9VlX V5+L48SRHqut+//zGXvPnz/f2dk5f/58eGZCEARBEPRdjMgWxvfv35uZmQ1ItLe337FjB/xGIQiC IAiCRgGF8WvYbM6hXYsEBeAT8X+gpKTEZrMPHjw4Zid7hSAIgiDouxuRNTYSifTFPYhHBFtb2+Gn ixkeDofr7e2FJzcEQRAEQSNX1YtYGITPVFlZCYMAQRAEQdD39V+1MAoJCcHgQhAEQRAEjURNQnb/ mIcA5H6Q0vJ/170Lgn9b6aUAvTFyXmGBzvAZpIEMvPoQODDEpDRiQAJGBoIgCPph8cAQQBAEQRAE QRAEQRAEQRD0xWALIwRBEARBEARBEARBEARBX+4HbWFsbm7GYDANDQ0AgKioqIULF/6/W2CxWBgM pqSk5KuUJz09nUwm/wiR+dRx/TglhCAIgiAI+kxdXV0YDAYOIwhjBUEQBEHQSDcC3mGcO3eun5/f 9y0DlUrdtm3b8Hlu3bolJyf3I5cQgiAIgiDo/5V69qqdqbOyKJWIkf9UnlOnTk2bNk1CQkJKSsrO zq64uBhJz83NxWAwCgoK/f39aGY3NzcMBhMTE/MFhWEwGBgMpqys7MeM1ZWztxxMfdRFp8pg9D+V 5/XzNx42y8aTLGQw+g/v5aLpYy1WqWevzDF1VBLVIGBkh8zw66+/YjCYuLg45J9PnjxxcHAgk8k4 HG7y5MnXr19Hcz558sTMzExMTExaWtrV1RV5RwEAsHXrVk1NTWFhYWlpaQcHhx82FJ+Jw+FYWVlh MJjc3NzhY4W8q4HC4XBIelFREebvlJWVR9n9is1mR0ZGEolEERERBwcH9GSIi4tDj5pIJHp6ejY3 N4/xezuM1b+PFQRjBQ3wrVsYP3z48P+uYmRkNGvWrO8bJjk5OV9f3x8hGt+4hBAEQRAEjXESePHF IT6/bP95mDwVFRXLli17/vx5bm6ukJCQtbU1dzMZDoe7desW8rmlpeX69euqqqqjMlbieDG/kIVR 20OHycMvwD9nnmVi6q4hl46dWEngxf1DfH/ZHjXk0hcvXiQnJ6uoqHCfYxYWFnfv3i0vL3d0dHRy cnr16hUAoL+/387Obvz48fX19UVFRU1NTUFBQcgqlpaWV69era2tzcvLIxAIzs7OIzpixw4lYTCY z4kVorKysre3t7e3t6WlBUnR0dHp5aKvr+/u7j7Kzqvt27efOnUqPT29srKSw+G4uLigi3R0dD58 +MBkMnNyckpKSlasWDHG7+0wVl8lVhCMFcTtW7QwTpw4MSIiwsLCQktLKyUlpbu7e+XKlUpKSlJS UnPmzEH7ejQ0NNjb2+PxeA0NjbS0NHR1tJf0hw8fgoODyWSyhISEkpLSyZMnAQBpaWmKiorr1q0z NTXV1dVdtmwZg8EYUID6+npbW1sikSguLj5lypRHjx4BAN68eSMgIFBfX4/k4XA4ampqx44dG/IQ uPsgr1q1av78+d7e3vr6+qqqqnv27AEAVFVV+fn5NTQ0qKmpqampZWZmAgCysrJMTEzweLyamtre vXuR1dPS0pSUlH755Rd9ff1p06Yh/9yyZcukSZNUVVUXL16MNjsGBAQoKCiIiopqamp+qmBDlnDi xImRkZHW1ta6urq6urpZWVlDrjJM8fbs2UOhUMTExNasWdPc3Ozo6CgiIqKtrf3kyRMk2/79+7W1 tUVFReXl5cPDw5lMJpLe2dkZFhamrKwsKiqqq6v78OFDAEBmZqahoSEej5eUlDQxMWGz2fDCgyAI gqCRwtx6utNCewVl+WHyrF+/fuHChYqKisrKyps2baqurq6qqkKXBgQEHDlyBPl84sQJW1tbaWlp 7tXv3LlDpVLxeLyNjU1NTQ0A4MiRI7q6umgGGo3Gx8f37t07S0tLpOVITU0NebOvsrLS2dmZRCLJ yMgsW7asu7v7O8ZqhvVUh4WzFZRlh8mjrqXs7u88bgJ1yKVjJ1bm1jOcFjooDnVesVgsX1/fffv2 YbFYNHHhwoUrVqzQ1tYmkUjr1q0TFxd/+vQpAKCjo6O5uTkgIEBERIRMJru7uz9//hxZxcjISFNT E4/Hy8nJKSgovHnzhsPhjNDLsJpWvSt2N/K74x9jhRAUFBQSEhISEhIUFERSMBiM0J9evHjx4sWL gICAUXa/OnjwYHh4+Pjx4wkEQnx8/IMHD5CWaAQfHx8/P7+6urqLi0thYeEYv7fDWH2tWEEwVhDq G73DmJKScvLkyeLiYjc3N19f35KSksePH9fX10+YMMHe3h55yu3u7i4sLFxTU5OTk3P8+PHBGzl5 8mROTk5xcXF7e/uTJ08MDQ2R9KqqKjExsQcPHuTn5799+/aXX34ZsGJ/f7+/v39FRUVTU5O9vb2T k1NPT4+GhoapqWlSUhKSJzMzs6mpacGCBZ9zOGlpacuWLSssLLxz505kZGRJSYmCgkJiYiKZTC4r KysrKzM3N3/58qWtrW14eHhzc/O1a9fi4uLOnz+P1vwEBQULCwsfP36M/FNEROTZs2dFRUXPnj1D izR58uS8vLyOjo59+/YtW7ZscIeIYVy+fPnEiRNFRUVr16719PQcXJ0apni1tbVVVVVv377Nzs7e u3fv7NmzQ0NDW1pa7O3t0VoIiUS6evUqnU5PT09PS0tDGyh9fHzy8/MzMzPpdHpqaiqJRAIAeHt7 L126tK2trbGxcfv27UM+fYUgCIIgaHS4f/++lJSUvPxfLUceHh737t1DHusePXp0cKNGUlJSVlZW XV0diUSaN28eAMDNza2qqgp5KgwASEhImDFjhoqKSkZGBgAgIyOjrKwsMjKyp6fH3NycSqVWVFQU FRWVl5dHRESM6OjBWAEAtm7damBggLSQDqmkpKS5uVlfXx8AICkpGRgYeOTIke7u7oaGhjNnznDX 5y9evIh0rN60adOmTZtGaC2Uw+EsW/xTVPTPBALh82NlZmamrKxsa2v74MGDIVsBrK2tlZSURtPN p6Ojg0ajTZo0Cfmnurq6mJgY2uKM6uzsvH37NpptbIKx+uqxgmCsIPDNWhgXL14sKysLAGhoaLhw 4cKBAwfIZLKAgMCmTZuqqqqeP39Oo9EyMzPj4+NFREQIBMLgVkIAgKCgIJ1OLywsZDKZJBJJW1sb SRcQEAgLC0M/DH7dT05OztnZWUREREBAYO3atR8+fCgqKgIABAYGJiYmIq1vCQkJ7u7uIiIin3M4 VlZWkydPBgCoqqpqaWnl5eUNzrN//34XFxdnZ2deXl4tLa3ly5efOnUKWSQkJLR69Wo0Jw6HQ948 x2KxM2fORJ7HAgACAgIIBAIPD8/MmTNtbGzu3r37+QH39/dHWvfs7e1ramrq6uo+v3j8/PwxMTE4 HE5fX9/IyGjKlCkzZswQEhIKCAgoKipCXhGdP3++mpoaBoPR1NQMCQlBqrB1dXWXLl06dOiQkpIS BoNRV1dH+vUICgqWlJRUV1fz8fGZmJjAFkYIgiAIGq3y8vIiIyMPHz7Mx8eHJoqJiTk7OycmJj54 8IDJZFpYWAxYa8OGDSQSCYvF7tq169mzZ69fv8bhcO7u7gkJCQAANpudlJQ05MtWV69eRRpZhIWF JSUlt2zZgtZnRigYqxcvXhw7dgwdUnCw1tZWFxeX0NBQAwMDJGXBggU3b97E4XAUCoXNZkdF/dXz es6cOQUFBffu3VuyZMmECRNG6Flx7FCSgAC/q+eCz4yVsLDwqVOnrly5cvXq1fHjx1taWg74tdLe 3n7u3LklS5aMsvsPnU4HAIiLi6MpEhISSCIAoLS0lEwmk0gkSUnJ5ubm2NjYsXyvhrH6WrGCYKwg bnzfZjdI8yIAoKKiAgAwe/ZsdJGgoGBDQ0Nvb6+QkBCaTU1NbfBG3NzcGhoaVq1aVVpaam5uHhsb izQySkpKCggIIHkoFEpTU1NfXx8vLy+6YldX19q1a9PT07u6unh5eel0elNTEwDA2dl5+fLlWVlZ enp6ly5dysnJ+czD4e6ugsViOzs7B+epqKjIz8+nUj92genr61NUVEQ+E4lE7mq3lJQU2uiGxWJr a2uRz7t37z558mRjYyMvL29LS8vg0VU+p4RIj4nBJfzM4omIiKBfioiICIfD6erqEhISunnz5o4d O969e8fhcHp6epDnn5WVlUjD4oB9Xb58OTo62sDAAI/HL168ODIyEl54EARBEDT6PHz40MHB4fff fx884F1gYKC7u3tJSYm/v//gZ43odBN4PF5MTKympkZbWzsoKMjMzGz37t3379/v7e11cnIasrrV 2NiI1mfYbLaAgEBHRwf3z5sRZyzHqr+/39fXd9euXRISEkNmeP/+/axZs6ZPn75z504kpby83MbG Ztu2bUuXLu3p6QkPD7e0tHz69CkSOiEhIQqFQqFQiESijo4OjUYb/BrgD66mqmZ79PaMx+mfHyth YWEPDw/kc0xMzJMnT86cOYN2/wIAHD9+XFJScs6cOaPsFiQmJgYA6OjoQFPa29uRRACAqqrqvXv3 AABtbW3x8fFWVla5ubloF/KxBsbqa8UKgrGCuH2jFka0eoQ0Y2VmZlIoFO4MNBqNwWC0t7cj/0cO OeUQDw9PeHh4eHh4e3v76tWrfXx8kNf9mpqa6HQ6cuKWlZURCARBQUEWi4WuuHHjxuLi4uzsbKRK QSAQkPcWBQQEfHx8EhISjIyMtLW1/+WDTR6ev70QigxFdPDgwWGiMYy0tLTY2NiMjAykFXX+/Plf d+CYYYr3j1pbWx0cHFJSUuzs7Hh4ePbt24f07FZSUuJwOGVlZRoaGtz5dXR0zp49y+FwHj9+bGNj M378eFtbW3jtQRAEQdBo8scff7i6uiYkJAzZvGVsbIzD4c6fPz/ku2mVlZWamprIr1k6nS4nJwcA MDAw0NLSOnfu3M2bN728vJDHyYOrW/Ly8iUlJaMpkmM5Vk1NTfn5+f7+/v7+/shP019++eX69evI EOc0Gs3KysrR0XHHjh3oKi9fvuRwOGFhYRgMBovFrlixYsKECY2NjUhvHhSHw+nt7a2trR1xLYxP Hj5tbmoxNTADAAAOAABYWVmFhISEhIQMEytuAgIC3DMvAQAOHTrk7+/P/ULG6CAuLq6oqJiXl2dq agoAKC8vp9Ppenp6H3/38vEhw9aTyeTIyEh1dfXnz58j/dLGIBirrxUrCMYK4vat55KWkZGZP39+ QEAAMv53W1tbSkoKk8lUVFScPn068gJ2f38/d70BlZWVVVBQ0N/fj8PhJCQkuF8DDA8PZzAYtbW1 0dHR3t7eA1Zsa2tTVFRE6hMJCQnNzc3oosDAwEuXLu3fv//fj3NMoVCam5vRydqCg4PPnDmDHB2L xSoqKvr8dySRMktISCDvAz5//hydVfBr+TfF6+rqYrFY+vrfbOi+AAAgAElEQVT6PDw8ra2t6Hjk MjIyjo6OS5Ysqaqq4nA4b9++LS8vZ7FYJ06caGtrw2AwJBKJj4+P+4uDIAiCIOgH19/f38foQ2ai 62P09TH6kPTc3FwMBoNM2Xf58uV58+YlJCTY2NgwGAwGgzH4yWhKSkp2dvaAdh9EdHR0Y2Njb2/v qlWrJk6cqKWlhdbTdu3ade3aNaQNBWkrkZSULC0tRf5pb2/f19cXFRVFp9M5HE51dfW1a9e+a6zY fYw+1gfWgFg9z30tg9GvrqwDAHA4nD5GX1/fBwDAB+aHPkbf4EnwxkaskPPqb7EiEonV1dWFf1JT UwsLCzt37hwA4M2bN9OmTXN2do6OjkbOMaTVzNDQkI+Pb8+ePUwmExm+XF5enkgkIrEqLi7u6Oh4 /vx5YGCggoICOsjSCGLrYPviXWFO4f2cwvvIa2VnzpyJiIgYJlYPHjx48OBBS0tLQ0NDXFzc3bt3 kSE7Effu3Xvz5g16nowyS5Ys2blzJzJwf0REhImJiY6ODrqUxWKxWKympqbff/9dSEgIfSN4bIKx +lqxgmCsIBTPt9/lsWPHdHR0zM3NRUVF9fX1r169irzTl5yc/PLlywkTJsyePXvwoDMAgIaGBk9P TzweTyaTCwoKkOFmAABycnKampqqqqp6enrGxsa//vrrgBXXr19fVlZmYGBgZmb2/v177u7Gampq xsbGVVVV7u7u//K4xo0b5+3tjczud/v2bQMDg7S0tH379iH9MgICAlpbWz9/a66urpMnTx43bty0 adP27Nnz1V/6+zfFU1BQiIuLs7KyMjExWbRokb29Pbro+PHjurq6pqamyChCjY2NyDeroaEhISFh aWkZFhY2a9YseOFBEARB0Ehx4eQleazaIns/AIA8Vk0eq9bY0AQAoNFoKioqyGgqMTExnZ2dzs7O 2D8NfnKpoaFhZGQ05C4WLVpkZmZGoVBqampSUlLQ3h5ubm7V1dWTJ09G29GQfQUFBeHx+PXr1+Nw uMzMzLKyMiqVKiEhYW1t/X3nrEw5maaMNfK2XwEAUMYaKWONGhuaAQA1tDpFFTmyLBEAUEOrV8Ya USVMAQBu1sHKWCN0tr0xFasLJy/KYVU87X0AAHJYFTmsSmNDIw8PjxwXPj4+cXFxpLkwMTGxurp6 +/bt6Dm2bds2AIC8vPyVK1eSk5OlpaWVlZVramquX7+OhKWgoMDS0pJIJNra2hIIhPT0dHRgpREE ixWSkZNB/iCdwIhEori4+DCxamxsDAoKkpeXp1Kply5dSk1NnTZtGrrBgwcPzp07Fx0HaZRZvXr1 woULzczMZGVlWSzWhQsX0EWvXr3i5+fn5+dXU1N7+vRpWlraiHuhFcbqB4wVBGMFccPMnDnz/10n MDDQ0dFxmAwZGRnW1tbf5gDS0tJCQkKQ5+dfxt/fn81mJyYmwrMBgiAIgiAIANAEav4xT1RQtJmZ GTrc239EXV19/fr1Xl5eP2ys6sE/z5K5Oija2MzQ2WPoB8YUoDdGYtUM6obPIA1k4NWHoIP2wYli QAJGBoIgaOTKyMhQVlZGZsv4lP7+fjabXVxcbGlpOUy2y5cvu2zc8aMd4Fjvr1pWVnb27NkHDx7A cx2CIAiCIOjzHTp06L/eRXJycmdnp6ur60iP1fZD62GsIAiCIAga3cZ0C+PChQvT0tJWrVqlr6+P pDQ0NBgbGw/I5uTktGvXLniuQBAEQRAEfTMUCoXNZickJIzZCUxhrCAIgiAIGkFGfAujnZ2dnZ3d l6179uzZASlkMvnfdLiGIAiCIAiCvor6+noYBBgrCIIgCIJGiv+qhZHBYMDgQhAEQRAEjURMzIfh M0hxKAwAK3sAAND3T7EaHpmjO3YiyQG8A1JEgfjffkHAk+ovPAAAASAA4wNBEASNpP+6IAiCIAiC IAiCIAiCIAiCvgxsYYQgCIIgCIIgCIIgCIIg6Mt9ixZGCwuLI0eO/AhH++1LsnLlyp9++gkAwGKx sFhsaWnp4Dx3795VVFQcxSfZqD9ACIIgCIK+TFdXFxaLpdFoMBQwVhAEQRAEjWjfooVxxYoVJiYm w2RgMBhYLLa8vHwUB5qXl3fnzp0kEgkAcOfOHVVVVXSRpqZmdHT0CD2uFy9eODg4KCgoYLHY7Ozs IfOM6AOEIAiCoDHuyvlrTuYumtK6ckIq/299ID8/H4vFqqur9/f3o4leXl5YLDYuLu4LCvODVxqv nb/jYu6vIz1dWWjSMNkuJ9+aoe2kKW5iP9Xr6dOnYzNWje8bAzwD5eTkCASClZVVbm4uuujs2bM6 OjoSEhJTp05F40Oj0WbNmiUnJ4fH4/X09Pbv3/9xO42NS5YsoVKpeDx+3Lhxu3fvHn3X4IULFyws LAgEAhaLHbCopqZm0aJFZDJZSkpq2rRp7e3t6Le/bt06VVVVCQkJPT29nJwcJN3Q0BDLJT8/f5TF is1mR0VFycvLS0lJubi4vH//HknfvXs3etTy8vK+vr4tLS1j/N4OY/XvYwXBWEEDfIsWRgcHB21t 7a+7zf7+fjabPYICjcFggoODJSQkBi+SlZX18vIaoSeQgICAo6Pj+fPnh8kzog8QgiAIgsY4Cby4 T7DXz1vXfnF9AIfD3blzB/nc2tp669YtFRWVURkrcbyoV/CCtVt/GiZP3uMXq4N+XbM5JL/mj5l2 Zvb29ty/3sdOrFYvj6yrrX/69CmNRps4caKDg8OHDx8AAI8fPw4KCtq8eXN1dfXcuXPR+IiJiW3Y sCE3N/fdu3e//fbb5s2br1y5AgBobm6WlJQ8ffr027dvt27dunnz5sTExNF2DUpIBAcHb9myZUB6 e3u7paWloKBgVlZWcXHxxo0b+fg+TuPp5eWVnZ195syZsrKyxMREMpmMrpWQkND2JwMDg1EWq507 dyYnJ9+4caO0tJTD4bi7u6OLtLW1Ozs76XR6ZmZmaWlpeHj4GL+3w1h9lVhBMFYQt2/aS/rGjRua mpqxsbEmJiba2tpLlixBahI2NjbI3zo6OshDWhqN5urqqqCgoKysHBoa2t3dDf7sG7Jnz54pU6bo 6OjU19dPnTo1Kipq7ty5hoaGhoaG9+/fR/aYnZ1tZmZGJpNlZWVdXV3r6uo+p5wcDufIkSOGhoZE IlFdXR0pM4vF2rx5M5VKJZPJs2fPfvnyJZI5MjLSzc3N39/fyMhIW1sbfY4KADh+/Li2tjaZTPbx 8enp6UES0V7S1dXVQUFB79+/19HR0dHRycrK4u5E3Nzc7Ovrq6ioqKiouHjx4tbWViT9U0c6pIqK ioULFyoqKpLJZAsLC+Rh5sGDBw0MDAgEgpqa2po1a5hMJpL54MGDWlpaZDJZQUEhIiICSRwy/kOi Uqm+vr76+vrDlIf7AIeJG7f79++bm5uTyWQdHZ3ff/8dSUTOn/379yspKRGJxJ9//rmlpWXBggVS UlIGBgbPnj0b/tvv7OxcvXo1lUolEAiGhoaPHz8GAGRlZU2ZMoVMJlMoFHNz85HVbA1BEARB38D0 mWYOC+YqKMkNk2f4+oCfn9+xY8eQz6dPn7a2tpaSkuLOkJ6erqenRyaTHRwcamtrAQCJiYmGhoZo hqqqKhwOV1FR8ZmVxu/FbOaUuQtmySvJDpMn+Wjq9FlTbJwtRUSFQ9YuxuFwFy5cGIOxqnhX4TDP XkZGRlhYOCAgoLW1FamzJSQkzJo1y8nJSVRUNDIyEo0PHo83NTUlk8l4PF5NTU1YWPjNmzdIU8jW rVsNDQ2lpaXnzp07a9ashw8fjrJrcObMmS4uLkpKSgPSDx06JCIicujQIU1NTSKRaGlpicPhAACP Hj26detWcnKykZGRtLS0oaEhd/cpfn5+oT9hMJhRFqsjR46EhoaOGzdOWlo6Jibm4cOHr1+/Rpfy 8fHx8/OrqanNmzfvxYsXY/zeDmP1tWIFwVhBqG8900tVVZWIiEhOTk5eXl7e/9i783io9v8P4J+x DsYysox9jyhKQguylEImSqsWQq5UbkqSihZX0nLbtOimtKe6lvZUlFZ7CSUMI3vGUAbD/P44957f fG1XXXWL9/OPHjOfs8w5L2dOn/mc8/mcjIzY2FiE0M2bN7F/8/Ly1q5d+/nzZ1tbW21t7YKCgszM zOLi4qCgIHwNqampDx8+LCgoUFBQQAglJiaeOHEiIyNj3bp1bm5uHA4HOyFGRkaWl5fn5eUhhLCR EP9RVFRUeHj4oUOHqqqqnj59amhoiBDatWvX+fPn4+PjaTTapEmT7O3tGxsbsflv3rzp7e39/Pnz pKSkTZs2YWMsPn782N/f/+jRox8+fLC3tz9//nyXT1FSUjp69KisrGxeXl5eXp6FhQX31MWLFzc1 NeXk5GRnZ9fX1y9ZsgSf1OOedtfc3Dxt2jRFRcXc3Fw6nR4WFoZdzJSVlY2Li6upqblx48bNmzej oqIQQiUlJevXr7969WpVVVV+fv7cuXMRQn3n/+/1mBu3169fz5w508/Pr6Ki4sqVK/v27bty5Qo2 6cOHD+Xl5a9fv753715UVNSMGTN8fX0rKirs7e19fHzw/w57/Ot7enpmZ2ffvn27pqbm4sWLMjIy CCEPD4/ly5dXVVWVl5eHhYUNvmoWAAAA8J+bN29eampqVVUVQujkyZPu7u5dZoiNjb17925JSYmM jMy8efMQQnPmzCkvL3/+/Dk2Q0xMjLm5uZqa2hdVGn9M+a/eGoz9q3MPgUAYM2YMfgF7SGXl+6vP 9fjrlZWVnz9/Pn78+Lhx45SUlBBCubm5eINp93wsLCwUFBSGDx8uIiKycOHCLutsbW1NT0/v+8r3 YJKSkqKjo+Pk5CQtLW1gYIAPN5+SkqKlpRUZGSknJ6elpbVu3Tr8pgeEUHBwsIaGhqWl5enTpwdZ II2NjWVlZfjxo6mpKSYmxn38YJqamu7evcvdLj8EQVYDnhWArAD6/i2MJBJpxYoVCCEhISErKyvu IVdw169fRwht3bpVWFiYTCaHhoZyt9OtWbNGUFAQf+vm5oY1Fdnb21dUVFRWViKEJkyYYGxszM/P LyEhsWnTpocPH/Zn26KiojZs2GBqasrDw4Nd7kMInT59OiAgQFtbW1BQMCgoiJ+fH9s8hJCVlZWR kRFCSF1dXVtbOysrC5t/zpw5ZmZmPDw8Li4upqam/Q+nvLz8wYMHu3btkpCQIJPJERER9+7do9Pp fexpj+mx2eydO3eKi4vz8fGZmppiFzOdnJw0NDQIBMLw4cO9vb0fPHiAEMIaH7OzsxkMhoiICLY7 fef/7/WYG7ejR486OztTqVReXl4dHZ0VK1bgG8DPz799+3YSiaSvrz9u3DhTU1Nzc3Mikeju7p6X l8disXr761dWVsbHxx88eFBFRYVAIGhqamJ9jgQFBQsLC+l0Oh8f3/jx46GFEQAAABhwoqKiVCr1 1KlTT548aWtrmzx5cpcZgoKCZGRkhISEdu3alZGRkZ+fTyKR5s6dGxMTgxDq7OyMjY3t3tb2HSot 30Iz85OoOAl/Ky4uzmQyh2BWxuONeXl51dXVhw0bduXKlcOHD/Pw8GAtGmJiYr3lc/Xq1bS0tMOH D0+bNk1cXJx7hZ2dnb/88oucnJynp+cQ+WbV19fHx8cvWrSovLx8z549AQEBWM/x+vr6N2/eCAgI vHv37vr163fu3Nm0aRN+/Fy6dOnWrVtLlizx9/fHuwoNDk1NTQih3o6ft2/fqqioKCsry8vL19fX d+91PqRAVgOVFYCsADe+7/x5kpKSeCOOkJBQj/2XS0tLa2trDQwM8OoCPz9/Y2MjLy8vQkheXp57 ZrznCDbyMXZMv337NiQkJCcnp7W1FSH0+fPnT58+iYiI9L1tZWVlWlpaXQorKirw4W94eHhUVFTw Jj/uTitCQkLYR1dUVFhZWeHl3F0S/hGdTicQCHgPCOxz6XS6oqJib3vaHY1GU1dXx7Lidvv27b17 95aUlHA4nM+fP2PdlpWUlM6ePRsVFbVy5coRI0YEBgba29v3ln+XatxX6zG3LgdAVlYWvgGtra3K ysrYa2lpaXx8GREREfxgEBER4XA4nz59IhKJPf71aTQa1rDY5bMuXbr022+/mZiYkMnkpUuXrl27 Fk4KAAAAwIBbtmzZkiVLCgsL3dzcul/Pwys/EhISYmJiFRUVI0aM8PDwsLGx2bVrV1paWktLi6Oj Y/8rjQNVafkWSGIiTY3N+NvGxkbsEvKQyorD4cy2n2NoNKa8vJxEIp06dcrGxiYjI0NBQUFUVJT7 52iXfIYNGzZs2LClS5d6eHhs27YtPDwcK2ez2R4eHqWlpfHx8dz3IgxuJBLJxMTExcUFIWRtbe3g 4JCQkEClUkkkEi8v77Zt24hE4vDhw319fSMiInbv3o0QmjVrFraslpZWRUVFbGws3g1oEBAVFUUI dTl+8MYOdXV1bJDThoaG33//3c7OLi0tbegcLZDVN8oKQFaAG88PsRE8/7MZysrKioqKOX979epV RUUFXvvpz11mS5cu1dDQePnyZVFREXYpr7c+xV0+t6ioqEuhgoJCaWkpXhWj0WhYe19vFBQUsI4t mB6fndRlf3GKioocDqesrAx7W1JSghV+UZgqKiolJSVdxhNsaGhwcXHx9fXNz89/+/btxo0b8UAc HByuX7/+4cMHd3f3+fPnMxiMvvP/DpSVlZ2cnPANKCgowIc8748e//oqKiocDqf74xR1dXVjY2Pp dPqJEyciIyNv3boFJwUAAABgwBkbG5NIpCtXrixatKj7VBqNhr1gMBhMJhMbCcfAwEBbWzsuLi4m JmbhwoUCAgJfWmn8MY0YNfxVVgH2msPh5OTkjBo1aqhl1cRsopXQ3L3dpKSkiETi8uXLORzO06dP EUL6+vr4A457zAefVFxcjL1msVjz5s2rrKxMSkrq8bGKg5WBgUGXX0bYHx1rR+ae1OOvDwEBgUE2 BLm4uLiysjJ+/BQXFzOZTPz44ePjk5WVlZWV1dHRWbt2bV5e3lDuvAlZDVRWALIC//Pf0I+wEQIC AmQyGRutGSFkb2/f2toaEhLCZDI5HA6dTsc7JvcTg8EYMWKEsLAwm83+/fff+7nU8uXLw8PDX7x4 0dnZWVdXh30xFi1aFBkZWVRU1NbWFh4e3tbWZmdn18dKXF1dL1y4gN3nmJ2dfe/eve7zUCiU+vp6 /CkuOCUlpcmTJwcEBDAYDAaDERgYaG1t/aUtjPb29gQCITAwkMlkstns58+fNzc3Nzc3s9lsAwMD Hh6ehoYGfATx9+/f37t3j8ViCQgISEtLEwgEPj6+L8qfw+GwWCzsbsG2tjYWi/XvaypeXl4XL168 du1aW1sbm83Oy8vDapz/5q8vJyc3Y8aMlStXlpeXczicoqKi4uJiNpt99uxZBoNBIBBkZGR4eXnx GyQBAAAAgOno6Ghltba3sxFCrazWVlYrVp6ZmSkkJIQ1ePWnPnDu3Ll79+51uV8P89tvv9XW1ra0 tAQGBhoaGuro6GDly5YtO3DgwI0bN9zc3L5RpXGgs+psZbWx/8qqrZX114P1XmXkqxHH0WmVCKH5 Hk4Pbz+5l5TKamk9uvs0k8nE7kEbUlmJiYtp62qfOn6awWC0t7efOHHi8+fP2K/QZcuW3blzJykp qaWlZc+ePXg+N27cuHXrVnV1dU1NzalTpy5fvjx16lSE0KdPn5ycnD59+nTx4kU+Pj4Wi4U9SXKQ fQfx/WKxWNi4QAghNze39PT0a9eusdns1NTU69evz5w5EyFka2uroKCwZcuWlpaWkpKSw4cPY+U0 Gi0xMbGqqqqhoSExMXHv3r34LY2Dhqen5/79+wsKChgMxoYNG8aPH6+rq4tPZbPZbDa7rq7u6NGj RCKx+8NzhhTIaqCyApAVwPH8INuxfft2X19fCoUSGhpKIpFu3779/v177El5M2bMyM/P/6K1HThw YPfu3RYWFtOnTx83blw/l/Lx8fn111+9vLxkZWUnTJiAtTCuW7fO2dnZ3t5eWVk5JSXl+vXrfV8a NTc337p1K5VKnTp16v79+2fPnt19npEjR7q6uurr61MolLt373JPOn36NJFINDAw0NfXFxMTw4bU +SIkEunWrVslJSW6urqKioobN25ks9lKSkrh4eF2dnaWlpbu7u729vbYzCwWa9u2baqqqnJyctu2 bTt79iyJRPqi/MvKyshkMoVCQQjNmDGDTCbjT2X5agYGBlevXo2KilJVVVVSUvLx8eneGvsVf/3o 6Gg9PT0rKytsZPTa2lqE0KVLl0aOHEmhUKZPn7569WobGxs4KQAAAADcrpy7piExwm2WJ0JIQ2KE hsSI2uparA6gpqaGjVjSn/qAlpZWb7WyBQsW2NjYqKmpVVRUnD9/Hr/3as6cOXQ63cjICG9HG/BK 48C6du6GjsREj1lrEEI6EhN1JCbWVtcjhOhllcpqChR5aYTQWFP9nUc2bVu3x4Bidf3Kvfj4+C5P ix4iWZ26eLK5uVlPT09eXv748eNnz57V1tZGCJmamh45ciQgIEBOTi4uLg7Pp7OzMyQkRE9Pb+TI kYcPH46IiPDw8EAIpaWlPXz48OHDh3JycmQymUwmU6nUQfYdPHfuHJlMxn5WYPuIdZMaNWrUuXPn tm3bJi0tvXLlyj179mCVfCEhoYSEhJycHAUFBRsbG1tb29DQUIRQW1vbrl27DAwMNDQ0Nm/evH79 +sE3QNCaNWtcXFxsbGw0NDQ6OjrOnTuHT3rz5o2oqKioqKienl56evrVq1elpKSG8rkdshqQrABk BbgRpkyZ8qXLeHl5YdfBepOcnNzlEckAAAAAAOBnUU+o7HuGYRw5X1/fSZMmYY8z/nZGjhy5YcOG 7k8N/nFUEV7/4zxBK8KMJxnOnD+t+yQKZ+TQyaoJNXYpEUXi8HXrURtqQwgJIAGIAgAABo20tDQ1 NTXs0Rq96ejo6OzszM/Pt7a27mO2P//80yVk14+2g9AnFAAAAAAAfLGDBw9+64+4dOlSU1NTjz1C fi5hh4IgKwAAAAAMbkOxhTExMbF7j4AdO3b8dHWyqVOn4qN9YygUSkpKCoQGAAAAgJ+dqqpqZ2fn kSNHhuwDTCErAAAAAPxEhmIL44wZM2bMmDEIduSLnrAMoQEAAADgJ1JaWgohQFYAAAAA+Fl8qxZG IpEI4QIAAAAA/IyIiPgvZxg6BP9FFHJo5JDKigfxIBhbcIC+gwAAAMCP9x89AAAAAAAAAAAAAAAA fC1oYQQAAAAAAAAAAAAAAHw9aGH8AnV1dQQCoaqqCiEUHBw8b968L10Dm80mEAgFBQXfdDvv3btH oVB+tPS+LjEAAAAADGLNzc0EAgGGEfw6RkZGMTExXQqTkpJUVVUhHAAAAAB8Zz9iC6OpqWl0dPR3 +KBbt24pKip+3bIzZsxwd3eHA6j/fztIDAAAAPgZXbsQbz+JqiKqJUWQ72O2s2fPampqEolEIyOj Z8+eYYXp6ekEAkFZWbmjowOfc/78+QQCITw8/Cs2hsViEQiEoqKiHzOr2ur6FQvXj5Ix1xYfv2Lh eiajCSvv6OjcEbh3rJKNurCRhS41LjYRK8euXuNIJFKPqx05ciT3bOnp6T9IffjfCAsL09bWFhYW lpKSolKp+N/0+vXrY8eOFRcXFxUVHT9+PP5gw+fPn1OpVAqFQiKRjI2Nr1+//n3y+REEBQXp6+sL CwsrKCh4e3s3Njb+fVx1BAYGKikpCQsL6+rqxsbGftFxNSh1dnYGBgbKyMiIiIhQqVTs1hCEUGRk JB6IjIyMq6trXV3dED+3Q1b/PisAWYEu4B7Gr2RiYjJ16lTIARIDAAAABjdxsriHr3tIRHAf8zx5 8sTd3T08PLy2tpZKpU6fPp37FymJRLp16xb2ur6+/vr16xoaGoMyq+Vz/JmMpod58WnvrjfUN65a shErjzl0/lz01Zj4A4WNz9aGrvjVLTg34w2+VGlpaUtLS0tLS319fW9rPn36dMvfxo4dOwiysra2 TkhIqKioyMjIkJaWdnZ2xsq1tLSio6OLiorev3+/ZMkSR0fHyspKhFBJSYmVldX9+/ffv38/c+ZM JyenvLy8QZwPt5qamj179hQXF8fHxz969MjHxwcrP3ToUHR0dHx8fGNjY2hoqJubW0ZGxhcdV4NP RETEmTNn7t27V1payuFwXFxc8El6enrt7e1tbW1paWkFBQWrV68e4ud2yGpAsgKQFeD2PVoYKysr HRwcyGTy8OHDY2Ji8I7GHA7nyJEjenp64uLiY8eOvX//PkJo7dq12dnZQUFBmpqaTk5OPa4Q61Bz 4MABU1NTHR0dKyur8vJybNKnT59+/fVXVVXVYcOG2dvbY51u7t+/LyYmhtVCWlpa9PX1g4KCysrK 3N3dq6qqNDU1NTU1Hzx40ONnVVVVOTo6YhuflJSEl+N9ftvb23/55RcKhSIhIaGqqopdPExKSlJR UQkKCpo0adLIkSNXrFjBYrG6x2JnZycjIyMuLj5+/PinT58ihDo7O5WVlS9fvozP5u7uvmTJkt6y TUlJmThxIplM1tTUPHDgQPcZegwZy3nBggUeHh6ioqIKCgoXL17MzMw0MjISERGxsbGpqanBqybO zs6ysrLy8vIrVqz49OlTH/n3/bfj7iVtZGQUGBhoa2s7cuTIkSNHpqSkDPiWHzp0SFdXV1RUVElJ yd/fv62tDSsvLi6eNWsW9veaNGkSg8HAZlZXV5eQkJCVlfXz84PzAgAAAICzsp3sNI+qrKbcxzzH jh2bNm3a7NmzRUVFg4ODSSTSxYsX8amenp7Hjx/HW4Ls7OykpKS4F79z546Ojg6ZTJ4+fTqdTkcI HT9+fOTI/3/OMo1G4+PjKy4utra2xhqnNDU1sbsge6yr/CfqaxuepWasDV0xTJosJSMZsM33TsKD irJKhFBJUZmJmeEowxH8/HwzXKZKU6TyX73DFxQUFNW5rS0AACAASURBVCQSiUQiUVBQsLeV8/Pz E/9GIBC6TG1paXF2dp4+fXpT0193Te7atUtBQUFaWhqvhS5cuHDFihXcTXJqamo0Gq17ffgfq5cD wsTERFtbm0wmKyoqKisrv337lsPhIISGDx8+ZswYaWlpGRkZbW3t1tZWrD4/b9681atX6+rqysrK BgUFiYuLv3jxop/5/Oyio6NtbGwoFIqRkZGPj8/jx4+x8qKiIjMzM0NDQ35+fhcXFwqF8urVqy86 rgafI0eO+Pv76+vrS0tL7969+/Hjx9wt0Xx8fPz8/FpaWi4uLtnZ2UP83A5ZDVRWALICuO/Rwjhv 3rxhw4ZVVFQ8ffr07NmzeHlUVFRERMTZs2cbGhpCQ0NnzpxJo9EiIyNHjx4dFhZWVFR07dq1Plb7 +PHjR48eFRQUaGhoBAYGYoVubm4FBQXPnj2rrKw0NDR0dHTs6OiwsrJau3ati4vLp0+ffH19yWTy tm3blJWV//jjDwqFUlRUVFRUZGlp2eOnLFiwQFhYmE6np6WlnTp1qvsMsbGxaWlp+fn5DAbj+fPn +FXTsrIyMTGxx48fZ2Zmvnv3bsuWLV0W7Ojo8PDwKCkpqa2tdXR0dHJy+vz5Mw8Pj4eHB97RuKmp 6dKlS56enj1u26tXr+zs7Pz9/evq6hITEyMjIy9dutRlnh5DxiZdu3Zt6tSptbW1oaGhHh4ewcHB Fy5cqKys7Ojo2L59O0Lo8+fPlpaWOjo6JSUlr1+/fv/+/bp16/rIv/9/O4TQn3/+efr06devX2/Y sMHV1RWrUw7UliOEZGVlExISmEzmvXv3kpKSsPpxc3OzlZWVoqJiYWFhXV1dREQE9nNlzZo1SUlJ DAajuLh4wYIFcF4AAAAAvkhOTs64ceOw1wQCwdDQMCcnB5+6cOHChw8fYneiRUdHd6/YxMTEpKSk fPjwQVZWdtasWQih+fPnl5WVYddfEUInTpyYPHmyurp6cnIyQig5ObmoqCgwMLDvusp31tnZie0+ d2FedgFCaKHn7Hf5xa8y89vb2Ulxd1pZbeY2pvg85ubmampqdnZ2eMtRd4GBgYqKihMnTjx58mSX STU1NZMnT5aSkkpMTBQVFUUI0el07B7AnJycJ0+eYLXQ5cuXnzt3rqWlBW+0WrZsmYqKSpf6cH+q lwPlypUrWK/n0NDQ0NBQPLrKykoKhSIuLm5lZTVjxgwTE5MuCxYUFNTV1Y0ePbo/+Qwyjx49GjNm DPba09MzPz8/MzOzvb09Li6OxWLZ2Nh80XE1yDQ2NtJoNPxcpKWlJSYmxn0uwn9h3b59G59taIKs BjwrAFkB9B1aGEtLS1NTU3ft2iUsLDxs2LCQkBB80v79+zdv3jx69GgeHh4HBwcLC4srV670f83r 1q3j5+dHCDk6OmLXMKuqqi5fvhwVFUWhUAQEBEJDQ8vKyrADOjg4WElJadKkSUlJSRcuXODl5e3P R9BotAcPHuzevVtERERaWrp7KyFCSFBQkMlkZmdnt7W1ycrK6urqYuUCAgJr1qzBX3Sv7igqKjo7 O4uIiAgICGzYsKG9vf3169cIoWXLlj148KCsrAwhdOHCBWyze9y8Q4cOubi4ODs78/LyjhgxYtWq VWfOnOkyTx8hm5mZzZkzh0gkuru7t7S0LFu2TFNTU0xMzNXV9eXLlwihhIQEhFBYWJiwsLCkpOSO HTu41989/y/i4eEhKyuLLU6n0z98+DCAW44Qmj17tqamJoFA0NbW9vX1xX6QJCQksNnsPXv2iIuL 8/HxTZgwgUQi8fHxIYQyMzMZDIaIiIixsTGcFwAAAIAvwmQyxcXF8bcSEhJMJhN/KyYm5uzs/Mcf fzx+/Litrc3KyqrL4ps3b5aVlRUSEtq7d+/Lly/fvHlDIpEWLFhw4sQJhFBnZ2dMTEyPF1z7rqt8 Z9KywwxN9HeHHGZ8bGR8bIzccggh1MT8hBBSUVecZGUyzWiuisCYVYuDwg4GySnKIoSEhYXPnDkT Hx+fkJCgr69vbW3N3cuVO59r167dv3/f3d191apV3PcVFhQUjB8/nkqlHjt2DKvSIIQIBMLu3buJ RKK8vPyWLVuwWqi5uTmFQsFqU+/evXv69Kmbm9vXVS8Hir29fVZW1sOHD729vQ0NDfFyWVnZ7Ozs Z8+ebd68ecqUKTw8//OD5ePHjy4uLn5+fnhDWx/5DDLHjh1LTk7evXs39lZdXd3KysrIyEhAQGDx 4sUHDx7EhtTs53E1KE9ECKHezkWFhYUUCkVWVlZSUrKurm7nzp1D/KQNWQ1IVgCyAtz4vvUHVFRU EIlEGRkZ7K2Kigo+qaSkZMuWLfg4383Nzfr6+v1fM96/RkhICOsSUlJSghCaNm0aPo+goCDWI5uH h8fX19fR0TEoKEhOTq6fH0Gn04lEooKCAvZWU1Oz+zzz58+vqqpau3ZtYWGhpaXlzp07sUZGSUlJ AQEBbB45Obna2trW1lbuls3m5uYNGzbcu3evubmZl5eXyWTW1tYihBQUFKZPn/7HH3+EhIT0eJ2f O8DMzEwdHR3sbWtrK3e8/xiyvPxf47Xz8PBw76aIiAieZ01NDb7+zs5OAQGBxsZGbC+65/9FuBdH CHVfw7/ZcoTQzZs3d+3aVVxczOFwPn/+jD1UsbS0VENDo0v7MtYt/cCBA97e3np6esHBwTNmzIBT AwAAANB/YmJi+NMnEEIMBgO7jojz8vJasGBBQUGBh4dH906sampq2AsymSwmJkan03V1dZcvX25u br5v375Hjx61tLT0OHhOb3UV7p8339PxuD0hayIm683k4+fz9l+SeveppJQEQmij746c9LyUN/Eq GkrpT7LdnVYLCROnOloKCwsvXLgQWzY8PPz58+fnzp3rPozgnDlzsBfDhw+n0+kxMTErV67ESmJi YshkMv4Wr2XhD/dQVVXFaqGCgoJeXl7R0dGurq7R0dHTp0/Ha1BfWr0cKEQiUU5OTk5OTkZGRk9P j0ajSUtLYxU8CoVCoVBCQ0NVVVXV1NQcHBywRaqrq6dOnWphYbFnz57+5DOYHDp0aMeOHffv38eH MfX19U1PT3/z5o2GhsaTJ0+cnJyEhYUdHR37eVwNyhMRQqjLuQgrRAhpaGg8fPgQIdTQ0LB7924b G5v09PQh1YUcsvoWWQHICnD75i2MCgoKLBarpqYGa2TEO7oihFRUVLZu3YqPzYfrcqGy/7AK0IMH D7q3IdbV1fn4+Hh7e+/fv3/u3LlYW9U/fpCioiKLxWIwGBISEgihHh+ExMPD4+/v7+/vz2AwAgIC li5dit3QV1tby2Qysa9TUVGRtLS0oKAgm83GFwwJCcnPz09NTcXqUtLS0nhP4eXLl//yyy/Ozs7Z 2dncT8rrvr9qampHjhzpO5MeQ+5nnkpKSgUFBV3Km5ube1vkq/92A7vlHz9+pFKpcXFxDg4OPDw8 Bw8ejImJwSrZxcXFnZ2dXbbT0dHR0dGxra3t9OnTs2bNqqmpwf7iAAAAAOgPAwMD/CYpDoeTnZ0d EBDAPYOpqSmJRLp06VJkZGT3xUtLS7W1tbFfs0wmE7sPa8yYMSNGjLh48eLNmzcXL16MXbjt8j94 b3WV/4qcouzRS3/dX5Z84xEvH99YUwOE0KusAse50zR11BBC4y2MTMzG3r/5eKpj1yF6BAQEuB+6 3aMu82zfvj0lJcXa2vrWrVuSkpJ4vbe5uRlrZCwtLcVqoQihJUuWbNy4MT8///Tp08eOHeux8taf 6uWA43A4LS0tFRUVWK2YW2dnJ/6YaRqNZmNjM3PmzF27dvUzn0EjLCwsKirqwYMH2DcFk5WVNXfu XKw52MLCwszM7ObNm46OjkMkk+7ExcVVVFQyMjKwHmDv379nMpkGBgZ//e7l46NQKAghCoUSGBio paWVk5MzZHsvQVYDlRWArMD/tAh96w9QVVU1MzNbt27d58+f6+vruXtJr1q1atOmTenp6Z2dnS0t LSkpKe/fv0cIycnJFRYWfsVnycvLz54929PTE+ti3NDQEBcX19bWxuFwFi1aZGZmFhUVFRQU5OLi gt3pJicnV1dX18fj1VRUVCwsLLDbwjs6OnqszaSkpGRlZXV0dJBIJAkJCbx/CkLI39+fxWJVVFRs 27at+9NaGhoaVFRUsIrUiRMnuB+5iN2GuXTpUicnpy5DoXP75Zdfzp07h+0jm81+/fp1Wlpal3l6 C7k/HB0dW1tbg4ODmUwmh8MpLy9PTEz8h4r11/7tuvs3W97c3Mxms7Ee1h8/fsRHl3d0dCQQCGvX rmUymWw2++nTp83NzUVFRXfu3GGxWAICAjIyMgQCgfuPCAAAAAxxHR0draxWdjsbIdTKam1ltWLl 6enpBAIBewqHl5fXzZs3ExISWlpaIiIimEzm3Llzu6wnLi4uNTW1y72NmG3bttXU1LS0tKxdu9bI yGjEiBFYuZeX1969exMTEz08PPC2EklJSbyy8RV1lW/qVWY+rZje2MB8eDttg89238BlYhKiCCGT SYaJl++Uvi/v7Ox8mZb1LDXdwEgPIfT48ePHjx/X19dXVVVFRkbev38fG4YSIeTg4LB06VKEUGlp 6Z9//llZWfnx48f4+PjIyEj8lj2sIeD06dNjx46dPHkyfi2cw+EEBASwWKzKykruWqikpKSzs/PC hQt5eXnt7Ozwyht3fbg/1csBsW3btvz8/MbGxpycHC8vL2VlZawb0JEjR54/f97Q0FBaWurn51dd XY11q3/79q2ZmZmzs/O2bdtYLBaLxcJazfrOZ3AIDAyMioq6c+eOiooKi8Vqbf3rOzhp0qTLly+/ f/++s7MzLS0tNTXVyMio7+Nq0PP29t6zZw82RP66desmTpyop6eHT2Wz2Ww2u7a29vDhw0QiEb97 emiCrAYqKwBZAdz3eNLL+fPna2tr5eXlx48fjz2tHLuOumLFivXr17u7u5PJZBUVlYiICOwWv3Xr 1l2/fp1MJvf29JU+nDx5Uk9Pz9LSUlRUdPTo0QkJCQQCISwsrKSkBLtUGxgYqKGh4eXlhRAaNWrU kiVLsGcX3r59u7eNf/XqlaGh4bRp07oPG4QQqqqqcnV1JZPJFAolKysLGzAIIaSoqKitra2hoWFg YGBqarp169YuC27atKmoqGjMmDHm5ubV1dXq6ur//1fh4fHw8MjKyuqjizRCaMyYMUlJSQcPHsR6 l3h6en78+LHLPL2F3B8kEunBgwdFRUU6OjoSEhK2trb/+Byof/O3G8AtV1ZWjoyMtLGxmThx4qJF i/BruSQS6f79++/fv9fQ0JCSklq/fj2bzWaxWFu2bKFQKJKSkps3b758+TLesQgAAAAAl2LjFITU FjouQQgpCKkpCKnVVNUghGg0mrq6OtbTdsKECSdOnPj111/JZPKlS5du3LjR/RLp8OHDuz+yA7No 0SJzc3M5OTk6nR4XF4d3o54/f355ebmxsTHe5ogQCg8PX758OZlM3rRp01fUVb6p7JevqRMX6cta BPmGef26yH/LL1j5xp2/mkwydLZYqkkyXrU4yNt/yTx3J4RQTU3N8uXLlZSUdHR0rl69eu3aNTMz M2wRGo1mbm6OEGprawsPD9fR0VFUVNywYUNQUBD+hEMMgUCIioqaNm2aubk5dpVdUVFRTU1NQ0Nj 1KhR48aN466FLl++PCsry83NDR80pkt9uD/VywGRlZVlbW0tIyNjZ2cnLS1979497DbVurq6hQsX ysnJGRkZ5ebmJiUlYX2P/vjjj/Ly8oiICKG//fbbb/3J52fHYrF27tyJDR2A7biIiAg2aefOnZMm TbKwsCCRSIsXL/b393d3d+/7uBr0AgIC5s2bZ25urqCgwGazL1++jE/Ky8vj5+fn5+fX1NR88eJF UlJS93tmhxTIakCyApAV+J86yZQpU750GS8vr5kzZ/YxQ3Jysq2tbY+TUlNTHRwcBv1gn0lJSb6+ vthV/a9z5syZLVu2FBUVdR+rCAAAAADgm6pHlX3PMAzJYeMk4sO9fSNaWlqbNm1avHjxD5tVJXr9 1cvKoZE9r7Oy0srK6vXr1/18OGH/lZeXq6qqvn//Hhui+jtrQ20IIQEkAF8xAAAAQ1BycrKamhr2 LIredHR0dHZ25ufnW1tb9zHbn3/+6RKy60fbwe/RGzQrK0tISEhHR6eysjIoKGj+/PlwYPWtubl5 3759q1atguZFAAAAAPyYjh49+q0/4vz5801NTd07XA96cnJy+fn5A77ajo6O8PBwR0fH/6R5EQAA AACD2/doYayurvbx8WloaBAREXFwcIiIiOj/spMnT+5yJ6CcnNzTp08HfCMDAwMvXLjQpTAlJeXb PT6vNwcPHgwICLC2tv7ll7961lRVVZmamnaZzcnJae/evXAEAwAAAGBQkpOT6+zsPHHixJB9gOnA ys7OnjhxopqaWkJCAqQBAAAAgAH3vXtJAwAAAACAH1x/eklDSphv0Ut6sIJe0gAAAIYy6CX9lVgs Fhw9AAAAAAA/ozZCex9TyRwZFoKa3l9aCeyvWIrC0UEIDbUYWagFIfQZfUIIEZEQHDwAAADAYMID EQAAAAAAAAAAAAAAAL4atDACAAAAAAAAAAAAAAC+3vdoYbSysjp+/PhXLHjjxg1tbe1vsUn379// /o9wGcBkAAAAAAAGpQkTJsTGxn63OiFkBQAAAAAwIIboPYza2trbtm37zzdj9erVEydOhKMQAAAA AD+s2pq6FUtXjVI01JbRW7F0FZPBxCfR6fRFixZRKJRhw4aZmZkxGAys/OzZs4aGhpKSkpqamsHB wR0dHT2u+eTJk2PGjBEXF1dXVz98+PAAbvOdO3c0NDT+g6yq631d1xsqWOpJTZxjvSzn5V8PgWG3 s3eHHp403E5HwmSO9bK3eUVYeX19vRAXKSmpHlc7duxY7tkyMzMHQVYYDodjZ2fHvVPt7e2hoaHa 2tpkMtnGxiYvLw+fubfj6pvm8yO4fPmylZWVtLR0l4cD9JZVP4+rQamzszM4OFhJSWnYsGEuLi7V 1dVY+b59+/BAlJSU3Nzc6uvrh/i5HbL691kByAp0MURbGBUUFBYvXvyfbwaVStXV1YWjEAAAAAA/ rOULfJgM5sPsu2l5qQ31jFUea7ByBoNhbW0tKCiYkpKSn58fEhLCx8eHEMrNzfX09AwICKiqqrp2 7dqZM2d6bD08ePBgSEhISEjIu3fvbt26ZWRkNAiy2rQqrIpefePlxfSy5NHj9Nyovux2NkLoQPjx +PM3/ri2P+tDiomZ4WIHn+bmZnypwsLChoaGhoaGioqK3tZ84sSJhr+NGTNm0Bxd0dHRBAKBuyQ8 PPzChQtXr16tqKiYNGnSjBkzsKz6Pq4Gaz4YCQmJX375ZceOHV3Ke8uq/8fV4LNnz57z58/fuHGj sLCQw+EsWLAAn6Srq9vU1MRkMh88eFBYWOjv7z/Ez+2Q1YBkBSArwO17tzBevXp13LhxMjIyxsbG f/755z+W4+7du6eqqpqYmBgbG2tubo6Xr1y58tdff0UINTc3CwkJ7d6928rKytTUlEql9vG/KXcv 6QkTJvz222/Tpk0jk8njxo3Ly8s7f/68jo6OrKzsypUrOzs7sdl8fHy0tLSkpaX19fVPnz6Nr+r5 8+fjx4+XkZGxtLSMiIgwMDDAyj99+rRu3TptbW15eXknJycajdZ9M/Be0tjGHz582Nzc3MDAYNq0 aXQ6vfv8va3zX+5CSUnJvHnzVFRUKBSKlZUVg8Fob29ftWoVVqKtrX3u3Dn4qgAAAABDUH1d/bPH z9duWjNMapiU9LCALf53ku6Wl5cjhI4ePSoiInL06FFtbW0ZGRlra2sSiYTVK8TExObNmycgIDBq 1ChLS8vc3Nwuq21padm2bVtkZCSVSpWRkRk+fLixsXH3eebOnUulUpuamrCSvXv3qqurKyoq+vn5 sVgshNDSpUv9/PzwRc6ePaujo1NWVrZ8+fLq6mo9PT09Pb2UlBSE0KNHjywtLSkUip6e3sDeL8mt 9H25/eypFHkZIWHiQk+Xho+NVR9qEEI3rtxdtHzOcD1NIWHir5t/aWr6lJCQgC8lKChIJBKJRKKg oGBva+bn5yf+rUuT3E+aFUKorKxs9+7du3fv7vJjYfny5Xp6esLCwps3b25qasKy6vu46jufn92U KVNcXFxUVVW7/7DqMav+H1eDz/Hjx/38/EaNGiUlJRUeHv7kyZM3b97gU/n4+Pj5+TU1NWfNmtX9 vDTUQFYDlRWArADuu7YwpqWlubu7b9++/cOHD6GhoUuWLHn27Fkf5biTJ08uX748Li5uxowZfX/E kydPbt++/ezZs3Hjxs2bN6+fG3bq1Knffvvtw4cPhoaGLi4u9+/ff/bs2dOnT+Pj4xMTE7F5jIyM nj59Wl1dvXfvXj8/P6z/RUNDA5VKdXd3r6ysPHjwIPegil5eXm/fvk1NTS0tLR09evTs2bN76yLE vfHJyck5OTnq6urBwcHdZ+hjnV+9C83NzdOmTVNUVMzNzaXT6WFhYXx8fOfOnXv69GlOTk5VVdWj R48G36VgAAAAAPRHZycHIdSlySYnJwchlJKSoqOj4+TkJC0tbWBggNeCbGxs1NTULly40N7e/urV q5SUlJkzZ3ZZbVZWFpPJLCkp0dLSUlRUnDNnTllZGfcMtbW1U6dOlZKSunLliqioKEKooqLi/fv3 b968efny5dOnT7Hhbjw8PC5cuNDS0oLXGJcuXaqsrHz06FFZWdm8vLy8vDwLC4vXr1/PnDnTz8+v oqLiypUr+/btu3LlyreIa/maJbf+TK6urG35zDp7/PLocaPklSgIIQ6Hg/43w+zsbPy1jY2Njo7O zJkznzx50tuag4ODNTQ0LC0tuS8S/9RZcTgcb2/vLVu2SEtLdykn9JRV38dVH/kMYr1l1f/japBp bGwsKysbO3Ys9lZTU1NMTOzVq1ddZmtqarp79y4+29AEWQ14VgCyAug7tzCePn161qxZtra2fHx8 06dPp1KpMTExfZRj/3Fu3rz5999/T05O7k/3mdWrV/Pz8yOE1qxZk5GRkZ+f358Nc3d3HzNmjJCQ kKura0lJyc6dOyUkJNTV1W1sbNLT0/F5pKSkeHh4rK2tp06d+vDhQ4RQUlKSnJycp6cnLy+vnp6e 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 7t4vzZycnH5xFBUVR/Ga7927JyMjM/5aqQnrSOCUKP/KCOUIofdZH5wXuGuIzRqBVgghTU1Nyjjp 6emTQKt9fsfMpi9R4p41U8pi69rdzY0tWPjt64lSOC3yn6vtevIhFy5c0NDQ4OHhkZWV9fX1JRKJ lAnW1dWJi4vj8XhyyN69e1VVVXl4eEREROzt7ak14yc+QdsuGGiul+BynCbptmltaFNjGxZ+/3aa 6cyNsnzLpHmXWuj7PH6QQT7kxuVn+up/inMunqW67mbMS3J4RlqBrek2ad6lqhKu+3ZeJg+ZORwc PTm06u3t9fX1FRMT4+Xltbe3//TpExYeEhJCrkFiYmIuLi6fP3/+xW07aPX9WgGgFdCPn34MY3d3 94iPFRERWb58+dBxtLS0TExMvpqUtbX1lClToDwBAAAAADDJeFuUUdpQXNpQXF9fv2bNmpkzZ2JT QBgZGW1sbK5cudIvvru7e30f+fn5jIyMixcv7hdnypQp9RSoqqoOjPMzklL05GNDBva3Ys0yzZnq ohIiCCEGRgZz27lhV4+MQCuM06dPk2Oqq6tPAq0+V9dv27v+6YfYsGsHUp+/2fZnMPknKTnxDw3P sb9/r+zDAt9n5a1atcrb27uqqurGjRuRkZHHjx+nTPDPP/+cOnUqZYihoeG1a9cKCwuTk5PxeLyj o+NPqlVNTeOOfS6puaHnov9+mfR+s+e/WLi0rNDB0D9evTue8uHE4mWGTna7P1XVI4SSHr9d5/qP 765l+dWRvoFOq5cfykgrQAh9rmlynL9DZ7ZyTmn45Zt+UREPTx5JwJKabTh1cmh18ODBS5cu3bp1 Kzc3l0QiLV26lNLsNDc3NzU1PXr0KDc3d8OGDb+4bQetRkUrALQCKBnzHsZPnz5JSkqSZ3CsXr3a xMSkp2eQDxT6+PhkZWX5+fkpKys7ODgghEgkUlhYmIaGhoCAgI6OzuPHj8kxFy9e7OzsPH36dB8f Hx8fH2dn599//52Pj09aWvratWsZGRm6urq8vLwWFhY1NTXUro1ylrSurq6vr+/8+fM1NTU1NTWf PXuGhZNnSZubm2P/lZWV9+/f3y8p8izplpYWZmbm48eP6+vrT5s2zczMrKysbOCpW1tbN23apKCg ICwsbGtri40FwC5j9+7dZmZm3NzcWlpaOTk5ly5dUlRUFBAQWLduXW9vLxZtzZo1cnJyfHx8qqqq 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 by8qKsrNzT1t2rStW7fW1NR8tZyRt6F593Pda2ZmZmZmZhYWFklJSTc3t9ra2pHZmskkCx6Pv379 +vfb3x9y7OjS3t4uJCSkoKBAJBKpVflRvNr29nZmZub8/Hxsl5aW9uDBgwICAvDgN8morKxct26d vLw8JyengoKCi4tLTk7O8L0MOJrRwtbWFnMBvLy82tra0dHRIy7YP1GuDx06pKGhMSrVeaJlbd++ fczMzGfPnqXmUEb3mn19fV1cXMi7FhYWy5cv/1F57+7uZqbCL1WpR8vRYO3DkbUJh+bevXsyMjLk XXl5+R07doAV/eo9Ki8vP3ny5IYNG8jn9fLyGq1zMTExeXp6btmyZULZ2FG/WTdu3CASiSYmJt9Z wge9NhUVFSUlpWF2AI2dWdbX1w8PDx8fszymZZJEIs2dO3dymOWxFupbqydmstjZ2ZWUlHbt2tXb 2zsqXgZ6GAGqJCYmGhsbi4qK3rt3r7S09MqVK3R0dHfv3h2Lc3V3d/+yOl++fPny5csT5GKKi4sb Ghpu3ryZnp7+119/QS0AyERHRxOJxIqKigcPHoz/2WloaFavXs3JyQk3YjJRWVk5a9aswsLCiIiI kpKSR48e6enpRUREgDI/BHd396ampsLCQgcHB2dn5/fv34NP/Hk5e/YsNzf36dOnf8jZtbS0TExM flTe6enp6/qws7NbsmQJefeHXM8wm7hEIrG3t/dXLrQiIiLLly//qQ3O+FjRU6dOWVhYjF2LyNHR 8cGDB8XFxZO4sB09etTFxWXs0nd2dj5+/PiE6oIZU7M81mUyPj5+cljvsRbqW1FSUmpqavr06dPh w4cPHTp05syZX7ztBGMYxxwvLy9HR8cDBw4oKiqysLDIyclt3759yZIlJBLp6dOnc+bMERISEhUV dXR0LC8vH/Q9DLbb29sbFhamoaEhICCgq6v7+PFjLIKPj4+jo+OKFSumT5/u4+Pzaw4buUzBDx+/ hhCipaWlp6dXUlKyt7dPT08nkUjFxcWOjo4SEhLS0tJeXl4tLS1Y5DVr1sjLy/Pz80+bNo1y8gL5 mouLi9XV1bdv3z5uFz9uyY6KJtQSSU1N1dPT4+fnNzIyIo/gmwhanT592sHBwdzc/NSpU4OmRpls dHS0lpYWPz+/trb2jRs3yOFPnjwxMjISEhISExP7/fffh9DNwsICIWRhYaGiorJ///7u7m4WFpbc 3FxsfMquXbuUlJSEhITMzMzevn1LNilLly51c3ObMWOGsrLysWPHsPCSkhJra2tRUVEhISFNTc3s 7OwRaIXH4y0sLKqrq0kkUnNzMwsLy4EDB4yNjXV0dKytrcvKyrBoNTU1Li4ukpKSkpKSrq6unz9/ xsL19PT+/vtvMzMzGMNIyY4dO9jZ2a9fv66trc3Ozi4oKLhy5cqgoKAhvAy1Ivf06VOsaKmoqGDN +qHDf51BTMOPSUNDQ0dHx87Ovn79elpa2szMTGrue4i7Q2b//v0qKiofP36cyD5x0Ho3KrmmlkhX V9fmzZvFxcWlpaWDg4PHIkfYBoFAOH369OvXrzMzMwfmlzLj1KxWc3Pz5s2blZSU+Pn5NTU1k5OT qYkQHR196tSphIQEFRUVFRWV1tbW7du3kwfLZGVlzZs3T0hIaMqUKUFBQd3d3WQrevz48Tlz5kyb Ns3MzKy0tBSLHxoaOmXKFEFBwe+540x90NLS0tLSYttVVVUD3S52JefPn1dTU+Ph4bGzs2toaNiy ZYuIiIikpOSZM2cY7LbrAAAgAElEQVTI/gXrM5ozZ8706dP//fffof3drVu3FBUVd+7cOWPGDGyc 1KCeDjv74cOHdXV1VVRUXrx4wcnJWVlZSS6KKioqI54fOoqOZtCjBs04VvI1NTX5+fnl5eXDwsJI JFJlZaWNjY24uLiAgICBgcHLly8x1+zh4fHp0yes2Dx58uThw4eSkpLkgaiDOno9PT1fX9/58+dr ampqamo+ffp04jTCx82KxsXFGRkZDazXQ1SrQasztQxycHCoqandvHnz+33NqNhYciJtbW2Ojo7W 1tbNzc3fY2Nra2uTk5P7aUhZc4ODg2fNmqWsrLx69equri7sp8LCwiVLlkhKSgoKChobGzc0NAwx lGzWrFllZWWDNjj7xf9+sxwaGqqurs7Pzy8nJ+fj44PNzvbx8cnKyvLz81NRUVm8eDGJRBoVsywh IbFp06aBmRqjMkneffny5cC2HHazjh07JiUlxc/Pv3Xr1traWgcHBzwer66unpKSMp7WOyQkRFNT k5wygUBgZ2cvLCwct8o7AtuOnZ2Ojg6Hw5mYmGhra6elpVFrOQ9qxqGHEXoYv428vLyCgoKB6zVg OtDR0QUHBxcXF2dlZSGEPD09hzCgYWFhWKd4eXn51q1bHRwcCAQCFuHmzZuurq4pKSn79u37ZbsX KV+iTpBn0fr6+jt37igqKra2tpqbm8vLy+fk5KSmphYWFpLnTWhqaiYlJVVUVBw4cGD9+vWYSSLX lNTUVBMTk3Xr1vn5+f3sz+f96v6oaEItkYaGBhsbG6xddfDgwdDQ0Alied69e/fy5UsnJycnJ6fb t29XVFQM4c+eP3/u5ua2c+fOsrKy7du3u7i4YO4wIyPDxsbG1dW1sLDw/fv3jo6OQ+iWkJCAmYis rKy//vqL8lz79u27dOnSjRs3CgsLZ82aZWVl1djYiEW4ffu2u7t7cnJyXFycn58f1iMZEBAgKCiY n59fVlZ28eJFXl7eEShQUFBAJBL37NlDvqcvXry4devW8+fPtbS0li5dikVzdnZubm5OT09PS0v7 /PnzihUryELFxMSQO2fBy2DcvXvXwcGBnp5++F5mUJWys7Pt7Ow8PT1LSkquXr16+PBhbHoatXBg 6Geeq1evdnd3Y70Dg7rvIe4O9s5/7dq1cXFxiYmJsrKyE9wnDixRo5Jraons3bv3/v37z549y8nJ qa6uzsvLG6OKb2xsPHfuXDU1tdOnTw+aWfI2Nau1atWqN2/e3Lp1q7KyMioqip+fn5oItra2rq6u lpaWWVlZWVlZzMzMlM0JS0vLOXPmFBYWRkdHR0ZGHjp0iNKK3rt3782bN9LS0tu2bcOe4X18fK5d u0b2MqN1i6m5XexKrl69evPmzffv35eVlc2ePVtMTOzjx4/Hjh3766+/sP4+hNCtW7c8PDwePXoU GxsbHBx89+7dIfwd1oPGyMiYnJz86NGjoVsIz549S0xMzMnJ0dXV1dHROX/+PPmdXE1Nja2t7QTs YaSW8dDQ0ODg4CNHjlRUVCQlJampqZFIpJ6enhUrVuTk5BAIBAsLC0dHx9bWVlFR0RMnTggICGDF Zvbs2cN09PHx8WFhYampqRs3bnR1df3WaX1jZ3DGx4p2dna+f/9eQUFh0Ldug1YratV5CJSVlTMy MiaOjSWRSNXV1WZmZry8vFevXmVlZf0eG5uRkcHKyiosLDzoRZaUlLCwsDx9+jQlJSUtLQ2rjy0t LRYWFsLCwhkZGSUlJTt37qSjoxuiWweHw0lJSb158+ab9BmZWebn57969WplZWVCQsKtW7dOnDhB IpGCgoJUVVW3b9+elZV16dKlfk95IzbL2dnZ9vb2/bIwDmWSWluuoqKitLQ0Kyvr3r17oaGh1tbW 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 jRUADg4O7I3K27dvsY8LkxPB4/EJCQnYmhTY4sE/r1YIoe7u7vY+Ojo6RkUTaolgK/s+ePCARCLV 1dWdO3duLPL1rWmGh4fb2dm9fPny2bNnz549S0lJMTY2Dg8Pp7aCzNKlS2/cuPHw4cOenp779+/H x8djK7q6uLjEx8dfvXq1s7Ozra3t2bNnQ+iGvU/Ly8sb+L536dKlhw4dys/P7+zs3LdvX3d3NzZa Z6BJwXZjY2OxthQPDw8zMzPWRBuBVpTpI4T27dv36dOntra2LVu2aGhoyMvLi4iI6Ovrb9mypaGh ob6+fuvWrYaGhthCP2iwhb3By/z9999NTU2LFy9OTU1tamqqrKw8c+YMtvTMcLwMeXvlypVXr16N iYnp7Ozs7u7Glg0dIhycyDCh5r6p3R2sGK9cuXLnzp02NjavXr36Kex8OwU9PT2jkmtqiSxZsuT4 8ePt7e0kEun06dPNzc2jmylyas/6uHbtWnp6Ova9l35GDBucMqjVEhAQsLS0XL9+fWlpaW9vb35+ /tAiCAgIFBYW9vT09LuSefPmtbS0hISEdHZ2fvz4MSQkxMnJadC7ie0WFBQkJia2t7czMDCMyh0n Z5ma2yVR/7ZAvzbt27dvIyMjiUTiq1evLl68iH35kJq/62fSh24h9LtmZ2fnuLi4sLAwZ2fn78/7 qDga7OUiuZp0dXVRy7ibm9u+fftSU1OJRGJNTQ32zcCGhgYxMTFs7GFERMTnz5+xyxAQEKirqyN/ xYJSjSEc/aD3d8I2LMfCilpaWpI/bDL0NZN1HrQ6U8YPCQlJTEzEthsbGzMyMubNmzdaWn2/jaWj oztx4sS0adMsLS0/ffr0nTaWl5dXW1sbW2KP2tNrv5/Mzc1paGh8fX2bmpq6u7tTUlKwIWbk+M3N zb6+vmRhk5KShIWFp0yZMoRWo2KWW1paenp6VFRUaGho+j04CAgIULaiR8Us4/F47HNG41AmKbcH bctRu1kDVR1P633s2LE7d+6QP6ozPpV3xPZq4FHUWs6DmnHoYYQexm/GwMDg1q1bBALBzMxMSkpq yZIlPT09xsbGJBLp4MGDISEhpqam1tbWmpqaiMqQZmzD1dX1zz//XLt2raSk5NSpUw8fPkxug0IP 4wR/FmVhYYmLiyssLNTS0pKQkLCzs3v//j2JRLKxsdHU1NTV1TU3Nw8NDTU1Ne2XCCcn540bN6qr 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 nVRc3EUkGlGsdvRFOmNjATY2ZgaGQ1ZWqWVl76qr2RgZl6qpnU5NxZ7Sz6alDezIQwjFvXuHEAqa N4+FgYGHhSVw7tzIN2++ej2WiopvPD0fu7uvnjFDQ1h4iJgnU1KmCQn1W1NvomVn4nA/P7+0ocFF U5My0N/EJH3duhgnJwdVVSlubixwoYpK9G+/PXZ33zV37rW3b5dfuUKOL8DGluHp+XLNGj9jY1NZ 2W8tbP2fhbq6uojES5mZZxYtqtq61WbKFMuzZ0sbG4c4hIWRMXLx4lgnp7jly1UFBY1PnUrrG27s oKp6OzeXzd9fKCiol0TyNTIarTry05Gbm2tpaXnu3DnK9SgiIyP37t37/Plz+b5RQr84AuxsMyTE tt95UNfWVtfW5n/3PkKoqaOzX7Smjg7KUdJczLimjo7/GBxVlTMpqUlFxV1EopGsTH+DM9dEgJ2N mYHhkI1VamnZu0/VbEyMSzXUTr/qMzgprwf2SyKE4nLeIYSCLOexMDLwsLAEWsyLTPuRBuff5ymM 9HTLtNSHiKMiJHjNddm9Na7hv9nXtrYaHgmj1JMDh7ObpnLmZWpSYXEXkWgkN0Arsz6t7KxSS8re VVWzMTEuna52+mWfVq9eD+yXRAjFZb9DCAXN79PKal5k6oQ2zmll5T43b5+0t8N6FZs6B5Sxzi9l zM/U+MYKp4er3VdqT/eMiTuS9OKLWZOUpKOlFdkRxPr3tiuZWWH2CzGzZq085fiL5Nyams6enoB7 D1o6uwYW6YlDc2dnF5F4KSPjzKJFVb6+NsrKX3UBta2tOZ8+MdLRlfz99303tzsfP/pQvOrzNzFJ 9/SMWb7cQVV1Egxa/I8hampCCHFycv6/nHBxNfWNx8/NzRUUFBQQEODh4amtrQ0ODgYLTwbWYQQA AAAmM46Ojjt37sS2eXl5ExMT+fn56fsm+hUVFaWnp5M/uNzZ2SkhIYEQKi4u1tHR+aYTiVBMLYmJ idm5c6e6ujo3N7erq6uPjw9lTDk5uRkzZpw/f97b2zs8PNzFxQXrgiwqKvL399/Ttyp2S0uLat+Y oH4UFRVVV1eTL7u3t5eRkbGxsbGsrEy2bz4mQohyewRQrlrNzMzc3Nw8zMvA1rsU7uurYmVlpRSH lZUVSyo3N9fX1/fNmzednf9j787Dodz+AICfGYMZ+4iZse+7iBCRypKQivZSSm5Juza3mzYquW23 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 5eTJk2k02uDBg2/evMnLzxsl7ejoiP2vp6e3a9cuc3PzrKwsPz8/PT29x48ff+rwOjo6li1bpqSk RKPRtLS0zp8/3+14uo6S9vPzmzFjhpeX17Bhw3R1dQ8dOtRjERITE0ePHk2j0fT09A4fPowlYgdw 6NAhZWVlCoXyxx9/1NbWTp06ddCgQUZGRi9evMCyPXz40NramkajycnJTZs2raysDEtvbGxcu3at tra2tLT00KFDnz17hhBKSEiwsLCg0WgyMjKjR4/mcDg/zXlVxGAEP3y4z9n5UxkiMjMXmZnpUalC /PybbW0b2tqiX7/uludubq7Czp1/Z2djbwvo9NHHj0sGBg49dOhRURFC6F1NjdDmzeWNjVgGLper tXfv6dTUtbdvp1dUbLh7V2vv3snnzyOEmtvbV926pb57N3X79vFnzhQyGH0vyxh19WmDByv/W9yQ xeHMj4raP24ciZ+/xwwDpDjfssVz6+qslJSMZGX5+fgm6+vTREQyKysH/tl7dOJEWzU1mojIUDm5 RWZmjzsvYgAAAAAAnwkijAAAAH4JxcXFwsLCjx8/TklJSUlJOXPmTNelbm5uXl5e48aNy8rKysrK EhIS6nEjCxYsePv27cOHDwsLC4cMGTJ58mQ2m40Q8vDwIJFIeXl58fHxZ8+e/XjFW7duYf9nZWWt Xr362bNn2traQUFBWVlZlpaWnzq88+fPP336ND09vaKiIjEx0cjIqPcy3rp1y9vbOykpKSYmxt/f /+P5JTMzMydOnLhixYr3799fvXp13759V69exRaVlZWVlJRkZmbGxcUdOXLExcVlyZIl79+/d3Z2 9vHxwfIQCIRdu3aVlJRkZWUhhJYuXYql//bbb2lpabGxsVVVVZcuXaJQKAghLy+vhQsXVlRUlJSU bN++vZcefz8WLpe7ICpqi52dlLDwJ/Mg1K28aeXlXd+eTEn5LSoqctas8To6WMrR5893OTpWr1+/ aNgwl/DwquZmDSkpS0VF3oSGDwoKapqbJ+vrB48da0ijBdrb56xcGTFzJkLIKyoqp7r60cKFJevW GcnKup49y/7S8dyghIQhMjI2qqo9Lv3hivNFWtzLxCS7uvplWVkHm301K4vJYtl0zoHwo3hUVDRk wHe6BAAAAMCPAiKMAAAAfgkiIiKLFy9GCJFIJBsbm+Tk5P+6hcrKysjIyP3791OpVAEBAX9//5KS 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 tbU1h8Pp4RU1WUtr1pAh6lRqN3mOpqXZaGvPMDAQFxLyHztWjEyOffmyS55b+fmqO3ZcevOG+FjI ZFofPSodEmJ64MADBgMA3n36JLJ1a0VdHZGBy+Xq7NkTnZGx8caN7MrKgFu3dPbscTlzBgAaWlt9 rl/X2r1bYft2+5Mni1isnv+ADLDmfA+HHR0naGrSxMRMlZW9zM0ffv1nrV84cuTIunXrhgwZIisr Gxoa+ujRo9evX+OTAiGEEEK9hxFGhBBCP5HGxkYbGxsdHZ3c3NyMjIz379/7+/sDgL+/v6Ki4po1 a5qamubPn+/l5TV58mRil0uXLkVFRT148GD79u1OTk5VVVUAICAgEBYWVlJS8urVKwDo/FLF69ev e3p6Pn369MqVK4GBgXl5eQDw4MEDHx+fyMjI8vJyW1vbs2fPfq2GCxYs2Ldvn6qq6qsO4uLiX2bz 8PB4+/btvXv3ioqKjI2NXVxc2tvbv1ZmcXGxqKjow4cP09PT09PTT548SaQPHz788ePHHz582LNn z7p16zIyMni7xMbGXr9+/e3bt6WlpWPGjFFVVS0oKIiIiFi/fn1lZSUA5OTkODo6rlu3rqysLD4+ /rfffouPj+++8y9fvnzs2LH09HRfX98lS5ZwudwuGbops7y8vKSkJCcn5/bt2xEREdOnT1+1alVZ WZmtre2KFSuIPAoKCnFxcR8/frx27dr169cjIiKIdHd396ysrKSkpI8fP54/f15eXh4A3Nzcli9f XllZWVJSsn37dj4+vj68zLIrK4crKxPbfHx8JkpK2ZWVnTMcT093T0xMmDfPXk+PSDn87FnY1KlV /v5eFhbTY2I+NjRoy8qOotN5LzS8W1j4qaHBxdBw55QpRjRayKRJeevXx82dCwBuiYl5VVUPli8v +eUXEyUlp1On2nscMP0Jm9MbDxgMYyWl/nsDrKmpKS4uNjU1JT5qaWlJSEi8/CJejBBCCCH0DTDC iBBCaCA7ceKEcoerV69evXoVALZt2yYiIkKlUoOCgohgH4lEOnHixJ07d8aNG0elUjdv3swrYcGC BURMauzYsbq6ugkJCQAwcuRIc3NzQUFBKSmpwMDAu3fv8vKPHz9++PDhADBo0CAdHZ3MzEwAiImJ mTlz5pgxY0gkkqurq6WlZW8a9eHDh4SEhL179yooKJDJ5MDAwP9j797joUz//4FfM8YwZjDO46wQ OURFOmpz6ERE6bxblFI6LdXKUmvVolqfvmpL54OkttLJtqui1XEJUdnYcgpRKkNoMGZ+f9y/5uOj 1lbURq/nYx/7uOe6r/u67/d13+bw7r6uu6ysrIM0AYfD8ff3J4SwWCwHB4fMzEyq3MfHR1VVlU6n Ozo6jh49um0UVMpVTU3N3d1dRkZm4cKF1ESWampq1I527Njh6enp7u4uJSVlamrq7+/fQdqU4u3t TfWki4tLRUVFZWVluwodtCktLb1u3ToOh9OvXz9bW9vBgwfb29vLysr6+Pjk5eUJBAJCiIeHh6Gh IY1G69Onj5+f36VLlwghlZWVp0+f3rp1q76+Po1GMzIy6t27NyFERkamoKCgvLycwWAMGTKkazOM dQKBoqys5CVXVvZFUxO1LBaLQy5ciL527fd582x1dCR1Zg8YMFBbW4pOn2dj01tZOTEvjxAyz9Z2 X1YWlYrdl5U1rV8/NpPZbl9V9fXH797d6ubG43CYUlJrHRzKamtv/28GEOF0id2ZmamFhRvHju2+ 74cvXrwghCgoKEhKFBUV6+rq8EkBAAAAncdAFwAAQA/m5eW1du1aallZWXnr1q3V1dVWVlZUiUgk kpaWrq2tVVRUVFNT8/LyiomJSUpKkpKSkrTA4/HaLldUVBBC/vrrr++++y43N7epqYkQ0tjY2NDQ wGazCSEqKiqS+iwWi/pJX1FR4eDgICk3NDTsTFAlJSWEEDc3N0kJk8ms+vssjLKysiSDxmKxJGO6 t27dGh8fX11dLSUl9fz587bPk5HM/Mhms7Xa3LTFZrPr6+upY7h165akJ5uamvT09Do+bEnPsFgs SbKjXVx/16aamhqDwXj9kNhstlgsbmhokJWVTU5O/s9//lNcXCwWixsbG6kB2qWlpVRisd2+fv75 54iICDs7OyUlpTlz5qxYsaILrzoFWdm2zwPhCwTqHA61/Ozly5/++GPTuHHtBib3avPSQEmpvLaW EOJhZvb1L79cLinpx+Od/PPPy76+b7gYamoIIS4HDkhKZKSkqurrEU7X2p6eHpGWdsHHp/erCVK7 I+qG6LYpxdra2rYJRwAAAID3hgwjAAD0ZGw2W/vVAE9CiJ6eno6OTm5u7us1r1+/vnfv3jlz5nz9 9dfXr1/nvMqhFBYWSuoUFRU5OjoSQubMmePo6Lh79245Obm8vDwbG5vXx/y2pa2t3TYD+Pjx47ZH 9a6ovFtycnLb7Oe7Onfu3KZNm3799de+ffsSQqZPn95xCK8fg4GBwZYtW7rwZHWmzZqaGi8vr8OH D48fP55Op2/fvp0aDK6vry8WiwsLC42NjdvWNzMzi4uLE4vFGRkZ7u7uFhYWY7vu3jQrHi/7VRpX LBbnVlauGDGCeqkqJxc/ZYr7oUPSUlJf9e8v2aTtbIMlNTXORkaEEKaU1Ff9++/Lyhqkq9tXXb3/ q7wqvc0dl3pcLiHkoo+P5ptG0yOcLhGZlrYjI+Oij08fVdVu/X6oqKiop6eXnZ09dOhQ6g2trq7O 0tISnxQAAADQeRglDQAAnxEXF5empqbvvvuurq5OLBaXl5dT46afPn365ZdfRkVFbdu2rVevXtSY YsqhQ4eysrJaW1t37txZUlLi4eFBCOHz+X379pWTkxMKhf/3f//3j/udNWvWkSNHysvLCSE5OTkX L17sTBSampoeHh7UA2Gogzl58qTkwSZvic/nc7lc6ua+27dvX7hw4Z02nz/FaOpYAAAgAElEQVR/ /tGjR6n9CoXCvLy8GzdudPLsdKbN+vp6oVBoZWVFp9Nramr27dsn6asJEyYsWbKkrKxMLBY/ePCg qKhIKBTGx8fz+Xwajaauri4lJSW5QfIftYpEAqGwpbWVECIQCgVCIVWeVVEhHRpKZdbm2dj8dv/+ 2fz8ly0tm65erWtq8mqTxLHT1T3v7R18/vy29HRJ4YHs7FuPHonE4r1ZWYXPn3uYmVHlvra2J//8 c1t6+jwbm/9eAPLyBU+fUsta8vKTzM39Tp9+WFtLCKl5+fJEXl7z30/K2bPD+RCCz5/fkZHx65w5 elyuQChsetVF3ZSvr29MTEx+fj6fz1+9evWQIUPMXp0dAAAAgM7APYwAAPAZ4XA4ycnJISEhVlZW jY2NWlpaM2fOHDdunLe3t729vY+PDyFk7969dnZ2u3fvnjdvHiFk/vz533zzze3btw0MDBITE6mZ BLds2bJq1aodO3YwmcwpU6ZInp3yd+zt7b///nt3d3cVFRUdHZ3Jkyd3MpCdO3dGRESMGTOmurpa SUlpxIgRrq6u79TC5MmTU1NTbWxsVFVVjY2Nx4wZ806bW1lZJSYmfv/99/7+/mKxuE+fPqtWrepk UJ1pU1dXNzIycvz48aqqqlwu18XFJTk5mVq1e/fusLAwBwcHPp+vr6//008/6enp/fzzz998841Q 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 NrttXGw2m2rq7/qhtLS0T58+7fYVFRX1/fffe3h41NXVTZo0KTIyksvlduFV9JDPD09N/WPRor+r 0NLaujcz83tn53blj+vrR+/ZM7J372gXl7blG8ePdzU1bRGJ7lZVzTl+XFlObqa19Uf7o+hh4cA/ UlBQIITU1tZKSvh8PlUIAAAA0Em4hxEAAIAQQuj0f/5MdHNzu3DhwvPnz319fSdNmsTn89ttlZSU FBUVFRcXV1ZWVlJSMmbMGPGrx2W8kY6OjkAg4PP51MuqNvPWzZw508jI6Pbt22VlZb/++ishRNJU 24dyaGtrS7ZqbW2trq5+y3h1dHTa7k6yTKfTAwMDs7KyysvLNTU158yZ08mO1dfX19XVzX/lr7/+ evr0adu7qDr2d/2gr69PjZtuS1lZefPmzYWFhRkZGdnZ2T/88EPXXiTXS0urGxr6x8SohoebREcT Qpz27Ak5f15SITEvr7GlZcb/ptVK+fzhsbGjjY23urm1e6AKl8XiycvrKiqOMzFxNjKKz8n5mNd8 DwsH/pGioqK+vr7kRuPCwsK6ujorKyv0DAAAAHTB7yl0AQAAACFEU1OzsLCwtbX17yo8ePDg/Pnz AoGAyWSqq6vTaDQGg8FkMpWVlSWzH9bU1HC5XGNjY0JIbm7ub7/91vFO9fX1R44cGRUVRQhpbW3d uHGjZFVNTY2ZmZmcnJxQKPzxxx//roXZs2dv3rxZIBAQQrZv3/72Ax5nz54dHx9PPXAmOzv7/Ku8 Ulpa2q1bt1pbWzkcDpfLpcaGd4abm1tTU1NISEhdXZ1YLC4rKzt79uzbb/53/eDv779u3bo//vhD JBJVV1dT812eOHGitLSUEKKqqionJ9f5g2/H3cysaOXKnKVLc5Yu/d3XlxByeNq0la9GrBNCtv/x x0xraw6TKSn56+nTEbGxnubm4aNHC4RCgVDYKhJJ1opEIqFIJBAK08vKUgsLzdTVP+Y138PC+UBa RSKBUNjS2koIoULu1uH4+flFR0dTE62uXLly2LBh5ubmeP8HAACAzsMoaQAAAEIImTFjBvVsEJFI VFFRwX7twRcCgWDt2rX37t2j0+nUiGkOh0MIiYyMXLBgQUNDw+LFi0NDQy9evGhpaammptanT5/x 48f/434TEhJ8fX0HDBigoqIyefLkn3/+mSqPjY39+uuvt23bxmQyp0+f3u7RNBLBwcE1NTUDBw7U 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 mIA/ZwAAAPgg0MMIAAAdlmKU9Llz50xNTUNDQx0dHc3MzGbNmkV13inGHZ84cWLnzp2nT582Nzc3 Nzevqal5W5m5ubnOzs4cDsfOzu7mzZtU4vTp04OCghR5unXrdvLkybS0tJ49exJCnJycqGIvXrz4 ww8/mJubHz16VC6X79ixw9raWlNT097e/tq1a9SxS5cuHTt2rLe3d48ePZYsWdL01E1HSb8tomby 8vLGjh2rp6dnYGAwf/786upqQkhVVRWNRtu/f3/37t1ZLNaoUaNEIlFgYKC2tjafz9+9ezd1bHFx sZubm66urqamZv/+/e/cuaMo9vr16wMHDuRyuTweb/bs2YSQ/Px8V1dXHR0dLpdrY2Pz6NGjDnxf CUWijfHx20aPbpq46+7dkRYW421sNJjM4MGD1ZnM4w8fKvYq0WgMOp3HZs/t27dILH7x9hsM4Xxq RlhYTLa17dypU8cIZ8eOHUuWLOnZsyePx/v+++9v3bqVmpqKDwsAAABoO/QwAgDAZ0EoFLLZ7Hv3 7j1+/PjevXvNplOcMGHC3LlzPT09s7KysrKy1NTUWvh9HhERUV5e7ufn5+bm9vz587fl7N69e1JS EiHk5s2bVLEuLi7ffPNNVlbWlClTIiMjN23adPjw4fLy8rVr144ZM0YoFFIHnjlzxtfX99GjR9u2 bWt1RISQmpqawYMHd+vWLTc39/Hjx9nZ2QEBAYq9x44du3r1qlAoLCgo6NOnj4mJSWFh4S+//LJg wYLi4mJCSGNj4+zZs3Nzc0tLSz08PLy8vKiO1wcPHri6uvr6+paUlAiFwqlTpxJCgoOD9fX1nz59 +vLly+joaB6P11FvJLlcPuvkyXXDhvHY7KbpKcXFjq/GF9NotN4GBinFxc2OlcnlMY8fd+Zytd9+ gyEc+HgqKiqEQqGjoyO12bVrVw6Hk5KSgpYBAACAtkMPIwAAfBbU1dUXLVpECGGxWMOGDbt7927r ypkxY4aDg4OSktKcOXPMzMxOnjzZunK2bdu2atUqOzs7Op0+atSoQYMGRUdHU7u+/PJLZ2fntkd0 5swZQsj69evV1NQ6deoUGhradJbJVatWGRgY6Orqjh07lslkLliwgHqeUVdX9+HDh4QQIyOjsWPH stlsFRWV5cuXNzQ0PH78mBASGRnp5eX11VdfMZlMNTW1L7/8khDCZDKLioqo5ystLS078MxuO+/e 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 +j8q/+zTFbv2hwAAAABJRU5ErkJggg== --=-=-= Content-Type: image/png Content-Disposition: attachment; filename=em-heaptrack4.png Content-Transfer-Encoding: base64 iVBORw0KGgoAAAANSUhEUgAABuIAAAStCAIAAAA+htppAAABhGlDQ1BJQ0MgcHJvZmlsZQAAKJF9 kTtIw0Acxr+mSkUrDgZ84JChOlkQLeKoVShChVArtOpgHn1Bk4YkxcVRcC04+FisOrg46+rgKgiC DxAnRydFFynxf0mhRYwHx/347r6Pu+8Arl5WNKtjAtB020wl4kImuyqEXtGDAfCIYUhSLGNOFJPw HV/3CLD1Lsqy/M/9OXrVnKUAAYF4VjFMm3iDeHrTNhjvE/NKUVKJz4nHTbog8SPTZY/fGBdc5lgm b6ZT88Q8sVBoY7mNlaKpEceII6qmUz6X8VhlvMVYK1eV5j3ZC8M5fWWZ6TRHkMAiliBCgIwqSijD RpRWnRQLKdqP+/iHXb9ILplcJSjkWEAFGiTXD/YHv7u18lOTXlI4DnS+OM7HKBDaBRo1x/k+dpzG CRB8Bq70lr9SB2Y+Sa+1tMgR0LcNXFy3NHkPuNwBBp8MyZRcKUiTy+eB9zP6pizQfwt0r3m9Nfdx +gCkqavkDXBwCIwVKHvd591d7b39e6bZ3w+xsHLA9yuUEgAAAAlwSFlzAAAPsAAAD4gB/uEgRgAA AAd0SU1FB+QLFxQ6CbxFwHIAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAg AElEQVR42uzdd1zV9f///+dZ7ClDBGQIispwIG7FEVK4NTM1R+rbcmRpOeqdKystfWelWRZZ5pu3 IyvNlfp2b03FgYoLERmy1zmMs35/vL5vfnwQCE08orfrpUsXzosnr9frPJ7P5xl3X0MWEREhgCeJ q6vr7du3yy8pLCyMjY0te6hWq+/cuWNmZtawYcP8/Hw7O7ubN2/u3bu3uLg4MTGxpKTE3Nzcxsam qKiosLDQ09PT29vbxsYmMzOzWbNmXbt2lcvlNdkNvV5vMBgUCoVcLs/Pz09NTb19+7adnZ2lpWVW VpZcLrewsEhKSrp+/Xrr1q2PHj16/vz5UaNGtWnTxtbWNjU1VaFQODs729vbq1QqrVYrrVMul6tU qko3d+3aNZVKlZycfPjw4RYtWvj7+9++fdvT09NoNO7ZsycrKysnJ2fChAl+fn7W1tbSn+h0OqPR WNUKK31Gk18fm3L39pcrv2/o5atQKKTlBoNBrVZrtVqVSmVtbS3VR6stTU1NnjV9cmZ6ip29XWlJ SYfOPd+b+3GFdfbq1au2x0N6enpeXl6nTp0e4m+PHj3q4eFRfomPj8+/353KLAMAAAAA4EmjpASo i2QymU6nKy0tLSwszM/PT0hIUKlUOp3OwcHhypUrFhYWNjY2UpJoZmYmRY2urq5yuTwrK8vJyUkm k8lksuo3IYV3paWlGRkZxcXFtra29evXLy0tzcvLy8jIyMjISE5OzsjIKCkpiYqKGjRo0HPPPeft 7W1mZiZFfs7OzvXq1dPpdDk5OTKZzNraWqlUliWDFej1+nv37snlcmtr66ysrCtXrlhbWzs6Olpb Wx84cCApKUmlUt29e/fatWvHjx8fOXKklZVVUVHR7t27AwMD/fz8/vK5SIxGo06ry8689+47rw8Y +NLzfQZb29gZjeL4sWPuHh4ODg6pqampqckhwUGpKYk7t/528sTRnNzcklJdXl6BQiETsqdl8Ax9 gxkEAAAAAMCThpgSdYzRaFQoFCqVKi4urlGjRubm5rGxsdeuXcvOzi4oKCgsLCwuLjYzM5PJZObm 5i4uLubm5gUFBaWlpTY2NlKgaWVlZWVlZTQaq0/3VCqVjY1Nenp6YmLi6dOnr1+/HhISEhQUdOPG jaysrNzc3Hv37iUkJDRv3tzKykpKFUtLS5OSkpycnFxdXa2trfPz8+VyeXFxcfUZpZSHenl5xcXF ZWdn37hxIyMjo3PnzhqN5ty5czY2NvXr1zcajYGBgbdv327evLlKpUpPT4+Pjz937lxwcHDNS2cw GMzNZY6Odk6OtkcPbj959I+ez0U1DgxtHRpqZWUll8sdHR1dXFxOnzi4ecM3RqPR2lKuLTWXCaHW FCmVCq1W95SNpZd7hpf9vH7vQSYXAAAAAAAmREyJOkbKH+vXr793796SkhILCwu9Xp+Xl2cwGCws LPLz8/V6vaOjo4WFRW5urrW1tZWVlcFg0Gq1mZmZ9+7dU6vVMpksMDDQzMxMLpdXfwK4UqmsX79+ 06ZN4+LiNBpNYmJiu3btpC0WFxerVCqDwWBmZqbT6QwGQ1ZWVlJSkoODg729fUJCwu7du2UyWcOG DRs3bty4cWNra+tKY0q9Xl9QUJCZmRkfH6/T6U6cOJGWlubn53fkyJHAwMBjx47Z2tq2bdv21q1b BoNBJpM5Ozunp6f/8ccfarU6LS0tKSmpUaNGNSydwWBwsLN5afbCZoHBhYX5Jw/+mpuTbGkdqVKp pDrk5Oaam5n5B4SEhQZnZaXn5qrNzVXpGXmlpdqSUl2p1viUjSWiSQAAAAAAnhzElKh7ZDKZjY1N +/btMzIyPD09pZOjc3NzFQqFubm5p6enh4eHUqm0srIqKChQKpX29vZGo/HevXt6vb6oqOjOnTu2 traenp5SbmhpaVnpVoxGo16v1+l0Tk5O4eHhKpWqY8eOQUFBnp6ef/75540bN1JTU+3s7Fq1apWY mBgXF6fX60tKSnx9ff38/FJSUs6ePduwYUNvb+9GjRrVr19fqax8rp09e1apVObn52/fvv3555/P z88PCwtTKBQ+Pj4FBQVGo1HaE3Nzc39//8DAwJ9//rlevXo5OTnHjx+3s7OztbXV6/VVHaeZm5v7 75j/3Lp108nJqX+/fn5+fp3De7XrGG5hYSFTmLXv9nJc7D69Xi9tQghx+MjR9T//8v6sd+q7ewtD kUIuMxiNOp1eq9PpcgqtLK0YewAAAAAAoJYQU6KuCgkJMRgMQggPDw8vL6/CwsLMzEwLC4t69epZ Wlrm5uYKIWxtbXU6XUlJiZ2dnZ2dnXRqc2FhoXRCdzUr1+v1hYWF5ubmWq22sLDQwsLCzc3t4sWL u3btcnNzc3R0DAkJsbW1bdiwoZOT05YtWy5cuCCXyxs2bOjn52dvb9+/f39LS0uNRtOyZUsHBwfp PHSlUln+4E2DwXDz5s158+Z5e3t37tz54sWL4eHhYWFhW7ZssbOzu3jxoq+vr5RC+vv7t2zZ8syZ M5cvXw4NDY2Ojra1tbWzs9PpdAUFBdnZ2S4uLtI+y2Sy8pv4Yvlyf/8mE57r+c85c9esXbt82ae2 dvZ6vb60tHTZF8vbhoWWFBk1Gk1hYWFxSel/9+5duuRTnczsytV4a2OplaW5Tq8vKtaqNcVWFuYF yiIHR8enbAhx0jcAAAAAAE8OYkrUYXK53Gg0Go3GoqIirVYrXQVSoVCUlJRoNBoLCwuj0ShdNdJo NLq6ujo4OBQVFeXm5qakpHh7e1d1hKMQQro3t3SMoYWFha+vr7u7+4EDB/bu3bt7926DweDp6Zmf n29vb+/v79+8efPCwkJbW9shQ4Z07NhRuplPYGDgjRs3tFptXl6ejY1NhW0ZDIbk5OSNGzfa2Nho NBqtVtuhQweNRhMQENCxY8eLFy/qdLqMjIxGjRopFIq7d+/Wq1cvJSXF19d37969NjY2BQUFzs7O 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 335bOoU/Ly9v27Ztf3mf1p07d1Z6FEY1e6VWq3U6nXSiYm5ubvX3Jqpqrx5ub/++l19++ffffz94 8KBer9+3b9/27duHDRsm/SouLm79+vUGg+H06dMbN268/wCWMjqdTqvVpqSkrFmzZvbs2WPGjJHG 89ChQ7/88stbt25ptdply5aVlpZKebeZmVnbtm2//vrrrl27CiG6du363Xff1atX75GPpb/jgQbb /caPH//JJ59IF9wsLi4+fvz47du3K7SZNWtWbm7uK6+8cvr06by8vNzcXGkrlWbo1e9Pbc/Kh5it Vb2aVRMwHThwoKSkRKVSOTs7CyGUSuXffHeIjIwsLS1dvHhxQUGB0WhMSUmRVhUZGZmUlCTVMDc3 t5b+OWrt2rX9+/c/dOjQ3r179+7de/jw4R49elRzN5WqJuPo0aO3b9/+66+/arXaoqKiY8eOVTMe Krw7VAjXKp2PVdm2bZt0ach69epZWlpWesTxo1WTWVO9+ydCzd8fa/4hwcHBoXfv3pMmTVIoFJUm j3R99VxcXM6cORMZGVmvXr3WrVvfunVr586dFT5urVy5Mi0trWXLlt7e3t7e3lJ4PWnSpBkzZowb N87Z2blRo0ZLliyRbsy1fv36Zs2aOTk59erV66233oqIiOBDPAAAwNPn0X8hadCgQXR09Pz58/Py 8pydnbt06fLee+9Jv1q+fPm7774bHR3t5OQUERFRdtWkR+jTTz+dO3fujz/+qFKpBg4cuGHDhqpa yuXyESNGSO1rr74TJkyQvoe7urr27dt31qxZQgh7e/uNGzfOnTt3+fLltra2Q4cOnTRpktT+/fff nzFjhkajGTt27KxZsyo8/Oabb+bMmdO5c2ej0RgeHi7dJuKhc4eNGzcuXrz466+/NhqNTZs2Xb9+ vb+/f/kvVAMHDszIyGjduvX3339fG9eqf+eddxo3bhwdHf3BBx/I5fJGjRq9/PLLHh4eHh4ehw8f 7tatm/QVpaojU8p88cUXn3322aBBgzIzMx0cHDp27BgZGVlN+9TU1ISEhC5dujzQXqlUqnnz5g0Z MsTJycnOzi4yMlI6e/dB9+pB9/aRaN++/eeffz537tzk5GRPT88VK1aUnXvYp0+fY8eOzZs3z8bG Zvbs2c8991yla4iPj/f09FQqlQ4ODkFBQYsXLy4LtadOnarT6V566aWCgoLAwMANGzaUnTkYHh5+ 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 EVMCAAAAAAAAMDFiSgAAAAAAAAAmRkwJAAAAAAAAwMSIKQEAAAAAAACYGDElAAAAAAAAABMjpgQA AAAAAABgYsSUAAAAAAAAAEyMmBIAAAAAAACAiRFTAgAAAAAAADAxYkoAAAAAAAAAJkZMCQAAAAAA AMDEiCkBAAAAAAAAmBgxJQAAAAAAAAATI6YEAAAAAAAAYGLElAAAAAAAAABMjJgSAAAAAAAAgIkR UwIAAAAAAAAwMWJKAAAAAAAAACZGTAkAAAAAAADAxIgpAQAAAAAAAJgYMSUAAAAAAAAAEyOmBAAA AAAAAGBixJQAAAAAAAAATIyYEgAAAAAAAICJEVMCAAAAAAAAMDFiSgAAAAAAAAAmRkwJAAAAAAAA wMSIKQEAAAAAAACYGDElAAAAAAAAABMjpgQAAAAAAABgYrKIiIgaNp0wYcKAAQPqxLOKi4ujawEA AAAAACqIjY0dMWKESqUSQmi1WgpSV2zevHnI/CVP93NUPsVTjhH81IuJiaGj6WjQ0aCjQUeDjgYd DToaNRcbGysIKPFE4qRvAAAAAAAAACZGTAkAAAAAAADAxIgpAQAAAAAAAJgYMSUAAAAAAAAAEyOm BAAAAAAAAGBixJQAAAAAAAAATIyYEgAAAAAAAICJEVMCAAAAAAAAMDFiSgAAAAAAAAAmRkwJAAAA AAAAwMSIKQEAAAAAAACYGDElAAAAAAAAABMjpgQAAAAAAABgYsSUAAAAAAAAAEyMmBIAAAAAAACA iRFTAgAAAAAAADAxYkoAAAAAAAAAJkZMCQAAAAAAAMDEiCkBAAAAAAAAmBgxJQAAAAAAAAATI6YE AAAAAAAAYGLElAAAAAAAAABMjJgSAAAAAAAAgIkRUwIAAAAAAAAwMWJKAAAAAAAAACZGTAkAAAAA AADAxIgpAQAAAAAAAJgYMSUAAAAAAAAAEyOmBAAAAAAAAGBixJQAAAAAAAAATIyYEgAAAAAAAICJ EVMCAAAAAAAAMDFiSgAAAAAAAAAmRkwJAAAAAAAAwMSIKQEAAAAAAACYGDElAAAAAAAAABMjpgQA AAAAAABgYsSUAAAAAAAAAEyMmBIAAAAAAACAiRFTAgAAAAAAADAxYkoAAAAAAAAAJkZMCQAAAAAA AMDEiCkBAAAAAAAAmBgxJQAAAAAAAAATI6YEAAAAAAAAYGKyiIiIGjadMGHCgAED6sSziouLo2sB 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 Zkzfn/1K/uqGvslUjxg+zO3WLR9fX/tNGxm1WUFBQciHD4zLtt+a6tt37gKAjbU18WscAMTFxffv 3WsyZYqPr+/2rVu46fDVYs1sZmo62cREo6+GtJRUdk7Oo8eP791/4OLq2q1bN8bR4P+Gfs/efaWl pZMnTWLpZcxN6lhUV1f7BwRC809881VGt6qOaoO4+Pirjo5CQkL2Gzeyv/rnM3r4sGGmpjOGDh7c tWvXwsLCN2/fXbh0KeRD6I5duy6cO/f7CtLvaLu/xMXFxMTKyck5bNvGiD2NHjVqprnZo8fud+/d 27dnD6+O27v37wFg/ry5LcYoeZtGDsaMHk3EKIkCb7F06cbN9unp6V7PnzF6Ps6aOfPi5StJyckV FRVEdK9VJ4uIiMj+ffsY8WtBQcHr110bGxu3bbFnxCiJQvvm7buXr16FffxkONKgbcmRlZU9fPAg Y3ayKZMnOzq7JCUlpadnqKv/uGEwbeovnVg7deq0f+8eXz8/f/8AljAlN3trv6DgNwDgsH1bizHK P1YqEGo/HJuSx37MKiDQ9Hr2u7nq6n1GGRqOMjQ0NBzZv39/UVFRbx8fF5frjF/IrfL167fKysre vXpp//rU+dQpk8XExNLS00tLSzm83T8gYPbcuTKyMvfv3omOCPf39VlhYfHw8eP5CxcWFhWxbKwg L09881GGhrq6urIyMjExsefOX+D8EX+vlVaWAHDx0uV79++XlJTk5+dfuXbtwcNHxBUJy416ERER xsEZNmyYkpJSYWHh+QsXW5ygoDkRUZEAMGP69F/OXkFBc1NTAIiIjGp/Aqk0KgBQqdR1dmsXLVwg JyfXrVs321WrFsyfR6PRiJFcfl/R/bsQt+hNp08XFGy6Ch02dChxcAz09Xv37t3Q0HD7zt3/9Rr4 s+c14cZ1l6T4uPCw0Lu3b/Xv12/12rUHDx9ubuOGhob1GzdlZWVPMjFZMH8++wY8L+F/xtAhQ5Li 4+JjYwL8fLdv3RIYFGQ2a/bXb9/Yt4yPjUmKj3sbHHT+7Jnqqmrz2XO8Xr7i54zm8vyl0+l79u4T FhbetcOBm6/E5xnNfa01edKk5RbLevfuLS4uriAvP2H8ePdHD7t3V8vL++7u8eR3t25/oAJn8T4k 5Ojx42JiYmdPn2IJZqWlp5vPnpOQkHj+7NmwDyHv3gQfPnQw+vPnxUuXMQfx/8aGvrlUjzUy0lBX Ly0tXblqdWJiYk1NTVR0tLXNKmI0LgG2KzaepzoyKoq9ACgrK+npjaDRaMy9GjnjXDMf3L/P0HCk gry8mJiYhrr6TgeHXTt3AMCVa9cY7TKfN/TnL1709fPr0b37/n1725A6Fj5+frW1tbq6uj179Ghy A77K6FbVUa2Vl/d9jd26+vp6h23bmhy07s9f0dmstDadPl1FRUVUVFRNTW3xooW33W4KCQn5vfZP 5mKArDYXpN/RdkdGRgLAxAnjWR74nWU+EwAiIiN5eNyIGwmPHrs3eU3y+9LIwehRo5j/JE43JSUl 5pCZoKCgmpoaABQXF7fhZBk2bKiCvPwvtf2HDwICAhPGj2f5MnojRgBAfDsuUYYNHcrSn1e9T28A KCgsZF5ZU1MTFBR8083t8tWrly5fuXP3npiYWGZmZtv21v6LWwA4ePhISkoqn5QKhNoPe1PyGHHD hH1CFUptLQB06iTBst5i6VLm0aCKi0s22dvfunNHWER4y+bNrf10otZjntWX0TwodeuWnpFRWFTU 3OA4BQUFW7Ztk5KUcnF0JKpUVVXVTRs3VNdU3713/+rVa3v37GbeXl9P78TxY4w/6+vrT58953br 1irbNQ/v3+Ph4DJ8YuqUKRmZmZcuXzlw6DDx2CMAmEycQCaXfwoPl5H55Qmazp07uzg5Mq955e1t v3XbsuUrfF+9Ytxd5F5hQSEAqLLlrIqKMgAU8qK1k/x5r2/2zJnM6+fMmnX33v2IiMjfWnT/IjU1 NX6vXwOAuZlpc9scOXSIeVbK5K9fraxXOuzc2aVLZ84jIfL8vGYhJSU1dMgQp2tX5y1YePfe/bFG RizXl8Qv2M1btoSGhenr6Z1kOsd/awn/k0gkkoqKisWyZSoqKnbrN+zas/fR/XvN/YidZGKira1t aj5z7/79Iw30WY4z/2Q0l+fvo8fuEZGROxy2szxs3hw+z+jW1losjfWiBQuOHj8R9vEjoyfIb2rd /kAFziwqOtpu/XoBAYHzZ8/o6ugwv0Sj0TbZb8nLy3t4/x7jpdkzZ0pKSK7fuPHg4SOvXnj+pQ09 h1STSKSrly9Z26yKiIycOec/RmW4xnb1hYuXpH/2XP5Nqa6pqamqqhITE2M/X4giweXvVW5qZhZz 58w5d+58aWnpt2/fiGEc+bmhd7t16+o1R0VFxesuzjLNP5XMIXUsiCGkZzbfUvNnRnNTR7VKcXHJ CiurgoKCVTYrmxsRjx+u6Pr17Ttm9OjAoKCwjx/7NdW5m4cF6c+03SqqKgBQWFjEw6M0a6b5uHHG p06f2ebgIC4uNn7cuD9zIcoBy/PCEhKSAKDEdo1BVD719fVtOFmUlX55nIVCqSXuJegbjmryK5WR y9qcHPZx2ySYvjnhwcNHJ06dYu+J39DQ0Ia9td/BA/tPnT4TGBS0wsrqzq1bzPneUaUCofbD3pQ8 RtSk+fkFLOuJWc+Umx/hkdC1q9zOHQ4AcOfuvTbPusXh0orDS6/9AyiUWkPDkSy3fYiH+z5++sT5 Q0VERLbab+7cuXPsly/ELbJ/j+2qVV6ez9fb2c2eOXPp4sVO165eOHcuKzsbAFocd2bqlCnjx42r rq5+5P647d+gmezjyW9FZWUVABAXF2OZ7FVZRQUAKisr2Vtfnhfdv4Kv32sKhaI1YAD3w0X169t3 pbU1ANy46daOzG/Led0kISGhyZMnAUDwmzcsL9Hp9B27dvu99tfV0bly6SL3D3zxpoT/WePHjRMX F4+NjSWTyRw2U1FWHjJ4cHV1dXhEJN9mNJfnb1BwMAD4+votsbBg/CNmxjx+4uQSC4tX3t5/UUa3 s9YiOneUlJb8odbtd1bgDPEJCTarbevq6o8fPcL+qyMlNTUpKUlZSYklkDdh/DgREZG0tDTOs+Ly bUPPOdUAoKqq+uL5s9MnTyxetHD2rFlbNm9+5fWCmIKmxeb7d6eavTsnu7bVzCQSiTgXSkpK+byh d/fwOHbipKys7A0XZ/aAPpepY5ablxcZGSksLDyF6xEV+CGj21ZHcUAuL7e0ts7IzFwwf/6Gdeu4 fFdHXdH9SG9JyZ8sSL+77eb5zRyrFSvWrF5NpVI3brYP+RD6J9PYdChBsIkkCggK8PBkEf+1myqd TiNO2LW2tk3+4zyoUQvJEWghNhIaFrbvwAGJTp3Onj4VHOD/5XN0UnxcUnxckzHxFvfGE0IkoXNn ThuONCgsKlpuafm9+Zkw/lipQIgHBRsPAW8RQ2yw9zYnHpHry8Xtwe5q3QGgrq4uL+87h/shTSKu uXNycljW02i07/n5ACDf/Ox+RCCVMXwGAxG1rKis4OaSUVVFpaysLCMjY9jQof9k/vbu1Wv1Kpv/ /eRLSc3Pz1dWViIurVrI2e5qAJCRntGGz1VQVIhPSMjJyWH5bUnMCSD/66MQbaM1QBMAamvramtr mZ9bISI4wsLCLU7y0J6i+xchhuRvbqwrzrlPxINaqz3ndXOkpaQBgEwuZ1m/78CB556efTU0nJ0c WzW/SjtLeIcQFBSUlJCgUChlZDL7LMC/HC5paca5wJ8Z3arzt8lf4MRzdsZGY/+ijG5nrVVWVgYA khItT9fQztbtD1TghG8pKZbWKysrKw8d2M8yeBbnhp5EIomLidXX11dUVnDuJMuHDX2Lqf5xvSsk NG3qVOYN3r57DwB6eiN+awHo1KmTpKRkVVVVcXEJy7El5vBRUGi5ALS5Zv5RyH/efubPht7Ty2vP vv2SkpKuzs5czv/QZOpYWmo6nT7WyEiWrbcsP2d0m+uoJlVVVVlZr0z++tXM1HTPrp2ta9A74oqO Q4b+1oL0m9ruvNw8AJBXkOf5gbJbu6a6puamm9vadXYuTk7EM7+/NY281c6TpVOnTlJSUpWVlXP/ m8P9wL684uX1EgB27dw5yWQiY2VFRUV5RQUPZ8VpLRERkUsXLlrb2ERERlqssLxz+xaXPw34p1Qg xPozDQ8Bb+nq6nTp0iUjMzMpKYl5/StvHwAYZ9zyL8DMzB81hZiYKKf6SFgYABp/HTWmb18NKSmp tPT0hIRE5vV+r1/X1tb27tWLw5Oh8vJdASAmJpZl/efPMfDzDjxnVCo1OycHAERFxf6fZPeVa9cA YO7Ph8g4y8jIBABRMU4Hh/iFQKOxDgY0bMhQACBml2ag0+kvXngBwLChQ9qfFhUVFQ11dTqdHhr2 kXl9aGgYADQ5mFHbiu5fLT8//1N4OIlEmja1dVNeEHNSiYm2cGR4fl43583btwCgpqbKvPLoseMP Hz3u2aOHq4sLN8/ctaGE85XExMSi4mJhYeFuHKc4rK2t/fTpE/vh4quM5vL8vXblMnHbn/mf1oAB AODq4pwUH7diucVflNHtqbXodPozT08A0NHR5lXr1oEVOPEzY7mlJZlMdti+jfn5zV8a+q5diVJK Lv/lFkVaejrxE6tbS9N98ltDz02qm/T127eAwEBpaekpXMyW26oCQKXSWNYTQQSvl7/M1lJQUPDx 0ydBQcEmp/jgSc388dOn/Px8ERERxj1yPmzoff1eO+zYKSoq4nj1yoABmu1JHbPnzz0BwMx0Rqu+ TMdmdHvqKHYUCmXlqtVx8fEmEyccOXSwtb22//wVHbm8/M2bNwCgo639JwsS9233jxqebbzOoUOH AsBr/4Da2lrm9UT2/abbOdu3bpk/by6FUmuz2pbL0aK5vD75M9p5shiOHAkAz557tuGjmzt/uVRK LgMAJaVfnmr39vHt8EMqLi527cplHW3tzKysFZZWLK38X1EqEGKGYUpeH1BBQYulSwFgz779lZWV xEonF5ekpKRePXuONTLi/PbCoqJDR48BQP9+/TjfICKGAklLS2NeKSQkNH/uXADYf+hgRcWP/o/f v38/deYsACxdsoTDDo3HGpNIpC9xcVevOdJoP+ru+ISEC5cuAUCL1/G1tbXHTpwgk8mioqL6+nr/ Xs6WlZV9CA1ljCZeVVV18PDhV97ePbp3t1i2tMVrTU8vr8CgIAAwGjO6xWxNTU1jWW9uZiopKRkc /IZ5zGwnZ5dvKSlKSkrsY0i3jbW1FQAcP3EiNzeXWJOUnHz5yhUAWDBvHq+K7l/N84UXjUYbM2Z0 qyKDiYmJTs4uANDiyC88P6+D37xxcXVlvlgpKys7cvRYYFCQkJCQ6Yz//YQ7e/682+3bKsrKN667 tHbMQe5LeEc5cOhwREQE85r3ISF2GzYCwNQpUxiTqN646fbC6yXzY4+pqalr7OyKiotVVVWZJ5Tk t4xu5/n792Y0N6kuLS09fvIkc2eBkpKSrdu3h4dHiIqKzp0zh1etWwdW4Dm5ucstrYqLS9bb2S1r vqj069dPRUWlvr5+567dVVVVxMqi4uIdu3YBwJjRozj31OO3hp7LVBMhLeYxQCMiImxW2zY2Nm61 39xi58TWFwDWSQyIqagdnV2+paQw9rn/4KGGhobJkyZxbjG5rJnvP3zo9fIV83hnfq/9N2/ZAgBz Zs8WFxfjz4b+zdu3m7dsIZFIly9eZJlkvG2pI3z+HJOZlSUrK9viVTefZHQ76yh29fX1tmvtoqKj x4weffrkydZ28vrdV3RhHz/euOlG9J38UQiTkiytrMsrKvpqaBCzoPyOgtTOtltQUFC+a9eCwkLG 7zuCjra2rq5uSUnJiVOnGT8Twj5+9HjyhEQiLVyw4DdVgHt37zYzNSX6zDKKXPuvT/6M9tSKAGBj bSUkJHTpyhWW6V8qKiruP3jAXLS4P3+51F1VDQAeu3v8mDUXICk5+dyFC/xwVCUlJZ2dHPtqaHxL SbGyXslo5f+WUoHQLz+L8BDw3IrlFu9DQj6Fh0+cNHngwIF5eXnfUlLExcVPnTzBfqHgetPt5Stv 4udfaWlpRmZmfX29pKTkwQP7OX+K8dixL1+92mS/xXDkj9EkDx88AABrbFdHRkVFRUebTJ6ipzei oaExNCyMQqFMMjGZN5dTp7/u3dXW29mdOXfu/MWLj9zd1fv0KS0tTUpOplKpI4YPZx91OzQsbLml FbFcWVmZmZVVWVkpICDgsG1bGx5B5X/FJSUrrKwlJCRUlJUFSaS0tLT6+noVZWUXJ0cxtl5FZWVl jINTV1eXk5NDTJU+Y/o0zr9Ie/bo0atnz9gvX/6bN19dvY+gIGn8OONxxsZycnJHDh3aZG9vv3Xr rTt3uqupfv367eu3bxISEmdOnWxxmKq169YTX6CgoAAAvH18PsfGAoCkhISrizNjM9Pp00NDQ58+ ez7N1ExbS6uhsSEhIbGhoWHG9Gkzzc14VXT5DZcHh0DcGyfm5+Vgm4MDUSqoVGpBQUFmVhYAqKv3 sbVd/YfP6+Li4lOnz5w5e05NVVVGVra0tDQ/P7+xsVFISOjg/v29e/UiNkv++tXRyRkAQEBg/SbW 8fJnmpmyzCrb5hLeUQICA+/dvy8jLa2iqkKnw/e8PCJ0q6ujs8NhO/MVm6eX1649e7qrqYmJiRUU FhYVFdHpdDk5uYvnzgoJCfFtRrf2/OUS/2c0N6mur6+/cdPtxk03RUVFRQUFcjk5NzePSqWKioqe PH5ciW3M6Da3bh1YgR8/cTI/P19ISCjozZsgtjFn795yI/qPCAoKHjl00Ga1bUBg4PiJJpqamo2N jQmJiTU1NQoKCrt27OCfhp6HqQaAe/fvv/YP6NZNUa6LXFFxMfHw+yqblU12wGxzqkeNMhQWFr7h 5pb89auCvDwICFhZrujVs+foUaMsli276eY2a85/+np6UlJSEZGRhYWFvXv12rXDgcMOua+Z4+Li PZ48ERER6dG9u4iISHZODnGrY8Tw4SxToPBVQ7912/bGxkZZWdlzFy6eu3CR+SUNdXWiVmxV6n62 1M8BYOqUKeyVNn9mdKvqqCvXrgW/eQsARAwiMytz7oKFxEsnjx/r0b07ADx89Dg0LAwACgsLFy1d xvJxO7dvHzhQtwOv6AoLC4+fPHny9GlVVRVZGdn8ggLiLkK3bt0unD8nKCjIHDBdu249sUzElU6d PuPkch0ARgwbZr95U6sKEg/abuOxjx67m8+aPXTIEGERkd69elmuWA4AJ44dXbrM4t79++/evx+o q1NYWBQRGUmj0XY6OPTV0OC8T24ytEkCAgJHDh2sra319fNbYWl15/Yt5o3bnMY/o80nC0FTU/PI 4UM7d+3esm3b+YsXNTTUSYKkvO95qalpdXV1o0ePZhl+l5vzl8tvvmjhQvcnTx67u0dFR2tpapaU loR9/DR92rSQDyFlZWReHZ82lwpZGZkb110WL10WFx9vs9rWxcmJ+UYOn5cKhDBM+ZuPqZDQdWcn l+uuni9ehIaFSUpKTp0yZZ3d2p49erBvnJaWxuhQIyoqqqqiMnKkgeXy5UotTbYzfdrUgoICjydP AoOCiL4/RDMsJiZ247rL7bt3X7zwevP2nYCAgIa6+uxZs/6bM7vFJz5WWltpaWndvXcv9kvsh9BQ MTExLS2t6dOmLpw/n/1Sr6i4uKi4mJFkeXn5MaNHL1m0aNCggf9ktiooKCxZvCgs7GNuXh6NRu3R vfukSSbLly1jH+SLuOIkLhABgEQiSUtLG440MDcznzF9GudPERAQuHzp4snTp6OjP8fFx9PpdKVu 3cYZGwOAycQJD+/fc3J2Do+ITEhI6NKly0xzs1U2NhzaKubgCzEIGkveSUlJsWx55NChoUOGPHj4 KD4hAYCu2b//3P/mzJ41i4dFl99wf3C+xMWlpaVJS0sbjx3LeZ/Rnz8zMrRTp0462toTJ05Ysmgx e6eP331ejzI03LBu3YfQ0Kzs7MTERCEhoR49eowYNmzJ4kXMIzcx+g/m5uYyutgw6LH1ImxzCe8o u3Y4BAUHx8R+ycnJra6ulpWVHWlgMHXK5Jnm5sx3j5YuXSLXVS48POJ7fj6ZTJaQkNDR1h4zZvTi RYuaHOCMfzK6tecvl/6KjG4x1bKysuvt7MIjItLS05O/fhUQEFBTVdXX17NYtqzJdrnNrVsHVuBE KWpsbIyNjWXfA+MJCQDQGzHiqYe7i8v1sE+fIqOiBAUFVVRUxhqNsVqxgr2TeAc29LxN9Yzp02tr 6xKTkpKSk6WlpSeMH790yeLm+ke3OdUqysoXz5+75uQUERlJoVAAwMx0BvHrd/vWLYMG6t65dz/6 8+f6+nplJSWbldZWK1awNzTMuK+ZiZtnMbExhYWFVdXVUlJS+np6M6ZPMzczY79Bzj8NfX1DAwCQ yWTOI/+2KnUNDQ0+Pr4AYG7Wwg1F/snoVtVR2dnZzAWeQqll/En5OfUwo+QkJSezfxz7cPN/+Ipu yODByy2WRUZG5ebl5eV9FxUV1RowYNw448WLFrEMa1BfX89ydhPPqMKvgzVzWZDa33ZvtbcXFBQM fvP2pbc3lUodPnwYEabs2aOH++NHjk5OwcFvfHz9JDp1Mhw5csVyCwN9/Ra/DDcZ2hwSiXT65Ina 2to3b99arLC8c8tNRVm5nWn8Y9p2sjDfcdEeMMD1pltoWFhIyAdRUVF5efnJkyZNnDCefZ5xLs9f bnTvrub+6OHpM2c/x3z28/fvrqa2beuWxQsXjjE25uHBaU+pkJOTu3HdZdHSZZFRUWvX2V29fJlx N5T/SwVC/7uoXrx4MZebmpmZmZub4yFDCCGEEEIIIYQQQuhPevbs2X/7Tv7bacSxKRFCCCGEEEII IYQQQh0Mw5QIIYQQQgghhBBCCKEOhmFKhBBCCCGEEEIIIYRQB8MwJUIIIYQQQgghhBBCqINhmBIh hBBCCCGEEEIIIdTBMEyJEEIIIYQQQgghhBDqYBimRAghhBBCCCGEEEIIdTAMUyKEEEIIIYQQQggh hDoYhikRQgghhBBCCCGEEEIdDMOUCCGEEEIIIYQQQgihDoZhSoQQQgghhBBCCCGEUAfDMCVCCCGE EEIIIYQQQqiDYZgSIYQQQgghhBBCCF1PpGgAACAASURBVCHUwTBMiRBCCCGEEEIIIYQQ6mAYpkQI IYQQQgghhBBCCHUwDFMihBBCCCGEEEIIIYQ6GIYpEUIIIYQQQgghhBBCHQzDlAghhBBCCCGEEEII oQ6GYUqEEEIIIYQQQgghhFAHwzAlQgghhBBCCCGEEEKog2GYEiGEEEIIIYQQQggh1MEwTIkQQggh hBBCCCGEEOpgGKZECCGEEEIIIYQQQgh1MAxTIoQQQgghhBBCCCGEOhiGKRFCCCGEEEIIIYQQQh0M w5QIIYQQQgghhBBCCKEOhmFKhBBCCCGEEEIIIYRQB8MwJUIIIYT+fQ8ePuqvpd1fS/vps+d/8nPN Z83ur6WtO3gIy3r/gADi+zi5uPyrx/zI0WNEGmNiYv/hotVcFiOEEEIIodYSwkOAEEIIsXC7ffvo seMsKwUFBSUkJOS6dNHU1DQ2HjvZxERERASPFfdu37lbXl4uIiqy0srq701FQGDgGrt1xLLFsmXb t275/5mbgUFBCQmJADBv3lz5rl3/jUTV19f7BwQEBAYlJCQUl5TU1NSIiIh06dxZVVVVU1Nz8KCB Bvr60tLSeC4jhBBCCP0mGKZECCGEuEKj0SorKysrKzMyM719fC5fvnLm9CmtAQPwyHDp1p072dnZ UlJSf3WY0t3Dg7H83NNz88YNwsLC/w9zMyAwyOPJEwCYMH7cvxGmjIiMdNi5Kzs7m3klhULJpVBy 8/I+fvp00w1IJFJwYMA/E5ZFCCGEEOI3GKZECCGEmqWrozN50iRimUanlZPLY2JjwyMi6HR6ZlaW pZX1E3d3ZWUlPFD/TxQWFr59957xZ1lZmX9AwJTJk/HINGn8+HHdunUDACW+P0ciIiIsV9rU1dUB gLCwsL6enmb//rKysvX19YVFRYmJiV/i4hobG6lUKrWxkeW9FsuWlpaWkYRImOMIIYQQQu2EYUqE EEKoWRoaGiuWW7CsjIqOXmW7pqKiglxefvnKlcOHDuKB+n/C48lTKpUKALNnzSL6Erp7eGCYsjl6 I0bojRjB/9+TRqPt2L2biFEa6OsfO3JYUVGRZZuqqqo3b996PHkqKMg6sLu5mRnmNUIIIYQQT+AU OgghhFDrDBk8eN3atcRyQGAgjUbDY/L/AZ1Od3/yBABERES2brHv17cvAHwIDcvJzcWD81f7HBOT lZUNAF26dLl04Tx7jBIAJCUlp02d6urirKCggEcMIYQQQug3wd6UCCGEUKuNHj2KWCCXl5eVlcnJ ybFvU11d7f7kydt371JSUsvKykRFRbspKurr6y1csKBXz54cdu4fEODx5MmXuLjy8oquXbsO0NSc M3u28VijtPT0qdNnAMBMc7Ojhw8zv2XKtOnpGRlSUlLhYaFN7pMxKdDpkyemTZ3KvgGNRvPx9Q0I DPocE1NaWgpA79JFbuiQIeZmpiMNDJr7qomJiY89nkRFReXk5lIoFClJSRkZGQVFheFDh40caTBs 6FBis1FGRsXFJcRyZWVlfy1t5p1MMpl4/uxZlj3n5OY+dncPDfuYm5tbXl4uJSXVs0cPozFjFiyY L9P8HCYNDQ33Hz585e2dnpZe31AvLy+vr6e3cMGC/v36tT/TQ8PCcnNzAWD8uHEy0tKzZs08euw4 nU5/8uTpOru1v6OYvXn79uUr76jo6JKSEgC6nFzXIYMHT582dczo0ZzfmJ+f7+7xJOzjx8zMTHJ5 uZAQSUFeQVNTc/QoQ5OJE6WkpJg3zs7ODgwOjoqK+vr1W0FhYV1dnZSUlJqqqr6e3vz581SUlVl2 vsl+yytvb8af5rPnML8qKysbFvLjufgjR4/dunMHAB7euzdwoG6T+fX02fOAwMCk5OSysjIxMTFF BQV9fb25//2noa7Ovv23lJQZZuaMU6CmpubR48cvX3lnZ2dTamsVFRUMDUZaWq5QVVFp1XFOT08n FoYPGyYhIdHabDKfNTspOVlERCQ2Ooqx8vSZs87Xr7f43rFGRteuXGZfHxUd/eKF16eIiKKiIgqF 0rlz5wGamhMnTjA3NSWR8OlyhBBCCP2zMEyJEEIItZqYqChjubaujn0DX7/Xe/fvJ5PJjDX19fWV lZXfUlLu3X9gu3rVmtWr2d9VX19vv3Wr32t/xprv379///49IDDQzNTU2tLyNyUnNTV1/aZNKSmp zCtzc3Nzc3M9X7yYMH78iWNHO3XqxPKus+fPOzm70Ol0xhpyeTm5vDwzKys8POLKtWtJ8XFt+DJ0 Ov3CpUvOLtcbmQYBLCsrKysri/78+fqNGyeOHTMea8T+xry871Y2NmlpaYw1WVnZWVnZT54+27F9 m6Bge4M7j91/TJ4z09wMAGZMm3by1OnGxsYnz56tsV3N2+ARubx846bNoWFhzCtzcnJycnI8X7ww HGlw5vTpJsO1NBrt8pWrTi4uDQ0NjJUNDQ2ZWVmZWVk+vr4fP4WfOHaU8dIrb+9N9qyTlZPJZDKZ /CUu7oab247t2xYuWPA7Sl1SUtKadetzmfqi1tfXV1RUfEtJuXvv/rKlS7Zs3sz+hDVzoV1jty4j M/PX7H74zNPzyqWLBvr63H8TKvVHh+jKysoOr1sqKysddu7yDwhgXllYWFhYWBj85s111xtXL1/q 0b07VsIIIYQQ+idhmBIhhBBqtbSf3a9IJFI3tkdEH7u779m3n06nCwgIjB41ynCkgYKCQm1tXUxs zHPPFxQK5eKly9RGKnsXPEaMUlxcbM7s2YMHDSKRhJKTkx+5P37u6VlVVfU70pKQkLh0+XJi5/37 9Zs4cYKampqggGBqWurTZ8/z8/P9AwJW2a65cd2FORLn6eXl6ORMfNVpU6cNGTy4c+fOjY0NpaVl ScnJHz58yMzK+t8BefCASqMts1iem5cnISHx/OkT5i/QSVyc+c9tDjs8X7wg9jzJZNLgQYNkZKTJ 5PL3ISEBgYGVlZVr7OycHR0NR/7Sx7OysnKJhQUR81JWVpoze7aGunpdXX14RPiTp88OHj4ytqnI JvfIZDIROVKQlzccORIAunTpYjx27Gt///z8/Hfv3481MuJVjlAolMVLlxJRYykpqZlmZlpaAwAg Lj7+6bPnVVVVIR9Clyxd9vD+fXFxMeY30un0Ldu2v3z1ivjTQF9/9KhRiooKVBot/3t+ZFRUaFgY MIWVAaCurh4A+mpoDB8+rE/v3jIyMiQSqaioOCIy0j8goLGx8cChwzIyMsw9cHftcNi0ccOZs+eI PpWOV6/06dOH8SpJkKsBhb6lpCxcsrSmpgYA1NTUZpqb9ejenUKhfAgN8/H1pdFoN266VVRUHj54 oMm3FxeXWK9alZf3fcTw4aMMDTt3li0oKPT0epGVlU2hUDbZb3n1wrNz585cHvDevXoSC1HR0amp qczJabMlSxZPmzqlyZfodPrOPXsSEhIBQF5enqUYz1+0ODU1lShpU6dO7de3r5iY6Pfv+d4+Pl/i 4tLS0hYtWfLk8WN89hwhhBBC/yQMUyKEEEKtQ6VSnZxdiOWBuros3eiSkpIOHDpMp9NlZWUvX7ww dMgQxkszzc2sLS0tLK2ys7OvOjpOGD9+wABNxqsvvF4SMUoFBYXbbjcZHaYmmUxcunSJpZV1QGAg z9NCoVDs1q+vqqoSFBTcvXPHgvnzmV9daWW9yX5zUPCbT+Hhd+7eXbZ0KeOlhw8fAQCJRLp3+7am pib7nmNiYhnLSkpKACBIIgGAoKAgh2dy7z94QMQotbW0Lp4/R7yRMH/e3JCQD7Z2dnV1ddsdHF77 +oiJ/S9Id+LUaSJGqTdixNXLlxh9P6dPmzp/7tzlllZBQcHtOVDPPT2J/ommM2YwcnyWuflrf38A cPd4wsMw5YmTp4gYpbp6H1fn/w2GaGZqarl8+XJLq/SMjK/fvp0+e2bXjh3Mb3S7dYuIUcrKyJw7 e0ZfT49lz2QyOSk5mXnNwIG63i+92EchWLJ4UfLXr1bWK4uKi4+fOGkycaKwsDDxUpcuXboAiP8M LisqKLT2IWsajbZpsz0Ro5w2derRw4dERESIl+bMnj1/3lyb1bYUCsXjyROjMWNMJk5g38O79+/F xMSuXLo4ztiYsdLaytLaZtWn8PCysrLH7h4rra24/D6DBw9WU1PLzs6ura1dYrHcYtnSSSYm7eyx qCAvr/BrCJKprJ4iYpT9+/Vz2LaV+aXde/cRMcqZ5mZ7d+9mLuErlltcvnr14qXLxcUl+w4cvHLp IlbFCCGEEPr34BQ6CCGEEFfodDqZTH7z9u2yFZaMp3FtV69i2ez8xYtEPOvcmdPMMUqCiorKmVMn ib3dcLvJ/JLLz5Hsjh4+zBIikZWRuXDuLHPMglcePHyUm5cHAKtWrmSJUQKAuLjY6ZMnu3aVAwDX m27Mz3dnZmUCQN++fZuMUQJAk2MRclZbW3vpylUivU7XrjLHKAmGhiPX29kBQFFx8QsvL8b64uKS Z8+fA4C0tPTZ06dYnk/X1NTcvWtnOw/Uo59PfM+aac5YOWbMaOLgBAUHMwbfbKfi4hKPp08BQERE 5NKFCyyd5rp163bx/HkhISEAePTYvaTkfx9aXV19zdEJAAQEBC6cP8ceowQAWVlZlvW9e/VqbqTU fn37brHfDACFRUXv34fwsNQFBgV9S0kBgF49ex47cpgRoySMGD7cYds2Yvmqo2NzO9m2xZ45RgkA oqKiu3b+iNu+ffeO++9DIpFOHjtGFJvS0tIzZ89NmjLVYNRoq5U2Z86dCwwKYh69oZ3cPTxcb9wE AAV5eeZ4OgAkJCT6+PoCwPDhw44cOsR+vq9ZvZqIhgcFB6dnZGCdjBBCCKF/D4YpEUIIoWZ5PHnS X0ub+KepraNvOMpmtW1ERAQACAgI7N29a5ShIfP2ZWVlwW/eAsDAgbpNxokAQEdbW2vAAAB49z6E EfjLyMxM/voVAPpqaLA8zkxQUVGZPGkSzxP45GdEbLnFsiY36NSp04zp0wGgoKDg67dvjPViYuIA kJOTw8MIzpu374i429z//uvSpUuT28yZPYvozPj23XvGysCgoJ9dHac3+capU6awTwXDvejPn4k+ brq6ur1792asJ5FIpjNmAACVSn36/BlPDkJQcFB9fT0ATDYx6dmjB/sG6up9xo8bBwD19fXBb94w HYRgcnk5ABiNGTNi+HCefJkhP+Ps0TGfeVjqfP38iAXLFcsZnTSZzZ41k+iKmJiYmJ2dzb6BjLT0 nNmz2df31dAg5ulmLqvcGDRo4FMP93HGxgICAoxz+X1IiJOzi+1aO8MxRtY2q8LDI9qZ8NCwsH0H DgKAuLjYlcuXWALxHj8HQ7CxtmZ8DRbz5s4FADqdztvAMUIIIYQQn8CHvhFCCKFWGz582MH9+9mj SOERkUTksX+/fvn5+c29XUVFOT4hgUwmF5eUyHftCgAxMTHESwbNT6ttoK9H9BnkFTKZnJKaCgC9 evasrq6urq5ucjP5rj+eXU1JSenXty+xPHrUqPsPHlRWVi5cvMTScoWxkVFzgUXuhUeEEwu9evXi cPTkunQpLCpKSUlhrGEcveYmJRcQENDX0yN6KbbBo8ePiYVZ5uYsL82eOZPoHOfu7sGTOY4+f/6R FkPDkc1tM2bMaCLSF/05ZvasWcTKiMgfQbSJE8a34UO9Xr2M/RKXnZ1dVVXFPP0OoaCgkIcFL5qR xpFNp5FEIhkYGDz39ASA6JgYNTU1lg10dXWbjG8CgKKiYkFBQWVlJY1GExRsxf34Ht27X7l0MS/v e0BgYGRU1Je4uLy8POJ0plKp796/f/f+/YL583fv3NGq3TKkpaev37ipsbFRQEDg+NFj2lparOX/ ZxhURUWlufIvI/Nj3qSU1BSshxFCCCH078EwJUIIIdQsXR0dRh/GisqKzMysgMDA+vr6iIjIBw8f bdtiz9LpKS/vx7TFDx89fvjocYv7rygvJ8KUhUVFxJqePZodEa+5h3PbLC/vOxGFSf76dez4CS1/ 24oKxvK6tWs+fvyYlp6elp6+c9du4uvp6uoOHzbUyMiISFRrEY+fA4DDzpaf0S5n+jKMo8dhPMGe vdp49Kqrq318/QBAVFR06pTJLK/26dNHV0cn9suXzKysT+Hh7e/GyEhLr169mk3Lz/h40c+NASA/ v+DHV+rdihlgKBTK9h07fP1ec96Mt1NgE19bTEyM/bn+JtJYWMT+KofpcURFRQCATqc3NDSIioq2 9rspKystWbxoyeJFAFBVVRUXHx8S8uHJs2dEP9/7Dx7IysoQIw+0SllZ2cpVq4kzaPOmjU0OuMko /1OmTW+5/JdXYP2MEEIIoX8PhikRQgihZmloaKxYbsG8prCoaM1auy9xcTfd3CQlJNausWV+taKi ddEcRrc1Rk9G4mHqJon/OuRi+1VUti7SUc/Uya5z587ujx663rj52MOjoKAAANIzMtIzMp57egoK CppMnLhtiz2HIFSTKltz9Jh7/P3v6Ik3e/Q6ibfx6Hm9fEWhUABg/Lhx0tLS7BvMmjkz9ssXAHB3 92h/mJKRFg5fWOJnSWCe/J2xLCEpwf3HbbK3Dwp+AwDKykqmM2Zoa2kpKip2EhcXFhYBgNLS0vmL FgEAjUbjVamjUql1dXXANAlP0/kl8TON1U1McE8i/YlhiyQlJfX19PT19FavstmybTsxh9V11xtL Fy/mfhpxAKivr19jty4nJwcAZs+cabViRZOHpbnuzC2Wf4QQQgihfwaGKRFCCKFWUJCXv3L50gwz czKZfOXatdGjRjHPFcOIrThs37ZsyRLudysh8SO0VFtLaW4bSk1Nm782jdpEmIkxfcf4ceMuX7zQ 2n126tRp7RrbNbarU1PTIqOioqKjP4WHf//+nUaj+fj6hkdEPHpwv1UjQjK+zzMP9/79+7fl6FGa PXo1lDYePcYT36+8vV95e3PY0vf16107dzQZymxDWjh84eqfJUFSUpKxkrFcXcVttCsqOpqIUQ4c qHvz+nX2uCGNTuP5GUQikURFRevq6ijNZxYA1FT/TKOEZIef9Z06dTp+9IjRuPHV1dX19fUfP31q 1UCxO3fvjoqOBgC9ESP279vb3GERExOrra2VkpIKDwvFmhYhhBBC/z/hFDoIIYRQ68h37bppwwYA oNFoh48dY57/WlFBkVj4mvy1VftU/Dmhc0ZmVnPbcJjbl5grmZh6pUnMU0IzdFP88W2TkpPbfDQE BATU1fvMm/vf8aNHgvxfP7x3j5j7u6Sk5MrVa607CD+/DzGbEPcY02FnZjV79DLSM9qQuqTk5PiE BC43rqure+H1sp2li5g6BgDS09ObTUtm5o+i+HNjAFBS6kYspKalcvlZISEfiIVV1iub7NuY1fzx bNcZJC8PALW1td+/f285jQry/HDWS0pKMia1LyhsxUidFy9dJkpFr549L5w/R8zSzqESqKys5HBY EEIIIYT+bRimRAghhFpt9qyZxLQesbGxfq/9Gev1Rvx45jfozRviyVYuDRw4kFj48OFDc9t8CA1r 7iUZGRkAqKurKy0tbXKDyKgo9pUKCgrEYI65ubncB+NaSojuhbNnfnxoZCTzSyRBQQBgjuqyYDwx 7ePr26oPHfSzQ2tIM0ePTqeHffzYhuQ8euxOLBgajlxra9vcvwXz5hGbPXZ3b+cBHDToR0lgxBDZ vfs5y/ngnxsDwLChw4gF5gLJWVHxj2EfGSFOFkRfyyYxHrvmkKHNYXzt5vKLSqWGhv7oUTh44EA+ OesZ3Zk7cXxcnZmnl9flq1cBQFZW1vHqVRmOPW1HjBjxs/z7YR2LEEIIof+fMEyJEEIItRqJRFpt Y0MsX7x8iTFyn4KCAjFBc2lpqaOTM/c77NG9e/9+/QDgW0rK+5AQ9g1ycnI4BO/U1dWJhXfv37O/ GhEREf35c5NvZMwTfeLkKSqVypODo6ysTCKRAID664CGxBPxFAqluYEOxxmPlZWVBYCg4DehYWHc f6LxWGNi3mfPF15N9hv1evmKMT8J92pra71e/ugd6bB129o1ts39271rJzEQZ1Jy8pe4uPYcPeOx xkTfWB8/vyY7h6alpfkHBACAiIjIWCOjX46ejAwAvH337uOnT9x8lvjP4S/Tmuq5mZOTw2Fm+U6d fjyc3qoRFQmTTEyIBdcbN5scY/Hps2fEVEKamprs03zzXEFBAfMon01KTU1NTEoiljXUNbjZbVR0 9K7dewBAWFj40oXz3bu3kJDZM2cSCy6urkXFxVjNIoQQQuj/IQxTIoQQQm1hZjqDCKCkpKR6vXrF WL95w0YiZHbV0dHRybnJ2F9tbe2z58+fPvslBmRlaUks7Ni5i+X5bjKZbLdhI4fumUZjRhMLFy5e Ki7+JU6XmJi4yX5Lc29csngRMXzkx0+fNtnbM8/lzUCj0ULDwi5cvMT8/Q8dOZLWzFPJDx89IlI9 4OdDsgQ1VTUAoFKpSUlNP2MuISGxbu0aYnn9xk3NdeUrKSm55ugUGxvLWNO1q9xMczMAqKys3LB5 M0vgLD4h4dDhw23IYl8/P+KAaGtpqatzmj5bUFBwxvRpxHI7O1R27SpHxI7r6+vX2NkVFv0yz3VB QcHa9RsaGxsBYO5/c+Tk5BgvderUyWblSgCg0+nrN2xsMlJZXlHBvF5XR5tYuHTlKstB+/79u43t Gg7DR3ZXUyUW4uLjW5vGccbGfTU0ACAtPd1h506WSGVERMSRY8eJZcbNgN8qIjJy7PgJx06cTExM bHKD2NjYlattifB6j+7dmYejbU5OTs4au3XEOAyHDuwfNnRoi28ZNGggEcAtKSlZYWnV3PmVmpq6 78ABnEIH/V979x6cVX0ncPiEhEAokMwgwRA1iAmXUCNYuWNQKrgg5AKKl4KurVa77bqrVF0r62iF OuulSFW0u60SBKkiJHgBBATZrdyHECw2SAgoJGiQCEkgqCTZPzKm1AiKdTgmPs9fb96c8857zpuX YT5zvucHAM2SJXQA4Ouov6DyV5MnB0HwxBMzLhs5sv4SwtTUnlN+fd9dd0+ura2dNn36C/PmjRgx vFtKtzZt2hw+fLh0b+nWrW+vWbu2urr6xs+6ZL3Rl41aumzp0mXLy/btyx53+djs7D69e0dFRRZu 2zbvxfnl5eUjhl9yvHneIYMH9+jRo7CwsKS0NCM7Ozsrs0tS0qFDhzbl57++YmV0dMuMMWNeevnl xjvGxMQ89eSMCROvPVhR8drSZW+uXnPp8OFpaWlxcbEff/LJ/g/3F27btnr16n0ffpiWlnbLv/6i fq/a2trZc56bPee5lOTk/v37dUvpFhsbe/Top2Vl+15fuXLjxo1BEERFRf30xhv+/k0Oem3p0iAI Jt1++7UTJyQkJNSfsY6nndawYM41V1/918Jt8158saKi4mc//3laWtrQ9AvPPPPM6JYtq6qqdu7a VbDlrfz8/Jqaml69Uo998dsnTXpz9ZqSkpINGzaOGpNxxbhxKSnJH3/88foNG/MWLqytrf3hsGH1 KzV/dfPmL6h/MDY760s3Hpud/d//84cgCF5dtPiuO++M+cpzwY3d8ctJGzZuKCraUVS0Y3RGZnZW Vq9eqUFd3datby/Iy6usrAyCoFtKyqRbb/vcjv983bWbCwpeW7r0wMGD113/40EDB144ZEinTvG1 tXV739+7eXPBn99889Lhw/t/Nlw8/JJLEjt3LiktLS4uHnnZ6PHjr+h69tlHjx7N31yQt3BhdXX1 2OysBbl5X/gmBw8eXP/giSefqq4+0q1bSv1FoC1bthzQv/+JD7BFixaPPPzQlVdfc/jw4VdeXbTl rbeyM7OSks6qrq5evWbt4iVL6oPg5ePGjRh+yan5OldVVc3MyZmZk5OQkJB27veTzkqKjY2tqa0p KyvbvLmgIcW2bt36N1OnREREfOkL3nLrrR999FEQBKNGjkxNTd1eVPSFm32vzfc6d05o+PGBqVN2 79n99tt/3V5UNCYza2h6ev9+fTt27FhXV3fw4MHtRTvWb9iwY8eOIAjuuvNO/wgDAM2PTAkAX1Nm xpgnf//73bt3v/vee3kvvdQws5mZkREfH/+ryf+5d+/ektLSZ2bmNN63RYsWjdcGefjBByfdfsey 5cuPHDny3Ny5z82d2/Cr7KzMn1z/4+NlysjIyGmPPHz9T254//33y8vL//j0Mw2/im3f/uGHHize ufMLM2UQBCnJyQtenHf7nf+xKT+/qqpqfm7u/NzcxpslnN6p4XFDptleVPSF/SUuLu6/HvhNr9S/ K4kZY8bMmfunwsLCnbt23Xf/lIbnLx0xfPq0aQ0/3n/fvcnJ5zw6/XfV1dVbtmw59qrJBjExMZ+7 zV+7du1mzXzmxptuLi4u/uCDDx6fMeNv/9eJirpn8uQgCE4qU+5699363tqyZctRo0Z96fZdkpLO Oy+toGDLoUOHFi957auUzeOJiYmZnZPz77dNWrtuXUVFRc6sWZ/bYNDAgdN++0hMTOvPPR8REfHb hx96dPqZT8+cWVNTs3rNmtVrPr9mdESLv03SREdHP/676TfcdPP+/fvL9u17/IkZx2559VVX/eym nx4vUyadddaV4694/oV5lZWV0x977NiPfu2bf/7SY0xJTp4zK+cXt/xbSWnpe+/tPvYV6r8d106c eMcvJ52aL3Ji58TExMSSkpIgCPbu3Xu8FWy6du069f5f9+nd+6u8Ztlny+yceIH4i4YOfWrGEw0/ tmnTZs6sZ6dMnZq7cGFNTc2KlStXrFzZeK/4jh3rEz8AQDMjUwLA1xQZGfkvN9981913B0EwY8aT GaNH1497B0EwcMCAZUsWL1qyZNWq/93y1lvl5eVHjhxp06bN6Z06de/ere8FfS++aGjD+tQNoqOj H5v+6LLly1+cv+AvW7dWVFR06NChV2rq5WPHXnzxRcXHX/o5CIKzu3TJWzB/Zk7OihUrd+/ZEwRB QkLCsIsumvCja04//fQT75uYoC3sKQAABUpJREFUmPjc7GfXrV+/eMmSTZvyy8rKKquqWrVq1aFD h+Rzuvbp02doenr3bt0ato+Jifm/VW+sX79+3fr1W7e+XVJaWllZGRkZGRcXl5J8Tnp6enZmZvtG q4W0atVq7uxnn509Z8UbK3ft3FVZVXW8u2FeN3FiZkZGbm7e6jVrthcVHThw4OjRo+3atTvzjDN6 9uwxcMCAoenpjS9XTOzceeGC+XOff/7VRYuKi3d++umnHTt2HNC//4+uubpH9+5/ev6Fk/pwG2a3 h118cf09H79UdmZWQcGW+n3/kUwZBEFcXNzMp//4xqpVry5atGlT/v7y8iAIOnTo8IM+fS67bNTQ 9PQT/E1Ouu3Wq64c//y8eWvXrtu9Z09FRUV0dHSn+PjU1NQLhwz5p0tHHLt9z549X8pdMDNn1spV b+zZUxIREZx2Wsfz+/QZNza7X9++J75D4r333POD889/6eVX3nnnnY8OHDjZMeSePXsufvWV3LyF y19/fdu2bR8dONC6detOneIH9O9/5fjxKZ/dbvUU6N37vNeXvla4bdu6devyNxfUl+6qQ4ciIyPb tm17RmJijx7dfzhs2JDBg09BHIyJaT11yv033njDgtzcDRs27t6z+8CBg1FRUbGxsV2SktLOPXfw 4EF9L7hApgQAmqWICRMmfMVNMzMzs7KynDIACEXxzp2jRo8JgiA7K/OBr3WzRQAAoInKy8u74t6H mvcxWkIHAAAAAAiZTAkAAAAAhEymBAAAAABCJlMCAAAAACGTKQEAAACAkEU5BQDQJHQ9++zCrX9x HgAAgGbJ1ZQAAAAAQMhkSgAAAAAgZDIlAAAAABAymRIAAAAACJlMCQAAAACETKYEAAAAAEImUwIA AAAAIZMpAQAAAICQyZQAAAAAQMhkSgAAAAAgZDIlAAAAABAymRIAAAAACJlMCQAAAACELOqkts7L y3PKAAAAAIBv1klkyn79+jlfAAAAAMA37iQyZfv27Z0vAAAAAOAb596UAAAAAEDIZEoAAAAAIGQy JQAAAAAQMpkSAAAAAAiZTAkAAAAAhEymBAAAAABCJlMCAAAAACGTKQEAAACAkMmUAAAAAEDIZEoA AAAA+JbauHFjdHT0d+FIZUoAAAAA+JYaNGjQd+RIo3zYAAAAAPDt9Mknn3xHjtTVlAAAAADw7dIw 623oGwAAAAAIR8Ost6FvAAAAACAcDbPehr4BAAAAgFOq8ay3oW8AAAAA4JRqPOtt6BsAAAAAOKUa z3ob+gYAAAAAToUTzHob+gYAAAAAToUTzHob+gYAAAAAToUTzHp/d4a+IyZMmOBPoVmqqKiorq5u iu88Pj5+165dxz5TVVUVERHhM+Vk1dXVtW3b9thnunTpMmfzdmcGAAAAvm0MfQMAAAAAIZMpAQAA AICQyZTNVl1dnZMAAAAAQJMgUwIAAAAAIZMpAQAAAICQyZQAAAAAQMhkymartrbWSQAAAACgSZAp AQAAAICQyZTNlqspAQAAAGgqZEoAAAAAIGQyZbNVV1fnJAAAAADQJMiUAAAAAEDIZMpmy70pAQAA AGgqZEoAAAAAIGQyJQAAAAAQMpmy2bKEDgAAAABNhUzZPGmUAAAAADQhMmXzJFMCAAAA0ITIlAAA AABAyGTK5snVlAAAAAA0ITJl8yRTAgAAANCEyJQAAAAAQMhkSgAAAAAgZDJl81RbW+skAAAAANBU yJQAAAAAQMhkyubJEjoAAAAANCEyJQAAAAAQMpmyeXI1JQAAAABNiEwJAAAAAIRMpmyerPQNAAAA QBMiUwIAAAAAIft//Op6rGE4n6wAAAAASUVORK5CYII= --=-=-= Content-Type: image/png Content-Disposition: attachment; filename=em-heaptrack5.png Content-Transfer-Encoding: base64 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 JZXx/b//4bDZLBaLy+VS8zYTkYfmkv+ey9tALXRyl8oQFxcX0/ljqi6qJJfL5XK5UlJSVE6XEEJP 3UwI4XA4mKW5kQT8ivdnVyuZDtdyWVFdWcJkixUm3s57doE+Jhkx+9tomSqauDFZXKFQwJKQ5hfn fry+pyTtKSGEMBg5j89Ia/RQNh9FmExBVTmDMBhsdnnO+/dnV1cWZjS2rqbsBwAAAAAAAOD7YtjZ 2X3xxsePH0cEAQAAAAAAAAAAAAAAAAC+npyl/WfLYH5mAAAAAAAAAAAAAAAAAIDWAfldAAAAAAAA AAAAAAAAAIDWAfldAAAAAAAAAAAAAAAAAIDWAfldAAAAAAAAAAAAAAAAAIDW4TvkdwcOHLh//35C yPXr13k8XovW5e/vP2nSpBr1tkZ8Pl9OTu7t27fosgAAAAAAAAAAAAAAAAC/rBbM7z569Ejuf929 e5cQMmPGjN69e7dEjerq6qLVbdq0aeDAgWPHjq1RLCoqSk9Pr6UjW1JSsnDhQn19/Xbt2nXt2nXk yJGpqakNlK/RqhqLLBZrw4YNysrK6LIAAAAAAAAAAAAAAAAAvyx2S1fw8uVLOTk56rWYmBghZPDg wS1XXXBwsKOjI/Waw+GwWKxm2W1VVRWHw2nSJkuWLHny5Mnx48d1dHSysrJu3LghFAq/uAEMBsPL ywv9FQAAAAAAAAAAAAAAAOBX1uLzM3O5XPH/MBgMUs88yUKhcP/+/b169dLU1LSxsYmOjv6y6ths Nl0di8USnZ+ZkpaWNmPGjMzMTGNjY2Nj45s3bxJC3r9///vvv3fu3LlLly4LFiwoLS0lhFy6dKl7 9+5r16797bffHBwcmtqSBw8euLm56enpiYmJaWhojB07VlNTk3orJibG3t5eS0vL2Nh47969tVt1 8uTJGo0UnZ952bJlEyZMmDZt2m+//WZkZBQUFERXeuDAAUNDww4dOnh6es6YMWPevHmEkKqqqnnz 5vF4vA4dOnTv3j00NBT9HgAAAAAAAAAAAAAAAKA1Yv8g7QgJCQkMDDx06FC3bt0iIyPHjh17+/bt 9u3bN3tFGhoaO3funDlz5sOHD6k1ZWVlgwcPdnNz27t3b3l5uZeX17JlyzZv3kwISU1NFRMTo3LA TWVlZRUUFCQtLW1mZtalSxd6+O/Lly+HDx8eFBTk4OCQmJjo5uampKTk6upao1UyMjKii3w+X3Tn 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 CQ8Pb7h8RUWFiopKUlJSnYvNa968ee7u7qJrZsyY8e0zpmfOnHF2dtbR0dHV1R0wYMD+/furqqq+ We0+Pj5bt2790Vr1laKjo1Xq4urq+sX73LVrF7UTDQ0NAwOD0aNHnzlzphWdie/fvy/5zzfO8BFC Pnz4YG5uHh8ff/DgwY8fPz59+nTOnDkhISEVFRU1Sv7g3axVnxctraKigsfjmZqaCgSCb1Od6N2B xWKtWbNGSUnpRwvLunXr6rwcbdq0CYf+5z70lGvXrjk5Oenq6urq6vbr1y8oKIhaP2XKlF69euG6 AQAAAAAAAAAA0EjfIr8bFha2adOmVatWxcfH37x509vbm8Ph/FBR+JY5ib1796alpb169WrixInT p0/H+CpRmzZtmjdv3pAhQ65du/b06dO1a9fGxMR8+PDh2xx0oVB46dKlQYMGfcdWtQRLS8uU/ygp KW3atIl6ffz48a/ZLY/HS0tLe/fu3cWLF+3t7efPn//HH3+0lpiIiYmJ/4fBYNR4d/LkyVpaWjIy Ml27dqUnOj537py2tnZgYKC6urqsrOzixYuzs7NdXV3btGmjr69/7949uhcFBQUZGBjIycmZmZld u3atdu2+vr5t27Y9f/68hYWFnJycgoKCo6Pj5cuXxcXF6Yr8/PyMjY2tra3ra09xcTGLxdqwYYOV lZWpqamDg0NaWhpdRXp6+qBBg6SlpfX19W/cuNHaz9bWKDw8vLq6OiMj47v8nonBYHh4eMjIyPxo YVmwYAF1/bl69SohJCYmhlqcM2fOj3z3b9IfCTj09UlJSRk/fvyQIUPi4uIeP368YcMGBQUF6i1H R0cej4frBgAAAAAAAAAAQCN9i/zuw4cPTU1N+/btKy4urqioaGdnRw2YS01NVVFRoYesnT59mkpm EEIGDBgQEBDg5ubWoUOHvn37vn79OiwszMzMrFOnTgsXLqTGxJSUlKioqISGhlIjg8eNG1dQULBy 5couXboYGBgcPnyY2tXt27cdHBx4PF7Xrl09PDw+fvxIrV+xYoWHh8e0adNsbGx8fX2NjY0jIiLo Ns+ZM2fWrFktEnEmk81mS0lJTZgwgc1mv3r1ilr/4sWLoUOH8ng8c3PzzZs38/l8QsiwYcOof3v1 6hUYGFhjkRCSk5MzY8YMAwMDAwODmTNn5uXlNT4yjUftcMeOHc7OznZ2dmPGjKHD2IxSU1O3bNmy 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 d+/e9P4fPHiwc+fOtWvXBgUFJSUlUevv37+/c+fONWvWBAQEXLp0iU7l7t279/LlywcOHNixY8fL ly8rKiouXbq0devWNWvW7Nq1i+7YAoHg/Pnza9eu3bx587179/AnHQAAAAAAAAAAAPwimD94+6ZM mRIfH3/jxo2kpCQjI6Nhw4ZR3/+amZndvn07IyMjICBg7ty5Dx8+FN3qwYMH/fv3nzVrlq+vb2lp 6cCBA3k83qtXr+Li4t69e7d06VJCSEFBwZAhQ0aPHp2enr5169Y65+GEr6SgoEAIifhf9PpvKSkp 6dGjR2ZmZoSQvLw8e3v7vn37pqWlRUREHDhwYPPmzYSQy5cvU//Gx8cvXLiwxiIhZNy4cYWFhc+e PXv69Gl2drboDMn79+9fv359ZmamiYmJq6vr1atXY2NjY2Njw8PDw8PDv6DBMTExV65ciY2NNTc3 HzFiRI13GQyGp6cnPYSUz+cfPHjQy8urRrGgoKCNGzceOnQoKyvL19fXzc0tJSVFTk7OyMjo6tWr hJCoqChdXV0q8xQXFycQCExNTZvUzvT0dFdXV3p4IjV4d9asWQ0c4rdv3yYmJk6YMKH2h2o4yLUp KyufPn06Nzf30qVL586d27lzJ/1WeHj4gQMH7ty5s27dOmdn58zMTEKIh4fHtGnTsrKy0tPT161b R9Xo6ekZHx9/69at1NRUIyMjV1fXhscLxsfHP3r0iMfjEUJKS0ttbW15PN7bt28fP3787t27RYsW EUIeP37s5OQ0efLktLS0xMTExsy8feLEib///vv58+ejRo2qs520+jow3XOuX7/+4sULbW3tP/74 42vOmunTp48bNy4wMFBPT09KSorH461Zs4Y6IllZWePGjVNRUVFRURk/fjydht+5c6e2trasrGy7 du3mzJlDCOnfvz/1r66u7rp160T3L/4fJpPJYrHoRfqDdO/eXUpKql+/fnQ+z9TU1MfHp1+/fl27 dg0LCyspKZk7d66WlpaCgoKjoyOdm6/djAb2Wd9nEXX//n1TU9O2bdtaWFhQPwaiXLt2beXKlbXL nzx5srq6etWqVW3btnVycho6dGhQUFDtYhMnTnRycpKXl6+xfs+ePfPnz+/evbuSktLmzZtv3br1 4sULQkhiYqKxsTGXy+3WrVtCQoJQKPTy8tqyZUubNm2+8gpJpW979+49uJbevXs3Mr8rKSmpoqJy 8eLF58+f04OA6ZtyTEyMm5vb4sWL+/bte+zYsfz8fEKItLT06NGjlyxZMn78+Ddv3ojmaF++fOnq 6urt7W1gYHD69OmPHz+6u7svWbJk5MiRUlJSdBl1dXUfHx9XV9dLly41aagxAAAAAAAAAAAAQOv1 Q8/PnJGRcfLkyW3btikrK3M4nD/++CM1NfXp06dCodDd3V1BQYHBYPTr12/AgAHXr1+ndxIeHj5s 2LDdu3dPmDBBKBSePXuWEOLn5ychISErK+vn53f06FGhUBgRESEvLz9jxgwmk2lgYDBx4kQMt20J Tk5OTk5O9S229PjdAwcOaGhoqKqq8ni8vn37Uqmps2fPSklJLV26VExMrEuXLgsXLqxv9lRR79+/ v3r1akBAgJycnLy8/ObNmyMjI+kUkaenp7GxsYSExPjx45OSkjZs2CAnJ6etrW1nZ0cP9GySuXPn cjgcQsiCBQsePHjw6tWrGgXc3d0TExNv375NCDlz5kxJScnIkSNrlAkMDFy2bFmPHj2YTKajo6OV ldWpU6cIIf3794+KiiKEREVFrVix4tq1awKBICoqytrauoFJleskISFx8+bNP//8s6ioiM/nr1y5 Ulpaet68eQ1sQk3wq66u3tQg1+bm5qajo8NgMDp37jxjxgwqaU0ZP348NTesjY1N165dT548SQjh crmvX79OTU1ls9l9+vRhMBgZGRlhYWE7duxQUVHhcrm+vr7URaZ2XW/evNHQ0FBRUdHX13d2dp45 cyYhhPq9gr+/v6SkpLy8/KpVq/755x9CyJ49e1xcXMaNGycmJiYpKWltbf3ZSHp4eNAxqd1O0ZIN d+D58+dTPWfw4MH379//4nPnzZs3CQkJtYeWUo0ZPXp0YWHhq1evXr58mZ2dPWbMGELIu3fv5s2b d/bs2fz8/Hfv3lEr6Z6WkJCwePHixjcgJCQkIiLi48ePkpKSohuGhYUdOnTo1atXo0ePnjhx4uvX r+/evfvx40djY2NnZ+fq6uo6m9HAPuv8LKLy8/MHDRo0bty4vLy8nTt37tixg34rLi6uzlnfnzx5 YmhoSJ9NpqamT548aeQHLygoSElJoX6MQgjp1KlT27Ztqc27d+8eHR1dXFz8+PFjfX39vXv3amlp UTMNNO/t+Itn0Z8wYYKOjs6dO3d27doVEBBA52vv3btnbW2toqJCna0dOnSgrml6enry8vIMBkNR UdHc3Jwe10sIMTY2btu2LSGkqKjo1atXTk5OsrKyDAZDQUGBzohramr26NGDzWZra2srKyunp6fj rzoAAAAAAAAAAAD4FbC/Y921vy+usYb6qnfIkCH0GjExsYyMDKFQuHPnzqNHj2ZlZbFYrJycHC0t LXrDgICAvn379u/fn1qTnJyclZVlaGhIvSsQCLhcbkFBQVpamra2Nr2VtrY2EZlmFpoRldA9e/Ys ndz9ZlUPHz7c399fKBSmpaXNnTt32rRpe/bsSUtL09LSonNm2traHz58+Oyu0tLSGAyGlpaWaIdJ S0tr3749IURNTY1aLyUlJSYmRo9elZSULCoqIoR069btzZs3hJBp06Zt376dw+HUmF22srJSTEyM XlRVVaX3ICMjk5aW1rVrV9Hy7dq1Gzx4cHBwcJ8+fYKDg8eMGUOPaaMlJyevWLFi/fr11GJJSYmB gQEhpH///uPHjy8oKHj9+rWLi8vq1asfPXoUFRXl6ura1AjLycmtWLHC29t73bp1PB4vISFhyZIl DY/PVlJSIoR8+PCBDmYjg1zbxYsXN2/enJSUJBQKS0tLO3ToUDuA1GtqjuuTJ0+uXr3azMxMVlbW w8Nj4cKF1IhPR0fHGheZ2nVpa2tHRUWVl5fv2bPn5MmTxcXF8vLy1OWlW7duNS4vKSkpvXr1alIk RRPetdtZI0oNdGA6+BISEsXFxV987jScho+KikpMTJSTkyOEbNmypUuXLlQ2mhDy8OFDNTU1WVlZ c3Pzrzl5V6xYQR1QT09PHx8fev2kSZOoVmVkZPz7779JSUkqKipU+cDAwCdPnigqKtbXjNr7rO+z iHa58PBweXl5ahywoaGhl5fXsWPHqLcWLFiwYMGC2o0vLCyUkZGhF2VlZQsLCxv5wamSdW6+f//+ BQsWFBcXL126VEJCYtu2bXfu3FmzZs3FixcVFRW3b9+uoaHxxbfjZrnkSkhI2NjY2NjY8Pn858+f nzlzRlZWlsfj5eXlXbt2jZ4pvbKykvr5xdu3b2/fvp2XlycUCquqqkQfHE4PSs7Pz6fSurWroxLA FC6XS8/QDgAAAAAAAAAAAPBz+4Hyu/TTc+k11Dfs58+fp76+p124cCEgIODs2bNdunQhhIwbN050 dNHx48e9vb29vb23bdvGZDLbt2+vrq5eYwJnQoiamtqnT5/o6qiMDvK7LcTJyalz586dO3f+xhGm 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 rl27Dh48OHfu3FevXpWWlr5582bp0qWHDh3S1NTs16/fvHnzqDT8/Pnz7ezs2rdvn5CQcPny5fLy ci6Xq6yszGAw2Gx2jd9JNCM1NbVhw4Z5eXnRufmwsLDKyso6m9FAL6rzs4iWcXZ2TklJuXjxIqmV mL9x48aaNWtq73bo0KFMJnPlypWlpaWXL18+ceLElClTqLecnJzopxpXVVWVl5dXV1cLBILy8nL6 hwVTp04NCAh49epVfn6+j4+PhYUFPQc4IeTDhw8bN27cunUrIURXV5d6XPTjx48bM7C44XtxRETE lFoiIiIaeaFms9l8Pv/kyZObNm3asmVLXFyci4sLNcu6mZmZpaVleHj4unXrtm7dGhMTIxAIZGRk BgwYcPDgwX379p08eVL0AliDq6ursrJySEjI2rVrQ0NDS0pKGmhGVVXV7du3qRmtRV8TQh49etTA 87wBAAAAAAAAAAAAWgtGjcxBk0yePNnFxeXLtj19+vTAgQMFAgGOARBCmEzmxYsXa3enGzduNCbv GBUVZW1t/XOEori4WE5O7u3bt7UfT/tD+ZEPTc+ePWfMmDF+/HicWU26Jg8bNqzGygcPHvj7+9+8 ebOkpERLS8vZ2ZnKmmdmZs6ZM+fq1atCodDOzm7Lli1KSkrPnz/38vJ69eoVk8nU1NRcuXKls7Mz IeSvv/5asWJFSUmJt7f3qlWralc9atQocXFxehKF4uLiNm3aJCUlUafAlStXxo0bR42aNTU19fb2 pvOjxcXFq1atCgsLy8zMlJeXt7a23rdvX3x8fO1mNLDPOj8L+X/s3Xl4FfWhN/BJSCAhCQlhR5aI VhGhxRVB0ONS0SrSvfW63FZaRUvd2qK1Pb5VuqjXVu3Fq7W3fVHb6vVi3bCW1tRTUFyQCm5YFYmy KVsIhARIcs77x+ENFCMkhOX8ks/n8ckzM2dmzpnvmZw58cvMRNHo0aPPO++8iRMnRlH03HPPXX75 5Tk5OSUlJSNGjLj//vvffPPNKIpuueWWqVOnpu/ivIN58+ZdeumlCxYs6N27dzwenzBhQnr6sGHD rrzyyvQp11/72te2v6j4oYceml5tMpn8/ve//9vf/rampuaUU0751a9+tf31w8eNGzdhwoT0p2Uq lbr44ovnz5+fnZ3961//On2D7ZaaPn362LFj08MzZsxIn2Kelr5peuOn9JNPPvnRT+km9xwAAAAA gHZr+vTprelPv/Sj/9jlbPuz3x07dqx+l7Ts7OyZM2d+dHdasGDBTq6t2qikpKT5lz/NcKH0u5n8 1uh3d+8zWUu3t61YseLkk09+7bXXOnTokFFfNU477bTG0RkzZqQvlXHmmWduf1Pwj/tXOPYcAAAA AIDt7YN+N2c/bt5evTAvYfm4PaHNtLZtj7cGWqpPnz4LFy7M8E/gxiuHn3nmmdtPd7wGAAAAAMgQ OSKAjFJYWFhXVyeH1njhhReEALttJzeHBgAAAABgv3P+LhnBngCQyZ/APqUBAAAAADLEfut3S0tL k8lkVlaWW/CSnZ2dTCZLS0tFAftL9+7dhdBu7bK7TX9Kd+vWzZ4DAAAAALBz++D/mu7PfnfhwoWD Bw/OysryTrdzyWRy4cKF+l3Yj0pLS+fNm3fUUUeJoh3a5YE4mUy+8cYbTX5K23MAAAAAABq99NJL +6Dw2m/97tChQ1977bX58+evXbvWm93OlZaWlpaWDh06VBSwvwwZMuSNN95IJBKrV6+WRnvz1FNP 7XyGbt26lZaWHn744U3uOa+//ro9BwAAAACge/fupaWlQ4YM2dtPtD/vv6vPA8gc++CQQ5vUZO8L AAAAAMBeki0CAAAAAAAAgCDodwEAAAAAAADCoN8FAAAAAAAACIN+FwAAAAAAACAM+l0AAAAAAACA MOh3AQAAAAAAAMKg3wUAAAAAAAAIg34XAAAAAAAAIAz6XQAAAAAAAIAw6HcBAAAAAAAAwqDfBQAA AAAAAAiDfhcAAAAAAAAgDPpdAAAAAAAAgDDodwEAAAAAAADCoN8FAAAAAAAACEPOXl17eXm5iAEA AAAAAABOOeWU1q8kZ2+/yrFjx3qrAAAAAIDdM2X50y2aP973JKEBAPtMeXn5SSedlEqlUqlUFEWp pqSnP/vss3vkGV2fGQAAAAAAAKC1Uh8jmUzuwWfR7wIAAAAAAACEQb8LAAAAAAAAEIYcEQAAAAAA AADsEY899lgURWedddZeWr9+FwAAAAAAAGAPeOyxx9L9biqV2ksVr+szAwAAAAAAALRWY7kbRdHj jz/++OOP741n0e8CAAAAAAAAtMqjjz766KOPbj9lL1W8rs8MAAAAAAAA0Crjx48/++yzU03Zs0/k /F0AAAAAAACAMOh3AQAAAAAAAMKg3wUAAAAAAAAIg/vvAgAAAAAAALRWVlbWx03fg3fh1e8CAAAA AJkr3vckIQAAGau6unrOnDmNo4097kcH9hT9LgAAAACQuaYsvTGxfnYzZ451GRPvd43QAIB9prCw sG/fvjufp6GhoVOnTgsXLtwjz6jfBQAAAAAyWqzLGCEAAJksPz9/J482NDQkk8k99VzZ4gYAAAAA AAAIgn4XAAAAAAAAIAz6XQAAAAAAAIAw6HcBAAAAAAAAwqDfBQAAAAAAAAiDfhcAAAAAAAAgDPpd AAAAAAAAgDDodwEAAAAAAADCoN8FAAAAAAAACEOOCAAAAAAAAAD2u04Fhbucx/m7AAAAAAAAAGHQ 7wIAAAAAAACEQb8LAAAAAAAAEAb9LgAAAAAAAEAY9LsAAAAAAAAAYdDvAgAAAAAAAIRBvwsAAAAA AAAQBv0uAAAAAAAAQBj0uwAAAAAAAABh0O8CAAAAAAAAhCFHBAAAAABAxor3u0YIAACN9LsAAAAA QOaasvzHiQ1/b+bMFcnTyzqWlR/0BbkBAG2VfhcAAAAAyGixohObOee0KmkBAG2c++8CAAAAAAAA hEG/CwAAAAAAABAG/S4AAAAAAABAGPS7AAAAAAAAAGHQ7wIAAAAAAACEIUcEAAAAAAAAALshLy9v +fLljaOpVOrjBvYU/S4AAAAAAADAbho1alQqlUr3uKmmpKc/++yze+TpXJ8ZAAAAAAAAoLVSHyOZ TO7BZ3H+LgAAAAAAAMD+t3lj9S7ncf4uAAAAAAAAQBj0uwAAAAAAAABh0O8CAAAAAAAAhEG/CwAA AAAAABAG/S4AAAAAAABAGPS7AAAAAAAAAGHQ7wIAAAAAAACEQb8LAAAAAAAAEAb9LgAAAAAAAEAY 9LsAAAAAAAAAYdDvAgAAAABtRFluQ6ywnxwAgDYsRwQAAAAAQMaK9/1hC2aWFwDQ1ul3AQAAAIDM NWXjc4ktS1q0SKxj/3jBSNEBAG2SfhcAAAAAyGixjv2FAACQ5v67AAAAAAAAAGHQ7wIAAAAAAACE Qb8LAAAAAAAAEAb9LgAAAAAAAEAY9LsAAAAAAAAAYdDvAgAAAAAAAIRBvwsAAAAAAAAQBv0uAAAA AAAAQBj0uwAAAAAAAABh0O8CAAAAAAAAhEG/CwAAAAAAABAG/S4AAAAAAABAGPS7AAAAAAAAAGHQ 7wIAAAAAAACEQb8LAAAAAAAAEAb9LgAAAAAAAEAY9LsAAAAAAAAAYdDvAgAAAAAAAIRBvwsAAAAA AAAQBv0uAAAAAAAAQBhyRAAAAAAAZKx4wUghAAA00u8CAAAAAJlrypoHEjWvtmiRWOdh8W5fFR0A 0CbpdwEAAACAjBbrPEwIAABp7r8LAAAAAAAAEAb9LgAAAAAAAEAY9LsAAAAAAAAAYdDvAgAAAAAA AIRBvwsAAAAAAAAQBv0uAAAAAAAAQBj0uwAAAAAAAABh0O8CAAAAAAAAhEG/CwAAAAAAABAG/S4A AAAAAABAGPS7AAAAAAAAAGHQ7wIAAAAAAACEQb8LAAAAAAAAEAb9LgAAAAAAAEAY9LsAAAAAAAAA YdDvAgAAAAAAAIRBvwsAAAAAAAAQBv0uAAAAAAAAQBj0uwAAAAAAAABh0O8CAAAAAAAAhCFHBAAA AABAxop3+6oQAAAa6XcBAAAAgMw1ZemNifWzW7RIrMuYeL9rRAcAtEn6XQAAAAAgo8W6jBECAECa ++8CAAAAAAAAhEG/CwAAAAAAABAG/S4AAAAAAABAGPS7AAAAAAAAAGHQ7wIAAAAAAACEQb8LAAAA AAAAEAb9LgAAAAAAAEAY9LsAAAAAAAAAYdDvAgAAAAAAAIRBvwsAAAAAAAAQBv0uAAAAAAAAQBj0 uwAAAAAAAABh0O8CAAAAAAAAhEG/CwAAAAAAABAG/S4AAAAAAABAGPS7AAAAAAAAAGHQ7wIAAAAA AACEQb8LAAAAAAAAEAb9LgAAAAAAAEAY9LsAAAAAAAAAYcgRAQAAAACQseL9rhECAEAj/S4AAAAA kLmmLH80seHNFi0SKxoc7ztedABAm6TfBQAAAAAyWqxosBAAANLcfxcAAAAAAAAgDPpdAAAAAAAA gDDodwEAAAAAAADCoN8FAAAAAAAACIN+FwAAAAAAACAM+l0AAAAAAACAMOh3AQAAAAAAAMKg3wUA AAAAAAAIg34XAAAAAAAAIAz6XQAAAAAAAIAw6HcBAAAAAAAAwqDfBQAAAAAAAAiDfhcAAAAAAAAg DPpdAAAAAAAAgDDodwEAAAAAAADCoN8FAAAAAAAACIN+FwAAAAAAACAM+l0AAAAAAACAMOh3AQAA AAAAAMKg3wUAAAAAAAAIQ44IAAAAAICMFe87XggAAI30uwAAAABA5ppSe3Oi7pkWLRLLHR3Pnyw6 AKBN0u8CAAAAABktljtaCAAAae6/CwAAAAAAABAG/S4AAAAAAABAGPS7AAAAAAAAAGHQ7wIAAAAA AACEQb8LAAAAAAAAEAb9LgAAAAAAAEAY9LsAAAAAAAAAYdDvAgAAAAAAAIRBvwsAAAAAAAAQBv0u AAAAAAAAQBj0uwAAAAAAAABh0O8CAAAAAAAAhEG/CwAAAAAAABAG/S4AAAAAAABAGPS7AAAAAAAA AGHQ7wIAAAAAAACEQb8LAAAAAAAAEAb9LgAAAAAAAEAY9LsAAAAAAAAAYdDvAgAAAAAAAIQhRwQA AAAAQMaK508WAgBAo3bd70754N1EdWXjaPnBR9khAAAAACCjTPnwhUT10hYtEivsF+81QnQAQJvU 3s/fjRV2TQ9sX/QCAAAAAJkjVthPCAAAae6/CwAAAAAAABAG/S4AAAAAAABAGPS7AAAAAAAAAGHQ 7wIAAAAAAACEQb8LAAAAAAAAEAb9LgAAAAAAAEAY9LsAAAAAAAAAYdDvAgAAAAAAAIRBvwsAAAAA AAAQBv0uAAAAAAAAQBj0uwAAAAAAAABh0O8CAAAAAAAAhEG/CwAAAAAAABAG/S4AAAAAAABAGPS7 AAAAAAAAAGHQ7wIAAAAAAACEQb8LAAAAAAAAEAb9LgAAAAAAAEAY9LsAAAAAAAAAYdDvbhUr7CoE AAAAAAAAIJPltOeNj/ceZA8AAAAAgEwW7zVCCAAAjdp1vzvl/T8nqt7+uEfLh33b/gEAAAAA+9eU 6icTW95u0SKxjp+IF56xbQ3v3ZRYN7txtPxTM6QKAIQrp51vf6z4E01O30nvCwAAAADsS7GOn2jt GkrGpAe2L3oBAELk/rsAAAAAAAAAYdDvAgAAAAAAAIRBvwsAAAAAAAAQBv0uAAAAAAAAQBj0uwAA AAAAAABh0O8CAAAAAAAAhEG/CwAAAAAAABAG/S4AAAAAAABAGPS7AAAAAAAAAGHQ7wIAAAAAAACE Qb8LAAAAAAAAEAb9LgAAAAAAAEAY9LsAAAAAAAAAYdDvAgAAAAAAAIRBvwsAAAAAAAAQBv0uAAAA AAAAQBj0uwAAAAAAAABh0O8CAAAAAAAAhEG/CwAAAAAAABAG/W7TYsWfEAIAAAAAtDGxkjFCAACC ltOeNz4+4HR7AAAAAABksnjhGa1dw8CrxQgAtBntut+dsuzDxPrqffykFfUfluUnPzq9/ODRdkcA AAAA2MGU2imJukSLFonlxuL58W1rWPlsYuP7jaPlB54jVQAgXDntfPtjXQr38TNOW/thrLD7DhMT 1avtiwAAAADQpFhurLVrKBiQHti+6AUACJH77wIAAAAAAACEQb8LAAAAAAAAEAb9LgAAAAAAAEAY 9LsAAAAAAAAAYdDvAgAAAAAAAIRBvwsAAAAAAAAQBv0uAAAAAAAAQBj0uwAAAAAAAABh0O8CAAAA AAAAhEG/CwAAAAAAABAG/S4AAAAAAABAGPS7AAAAAAAAAGHQ7wIAAAAAAACEQb8LAAAAAAAAEAb9 LgAAAAAAAEAY9LsAAAAAAAAAYdDvAgAAAAAAAIRBvwsAAAAAAAAQBv0uAAAAAAAAQBj0u/taWaeO H50YK+wuGQAAAADY22IFA4QAAAQtpz1vfPyAXvvhSaNedjsAAAAAaKZ4fry1a+h5vBgBgDajXfe7 UypnJGr/GdALrsiZVZaXiuWOjudPtu8CAAAA0B5MWfFfiQ0vtmiRWNGx8T6XblvDmv+bqHk5PVzR cWVZQd+ml8oZHs+7QOAAQIbLaefbH8s/NKBXO61uVix3tL0WAAAAgHYlVnRsa9fQ+Yj0wLT6mbGc 4SIFAMLl/rsAAAAAAAAAYdDvAgAAAAAAAIRBvwsAAAAAAAAQBv0uAAAAAAAAQBj0uwAAAAAAAABh 0O82rbZyw7z7/iIHAAAAAAAAIHPkiGAH1avWzZn68OuPPTvionFRFC156Z/3ffH/XFvxQPrRRy77 ZX5x4dgpF86+bfrqd5bWb65b++6K2nXVx1007riLx0VRtKlq461HfvOce6+dMfmumtVVvYcNumD6 9VIFAAAAAAAAWk+/u03VstXP/PKhRU+/fMyFn5k0547c/E47n3/+/X+7cMbPBo48fM2i5VOP/9bg z4wo6d8ziqLayg3P3/34hCduzC8prF1XLVgAAAAAAABgj9DvbpVKpu4YPann4AEXPfXzvC4FzVmk 7/CDB448PIqibgf1Lepduvrtpel+N4qiMVd8Mb+kMIqi9E8AAAAAAACA1nP/3a2ysrMun/urslFD 74xdkbj5gdrKDU3OlkqlGoeLepduy7FDh4a6hsbR4gO6ixQAAAAAAADYs/S72xR0Lz41fsElT9+W lZ1150lXJG5+IIqiDjkdGurqG+fZsGLttgWyZAYAAAAAAADsO/rdHeUVF5z43a9MmnNHt4P7RlHU tax3sqHhzSdfSKVS7856ZfEzr+zGOpe9/PZDE3+RbEgmbn5gwf88Xb2y8sEJN69fvlraAAAAAAAA QPPpd5vWsXPesM+fEEVRfknh+FsnPTH5rp/0//KcOx4edclnd2NtVUtXLX7m1Ya6+iUvvfnhGxW1 ldWLn3mlZs16OQMAAAAAAADNlyOCXRp+zinDzzllh4ljrvji9qNXzLs7PZBXXHDD2sd3mHnIuFFD xo2Kouj8B3+UnnL1P38nWAAAAAAAAKBFnL8LAAAAAAAAEAb9LgAAAAAAAEAY9LsAAAAAAAAAYdDv AgAAAAAAAIRBvwsAAAAAAAAQBv1uSMpyugsBAAAAAHZbWW4fIQAAQctpzxsf73pWYC84OssuCwAA AEC7Eu9zaWvX0O3r24YFCgAErl33u1Oqb09seS6gF1yxql/ZllHp4Vhxv/iAY+3BAABAW/6rrebX ibp5jaPlxXfJBKA9Hg7WT01sfqFFi8Q6jYh3mbRtDStmJTZUpIcrNlaU5eQ1uVRFzw/L8rqXF39f 5gBAJstp59sf6zgyoFc7LVoSK+5nrwUAANrRX225R6UHti96AWh3h4NOI1q7hqKy9MC0jRWx4sFN zjMt+lDUAEDmc/9dAAAAAAAAgDDodwEAAAAAAADCoN8FAAAAAAAACIN+FwAAAAAAACAM+l0AAAAA AACAMOh3m1ZbWTPvnuflAAAAAAAAAGSOHBHsoHrlhjm/fPr1RxaMmDgmiqIlcyvu++xd1y67Mf3o I996IL8kf+xPxs/+xVOr31pZv6V+7aJVtZW1x11ywnGXnBBF0aaq2luHTTnnDxfO+M5DNaure3/y gAsenihVAAAAAAAAoPX0u9tULV33zG3li/72z2O+cfykF6/O7dxx5/PP/8PcC//87YGjBq1ZtGrq sTcOPnNoyYDSKIpqK2uev2v2hJnfzi/pXLuuRrAAAAAAAADAHqHf3SqVTN1x3E09D+t9UeKqvC55 zVmk75H9B44aFEVRt4N6FPUuXv3WynS/G0XRmCtPyS/pHEVR+icAAAAAAABA67n/7lZZ2VmXz/9B 2fEH3Xn8fyRunFlb2fR5t6lkqnG4qFeXbTl2yG6ob2gcLe5XIlIAAAAAAABgz9LvblPQvfDUH511 yTPfzcrOunP0LYkbZ0ZR1CGnQ0N9snGeDR9UbVsgK0toAAAAAAAAwD6j391RXnH+iZNPmzT3mm4H 94iiqOuB3ZL1DW/+6bVUKvXu399ePOvt3VjnsnnvP/TN3yUbkokbZy64f271h+sf/No965etkzYA AAAAAADQfO6/27SOnTsO++KRURTll3Qe/8uvPPGd6dO/fm/ZmINHfSuWbEi2dG1VSysXz36nYUvD krkVW6o39z2i/+JZb9es2djlAJdxBgAAAAAAAJpLv7trw889dvi5x+4wccxVp24/esUrP0wP5BXn 37Dhth1mHjL+U0PGfyqKovMfujg95ep3fyxYAAAAAAAAoEVcnxkAAAAAAAAgDPpdAAAAAAAAgDDo dwEAAAAAAADCoN8FAAAAAAAACIN+FwAAAAAAACAMOSIISFmH/kIAAADap1juUUIAoPXKOpZ87EPJ HrHcwSICADJcu+5344WXB/aCD7bHAgAA7emvts7fFAIA8S6TWruGPic0ObzjbNHZ0gYAMl+77nen 1N6cqHsm0Bcfyx0dz59sD94Du8GSdxNVlR+dXj7UyQEAALC/v66v+W2i5h/bvqX3nyoTgPZ4OFj5 VGLjohYtEis4KN7z1O0OKDcmamY3c9ny/k/IHADIZO39+syx3NF2AmLFXXeY0mTjCwAA7Iev652P 3PotfbuiF4B2dzgoOKjVB5QxzZmt+TUwAMD+ki0CAAAAAAAAgCDodwEAAAAAAADCoN8FAAAAAAAA CIN+FwAAAAAAACAM+l0AAAAAAACAMOh3m1ZbWTNv2otyAAAAAABvWUHaAAAgAElEQVQAADJHjgh2 UL2yes7ts15/+NURl4yKomjJi+/fd/Zvrv3g+vSjj1w6Pb84f+zPzpx9S2L126vqN9evfWd17bra 4y49/rhLj4+iaFNV7a1Dbj7ngfNnXPlozerq3p/se8FjE6Ioqqupm3ntE2/OeCOVTB7+uU+e9pPP 5OQJHwAAAAAAAGgBFeM2VUvXPfOLvy/629vHfPO4SS9dlds5d+fzz//dvAv/cvHA4w9c887qqUf/ YvBZQ0oGdI2iqLay5vk750x4amJ+SX7tutr0zH+++vHqVRsvm//dVCr1hy/fk/jZU6def7rMAQAA AAAAgOZzfeatUsnUHcfctmLB8otmTRr5rdG7LHejKOp75AEDjz8wiqJuB3cv6tNl9VurGh8a851Y fkl+FEXpn8mG5D/ue+mka0/pWNixU1Gno79+7Gt/fEXmAAAAAAAAQIs4f3errOysy1/93nP/OfvO kbcfce5RIy4Zld+180dnSyVTjcNFvbs0Dmd3yG6oa2gcLe5XvP1SG1dWN2xpuGfcb7KyoiiKkg0p gQMAAAAAAAAtpd/dpqB7wanXnz76qhNfuHPOnaN+eeT5R8euPbVDboeG+m3F7Ybl6zs39r5ZzV5z z8IOHTtcOPPiHoN7yhkAAAAAAADYPa7PvKO84vwTrzll0ktXdftEjyiKuh5YmqxPvvnEG6lU6t3E osWzFu1Oyh2yj/r3Y/7ygz9VLVlXv7m+cvHa5S8vi6Lo5XtfmnXz35L1yelfv3/F/GUVs999eOL/ egsAAAAAAACAJjl/t2kdCzoO+9KnoijKL8kfP/ULT1z56PSv3V82etCob49J1id3Y4Wn3zTu6Z/+ 9Tefvqv6ww3F/UtOnHxy3yMO+OC1FZWL19Zvql88692hX/hU7dqailnvJuuT2Tl6dwAAAAAAAGBH +t1dG37eUcPPO2qHiWO+G9t+9IrXJqcH8orzb6i5qYmg83I+fcMZn77hjO0nnnHzuPTA9xb9ID1w xAVHCxwAAAAAAABokvNEAQAAAAAAAMKg3wUAAAAAAAAIg34XAAAAAAAAIAz6XQAAAAAAAIAw6HcB AAAAAAAAwqDfhSbEirsKAQAAMutbeucjhQDA3j/cjBECAJDhctrzxsfzJ9sDiPcfJAQAAMjQr+vd LhQCAPGep7b6gHKNGAGANqN99btTPnxh2geryjr0iRV3jfcfNKXmjUTdqkC3JZbbI955iD14D+wV lbcnap/72JzzR8a7Xi4lAADYP1/Xl92cWP9M42j5YY/JBKA9Hg6q7k9serVFi8TyhsWLz9m2hhWz Exvea+ay5YecJ3MAIJO1x/N3t7/0biy3h52AWP5IIQAAQIZ+Xe8yOj2wfdELQLs7HOQNa+0aigY2 Z7bm18AAAPuL++8CAAAAAAAAhEG/CwAAAAAAABAG/S4AAAAAAABAGPS7AAAAAAAAAGHQ7wIAAAAA AACEQb/btNrKqnnTpssBAAAAAAAAyBw5IthB9co1c26f9vojfxkx8dwoipa8uOC+8Rdfu+L59KOP XHpdfnHR2J99b/bP/3v1W4vrt2xZ+857tevWH3fJecddel4URZuqNtx6+Nhz7r99xlU/qVm9tvcn B1/w6N1RFNXVbJr5g1venPG3VDJ5+OdOO+3H38nJ6yRtAAAAAAAAoPn0u9tULf3gmVt/s6j8uWO+ +ZVJcx/N7Zy38/nn//7RC2feM/D4o9a8897UY8YPPuvkkgF9oyiqrax6/q7fT/jrvfklXWrXrU/P /Odrbqpetfayl2ekotQfvjQp8bM7T73+CpkDAAAAAAAAzef6zFulksk7jv3sigULL5p1/8hvnb/L cjeKor5HHj7w+KOiKOp28MCiPj1Xv7W48aExV30jv6RLFEXpn8mGhn/c9/BJ37+kY2HnToUFR3/9 S689PFPmAAAAAAAAQIs4f3errOzsy1/503P/ee+do754xLmfHTHx3/K7Fn90tlQy2Thc1LtH43B2 h+yGuvrG0eJ+vbdfauPKNQ1b6u45+5tZWVlRFCUbkgIHAAAAAAAAWkq/u01B99JTr79i9FUTXrjr 93ce/6Ujz/9c7PuXdMjNaaiva5xnw4qVnRt736ys5q65Z7cOHXMvnHlPj0MHyRkAAAAAAADYPa7P vKO84qITr544ae6j3Q4eGEVR1wP7J+sb3nzi6VQq9e7fX1g868XdSblDh6P+/Qt/+cEtVUtW1G/e Url46fKXX4+i6OX7Hp71H3cn6xumf33yivlvVMye+/DEH3oLAAAAAAAAgCbpd5vWsSB/2Jc+E0VR fkmX8VOvf+KqH/+k1zFzbp82atIFu7fC02+c3HPIJ35z2gU/7TPi3s9etPKNd6Io+uC1t5bOfaV+ 0+bFs+dWLf2gsmJpxey5yfoG+QMAAAAAAAAf5frMuzb83PHDzx2/w8Qx3/nG9qNXvPrn9EBecdEN G19vIui8Tp++4cpP33Dl9hPPuOnq9MD33nk6PXDE+Z8TOAAAAAAAANAk5+8CAAAAAAAAhEG/CwAA AAAAABAG/S4AAAAAAABAGPS7AAAAAAAAAGHQ7wIAAAAAAACEod31u2Udu3jXAQAAghPrMloIAOz1 w03RQCEAABkup11tbbzXiHiv7UY7D7EHEO96uRAAACBDv64fMFkIAMSLz2ntGvqMESMA0Ga0r353 ypJ3E1WVjaMV9X8sy18S6LbEikbE+34rPXxK9QPpgfLCr9qnW7xXVL+X2LJuZ1F3LIkX+pebAJCp h/IP/5moXh1FUflBx0sD2uDv+Ir/Smx4sXG0/JBpMuGjTql6qCJVWZZT6I9iaLOHg1V/S2x8t0WL xAoGxXucvN0BZXZiw3vNXLb8kPNa/kF0/s5eTO6IeOdJ3kcAYE/JaW8bHCvu2jg8bU0UKxrRRrYr Z0Ci/n079G6m17FECAAQ8KG8sHu64gXa5u940bHpge2LXgDa3eGgYFCrDyjN+uf7za+Bd1x/7ghv EwCwb2SLAAAAAAAAACAI+l0AAAAAAACAMOh3AQAAAAAAAMKg3wUAAAAAAAAIg353q1VvffCTQ7+7 tmJVevSdxMKfHxPfsnFz+U2PX3fApNWLPkxPv23Uj355wpT08HUHTPrg9aWiAwAAAAAAAPYN/e5W PQ7pfdyFJ874wYNRFNVvrptx7f+c9dMvdyzoFEVRl94lS1+uiKKoZm11/ZZ6WQEAAAAAAAD7hX53 mxOvOH1txerXZ7z899v+3Htov0M/PSw9vefgPkv/8V4URUtfruhzeD9BAQAAAAAAAPtFjgi2ZdEp d9yNX33osntSDclL//r9xul9h/V/5+9vRlG0ZF5F308OWLN4lawAAAAAAACAfc/5u/9i4LGDUslU z0P6FPUqbpxY0K1oc/Wm+s11S1+u6H/0gVICAAAAAAAA9gv97r+Y9Z9/GXT8IeuWVy58csH20w/4 1IBlC96vfH9N90E9pQQAAAAAAADsF67PvM3ailVz73vmW09du+Sld/903fSDTjysY+eO6Yf6H3Xg /P99oechvaUEAAAAAAAA7C/O391mxrUPnjDptMIeRYed8aluB/Z4+udPND404OhBr/xxbv+jB+2w SN2mui0bN6f/SyVTH7fmZfPfe+iye5INycStTy6Y/mL1yvUPXvLb9SvWyRwAAAAAAABoPufvbvXa 4/9Y/8G6EV8/MT16xg1f/NUZNw//0oj0aK/DDsjKzhrwkX7312f/vHH4m49/p/+RTd+dt2pZ5eI5 bzfUNSz5x+ItGzf3/eSAxXPerllb3aVPieQBAAAAAACAZtLvbjV03JFDxx3ZONprcN/rFt+WHkhP +eHbv0gPXDYrnh64YdnUZq58yJnDh5w5PIqi8++7ND3l6gU/kzkAAAAAAADQIvrdPWnal3+59r3V H53+tQcvKx3YXT4AAAAAAABAa+h396SvPXiZEAAAAAAAAIC9JFsEAAAAAAAAAEHQ7wIAAAAAAACE Qb8LAAAAAAAAEIZ23e+WdcpvGxsSyxnQ+BMAoB2KFXYXArT93/SiY4VA0/tGbr+yDl38UQzsocPN wN36IBohOgBgn8lpV1sb7z/oX0ajH7aR7cobZVfe/fQKBwoBAAI+lPc6VAjQln/H+1wqBHa9n3Qe EY80K9Cmf817nNzqA8qYvfxBNMnbBADsM+2r351SdX9i06ttb7sqVpaX5fSKoijWZXT8gMn/ssk1 jyTqFjaOxnIPi3f+bPvc10959cVtORSXxgccvDWiTU8k6t/a+bLlhVf6sACADP2Ct+zmxPpndjx2 H/aYZKCN/I5/OD9R/cG//IIfdLpY2PHPvVX3b909epwjDWibh4OaNxJ1q1q0SMW6e8uyC6IoqtjU oyy3Tyx/U6L6hWYuW37QfS3+IPrnTTt7MV0TZZ26lxff560EAPaInPa2wbG8YW1vo6ZF5bEuoz92 k3MPs6NvjaK4tOnpOYfsZKldtr8AwH4+xP/rF6GP1r1A2L/jhb23/YL/a9cL2/aTTgMSm9+XA7Tl X/PcHi2af1oUxTofEUXRtE1L//8BpVkn+je/Bt7xFRYN/vgXk/AOAgB7ULYIAAAAAAAAAIKg3wUA AAAAAAAIg34XAAAAAAAAIAz6XQAAAAAAAIAw6HcBAAAAAAAAwqDf3aq2snrevU/LAQAAAAAAAMhY OSKoXlk1Z+oTrz/6woiLx0ZRtGTuO/d94cZr3//v9KOPfPvu/OKCsT8+d/atj61+e3n9lvq1iz6o XbfxuIvHHjfx9CiKNlXV3Dr8inN+d+WM706rWbO+97CBFzx0TRRFdbWbZ8b/8OYT81Kp5OHjR5x2 /b/l5OVGUbR8/uInJk9b/faKKIp6Dx1w3oPfy83v5F0AAAAAAAAAdqld97tVy9Y8c/vji55+9ZgJ n570/M277Fnn3z/7wj/FB44cvGbRB1NHTh585tEl/btHUVRbWf38r2ZOePK6/JKC2nUb0zP/+drf Va9af9lLt6RS0R/OuSVx8x9Pve4rURT96Zp7hn5+5MiJp9dt2rJifoVyFwAAAAAAAGim9nt95lQy dceoq1e8UnFR+ZSRE09vTs/a94hBA0cOjqKo20G9i3p3Xf3W8saHxlwxLr+kIIqi9M9kQ/Ifv//7 SVd/vmNBXqfCvKP//eTXHnk+PWfXsl4LH5/73vP/zM3rOOC4Q+yCAAAAAAAAQDO13/N3s7KzLp/3 i+f+68k7T7j2iHNOGHHRafldCz86WyqZahwu6lXSOJzdIbuhrqFxtPiAbtsvtXFVVcOW+ns+/7Os rKwoipINycaHxt/+jRd/89dHJt2d3SH71Ou+ctiZR9sLAQAAAAAAgOZo19dnLuje5dTrvjL68nEv 3D3zzhN/cOS5J8au/nyH/8fencdFVe4PHP/OzrANiCCiwrhraolaiOspRLRcyDLzZ5ZbXDPLsrTt YqbdsrzdsqvX9jBbzPSGpeZyqUnFJTMsNc0NXHFB2UFglt8fQ4CIbLkNfN6vXr7Oec5ztu/znPPM mW9z0GnKJm6zT6W7l+R9VdXesr9Jo9eOWxnr37ZJ+YgbdD0m3dlj0p0H1u9c8uC8SRtf8WvVmI4I AAAAAAAAAAAAoEpqQuBmcu877e7JW1935ll9zQF2m23fdzscDsfhDXuSN/5em7Bq1F1HK+te/Dzz eJq1oCg95czJncnORfvXJhXmXhARv5aN1Vq13WoXkaTPftzwxgq71bbs4QWpvyanJO79+tF3aRoA AAAAAAAAAAAAZWkJgZPe3dDpnnARMfp4DJ03YdXTccvGzzf3at9j0kBnCramBvxj9A+vLf9w4Kyc M5mmpn59n44O6txcRHZ88sPyiQsddrt7A6/ImSP92zURkVO7j6annLEWFCVv/L3j3d3z03NSNv1u t9rUWg1NAwAAAAAAAAAAAMCJ/G4FOo/s03lkn3KFvZ8cUnb2iaQ3nRNuJvdZGZ9XEFk3XeSL90e+ eH+58pGfTb208sBXRzsnpu1b4JwIHdWXhgAAAAAAAAAAAABQFu9nBgAAAAAAAAAAAADXQH4XAAAA AAAAAAAAAFwD+V0AAAAAAAAAAAAAcA3kdwEAAAAAAAAAAADANZDfBQAAAAAAAAAAAADXQH63LjC7 tyEIVVJMDWq5opbwAgDgUoO+dy+CANTZC9wzkCCggo5hCC75FwCczIa2xRN6d8WjRU3GmrDa3Ii8 2lV2MI6Wii6MRgEAAFeKKjIystYrx8TEREdHV1IhISEhKiqKKAMAAAAAAAAAAACoexITE8PDwx1V UalUiYmJERERlWwqPj5++My5Ve5RW6/iOzsv3lK0tw6foKJrH+seHZG1989Zb7FushTsLl/N0DHW a0R9u7oijj1eGgH30Fi/scW9InW3JftM5esmtLmD2xMAADfoB7ycQ5bC82VLUlRJZl1ugueTBAe4 8Z7IfrcUna1+/QRT39npKy35f1xUGPQUkUTxU97eX0Uk5cLUdGvvUI+bRSThpmGEBaibI8ixf1oy E2u0SopnS7Nb6c/6FWMXy4Uj1R2AGo2q8R3p4KaqN9uq9DUzEZn/JyIphR5mTVMRSWjwIq0MAACq T1vfTljRta8fp+ldOm3oSEcvDoV7aMXlXgGVrFVl9hcAAFznIV5/0V9hiCsiJMCN/KjiX82aJZlg xdi2tPDiXC+gePvEXRBfrUnxbmrJOk5AgLp8vZt61qh+nO2U4ta6ePi4cEBEFLeQag1A1U4Dlz9C z4aVbTYn7ZIxsXtc4S5F38FSuIf2BQAANcLf3wUAAAAAAAAAAAAA10B+FwAAAAAAAAAAAABcA/ld AAAAAAAAAAAAAHAN5HcBAAAAAAAAAAAAwDWQ3wUAAAAAAAAAAAAA10B+t1h+es6OuPXEAQAAAAAA AAAAAMANS0sIcs5kbJ63Yk/8lrCJd4rIsZ/2Lx760vOpnzmXxk9aYDR5RL06ZuMb/03bf8JaWHT+ YGp+Rk73RwZ1n3SXiFzIzH2zw8SRXzy7cup7eWlZgTc3f3DFDBEpyitY+8KifSt/ctjtHe7u0f/l h7RuOhE5mXRo1VPvp+0/ISKBnZo/sPwFnbuBVgAAAAAAAAAAAABQpXqd3808nrbpza8PJfx668MD Jm+fV2WedednP4xb+3JIz5vOHUydf+vj7Qbd5hPsLyL56Tlb31k1fv0/jD6e+Rk5zsprnv0452zm 40nzHeL4fPirlle/7PfSAyKyetoHHe/pFf7ooKL8wtSdh0nuAgAAAAAAAAAAAKim+vt+ZofdseC2 J1J/PRyz4fXwRwdVJ88a1KVlSM+bRMSvVWOvxg3S9h8vWdR76jCjj6eIOP+12+y/LE64/bn79J5u Bk9jt7GRu7/e7Kzpaw7c++3WI5v36oz64PB2dEEAAAAAAAAAAAAA1VR/f7+rUqum/PafLf/+ZmGP qaGj7gibeKfR1/PSag67o2TaK7BBybRao7YV2UpmTU0bll0r90yGrdC6aMhLKpVKROw2e8mioQsm /fTed/GT5qvV6n4vPdB+cBi9EAAAAAAAAAAAAEB11Ov3M3s09O730gO9pt697Z3VC3s+1WV0hPLc fRqdxmYtTdxmp553L8n7qqq95QAfjV47bu3L/m2blo+4QdfjsSE9HhtyYN0vS0a9Pmnzv/xaB9ER AQAAAAAAAAAAAFRJTQjcTB59nxk+efs8v1ZBIuLbvJHdatu36ieHw3H4x13JG3bVJqwaddeH+q17 YVHmsbPWgqL05NMnkw45F+1fs6Mw54KI+LVsrNZo7DabiCQtTtgwd5ndals29s3UnYdTNu75euJ8 mgYAAAAAAAAAAABAWVpC4KT3cOs0vJeIGH08h86ftGrq+8vGvmnu1aHH5CH2Mj/nrb4Bc8b98MqS D/u/kHM6w9SsYd/pw4NCW4rIjrj1yye85bA73P28ImeP9m/XTERO7T6SnnzaeqEoeePujvf0zE/P Ttm42261qbUamgYAAAAAAAAAAACAE/ndCnQedXvnUbeXK+z91LCys0/sWuiccDN5zMr9uoLIuuki Z42OnDW6XPnIJc9eWnnga+OcE9MOfuicCB0dQUMAAAAAAAAAAAAAKIv3MwMAAAAAAAAAAACAayC/ CwAAAAAAAAAAAACugfwuAAAAAAAAAAAAALgG8rsAAAAAAAAAAAAA4BrI7wIAAAAAAAAAAACAa9AS grpH0XkThArC4h5ayxW9AogeAAAuxKwxKtomxAFw/eca/woKjW2JDEr7g7ePiJgNt4rYRUTxbkpM AJR+JlS5ld4u3FrX4N7iFlKbO5JnwxpVUHTdRcSsNYmIou9AewEAgBpRRUZG1nrlmJiY6OjoSiok JCRERUURZQAAAAAAAAAAAAB1T2JiYnh4uKMqKpUqMTExIiKikk3Fx8cPnzm3yj3Wr9/vzj7ymiVj Yx0+QcWnd2zIMxF7D5WUpLglmE2pla+V0ODF+tD6EWmxpYEydIz1GlHcK44dtmSmVxGijl25PQEA cIN+wDv2hiUzsaLh+78EB7ixrtb8U3FntpuLcqq/SkKrkbOPrrFkHriosNNjBBPFT3n7Py1+8s35 2Kw3cfMH6vIgkvONpXBfjVZJsWWbNaWvgkjJ3ma2V3sAav5Zje9Ih0ZXvdmWi0vr/3HRT24S2q6n lQEAQPXVu/czKz6968Vpens6J+IKq3jHi6VwTz1qfUPHistNvpWFqKrsLwAAuM5DvKnnJcN3ImEB btAL1jO4mjUtOUf/vMZbl7m6DxBDXNSjvEJEJC5HFFNPbv5AHb/e9e1qVD8uf7uiLx1B4mSb4tG9 WgNQ7tbajnFhlY5r2y65g/UtXpT9I+0LAABqRE0IAAAAAAAAAAAAAMAlkN8FAAAAAAAAAAAAANdA fhcAAAAAAAAAAAAAXAP5XQAAAAAAAAAAAABwDeR3AQAAAAAAAAAAAMA1kN8tlp+Rt2PJduIAAAAA AAAAAAAA4IalJQQ5aTmb39+wZ/XusDE9RORY0tHFD370/K6ZzqXxzyw3ertFvXDXxoWWtENnrYXW 8ynn8jPzu4/p0X1sTxG5kJX/Zp+5I999YOWMFXnncgNvCnrwk3EiUpRftPaV1fvW73HYHR3u7NT/ uTu1Bq2InNx1YtWLK9IOp4lIYPvGD3w0RmfU0QoAAAAAAAAAAAAAqlSv87uZqZmb3vnx0MYDtz7Q ffK6J6vMs+5c/su4L2NCbmt+Ljltfv832/W/yaeJr4jkZ+Rtjds8fulEo8mYn5nvrLxm9sqcczmP JzztEMfnEz6xzEvoNz1KRFa/9E3HQbeEj+tZdKEodfdJkrsAAAAAAAAAAAAAqqn+vp/ZYXcsiHor dc+JmBWPho/rWZ08a9DNTUJuay4ifs0bejXyTjt0tmRR74mK0WQUEee/dpv9l69+vn1KhN5Db/Aw dBt52+7Vvzlr+gb77V2758j2FJ2bLrhbCF0QAAAAAAAAAAAAQDXV39/vqtSqKZant3ywaeFdb4fe 0zXsoXCjj/ul1Rx2R8m0V4B3ybRao7YV2UpmTUGmsmvlpuXYimyLRn+kUomI2MtsZOicYT8t3ho/ fZlao+43Pap9/w70QgAAAAAAAAAAAADVUa/fz+zRwKPf9KheE/tsW7Rl4aB/dxneTZkSodFqbNbS xG326Sx3H2ONt9zQU6PTjPsyxr9VQPmI67U9xvfqMb7XAcsfSx75dNLqKX7NG9IRAQAAAAAAAAAA AFRJTQjcvI19H7tj8ron/Vo0FBHf4AZ2q33f+t8dDsfhzYeStxyqTVg16q4jbl336neZJzOshdb0 o+dP7jrhXLT/+32FuYUi4mduqNao7Va7iCR99fOGBT/YrfZlU5ak7j6Rsu3w19OW0TQAAAAAAAAA AAAAytISAie9u77T4FtExGgyDp0zbNWMFcumLDGHNe8xoZczBVtTA2IH/fDW/z4c/m7O2WxTE5++ k28P6tRERHYs2b586lKH3eHu6x757ED/1gEicmrvqfRj560F1uSthzsOujk/Iy9l62G71a7WkoAH AAAAAAAAAAAAUIz8bgU639O18z1dyxX2fkQpO/vEj9OcE27exlkpcyqIrEEb+cyAyGcGlCsf+d7o SysPnDHIOTFt2/POidDh3WgIAAAAAAAAAAAAAGXx81AAAAAAAAAAAAAAcA3kdwEAAAAAAAAAAADA NZDfBQAAAAAAAAAAAADXQH4XAAAAAAAAAAAAAFwD+V0AAAAAAAAAAAAAcA3kd+sgxduzZNps0FdR Wd+hvoTF0LGWK5p86VQAALjYuG/qSRCAG5BZra/BhewZXNHV3ZoworQ/eIUUdy23Dtz8AZQfdDQN Lp71q+69xaN7be5InmE1qqB49a1wGgAAoDpUkZGRtV45JiYmOjq6kgoJCQlRUVFEGQAAAAAAAAAA AEDdk5iYGB4e7qiKSqVKTEyMiIioZFPx8fHDZ86tco/aehXf2UfXWjIP1u1zTOj0aMT5l0pmU2xJ Zo1b9VdX9OGxnlPqZGQich4pPU1t11i3CcW94sRpS1ZOLTaoeHvGNmnEbQsAgOv8Ae/EEUtWRgUf itrfQnCAG+tqTd1oyT5Ss6ebNg/MPvu9JffwRYXmCQSzvvelM4mW3KMikpKfadabRCSlwf/MelOK bZtZ5ZbgnUCIgLpzvWfvshScFhEpzBTbhRqtm2LINet8SmfT7WZrQLUHoDtqeqgRB7+o4nisp8wG dxFJcdts1jVIydeaNYGlewx6iuYGAADVp61vJ6yYWtXhsyvJXpe8dTkuP0nRh9PRi8Oi7VpxeZk3 WgMAANcb4r19yn8oqijjC+D6X61/vk23Wk83fyaDFY8WpYUX53pRf/uSR7CIxOXvcr7HO05E0XaO s20jMkAdvN4NjUTEUpipuIfUaMU42++KvlnprBxRvKqV37Vkn6nloVb0lwVKDyDjlOLRUkTibJsV Q+e4/N2KsW3xHvP/oKEBAECN8Pd3AQAAAAAAAAAAAMA1kCjc2kIAACAASURBVN8FAAAAAAAAAAAA ANdAfhcAAAAAAAAAAAAAXAP5XQAAAAAAAAAAAABwDeR3AQAAAAAAAAAAAMA1kN8tlp+RvWPJGuIA AAAAAAAAAAAA4IalJQQ5aemb31u+Z/WmsDFDRORY0r7Fo194fvdy59L46W8avT2j/v7wxv98mXb4 uLWw6HzyyfzM7O5jo7uPHSoiF7Jy3uw9duS7M1bOWJB3LjOwQ4sHP/mHiBTlF6x95f1967Y47I4O d/bu//x4rUEvIid3HVg14z9ph4+LSGD7Fg98PEtnNNAKAAAAAAAAAAAAAKpUr/O7mSfPbnrnq0Mb f7l19KDJ69+tMs+6c9n/xi2dG3Jbx3PJJ+ZH/q1d/3CfJgEikp+RvTVuxfiv/mk0eeZn5jgrr5n9 bk5axuPff+AQ+Xz8TMu8z/pNHysiq2e+03Fw3/Bx0UUXClN3HyC5CwAAAAAAAAAAAKCa6u/7mR12 x4KoR1L3HIr5Zl74uOjq5FmDbm4dcltHEfFr3sSrkV/awWMli3o/cp/R5Ckizn/tNvsvS9fd/sQo vYfR4GHsNnLg7lUbnTV9gwP3rk08sn2Pzk0f3K0DXRAAAAAAAAAAAABANdXf3++q1Koplg+3fPjf hXdODr23X9hDQ4w+XpdWczgcJdNeAQ1KptUatc1qLZk1BfmXXSs3Ld1WZF30wAsqlUpE7HZbyaKh rz3x0yffxk//l1qt6Td9TPuoHvRCAAAAAAAAAAAAANVRr9/P7OFn6jd9bK+Jw7ct+nbhXZO73Ndf mTJKo9WUTdxmnz7nbvoz76tSVXfLDX01Ou24pa/7twouH3G9rseEYT0mDDtg2b5k4suTVv/Hr0UT OiIAAAAAAAAAAACAKqkJgZu3Z9/HRk5e/65f86Yi4hvc2G617Vu/1eFwHN68M3nzr7UJq0bd9f4B 6175MPPkGWthUfrR1JO7DjgX7f/+p8LcfBHxMzdRazR2m01Ekpau2zB/id1qW/b4a6m7D6Zs3fX1 tH/RNAAAAAAAAAAAAADK0hICJ727W6chfUXEaPIcOmfKqhkLlj0+xxzWqceEYXarrRYbHBAb88Nb n31479M5Z9NNTQL6Tr4/qFNrEdmxZM3yJ+c67A53X6/IZ8f5tw4WkVP7ktOPploLCpO3/tZxUJ/8 jOyULb/ZrTa1VkPTAAAAAAAAAAAAAHAiv1uBzvdGdr43slxh70kjys4+seFj54Sbt+esI2sqiKxB H/nM2MhnxpYrH/nejEsrD5zxN+fEtJ8+c06E3tefhgAAAAAAAAAAAABQFu9nBgAAAAAAAAAAAADX QH4XAAAAAAAAAAAAAFwD+V0AAAAAAAAAAAAAcA3kdwEAAAAAAAAAAADANZDfBQAAAAAAAAAAAADX oCUEdYliaiUiir5DSYlZE0BYioOj7UoQAACoL+O+tw9BAFz+QvYKqaDQowWRQekDr8FUPGFvLiJm daCi7UxYABTfGVTeF81qTNUegGrzZZriGVzF8ej/vGWpQkTErCs9HsXYlvYCAAA1ooqMjKz1yjEx MdHR0ZVUSEhIiIqKIsoAAAAAAAAAAAAA6p7ExMTw8HBHVVQqVWJiYkRERCWbio+PHz5zbpV7rF+/ 352d+YXlwq66fY4JjV6JyNxb69UVnXese5M6GZmIs1+UzmgKRGVV9C1iPe6Ynf2lpWD3tT+elKxg s72LiCievrGB/AoBAIDafsA7etCSeb6CD0WdbiM4wI11tR6fY8naWIMPzIZGZu8eirabJf/URVd3 0ACCWd/7Us43lsJ9lT0XN5hOlIA6cr2f3mnJOSUiKQ43s7FRjdZNUc0z6wy122+C/7zKK0SkLy3e y/G3zRqT4t3bUlTFV44p+mNmz6YVL0rrYi686Bc4irdPbJMQOgAAALicevd+ZsWtUx0+u5LstaLz pnNX0PqG4lflWKwHFH2LMuUdr/3BxEmW4ulLowAAcAWGeFOD8h+KKsr4Arj+V6t37xp8YC7YX7yW MbD06r4414v625f07S77XFxp6heA613vnoEiEpedoRhr9mVX3AVRDKG12KOlIKl6N6JmIhJXZnRT PLpXdjxFxxRdxRXipJA/LwIAAGpETQgAAAAAAAAAAAAAwCWQ3wUAAAAAAAAAAAAA10B+FwAAAAAA AAAAAABcA/ldAAAAAAAAAAAAAHAN5HcBAAAAAAAAAAAAwDWQ3y2Wn56z45MfiAMAAAAAAAAAAACA G5aWEOScydw8f9WeFdvC/hYlIse2H1x8z5znj37gXBr/2HtGk0fUy6M2vvlN2oGT1kLr+UOn8jNy u/8tqvvEASJyITPvzc5PjPz0yZVPx+WdywrsFPLg8mdFpCi/YG3s5/tW7XA47B2GhvV/6f+0bjoR ObkzedX0uLQDqSIS2DH4gaXTdEYDrQAAAAAAAAAAAACgSvU6v5t54tymed8e+mHXreMjJ299vco8 684vNo5bHRsS3u7coVPzw6e3u6ubT7OGIpKfnrP13bXjv5th9PHIz8h1Vl7z/Kc5Z7Me//mfDod8 PvKfltf/22/GCBFZ/eyijsPCwycOKLpQmLozheQuAAAAAAAAAAAAgGqqv+9ndtgdC3o8k/pbSkzC 7PCJA6qTZw0KbRES3k5E/FoGegX6pu0/WbKo9xODjT4eIuL8126z//LZj7c/M0zv4WbwdOv20B27 47c6a/qaG+39dvuRrX/o3PTB3dvQBQEAAAAAAAAAAABUU/39/a5KrZqy419b/vPdwj7Ph47sExbT 3+jreWk1h91RMu3VyKdkWq1R24psJbOmJn5l18o9m2krtC4a9qpKpRIRu81esmjovAk/fbg+fvJ7 ao2634wR7e/qRi8EAAAAAAAAAAAAUB31+v3MHg29+80Y0WvK4G3vrV3Y94Uuo/oqzwzT6DRlE7fZ p9LdS/K+qmpv2d+k0WvHrYz1b9ukfMQNuh6T7uwx6c4D63cueXDepI2v+LVqTEcEAAAAAAAAAAAA UCU1IXAzufeddvfkra8786y+5gC7zbbvux0Oh+Pwhj3JG3+vTVg16q6jlXUvfp55PM1aUJSecubk zmTnov1rkwpzL4iIX8vGaq3abrWLSNJnP254Y4Xdalv28ILUX5NTEvd+/ei7NA0AAAAAAAAAAACA srSEwEnvbuh0T7iIGH08hs6bsOrpuGXj55t7te8xaaAzBVtTA/4x+ofXln84cFbOmUxTU7++T0cH dW4uIjs++WH5xIUOu929gVfkzJH+7ZqIyKndR9NTzlgLipI3/t7x7u756Tkpm363W21qrYamAQAA AAAAAAAAAOBEfrcCnUf26TyyT7nC3k8OKTv7RNKbzgk3k/usjM8riKybLvLF+yNfvL9c+cjPpl5a eeCro50T0/YtcE6EjupLQwAAAAAAAAAAAAAoi/czAwAAAAAAAAAAAIBrIL8LAAAAAAAAAAAAAK6B /C4AAAAAAAAAAAAAuAbyuwAAAAAAAAAAAADgGsjvAgAAAAAAAAAAAIBrIL9bpyhunURE0XkTigqC Ywi+oY7HrGlEowAAcLXGfVMDggC4OrMhRDG0KH91GwOJDKoYAvTtCAJQBwcFvVeNV9HcVMvbiCG0 GreaZsV78biluMSje1Wn0PTyh9qMJgYAADWiioyMrPXKMTEx0dHRlVRISEiIiooiygAAAAAAAAAA AADqnsTExPDwcEdVVCpVYmJiREREJZuKj48fPnNulXvUXsezjcgaIiIJ3t9csz3OPvKaJWNj3e5D CbesjMiZWuvVFW3nWLcH62RkItJ3ls7Y/hBHWvEpG1tYCg9cxwNT9K1jPQdy+wMAoJYf8E6+bMn+ sYIPRW3XExzgxrpa85ZZivbUdK2Us27mwtYXXd03DSOY9b0vZX9pKdhd2XNxw9lECRCR2ec2WfKO XKWNJzQbdS1O4c+v8lIM6WafNjUbQc4dNWub1PLs2n5SeYWIvYfKzirenpacVVUcT2GW2VDxO2ZS 9Elmz4tKFEPnWK+HRGT2mURL7lERUTyCYwN60qsBAICTtr6dsOLTuw6fXUn2WtF2pnNX0Pp6n+JA 5YtiaCUiloKDIqLoWxMcAABceIj36lv+Q1FFGV8A1/9q1XWo6SpxckjxLn2hpSXrOGGEiCiGjpd9 Lq409QvUu4vFPeRqbPbqpY0rOAWf3iISl/+N4nZbDUeQo4pXWG3OLntbtQ7M2/OSD6XNKzuec78q XuaKFxUkKYbLfpWneATTkwEAQDn8/V0AAAAAAAAAAAAAcA3kdwEAAAAAAAAAAADANZDfBQAAAAAA AAAAAADXQH4XAAAAAAAAAAAAAFwD+V0AAAAAAAAAAAAAcA3kd4vlZ+TtWLKdOAAAAAAAAAAAAAC4 YWkJQU5azub3N+xZvTtsTA8ROZZ0dPGDHz2/a6Zzafwzy43eblEv3LVxoSXt0FlrofV8yrn8zPzu Y3p0H9tTRC5k5b/ZZ+7Idx9YOWNF3rncwJuCHvxknIgU5RetfWX1vvV7HHZHhzs79X/uTq1BKyIn d51Y9eKKtMNpIhLYvvEDH43RGXW0AgAAAAAAAAAAAIAq1ev8bmZq5qZ3fjy08cCtD3SfvO7JKvOs O5f/Mu7LmJDbmp9LTpvf/812/W/yaeIrIvkZeVvjNo9fOtFoMuZn5jsrr5m9MudczuMJTzvE8fmE TyzzEvpNjxKR1S9903HQLeHjehZdKErdfZLkLgAAAAAAAAAAAIBqqr/vZ3bYHQui3krdcyJmxaPh 43pWJ88adHOTkNuai4hf84ZejbzTDp0tWdR7omI0GUXE+a/dZv/lq59vnxKh99AbPAzdRt62e/Vv zpq+wX571+45sj1F56YL7hZCFwQAAAAAAAAAAABQTfX397sqtWqK5ektH2xaeNfbofd0DXso3Ojj fmk1h91RMu0V4F0yrdaobUW2kllTkKnsWrlpObYi26LRH6lUIiL2MhsZOmfYT4u3xk9fptao+02P at+/A70QAAAAAAAAAAAAQHXU6/czezTw6Dc9qtfEPtsWbVk46N9dhndTpkRotBqbtTRxm306y93H WOMtN/TU6DTjvozxbxVQPuJ6bY/xvXqM73XA8seSRz6dtHqKX/OGdEQAAAAAAAAAAAAAVVITAjdv Y9/H7pi87km/Fg1FxDe4gd1q37f+d4fDcXjzoeQth2oTVo2664hb1736XebJDGuhNf3o+ZO7TjgX 7f9+X2FuoYj4mRuqNWq71S4iSV/9vGHBD3arfdmUJam7T6RsO/z1tGU0DQAAAAAAAAAAAICytITA Se+u7zT4FhExmoxD5wxbNWPFsilLzGHNe0zo5UzB1tSA2EE/vPW/D4e/m3M229TEp+/k24M6NRGR HUu2L5+61GF3uPu6Rz470L91gIic2nsq/dh5a4E1eevhjoNuzs/IS9l62G61q7Uk4AEAAAAAAAAA AAAUI79bgc73dO18T9dyhb0fUcrOPvHjNOeEm7dxVsqcCiJr0EY+MyDymQHlyke+N/rSygNnDHJO TNv2vHMidHg3GgIAAAAAAAAAAABAWfw8FAAAAAAAAAAAAABcA/ldAAAAAAAAAAAAAHAN5HcBAAAA AAAAAAAAwDWQ3wUAAAAAAAAAAAAA10B+FwAAAAAAAAAAAABcg/Y67lvR9aIBrnBIfXqLiKLtTCgq CI7ep4JCQysRO8EBAKCujftefQkCUDeYNQEXXd3eTYkJqhgCDB0JAnDVLzT3kGs9HLjVeI9mYy2H DMUrrOo63p6XrNW8iuMx+F52UUXfWQEAAFRCFRkZWeuVY2JioqOjK6mQkJAQFRVFlAEAAAAAAAAA AADUPYmJieHh4Y6qqFSqxMTEiIiISjYVHx8/fObcKvd4PX+/G5E1pGQ65VhXszo4of3Yq7rH2ScX WbJ31uEOlGI0mU2dUs5bzBrv2m1Bce8U2/D+uhST2cfnWLI2ikhKzlGz4c//2bNBoBi9ik85d4Al 4+B1PELFp1VsCP8bBAAAtR3r8+ItRXsvLU8wPUdwgBvraj261pJZ4w/eKbY8s3uji67uNg+69N2p /AmetZk1/jV7gvBoGRvQr37f+U9YirIqqZBgas8VB4jI7LQllrxdV2njCcH/uBancO5jS16SiKTo j5s9GtVsBDm31awOquXZNVtVeYWIXa+X312Rj9mtYWXHY1hv9q743pWSlWl2tLzoVu8ZGhs4RkRm p+62ZJ/5cwS8o5ZhzPzCcuGinqC4dYo1jeQaAQDAdWmv7+5LXtEcJ/mKd/NrsUevuvzu4jhrsqJr GieiuHeic5c2undvEYnL+cz5/moRscgBxdBZRCwFO0VE8WlFlAAAcOGxXlf+e/zq5FQAXIer1VTj D95x539TvMylV3d2ikvfnSo4QdmteLSkb9Q8tpf9f5orT/0C9e5iuTpfEF29tHFFpxAqInHW44q2 a81GENmquPeu1dltrN6g1u6i3aWdqvyPCMQViGLofplDXat4hl52R14BIlKS5a1lGN34qhAAgDpF TQgAAAAAAAAAAAAAwCWQ3wUAAAAAAAAAAAAA10B+FwAAAAAAAAAAAABcA/ldAAAAAAAAAAAAAHAN 5HcBAAAAAAAAAAAAwDWQ3y2Wn5G74/MfiQMAAAAAAAAAAACAG5aWEOSczdr87nd7Vv0cNq6fiBz7 5dDi//vn8/sWOpfGP/2R0ds9asb9G+evSjuUai20nk8+nZ+R2318ZPfxkSJyISvvzfBpIz94bOXf P807lxXYIeTBz54SkaL8wrWzv9y39heH3dFhULf+fx+hNehE5ORvKav+/mnaoVQRCbwp+IFPntQZ 9bQCAAAAAAAAAAAAgCrV6/xu5snzm/6z+tCG3bc+eMfk7/9RZZ5151eJ45Y/FxLW5lzy6fm3v9Au qotPUz8Ryc/I3frx/8b/9zmjySM/M9dZec3ML3LOZT2+4VWHQz4fO8/y5op+z94rIqtnfNZxyG3h E/oXXShM3XWE5C4AAAAAAAAAAACAaqq/72d22B0LIv6euvtIzKoXwyf0r06eNegWc0hYGxHxa97I K9An7eDJkkW9J91lNHmIiPNfu83+y5cbb39yqN7DzeDp1m1U393fbnfW9A3x37vmlyM/7de56YNv bU0XBAAAAAAAAAAAAFBN9ff3uyq1asqm17a8v3Zh1IzQ4b3CxvYz+nhcWs1hd5RMewX4lEyr1Wqb 1VYyawpqUHat3LQsW5F10f/9U6USEbHbSjcydO64nxYlxD/1kVqj7vfsve0HdKEXAgAAAAAAAAAA AKiOev1+Zg8/r37P3ttr0p3bPv7fwgEvdhnRW3lyqEarKZu4zT6d4V6S93Vma6uz5YbeGp123LJn /VsHlY+4Xtvj4ageD0cd+P63JTHzJ62b5dcikI4IAAAAAAAAAAAAoEpqQuDm7d53ypDJ3//DmWf1 DfG3W+371iU5HI7DiXuTE/fWJqwaddeRfda9vDTzxDlroTX9yNmTv6U4F+1P+LUw94KI+LVopNZq 7Fa7iCR9uXHD29/arbZlk99J3XUkZcu+r6d+SNMAAAAAAAAAAAAAKEtLCJz07oZOQ8NExGjyGDp3 zKoXFi979B1z97Y9YqLsZX7OW30DZo784V/xHw57JedMpqmJX98pg4NuNovIjs9/XP74ew67w93X M/L54f5tgkTk1N5j6UfOWguKkjfv6zj4tvyM3JQt++xWm1qroWkAAAAAAAAAAAAAOJHfrUDn4b06 D+9VrrD35LvKzj6x+XXnhJu3+6wTcRVE1qCLfG545HPDy5WP/PDxSysPnPl/zolpv7zlnAgd0ZuG AAAAAAAAAAAAAFAW72cGAAAAAAAAAAAAANdAfhcAAAAAAAAAAAAAXAP5XQAAAAAAAAAAAABwDeR3 AQAAAAAAAAAAAMA1kN8FAAAAAAAAAAAAANdwPfO7iq5XybTZQ0Nj/HVmQ2MRMbuFEIoKgmOsICyK oTORAQCg7lF07QkCUEc+xrv5XXR1e5nr3HOKiVa+0kOAN0EArvqF5t7pWt8tdY1rPoK0qu3Z9a66 jqld+d0Z3Ko4HsNl705mbdOq9+gVQMcDAAAlVJGRkbVeOSYmJjo6upIKCQkJUVFRRBkAAAAAAAAA AABA3ZOYmBgeHu6oikqlSkxMjIiIqGRT8fHxw2fOrXKP2mt5erPzT1mKchK8i//vuYj0D67gxhN8 J1R9ANlrLQUH63AHSinQmlV/6ce7ijHQcrwwyWNHqMdF/1Oh4hYSa+rlijGZnb3IUrCzfGluKylq UHxqfmcs+Vuu+3EqxvBY3yncBAEAqPFYnxVnKUiq4MOh/zyCA9xYV+uFzRbr0Svw6Od5/7U54Iiz X1z0tJXxo9meV91HM22W6DzNhuCqazocZm2j2kej4RP1sS+dnm/J2VZZWFou5ooDRGT2sTcsmYlX aeOKqWdss6eu+inkzbcUbavduinZyWZ109qtmxC0REQi0p4UkRRtiFkbWG4Aijj4RfndSaJZX9kr GVI0wWZjl4oXndeYiy5aV/H2jG3SSERmH/3Gkrmv+Kg6Ta9gtDr/UtWhOJthLmx8cfO1iw0ewjUC AIDr0l7f3Sv6FldkO5bCw9Xdo6FVHW7OuIIUxRj417fjq9Updeglz5e+hNmSm6N4BouIJeeoiCjG cO4FAAC48lgfWn6sryjjC+D6X63a4L+4hSuSIa7J7aX0gONEFK+w6j6a5a8XEcWtUzVq/qYY2tQy GgX7629f8rxsW1Se+gXq3cVi6unyp6ALq92KcZJcuy98yv4MQDF0jrOlK9rgSwcg5zdLpbvLSaz8 tdVxBZmKvsFlDjVT8fa8fCO2E5GSLG8FFfQdqgpF4qUvlAYAAC5NTQgAAAAAAAAAAAAAwCWQ3wUA AAAAAAAAAAAA10B+FwAAAAAAAAAAAABcA/ldAAAAAAAAAAAAAHAN9Te/e3bf0X8E3X3+8Enn7MGE HW/cNLowNz9h9qIZ3gPSDhx3lr91y9i3u05wTs/wHnDqt0PV3P5bt4yd4T3gRdPA11qM+GLUrIyj p+ltAAAAAAAAAAAAAP6K+pvf9W8X3P2R6JVPLRAR64XClVPnD3rjUb2HUUS8g/yO/7xPRPLOZVkL i2q9i5Gfz5iZvvpvlrftRbavH3mD3gYAAAAAAAAAAADgr6jX72fuO23k+eTUPV9v/HHuF4E3t2w7 sLuzPKC92ZnfPf7zvsadWv6VXajUKp/gRl1GR5X8IHjTvGXzQsf/o8mwN24anfjv5XRBAAAAAAAA AAAAANWkrdcn76Yf/OZjy2Ned9jskxL/U1Ie1LnVwYRfROTY9r1Boa3PHTpR6104HI7M42d3LPqu ee9bnCVNurS5aUjPBs0bH9m8++O7prcf1KNB88Z0RAAAAAAAAAAAAABV0tbz8w8J7+CwOwLah3g1 9isp9PD3KcjJs14oPL79j55T7tm1zFK7jS996BW1Vu3h79t2QFjEjIechc1731y86x4dTU0Dzief JL8LAAAAAAAAAAAAoDrqe353w7++bNH3luM/79/77eb2g3uUlDcJbXMi6UD6kVMNWzWt9cbvW/R8 +0E9yhXuWmZJ+nR90YUClVqVc+a8w+6gFwIAAAAAAAAAAACojnqd3z1/+OT2D1c9umXhsW17Vz+z sGVEF727m3NRs7D2Oz9fH9Au+Mru8dj2fSsmv/W3H9/2bxssInPbjqILAgAAAAAAAAAAAKgmdX0+ +ZVTF/R5aoRngG/7wT38Wjb54ZVPSxYFh93029Lvm4XdVG6VoguFhbn5zv9q8dPb/PNZWqPes1ED h8Pxy+K1OafOO8uTPl234Z9L7FbbsvGvpf56MGXTrq8n/YveCQAAAAAAAAAAAKCs+vv73d3/3ZCV mhYWM8Q5O3DOxHeVxzqP7OecbdShuUqlDr4kv/t+vydLph9OeKvZre1qtNNWEV1b9+v21s1jtEZD 6KjIDnf3dpaf2p2cnpJqLShM3vRbx2F98tOzUzb+Zrfa1FoNfRQAAAAAAAAAAACAU/3N73Yc1qfj sD4ls406mGec/dY54Sz5+6l458TjOz5wTszKWlP97T/x68eXFqq1mnven35p+cA5f3NOTPvjM+dE 6AP96Z0AAAAAAAAAAAAAytISgr8ibvCz5w+fvLR8zMrXGjRvTHwAAAAAAAAAAAAAXEHkd/+SMd/O IQgAAAAAAAAAAAAArg01IQAAAAAAAAAAAAAAl0B+FwAAAAAAAAAAAABcA/ldAAAAAAAAAAAAAHAN 1zq/q+g8S6f1La7YZq/cplyaWeN3BYJpamCWgHoSMcUzmG4DAEAdHOINoQQBqJtXt/bafYBXDBft y6w11eTRrJFZ17h6NX3+whG2oUtU9JQXRhAAiIhZX8shQzGG/3mb7SwiZpX+0gHo0i+UzFWNUGZd o8uPBcaqj8rUruJyfYdqjDUB9AcAAOoYVWRkZK1XjomJiY6OrqRCQkJCVFQUUQYAAAAAAAAAAABQ 9yQmJoaHhzuqolKpEhMTIyIiKtlUfHz88Jlzq9yj9lqe3uxTcZacJBFRPENjA8dEHEq8ghtPaNmz 6gPIe9tStJV+VrkU6WLWNC1XqGiDY916iEjEodEVBX/xDXs6s/NOWIqyypeeWyJ5u4pPLWSCpWD/ dT9OxdAm1utOuh8AADUe6y98YLHuqHqo1XaNdZtAuIDrebVmvWIp2HAFHv3811ybA47IGvKXHqyK uptVd1VdrfBls8atlrtwdDbrIupwn0nw7XyZO/8qi7Wyh7gEzye54oCIXxekFG4yG+1XafspEm12 a6Z4NowNbHcVx47cLZbCY7W9Sf5i1phqs2Lez2aHTjGGW6Tv5W5KEclf1HizhoNmz+p+E6vo2sca o0VkdtYeS8GZP0fA2yto6MxXq951Woa5MPCi7Xu3iW1yF5cJAACuS3uN96d4hl482/CKbNaSk1bt j0fdafXKxRUVVv7Ss3Jvu7LkbLvBz0jReZfvMCKKVjN/iQAAIABJREFUqaeIWDIThdeaAQDg4hRt V4IAuMbVaujzVx/9rkSGuCaPEr3+woOVVdFX/e7luEJRDLV8n3DchYLq7MJFWQozKr3zX/YhrvLU L1Dvbrym8Ku05bjMK/a1XhWnoG9WyyMs+EXRta/NivJz6Sua/7zNXnpTUjxq9v7nOOvB2h2PYggQ kZIsb0WjVfuqzmiL4s13XwAA1ClqQgAAAAAAAAAAAAAALoH8LgAAAAAAAAAAAAC4BvK7AAAAAAAA AAAAAOAayO/e6JY+GDe3ZewMjymFOQVEAwAAAABw9RTm5s2/NeqVJre803tI2fKUTdvmdb5jtn/7 tc+/QpQAAAAA4Poiv3uju++TMX/b8BRxAAAAAABcbXoP98nb1971xkvlys29wqbs/L7TfUMJEQAA AABcd+R3i+Wn5+2I20IcAAAAAAAAAAAAANywtIQg50z25nk/7InfGTaxj4gc+yll8dB3nk+d41wa P+kLo8kY9Wr0xjf+l7b/jLXQev7g2fyMvO6P9Ok+qa+IXMjMf7PDrJFfjF85dVleWk7gzU0eXPGI iBTlFa59YcW+lbscdkeHuzv3f3mI1k0nIieTjq16alna/jMiEtipyQPLY3TuehE5tevE6qeXn96T 6uHvpTzb/+YR3S53wBcy819vEftI4tP+7QKdJfNueTki9q6O94ZebqcAAAAAgDqsKP/CO72H3Dph VPeJD4nIt1NeyDxxatRXH3w15nFfc7P9a75v2KZlwzYtflv6TbexI3tPnWgrsq6Y/OyhhI1Fefne TRsPePXvrSJ612K/p3btXf30zNO/7/fw91OemXzziOiS47HMeXv3f1dlnzzlEdAwesFrLe/oRTMB AAAAwBVRr/O7mcczNr35v0MJf9z6cK/J25915lkrsfOzn8atfSykZ8tzB8/Ov/XVdoM6+QQ3EJH8 9Lyt72wYv/5xo497fkaes/KaZ+NzzmY/nvSCQ+Tz4e9bXl3b76VBIrJ62n873tMl/NG+RflFqTuP OXdakH1h0eCFA+ZE33xf17T9pxcN/o9HgFfL29tWeBhuJmP7wZ12fr49ctZgETn2U0peWm67wZ0q 2SkAAAAAoA7TGd3uW/Tvj6JGtLy95/lDR/5Y8/2kLatVKpWIFObk/u3HFXNCuoT0vO2hFZ982P++ 3lMnanTa9ndFDnj1BaOvz6Z/vbPi0Wee2re5pjstyM5ZNGT0gFf/fvN9Q9L2H1o05EGPAP+Wt/cU kTXPvZy6c/eoL99v0CLk/OEj3k0b00YAAAAAcKXU3/czO+yOBbfNSf31RMyGqeGP9q0yuSsiQV2a hfRsKSJ+rfy9Gpucv8F16j21n9HHXUSc/9pt9l8Wb739uQF6T4PB09BtbPjur5OcNX3Nfnu//e3I 5sM6oy44vIWz8I/v9ng28rrl/m4qtcq/XWCXB7tv/yCxkiMJfSDsty9/dtgdIvLr59s7De+iNWgr 2SkAAAAAoG5r1KFtxMynlz702IrHnrv3o3nuDXz/LG+ndTN4BQY06XKzV+NGOWfSnOXth0S5N/BV qVQ33zc083iqrbCopnv847sEz0b+t9wfrVKr/du17vLg8O0ffCYidpstafFXA19/MeCmNlo3Q8BN bdy8vWggAAAAALhS6u/vd1Vq1ZTf/r7l35aFPeaGjrotbGIfo6/7pdWcOVQnr0Dvkmm1Rm0rspXM mpr6lF0r90y2rdC2aMhClUpExG6zlywauuD+n97bFD/pC7Va1e+lwe0HdxKRrBMZ3kGlW/AKMh1Y v7eSg295R1uHQ5I3HggJb7l7edLo+ImV7xQAAAAAUOd1fXDEDy+/6d+utbnnbSWFGr1ORFRqtc7N oFKpHHa7iNiKrBvfWHj4h00Oh8Nus4mIs7xGsk6c8g4KLH2SbRx4YP2PIpJ7Js1aUOjX0kyLAAAA AMDVUK/fz+zR0LPfS4N6TY3Y9s6GhT3ndhkdpjw3QKPT2Kylidvs1Ez3kryvM3FanS0HeGn0mnFr H/Nv26h8xA3aHo8pPR5TDqz7fcmojydtnubXOsDU1DfrREbpQ/LxDFMz30q2r1KrOo+89dcvfi7K K/II8GrSNbjynQIAAAAA6rz1L74eFNrp/OEjvy6Jv+X+6Epqbn77/b0r141Z+anRx3TuUMq8W26v xe5MzYKyTqSWPsmeSDU1bSIiHv5+Gp02/chxdz9fGgUAAAAArjg1IXAzGfs+EzV5+3N+rQJExLe5 n91q27dqt8PhOPzj/uQNB2oTVo2660Ph615YkXks3VpgTU8+dzLpmHPR/jV7CnMKRMSvZYBao3b+ yrbtwA5553OTPt1mt9pP7zn5yydbu44Jr3wXoaPD9n27a89/k7o8GFb5TpMWb9swd73dal829pPU ncdTNh78euLntDsAAAAA1CUH1v/429IVw957496P5q2e9tL5w0cqqZx3Pt3Dz9fg5VmUf2Hz2+/X bo9tB0bknc9I+nSZ3Wo9veePXz5Z2nXMCBFRa7U3j4j+bvqstAOHrQWF5w6lZB47SQMBAAAAwJWi JQROeg99p+FdRMTo4z50/v2rpn61bOwic69WPSbfbi/zc97qGzAn+odX1nzY/+2c01mmZr59p/cP Cm0mIjvitiyf8KnD7nD384icPdi/XaCI6D0ND307adXUZd9N+9qzkVe/lwa1jmwvIimbDq18Yqnd aheRd/u8oVKrhvx7hPOv9vq18vdvH7jn6539Xx5S+U5P7T6ZnpxmvVCUvPFgx3tC89PzUjYetFvt ai3ZfQAAAACoC3JOn/1vzFN3L3zdw9/Pw9+vx2Pjlz702MMJyy9XP3zSuKUPPfZaSFejr0/krOl7 v13nLE98+/2kxcsuZGXlnUuff2uUiDySuFKj1y196LEzv+/PTj2tUqsPrP8xsFP7ez96S+/h/tA3 n6x6auZ302d5NvLvN3Na68i+zu3c9cZLCS/9c9GQ0Tmnz5qaBA39zxxTsyCaCQAAAACuCPK7Feg8 6rbOo24rV9j7qX5lZ5/YFeuccDMZZ+XOqyCybrrIWYMjZw0uVz5yyYQKdxrQPnDsd5PLFZp7tZz8 83OXO84J/5tSnZ0OfO1u58S0g7OcE6Gjw2hlAAAAAKgzPBv5P5P8c8ls3+mT+06fLCL3Lfq3s+Tx pATnxKycZBHxbhI44X9fldTvcPedzomejz/c8/GHL91+yXYueZJtM3Z1BS+I0nu4D3x9xsDXZ9A0 AAAAAHDF8QtOAAAAAAAAAAAAAHAN5HcBAAAAAAAAAAAAwDWQ3wUAAAAAAAAAAAAA10B+FwAAAAAA AAAAAABcA/ldAAAAAAAAAAAAAHAN1zO/q3g2vAE3BbNaXWmow6oscSGKqSctDgAAALjMB3hDn2u3 L12vv/ZgFVKtatpbar8LbdO63NZ6n1quqG3DlQKIiOLTyuzmd/W2b9ZduMEjYFY3qeWKGv9Lb0Tl bkqKR3CNN6s3/bURMOAyo1X76p8RAACoM1SRkZG1XjkmJiY6OrqSCgkJCVFRUUQZAAAAAAAAAAAA QN2TmJgYHh7uqIpKpUpMTIyIiKhkU/Hx8cNnzq1yj9preXqzs16xFGwQEcXQJ9b7+YjM0Vdw4wmm xVUfwIVVFut++lnlUo58ZVZX8HvohPbfiEjEoTUVLGo54IY9ndnn5ljyNpYvtd4u9ubF08YE0R12 6SZL8F9DvwUA1FuzU3dbss9UWU3xCoht3JFwAdfzas1bZinacyUe/V68UocUcfaH4ocg1QWz3qv8 k1Ge3qxxv+rPX6fVZo2hluu6p5p9bHW4zySY+l6mL22zFB2vdMV7uOKAiN0jrsFeFFN4bLMnruLY cXqnJefU9YphSuYbZr1n8bTO3ezVJSHoqT9HkA9qvDX1SbPBq7qB1baJdbtLRGafXGHJ3ld8c2v7 TEVjWW2+lHN+N8tlAgCA69Je4/2Ve5uWorsyr/a1FG2r/scjWr1ycSKKd/kXkVmyNpXG0DPwokXX 73N2dRvdvfclpyOKZ/GrzCy2a/qStyvO+f9MAABQnyleAQQBcI2rVdfhLz/67bnCh2QIEJG4wqOK ruElT0ZZisF0tWMSJ9mKt2ct17WKoquzr9y0FJ2ttC81vfyKx7nWgOIrxRReF87i4q+hrqW4zNI/ 7BWXl3TJCNKiZlsrOlm7ryUVr3YiUpLlrWgs60NvBwCgvlETAgAAAAAAAAAAAABwCeR3AQAAAAAA AAAAAMA1kN8FAAAAAAAAAAAAANegJQQ3uKUPvHYkcU/2qfN/P7tM7+lGQAAAAAAAl/P97H9fyMq5 c+5zhAIAAAAA6iryuze6+z59JutE2j9bjSEUAAAAAIDKdRp+p91qIw4AAAAAUIfxfuZi+enZOz5e Sxzw/+zdd1hT1xsH8DeDhJBAWEH2EFFQhoADUDQKiLPiFjfaasVRt1artdJaR1tHVWpbq9RZJ+5R qThwI6iouFE2sgkEyPr9EX6ICKgUFcr38/j43HvuyTnnvueE5OTk3rw6KqTRYdcRBwAAAAAAaChE 9rZNHJsjDgAAAAAAAP9huH6XJBm5F1cfuHPgQvvgPkSUeDV+6ydfz0/7S300fOJanpDvv2zc+R/2 ZD5IlpfIsh+lSHMlHsF9PCZ9QkTFuYWrWn4a+NeCI9NDi17kGbs0HXVoCRHJikpOzv8j/vBllVLV qn+Hbt8FsTU5RJQS8+jo9F8yHyQTkbGzzYj9X2tocYko7dbTYzM3pt95xjcSiucNdR4qrq7BxbmF K2xGTry4WuRgqU5Z4zTe5+uRjgO9q6sU3n1USC6uu3AnPK79BE8iSryWuLX/lvmJC8tGxZQDPKGm /7c9zq86m/kwU14iz36cJc2Venzu5fG5JxEV5xWvcvkhcNvwI7MPF2UWGjuZjNo/hohkUtnJr47H H7unUqpa9XXstqQ7WxPPQQAAAAAAqAOpsXf3jJmTn5LmOLBnwIYl6sTdo2fpWZk9OHHOsIWNoZ3N rd1H2owd7D1jnEImPzhp0eOIi7KiYh1z4+7L5jTz8SIilUp1av4PD/++UJSdK0nP1NDSDFgf4jS4 p6yo+OSCH+KP/KNSKlv169bt25lsTS5iDgAAAAAA8FE06rWlvKTMCz/tfRwR2/aznpOjN6jXWWsQ uy1i7N/LrDq0ynqUss492L6Ph66lERFJcwoubzg87vRynq5AmitRZz4x93dJRu7UmxtVKtWOQSGR S3f6LhlNRMdm/uo4sJPn5E9k0tLU2EfqSkvyi8J6L+y+fJzzEHHm/cSw3gv5Rrq2XVtX2QxNXb5D H4/YHWf8QkYTUeLV+KLMfPs+HjVUCu8wKpLzLqw+9/jMo7bj2k++8oUGT+MNo2JHzNhjn1p5WWc9 zlrnsca+l4OuhS4RSXOklzdeGnf8M54uT5orLRsVXx6TZEqmXp+uUql2DN0Wufwf36+7IeYAAAAA APDvmbRuOTX2yMkvV0rzCiqmlxYWTTi3a5lVRysv99EHf9vUbZT3jHEsDbZD767dl83h6Qkv/LTp YPDCmfcjiOhu+N8PT0d9HrWHwWRu8h3R9tMhToN7EtGJecslL7KnxhxRkWrHoMmR34f6fjMNMQcA AAAAAPgoGu/9mVVK1fo2k1Jjn4w/96Pn5E/euLhLRKZuzaw6tCIig2am2iYGmfeTyg95zxrI0xUQ kfp/pUJ548+/uywI5Ag0udq8NmP94/ZfUOfUszG+d+jis4t3NXgcS8+W6sT7x68KjHVdArswmAyR g6XbaL9rvx2voSWuI31v7TqjUqqI6Ob2f5wGd2JzNWqoFN5hVHiuTb2VOv6fiZ4Tvd64uEtEpq5m Vl7WRGRga6BtrJP54MXLUTG9E0+XR0Tq/5UK5Y3t0V3mduXwOVwBt82YtnHhcYg5AAAAAAC8V01a NWdrcrWNRWbujtqmRpKMLHW6wye+Wvq6DAbDeXCvvKQ0RamMiNLj7pu5tWJzOSwNtpm744v4J0Sk VChubD3Q5cuJHIEWV8BvEzQo7gB+3ggAAAAAAOCjabzX7zKYjC/ifr20NjzU8wvXET7tJ/bm6Wm/ nk2lVJZva5vol28zWUyFTF6+KzQ3rPiowoxcRak8rPciBoOISKl4WUjfDVOu/no0/PM1TBbTd8lo hz4eRJSfnKVj+rIEbVODh6eia2i8rY+rSkVPz92y8moVt/f8yENLaq4U3mFU3JhxaX1UqPd612Gu 7cd78vR4VY0K1cvOMtauMCoYCpni5agwE746KiSKUkVYv80MBgMdBAAAAAAAHwaLo0FEDAZTQ5PL YDDUk1yFTH7+x9+fnLmkUqmUckX55Neopd2dA6dKJUUMFvP5lZveM8YRUWFGlqJUFvbJZ5jLAAAA AAAA1AeN+v7MfEOh75LRHWcMvPLL4VDPaW6jfMXzA1ka7IoLtwWp2Vrl677qhdO3KdlIl8Vhjz31 vcjeonLEuRpeUwK8pgQ8PHl917Dvgy+vNbAzE1qI8pMzy/PkJ2UKLYxqKJ/BZLQe1uXmzjOyohJ+ Ez0zd7uaK4V3GRV836+7dZzW6cqvl0I7rXcb4Sae25Wlway4cFuQmq9Vvu7LeOuSjQQsDmvs0c9E LUSIMwAAAAAAfEQX1265dzhizNFNPF2drEfP1rj0VKe36u9/e8+xn9376Jg2afmJj+OA7kTENzJg cTTGngwTtWiK0AEAAAAAAHx0TIRAU5ffed7QydHrDezMiEjPxlgpV8QfuaJSqZ5E3nx69lZtwspi uo/pdmrB5rzEF/ISWc7TtJSYR+pDD45fK5UUE5FBMzMmm6X+onSLHu2KsvJjtp5WyhXpcQk3wv52 D3rDz7K6jvKLP3T5zv4LbqN8a6405s/T51bsVsoVe8f8kBr7OOF83IEJq9HvbxgVQs3Os7tMvjLV oJkhEelZ6ysVyvhj91Qq1ZNzT56ef1LLUTGyzalFJ/KScuUl8pyE7JTYZCKK2RZ97sdIpVy599Pd qTdTEi48PTBpP7oAAAAAAADen6KsXL6BLlebL5MWX1y7pTxdmpP3LCp6wrm/go5v7jRnwv/nMiz3 0QNOLfghLzFVXlKa8zQpJeZODYXHbD1wbuWvSrlib9Cc1Ni7CeevHfj8K8QcAAAAAACgrrARAjUO X9NpUCci4ukK+q6fcnR66N4xK629Hb2mBKiXYN9V9+Wfnvlu5ybfuZL0HKGFqPPcIaauzYgoevPJ feN+UimVWgY6fiFjRA6WRMQRaI4+8u3RGb8cn/2boIme75JRdt3ciSjhQtyRLzYo5Uoi2ug9ncFk fLJusvpXew2amYocLO/sv9Dtu6CaK027/TQnIU1eLHt67pbjgI7SHEnCudtKuYLJZqHf3zAqtDhO A5yJiKfL67sm4Oisw3vH7bbuaOMV3KF2dyTrvrTnmWX/bOr+myRDIjQXdp4lNm1tlnYnLSchR14i f3rhqWM/J2lOUcL5J0q5ksnG1y8AAAAAAOBtHZz0deKVWEl6pkqpTLp6U8/GfPie9dVl9pw0cvfo mcstO/L0hX7fTL93OEKdrlIo2ZrcFU07ExGby3Ho69v/1+9ZGuzuy+acWbphU7dRkvRMoYVJ5zkT TF1bVVd4WtyDnKeJ8uKSp+evOQ7oLs3JSzh/DZNQAAAAAACAuoL13Sq0HuHTeoRPpUTvWYMq7k67 85t6Q1OXv0R6pIrIanL8Qkb7hYyulB64u+qvLRu1tAw6sbRSonVHx8nRG6pr56f/rHibSnus/Ey9 MfvJn+oN1/9f8gvvMCqGubUe5lZ5VEzv/MqoiJ1ZNiqEmkvyvqtqVLD9FnfzW/zKxdk9vu9V1kHx c8s6aIQ7Ag4AAAAAAO+k7/pvXk8cHPaDemNqbNm8dUnhHSLSMWvy6elt5dla9fcnIqVC8as4sM/a r+26dWSyWIWZ2Ru9hzyLut5U7MHW5Potme63ZPrbtKTH8rKpzexHZ8rmOCP7oYMAAAAAAADqCtZ3 AQAAAAAAAICUMnl+cpqelSmTxSKigpSMkoJCXQvTKjPfPxZ5dGYV32pt0VPc68cFCCYAAAAAAMD7 g/VdAAAAAAAAACC2Jrffxu92j5qlkMmIwdDS1w0IDdG3tawyc4ue4hY9xQgaAAAAAADAR5i+IQQA AAAAAAAAQETOQ3o7D+mNOAAAAAAAANRnTIQAAAAAAAAAAAAAAAAAAKBBwPouAAAAAAAAAAAAAAAA AEDD8DHXd8Ua7ethUWAtaFlFhHU6lm0IjCsfei0FPujziNsJQQAAAACAxvLuV6NVnb6XNiqbBLH5 VcyMNDQ+xPxLq/a/mmTN5fyn+1pU2wea45kCQERioSeC8G//RPNcKvzJtRTzWlR4BWn6zqWx9f5V h2rbV/Nahs+FAAAAGiOGn59frR88fvz4gICAGjJERET4+/sjygAAAAAAAAAAAAAAAADw3xMVFeXp 6al6EwaDERUV5ePjU0NR4eHhgxavfGON7A95eiEFf0WWxBGRmOu4UHuIT+KCui1frOW00GBojQ04 GVnyCOOsZgmZdtZsg9fTI5q5E5HP3f1VHGrZ/z0Om/ylkSXnavHACNEJIgrJTo6U5lc+Jomm0pSy 82Xdt9bmN+D+kqVYaxhHWKxT7/rkvzLCI3SaYUgDAMB/W0hyZGT+0ze/UdSxWWgmRrigMfDJ2V3t O2S9wR/z2fosPTJX8u/LiXCxrbNYPd5X9qa6SMuabYrBU+8mOzpbrbm8CMOQymMpcXVk3qWaBonj X4gegE9irw9Qi1jLe6HBvPf42pG1LLLofP2JaoTF0bLw5u17579p0khretvXQbFmu4W6Eyu9141w CKqqo6fWquNcFxoE4WkCAADQcLE/cH1iruOrbyacPngDsNz1BluIxILKd4yJlOS8jKHOK3e7isxP ev+99s63mqm4JCzm6bx2OiQWlt3WZovkvljLtQH3V15K5XBpCMpOUybBeAYAgMZArGODIAC88qTg WFTxDrk08eM3TFfwL0uokxXiV5okMCeiLUXZYh1djJz6ODl99TOElx1X/Y1na176BWhcLwda3jiL OlRppfld7wa/RUpizXa1fq9bwzcaG/TnWgAAAFA7TIQAAAAAAAAAAAAAAAAAAKBBwPouAAAAAAAA AAAAAAAAAEDDgPVdAAAAAAAAAAAAAAAAAICGAeu79d3uMUtXNh+2SKd7aaEU0aifivOly+2n5afm IBQAAAAAAFCzhMtX1nTqEtLM/mTId3VV5trOXe+dOPXGbP/88NOxRd+gCwAAAAAAABo6NkJQzw3e Mj8/OfMHhxEIRb3F1dbsvWKEdhNdhAIAAAAAAGpm7dH+i3NnwmfP/fBVO33SR6lQoAsAAAAAAAAa Oly/W0aaUxAddgJxgFpgMBitPmnDYDIQCgAAAAAA+ChzkrfJJWpu18TBHtECAAAAAABo6HD9Lkky ci7+vO9O+IX2n39CRInX4rf2WzA/aZ/6aPjkVTyhwP+7z87/9FfmwyR5iSz7cYo0t8BjYoDH532J qDhPsso5KHD7oiOz1hdl5hk7NR114DsikklLTn71W/zRSyqlqlVf724h49iaHCJKiX14dNaGzIdJ RGTs1HTEniUaPC4Rpd1+cmxOaPrdBL5IVzwn0Hlw1+oaXJwnWWE3bOK5dSJ7S3XKGtdxPl+NchzQ ubpK4Z3E7Iy6GHoy+0mGBp/TIbi79xc9iejCuhPRf56VvMjX1OF5TPDrEOxfNkKmbX70T1x+Ss6s Wz/qmOr9v4+KVrWZGxg2+cjcbUWZBcZOlqN2zyCioizJsfk7npy7y+KwXQZ5dpkbwNJgIeAAAAAA APWHrLj4l5592o4c7hE0hogOz5ufl5o2fMum59euH1u02K6L+OnFS0U5OW2GD+sw4TMi+rG9V5vh w6J37Gw3elRi9I2U27f7r/rRxsvzXetNu3vv2MKv0+8/4BsaiL+Y4twvQJ1+IXRj9I5dkswXmtra HuPGqislohs7/4pcs1YpV7j078fS0Ki58NTbcXsmT81PTXPs2ydg5XJ14u7gyXoWFg8izhg2szW0 bXrrwME2IwK9gyfWUOmtA+Hn1oXKS0qyExKYbHbbkcN7hXxDRFc2h13atLk4P9/CzbX30m+FpiYY SAAAAAAAAO9Po17fzUt6cWH1nsdnbrT9tPfkqxvV66w1iN1xeuzxlVZejlmPk9e1n2Dfy1PXwoiI pDkFlzceHHfiB56uQJorUWc+8eVGyYvcqdG/q1S0Y+jiyOXbfb8OIqJjc35xHNDZc2KATFqaevOh utKSgqKwgPndl453HtQl80FiWMCXfJGebRfXKpuhKRQ49PaM3RXhtziIiBKvxRdl5dn39qqhUnh7 cQeunlq8e8Av46087IqyClRKlTrdzNW6ZW83fWujZ5cfbO67wqGnq761EREFrA4qLSz51mpipXKk OYWXfzs97vA8ni5fmluoTtw78Vd9K9GMmz/Iikr+CtoQufKgz/z+iDkAAAAAQP2hoak5eMPPfwwY YtuxY3ZCwv2IM8GnjjEYDCJKjbvjETTGd+5syYvMDd16mDo52nh5KkpLRc1sB6xdvan/oEmnTyTF xF7fsfNd13dLCiRhw0Z0X/SVc0DfzEePw4aN5Bsa2np3JCKz1i4te3bXt7J6duXq5sGBDt276VtZ pcfHH/lq0di9f5m5OF8N25p+L77m8k2cHKee/edkyHfS/PyK6aVFRROOHlzm7GbVvu3oHX9u6j9Y vb5bZaUF6emH5s6fdPqknqXFiSXfFmXnqBd3bx88fGnT5jG7tuuYGJ9evnJP8ORPw/dhIAEAAAAA ALw/jff+zCqlar3nxNRbj8efWeM5MeCNi7tEZOpqZ+XlSEQGtmbaxgaZDxLLD3lPH8zTFRCR+n+l Qnlj26kuc4dz+DyugNdmTI+4A+fVOfWsje8djnp26Y4Gj2Pp0UqdeP/EFUETPZchXRlMhsje0m2k /7U/jtbQEtfh3W7t/ke99Hhz52mngWI2V6MOYGGtAAAgAElEQVSGSuHtXd96zivYv1mXVho8jtDc QNfSUJ1u08FevaBr5dFcaK6f/fTFG4vyntqTp8snIvX/BWm5j/6J81nQn81h83T5nWb0vrYlEgEH AAAAAKhvmtjb+8ydvTt48sE5Xw5ct0ZLr+w+PUwWy2VAPyISiAztu/ndPXa8PL++lSWbw2lib69j bFz4IvNda7wfESEQiVz692MwmaLmdm5DB1/bur1sJuLpoW9lRURW7dsJzUyzE54TUfzJv207eZu7 tmYwme1Gj+QK+LU90xZsLlfbyMjMxUXb2FiSmVlDpS8ePdYy0NeztCAiC3e3Fw8fqTNH79zVfswo XXMzJovl+enY59ej89PSMIoAAAAAAADen8Z7/S6DyfgiZtOl9ftDO052HebbfsInPD3t17OVX75J RNrG+uXbTBZTIZOX7wrNRBUfVZiRoyiVh/VboP6Wt1KhKD/U9+dpV38/HD7pJyaL5fv1GIfeXkSU n5ypY2L4siITw4d/X6+h8bZd3FQq1dPzN608HeP2nxu5/9uaK4W3l5eUpW9j9Hr67f1XYnZekEll DCZDkp6vUirfWJTQTP+VklNyNDQ56rVeItIx0SvKlsikpRo83EMbAAAAAKB+cQ8ccubHn0R2dtbt 25UncrS0mOyySbSWnm7W0wT1NktDg8FksrlcIiIGoxZzsfyUVB1j4wpzT+OHZ86WzUTCD8Xs2SMr LmEwGJKMFyqVkogkL15oGxn9f27L5BsY1u40WRoc9exYg8tlMBjl05wqKzW0bVqYmZX56LFhM9un URfNXJzKZjrJKWd+Wn1+/YbyKBVkZFQ8HQAAAAAAAKhbjfr+zHxDoe/XQR2nDbqy8XCo92S3Ed3E 84azNFgVF24LUrO0ytd9GYy3LdlIj8Vhjz22QtTCsnLEuRpek/p7Ter/8O9ru0Z8Gxy1waCZmdDc KD/l5fWg+ckvhBZGNZTPYDJaD/W5+dc/MmkJ30jXzK15zZXC29Mx0ctNrPx1+8Trjw9O2zLh9CJR cxMiWuk4oxYl65rry4pLi7IlWvoCIspLztbSF2BxFwAAAACgHvr7++WmTk7Zz57f3H/ApX8/dWKJ RCKTSjV4PCLKS00TGInqqjqhmVl+6strXvNTUoRmpkSUeCPm4Jx5E44eEtk1I6KV7u3/P5k1TLl1 uzy/NDe3Ds+9ukp1jI195sz69ZN+hk1tjOxb+C9cUNZ4UxPPz8a1GzUCwwYAAAAAAODDYCIEmkJB 5zmBk69uNGhmTkR61iZKhSL+2GWVSvXkbOzT8zdrE1YW031U91MLN+UlZchLZDkJqSmxD9WHHpy8 WlooJSIDWzMmm6WUK4ioRY92RdkFMdv/VsoV6XcSbmw96T66e81VuI7oFn/k4p0D591GdKu50pht p879sEspV+wdtzz15qOEC7cPBP+Efq82sIEdotafTLh4X14iK0jPS7+TSETSnEI2T0NgpKNSqW5s Py9Jz6tFyQIjYQv/1qe/3SeTlhZmFZz76Yj7iE415I/ZceHcqiNKuXLvhF9Tbz1LuHj/wNQ/0EEA AAAAAO/bw8iztw4c7L/6p4HrVh9b9E12QoI6XaVSnV8fqpDL0+7cjT91qmXPHnVVYwvfrkU5OTG7 9yrl8vT4+Bu7drsPG0pE0pwctqamwEikUqlu7NotychQ53fw7/b43Pnn16OVCkX0zl3SvLw6PP3q KiWim/sPDNrw89h9uz9Z/j1PKFQnthkx7OLG31Ju3VbIZJIXL55evIQhBAAAAAAA8F6xEQI1jpam 08DORMTTFfRd+8XRWev3jl1m3dHJa1J/9RLsu+q+dPyZZds3+c+SZOQIzY06zx5q2tqOiKLDTuwb v1KlVGnpa/t9M1Zkb0lEHD5vdPjSo7M3HJ/7i6CJnu/XQXa+bYgoIer2kRnr1A3YKP6CwWR8smaq +ld7DWzNRPZWd8LPdVsyruZK0+Ke5iSkyktKn1645di/kzSnIOH8LaVcwWSz0O+vcxniVVpUcnjW nzkJLzSFWh2n9mzSyqJZF0e7rk6r28xja2q4BnZs1beNOnPq7ef7Jv6mvonZlv4rmWyW/zeD7Xyc qiu8//pxxxfs/Kn1bBaX7dy/fZd5ATW0JO1uYk7CC3mJ7GlUvGNAW2lOYUJUvFKuZLLxtQwAAAAA gPdF8uLF/mkz+v24km9owDc08Br/6e7gKZ8d3E9EOiYmLA5nlae3SqnsMn2ajadHLcrfHTw5I/5B QXo6g8l8eOascUuHgevWcPj80Tu3Hv3q6+NffyMwEvnOm2Mn7kxEzTp3shN3Xu3Via2p6Tp4YKve vdSFNHGw7xXyzZ5JUxSlpa1697Lx8qy50oOz5yVG35C8eKFSKpOiY/SsLIdv/r26zNVVqpDLBYaG W0eMJiImi2Xq5DhkY6jQzNSxT295ccn+6bOyExJ4QqHjJ73f2B4AAAAAAAD4N7C+W4XWw/xaD/Or lOg9Y0jF3Wk3N6s3NIWCJfknqoisJsdvcZDf4qBK6YE7FlVZqZGDVdCR5ZUSrTs4Tb6ysbp2fnrq x7eptMeyCeqN2fe3qzdc/3/JL7yOwWC0G9u13diuFROZbOaA0M9ez2ziZDn5Qsjr6ZpCrSWZVVxr y9Pl91//6Vu2pMe3gWUdF1d2vbXrsI7oIAAAAACA90ogEs2NjS7f7Tx1cuepk9Xb8pKSirtqc2Ku qzfm37tNRHbizuql2eoM3rCu6ilh8+ZBu3dWSmSy2QPWrqoyv1vgELfAIW95Un1XLquhJVPP/qPe WJKUUEOlB2fNNXZwCNz0K5vDKS0qOjB91vUdO31mzySi1oMGtB40AIMHAAAAAADgw8D6LsDHdP9k 7NF5219Pb+Hfutey4YgPAAAAAEA9olK9ZcYtQ4ZlP3v2evqYv3boW1m9p9a970pznj83c3FmczhE JCuS5iYmNe/aBYMCAAAAAADgw8P6LsDH1MK/dQv/1ogDAAAAAMB/yZi/dvz3Ku2xeNGxRYsvbdrM YDJYGhyX/gGtBw9EXwMAAAAAAHx4WN8FAAAAAAAAeAOrdm3n3Y5pzBEwdXb6NHwfRgIAAAAAAMBH x0QIAAAAAAAAAAAAAAAAAAAaBKzvAgAAAAAAAAAAAAAAAAA0DB/z/sxiLSd0QD1kzauqswR6ZRs6 5pUPvZZSH4i5nd72fDUNG3Z/aZiItVxfnriGoMptAAAAAGgkxByLd0pvYGenW5dvccWCsrmMNUcH I6c+TnbIrjbdKvRE6ACISKzljSC8v5CKNd750zBr1r96rRHr2FTTKld0DQAAQCPE8PPzq/WDx48f HxAQUEOGiIgIf39/RBkAAAAAAAAAAAAAAAAA/nuioqI8PT1Vb8JgMKKionx8fGooKjw8fNDilW+s 8YNevxvy/GpkXhIRiYXmCy3b+aStrdvyxZp2C3V71NSA/JORJY8wzmonQjSJiHyyv6niWLpltY9y CPq3wyZvZ2Tx7do0uMlSIgqR7I0svVP5mCyZFPnqzYSCAmtq3qC7JkGVba1lTkRiLafIXNUrQWgW iKELAAD/bSHSFZGyC29+o6jRcSFvDsIFjYFP5upq3yEbTvuoz9aQSFlkHUxMdCLqLFZ535e9o856 ZC3DJbz1crJjaGXNNX5lAAiGhhT/GSmPrWmQCH5C6AB8bv/8YSqKcJryHl87Cm5HlqTXn6hGGPqW hffFmXf+gyZNsma87S/lJcg2WGvoirW8SYMfWXK5rHbR9qpey+7V4kTEGjoLtczwNAEAAGi4PvT9 mcXCV+5eIta0+9AN4DZDr9dCxXVxMafVK4dK71A1d4mJzH9aN72m+c638q64JFypwUQUKUsW88ru 2bWl4JRYu3WD7p0t+f9UvNu5WFC23B4peY6hCwAAjYFYoyOCAPDqrKd5VW/pH9SDZ6v4305M6mKF +NUmORDRFnrU0CcF/1VbKEfMfvl94kh52RxHzK62v2pe+gVoXC8Hwvf+sVtk3sP3/6LWpJ7Es9JK s5hr9G5/0KRJYi2rt82c9/J20GKuBxGVr/JW9VqGrygBAAA0OkyEAAAAAAAAAAAAAAAAAACgQcD6 LgAAAAAAAAAAAAAAAABAw4D1XQAAAAAAAAAAAAAAAACAhgHru+/XP9/9eWxu6Eep+va+sxs6BKML aufhP7fWdJy71CF4XdcFSoWyARUOAAAAAAD1WcKl+DXe80Jsx59csquuylzbad69EzcQWwAAAAAA gEaC3ZhP/tKGA8e/3Fi+KzDSm/NwZ3WZSyTS33ynyYtLs5+mGjlY6ZgYjjrw3RurcBogVioUlRLv H7+cEvuoy5cjKib+0Wu2Qy8vz+B+7+lkY7b/fSk0PPPBcw0tTTPX5oP+mMfT08YToDrHFm3vOLGn +/DOJQVSJqvsaxD3/45NuZXQZWbA+ygcAAAAAAAaA2tP+y/OLwuf9QdCAQAAAAAAALXDbuTnb+Xl OPrA0rIdBqOGnFwBb/LljWm3H2/oOGny5Y1vWb7I3vL1xKfnb3G1td73qVU8m7M/7Lywek/PZZ83 822jlMsTr97D4m4NVCpVblKWubstEXG1eS87Lupexd26LRwAAAAAAKAOpn8AAAAAAADwX9fY13cZ TAZbk1MpUSYtjVy+Pe7AuYLUTL5IL2DdNNsubtWV8Gf/BdYdnJ5ExhZl5yuVyl4rJtp4uxBR6s1H e8Yty0/OdBzYOeDn6erMiVfvnfp6U+rNxywN1s2/Ioio34aZVl6ONbTwTvj5M8u2FaRmiVpY9lwx 0bS1HRFlP0k5Mmt9SuxDlUJp4tys77ppelbGRCTJyAmfvCrx6j19G5MWPTzUJRRm5p1dsaNf6Cyn AZ3VKUJzI/VGWtyTY3NC0+8m8EW64tmBzoO74imxZciKgoxchUy+beRPLA22Q3c3/0VDE6Mfnfpu d2rccxabdXPfRSLqt+pTq/bNiSgvJftkyF8Jl+OL84r0rY2Cds/lG+oU5xet8pwd+PuUI19tK8rK N25lNWr7zOoKJ6K0u4nHFm5Lj0/iG+qIv/jEub8nESXeeHxozhaH7m6Pz8YVZhVYtW/ed2UQk81C HwEAAAAAvD+y4tJfeixuO7Krx1hfIjo8NywvNXt42LTn1x4eW7jdrqvz06h7RTmSNiPEHSZ0J6If 281sM0IcvT2y3RjfxOhHKbcS+q/+1MbL4V3rrXJSQEQXQo9Hb4+UZOZravM8Pu2mrpSIbuw8F7n6 oFKudBngxdJgo+MAAAAAAAAaD0wCq3Bi/sbUm4+G7/xav6lp9pMUHXNRzfmv/n5kwpm12sb6Mdv/ Pjhl9bTYzURk4tJs6vXfT371mzRPUp7Top3DuOM/7A76XtTcotL9mauUePXe4Rk/jw7/3tip6f1j l8MC5k+9/jvfUChootd2bC873zZE9NeYpf8s3Tpg42wiOjJzPVfAm31/hzSnYEvfeSw2m4ieXbzN YDIc+3eqVHhJQVFYwPzu3413HtQl80FiWL8v+UZ6tmLXRt77Y/6aQ0SLLceO3DrDyN68rOPcm43b P3/3xFBRM5OK92dWyhXbRq0yc7H+/PhinpCffj+Jb6ijPiTNLby8+fS4/V/yhHxpXmENhZcUSMMC V3ZfNNS5n2fmo9SwwJV8kY6tdysiSr+X6Nin7WeHF8qKS0P9v7598IrLAC88QwEAAAAA3h8NTc7g 0OA/+n9v690yOyHjfsTN4L+XMBgMIkqNe+Yx1td37gDJi/wN3RaaOlnZeDkoSmUiW5MBP0/Y1G/p pIhvk248vr797Luu79YwKTBrbdOyp7u+ldGzKw82D1rm0N1N38ooPT7pyIKtY/fNM3NpejUsIv1e IjoOAAAAAACg8Wjsv/2ZeOXeCrtA9b/D09YSkVKhjNl+qsfyiUYtrdmaHKOW1po6/JoLcR4k1jbW JyKbTi7ZT1PlJbK6at6NbaecB3UxcbZlMBj2vTyNHKzi9p8lIg6f59Dbi63JYWtyWvXtmP0khYhU StX945c7fjGIzdXQNtZ3G95NXUhhZp62sQHjtRt23T9xRWCk5zKkK4PJENlbuo3wv7bpKJ4S7zZ+ bjzOS8rs/f1oHWM9DR7HvHXTike9g3vxhHwiUv9fnfunbwpEQpcBXgwmQ9Tc1G2o97WtZ8qPen7m T0QamhwLN9uMB8mIOQAAAADA+9bE3txn3oDdE0MPztk8cN0ELT1B2fyZxVR/4VIg0rHv5nr36PWy /A7m+lZGbA67ib25jrFe4Yu8d62xhkmBjae9vpUREVm1by40M8hOyCCi+JM3bDu1Mne1ZTAZ7Ub7 cAWa6DUAAAAAAIDGo7Ffv2vqahe4bVFZLHgcIirMyJGXyAyamr59IYIm+uWzfSJSyuXE1aiT5uWn ZNp0dC7f1TExyEvKIKKCtOzI5dsz7iUwmMzCzDz1r/lKcwoUMnl5Y8o3eLoCSUZuFYUnZ+qYGpbv apsaPjx9HU+Jd5KXnK1jqs/mVP08Eprqv1Uvp2brmOi97AhjvYeRt9XbXG0eR4ur3mawmEqZAjEH AAAAAPgA3AM7nfnhgKi5mbVHi/JEjha3/AdTtPQEWU/S1dssDTaDwWCrp4EMhlKpeuepX/WTgtvh l2N2X5AVlzKYTElGnkqpIiJJRp52E92ymQKTwTfQQZcBAAAAAAA0Ho39+l0Why1ooqf+p75Oly/S ZWmwc56nvX0hr18a+6b8b5tT11yUn5JZvpuXnKn+6dwDwT+SSjXm0PKxx1Z6TeqnPsrT02ZpsCUZ OepdaU6BesOifUuZtPhRRHSlwoUWRvkpL15+oJD0ovx3eeEtO07HWLcgLVch/1fLrkIzg/yU7Jcd kZItNDMoqxFBBwAAAAD4GP5eutfU2bogLefmvovliSWSYpm0tGx2lpotMBLWVXXVTQoSbzw+OHtz j2+Gjds/f+zeeZpCLXUGvkgoyXh5lbA0txBdBgAAAAAA0HgwEYLKEWGznAd3OT5vY+bDJHmJLOtx svqS2TqkY2qYcvORUqFUqVSqCt/sVpTKSwul6n8KmZyI3EZ3v7XnTPKNB0qF8u6hCxn3nrUK8CYi aXaBtqkhi8MuSM2K/vOk+uEMJqNF9/bnV+2WSUslGTk3tp36/ycFIvdRPQ4E/3j3UFRRdn5RVv7z y3eIqEX3dkXZBTHb/1bKFel3Em5sO+k+ujsRHf9y4/0TV7Ie4VbAr3WcsV7K7YSKHWfRphnfUPv4 wu2SF/my4tLkm09Li0retdgWvi5FOZKY3ReUckV6fNKNXefdAzvXkP/44h33T8eiOwAAAAAA3pOH Z27fCr/Uf/VnA9d9fmzR9uyEsut0VSrV+XVHFHJF2p3n8SdjWvZqU1c1VjcpkOZI2JocgZFQpVLd 2HW+fE3Xwd/18bk7z68/UiqU0TvOSvOwvgsAAAAAANCIsBGC1/VaGRwREhYWMF+SkS00E/VdN11o blQikf7mO01eXEpE6zwm6JgYjjrwXQ2FHJy6OvHqPUl6jkqpTLoWr2dtMnzXYvUhz+D+e8YuXWYz WFPIH7ZjkbGTrTr91NebTn29Sb3ttzjIe/oQM9fmfX+edmDST/lJL0T2lqP2fysw0iMivyVjD32x 9tKGA/o2Jh2/GBT18z71o3r/NDl80k8rmwfqWhm3DvSJ3XG6PF3HzPDkwt/zk19w+Jo23i6WHq04 fN7oA0uPzt5wfN4vgiZ6vouC7HzbEFFC1G0dU0OutpZBMzMMhoo8x/vvmRi6zHGyplBr2Kapxq0s WRrskVtnnliyc13XBbKiElFz01HbZ5bfUfktcfiao3fOPvrVtuOLtguMhL5fDrTr4lRD/oTL93VM 9Fv4okMAAAAAAOqeJCNv/7Tf+v00jm+owzfU8ZrQfffE0M8OfUVEOib6LK7GKo/ZKqWyy4y+Np72 tSh/98TQjPtJBWm5DCbjYeRt45YWA9d9Xt2koFlnR7suTqs957A1NVyHeLfq3VZdSBMHi17fjtgT HKoolbXq3c7GywEdBwAAAAAA0Hg06vVdz+B+nsH9Xk/n8Hk9ln3eY9nnFRO5At7kyxtfzzxq/8tV Xh1TwyV5J9TbfddOq65eHVODcSd+rJQ49ujKKjM79PZy6O1VKbFpp9bTYv4o31Vf1EtEAiO9EXtC ytO9JvVXbzBZTPGcYeI5wyqVY+RgFXRkeaXEiefW4Ymx+PkfVXScsd64A/MrJepZiQI3Ta2UqKmj tSR5y9sXbtTCLGjP3EqJFm628+NDy3cDfhhb1kEnvkEHAQAAAAC8JwIj4dyba8t3O0/t03lqH/W2 vERWcVdtTmxZZvW7d7suTjV/X3Nw6MQq06ucFDDZrAFrx1eZ3y2wk1tgJ/QXAAAAAABAI4TrdwEA AAAAAADegkr1lhm3DF6e/ayKH/oZs3uuvpURAgkAAAAAAAD/BtZ3AQAAAAAAAOrSmN1zEQQAAAAA AAB4T5gIAQAAAAAAAEDNrNo1nxeH37IBAAAAAACAjw/ruwAAAAAAAAAAAAAAAAAADQPWdwEAAAAA AAAAAAAAAAAAGoaP+fu7Yk07dEBDIeY2K9vgtKp8iNOKdAyrfpSOzccbXU5vmdOabdHQe8eaa/Ly xAWWVW4DAAAAQKN56978ndIb2NlpiOu0NIeyd9QsEUZOPZ3sKDmvdBn7zXMcMbs14gZARGKh3X+m lnrzCtukwrbRO/9BY/PfIbOG82u1e1TzWqaD0Q4AANAIMfz8/Gr94PHjxwcEBNSQISIiwt/fH1EG AAAAAAAAAAAAAAAAgP+eqKgoT09P1ZswGIyoqCgfH58aigoPDx+0eOUba/yg1++G5EdFljxXb0eI An0yp3/I2iMMV4VIQyJlkRhntQygTgQR+SROreJY7ohqH+XU7t8Om9S4yIKM2jS4eVciCsmIiix8 XvmYzj3ivvhv9pPS8tVe+xJDFwCgngsp+CuyJK7KQ2Ku40LtIQjRGwL4bHlk7vk3ZhPrei+0motw QWPg8ziq2nfIth0+5rM193hk8cM6mJgYT62zWKUMxYBpeDNT010h6bGRkrSa8th2R6AAfF7EfaBn pcjxPb525CdGluTVr79CIkciqsWnmgl5ptYK93d6iFjbiDQjIqWXynZ5npQ/NDJXQkQRLrZlHX17 fy3OQiw0X2jZDk8TAACAhutD359ZzLUkovJVXjH3A903KbIktqzGOr2dV+NRcV1crOX6yqGiGCIS C/WreFRedt0MG+13vulNxSVhMb/yLbwi6Z6Y7f4f7CZ5NFW4y1yk7B6GLgBAgyDmOiII/yqAut4I AsArTwpBFb+fEinJ/PgN+9e/0VMnK8SvNInniQHTkKY85YscAuNq89S49AvQyN5kCt/7s/L9L75+ gLOo3fm+66eaWyijFh9wvf5SJdYVqJd4X6YIzTHaAQAAGhsmQgAAAAAAAAAAAAAAAAAA0CBgfRcA AAAAAAAAAAAAAAAAoGHA+i4AAAAAAAAAAAAAAAAAQMOA9d36bvfI3SubrlyktahUUlonBR6ecvj4 7OMI7Osenoxb47RgqfEX69y/ViqUDahwAAAAAAD49xKiHq1p+12I6eyTCw/WupCYHVd/77Hmvbaz OL94eYuv8lPz0GUAAAAAAACNExshqOcGbx2cn5z/g90PCMX7dmzWzo7Tu7uP9S7JlzJZZV99uH/0 ZkrMsy5fffI+Cn9XJ+bubtHLxaZTC3QWAAAAAECds+7Q7ItrC8Kn7qrn7eRqc3uvHKTdRAddBgAA AAAA0Djh+t0y0hxp9JboRnGqDPR2FVQqVe7zbPN2TYmIq8MrT3969v77K/xdC3l67j56CgAAAACg kWMwGK0+cWEwMbUDAAAAAABopHD9LkkyJBfXXLxz4E77ie2JKPFq4tZPts5Pm68+Gh4czhPy/L/3 P//D+cyHmfISefajbGmu1CPYwyPYg4iK84pXtVwVuCvwyPQjRZlFxs7Gow6NIiJZkezk/JPxR+JV SlWrfq26fdeNrckmopSYlKMzjmY+yCQiY2fjEftGaGhpEFHa7bRjM4+l30nnG/HFc8XOQ52ra3Bx XvEKmxUToyaKHETqlDXOa3wW+TgOdKyu0qTrSYcmH8pPzrfqYMXV4bK56PdXbOn5U0FanqJUvq3f WhaH5dDH1X/ZoMQrj08t2Jd68zmLzbq58zIR9fs1yKqDHRHlJWWf/HJvwvkHxXlF+k1FQSdm8UXa xblFq1rOD/wr+Mj0HUUvCoxdLEYdmlZd4USUdivx2Mxd6XeS+Uba4nm9nYeqh9+TQ5O3OvRxfXz6 TmFmgVUHu74bRjPZzOg/zl/9LTL9dtLeMb9r8DSIaErMEhYH/QgAAAAA8N6lxSUfm7c//V4q31Bb PKub8yB3dfqdg7Fnlp8oSMsXNW/Sc1l/09YWlR54MTTy+pZLQQeDtY2FS0xmjT813djJjIhu7r5+ 6Zezn/8z89nlJ8fm7bfzdXh6/mFRdmGbMV4dJnWpuTHhU3c9+ic+PyV3VtxiHVNdIsp8mB4+dZeB rejRP/f9FvW+9kdUcUFx0KFJApH2g7/vnll2POtJJkuDZefXsu+qISwOi4hSYhOPztlXXFCc9ThD KVcaO5oFn5tNRLnPs4/M2ZsU/YyrrdlxSte2QR3Q+wAAAAAAAPVQo14fykvKu/DThcf/PG77WdvJ 1yer11lrELstduypsVYdrLIeZa1rs86+t72upS4RSXOkl0Mvjzs9jqfLk+ZK1ZlPzD0heSGZGjtV pVLtGLwj8vtI3298iejYrGOOAx09J3nKpLLU2FR1pSX5JWG9w7ov6+48xDnzfmZYnzC+Ed+2q22V zdAUajr0cYjdGeu3xI+IEq8mFmUW2fexr65SeYl819BdHWd2bD+hffKN5D+6/dF2XFsM/YrGHJtB RIsFE0aGTzVqZaZOtGhvO+70nN0jfxW1MK54f2alXLmt/89mbtafX/yKp6uVfjeZL9JWH5LmFF7e EDHu9ByerpY0t6iGwkvypWG9V3VfPkWBP8YAACAASURBVNh5SPvM+6lhvVfxjXRsuzoQUfrtJMf+ bT47+6VMKgv1XHJ7z1WXQA/3sd7uY71XWM0cuOVT3J8ZAAAAAOCDKSkoDhsQ2j0kwHmge+bD9LD+ oXwjbdvOzROvJRyetWf0vonGTmb3j8eFDQidemU+31BAROoray9uiIzZcWXckSl8kaCG8lNvJXl8 5u37VS/Ji4IN3itNnc1tvO1qyB+wdmhpYcm3FnMrJiZeSwj8c5y+9cW/lxyZHrMwfOrO+GO324z2 0rMy6Ll8gJmrZWGm5Lduq2/uue42vD0R7Q/e3mm6n/Mg9/sn7hydu0+9uKtUKLcN/dVlSNth2z/N fZb9e481etYGzbrYYwwAAAAAAADUN433/swqpWp92/WpN1PHnxvvOcnzjYu7RGTqZmrVwYqIDJoZ aJtoq6/BVfOe6c3T5RGR+n+lQnlj640u87twBByuNrdNUJu4/XHqnHo2evcO3Xt28ZkGT8PS01Kd eP/4fUETgUugC4PJEDmI3Ea7Xfv9Wg0tcR3pemvXLZVSRUQ3t990GuTE5rKrqzQ5Orm0sLT9hPYM JsO8jXlTcVOM+38j8eqTvOdZvdcM1zHV1dDimLexqXjUe1YPnq4WEan/r87947cExkKXQA8GkyFy MHUb3fHab5HlRz2n+BKRBk/Dol3TjLspiDkAAAAAwMdy/+QdgZGOy+A2DCZD1MLYbYTHtT+iiOjG 9ivOA91NnM0ZDIZ9Tycje+O4AzHqh2jwOJdCz97ccz3o0OSaF3eJiMliugxpS0QCkbZ9D8e7h2/W opECkTZfJNCzNmjS0oTNZeuY6EoyCohI1LyJRRtrJoup3UTHppNd9pMXRKSUK1/cT7f0sCEii7bW uYnZMmkpESVeSyhIy+84tSuTxdRvamjf0+lOeCwGAAAAAAAAQD3UeK/fZTAZX9z+4tLPl0I9Q12H u7af2J6nV8UPo6rXUNW0jbUrTsIVMkX5rtBcWPFRhRmFilJFWJ8wBoNBREqFsvxQ3/V9r/56NXxi OJPF9P3G16GPAxHlJ+frmOq8rMhU++GphzU03rarrUqlenruqZWXVdy+uJEHR9ZQqSRdwjfil/84 k8BYgHH/b+QlZumY6VV3j2uhud7bFJKfnKO+l9r/e1z34amybwBwdXgcPrdslLKYygrDDAAAAAAA PrD8lFwdk5fTPW0T4cPT99TpNh2blafrmOjmJeWot9PvpCRFP7NsZ1Pdlz4rTjM5fA6TXfbFay19 razHL2rRSPVPtzCYDLamBhExGGVVJEU/i1p3RpKez2Aysh6/aD20LREx2UxDO6MnZx+4jfB4cu6B qHkTDR6HiPKSckokxSvtF6nLVMgU1hVOEAAAAAAAAOqPRn1/Zr4h3/cb344zOl4JvRLqFeo20k08 X8zSYCnkL1fUClIKtPT+PydnvHXJRnwWhzX25FiRvahyxLlsryleXlO8Hp56uGvYruBLwQZ2BkIL YX5y/stPEJLyhRbCGspnMBmth7W+ueumTCrjN+GbuZvVUKnASFCYUahSqtRLvNJsKff/y4fwRozX Ol3HVK8gJVchU7A0WLUuVmhhkJ+cU6HHc4QW+tXVWFNrAAAAAADgfRKa6+Wn5L58656co/5Op665 Xn5KXnl6XnKOZfuyW/toGfA/OzntzwG/nFx0sPu3AepEJvvlTLMg7eUDSwpKZNLSshXWlDxBE526 armiVBHWb0PvlQPV1wfvHb+1/FC/DcM391l3bXMU31B7yJagsjM109PS48+5H4JOBwAAAAAAqOeY CIGmULPzvM6Tr082sDMgIj0bPaVcGX80XqVSPYl88vTc09qElcV0H+1+asGpvMQ8eYk852lOSkzZ XXYfnHhQKiklIgNbAyabqZQriahFjxZF2UUxW2OUcmX6nfQbYTfcg9xrrsJ1pGv8ofg7+++4jXSr uVKzNmYaWhqXQy8rFcrU2NTHEY/V+WP+jDm34pxSrtwbtDc1NjXhfMKBzw9gPFSiY6qXEvtcqVCq VCr1V+At2jflG+kcn7VLkpEvk8qSbySUFpa8a7EtejgXZRXGbL2olCvT45JvhF1wD/J+i8boJl9/ SkTqYVOcJ0UHAQAAAAC8Vy38WxVlF8XsuKqUK9Pvpt7YdsV9lAcRuY30vLU3OjnmuVKhvHv4ZkZ8 WquA1uqHcLU1OXxu4NZxdw/furHtsjpR1LxJ3P4YlVKV/TTzxvYr5eWrVKrzqyMUMkXa7eT4Y7db 9nGpq5bLS+WlhaW6lgZElBzz/NE/8eWH4vbf8JzYedyxqYHbxhnZG6sTLdpa8420//n+uDS3qLSo NO12cu7zbAwAAAAAAACAeoiNEKhx+BynQU5ExNPl9V3X9+j0o3vH7LXuaO01xUu9lvauui/vfmbp mU1+myTpEqGFsPOczqaupkQUvTl637h9KqVKy0DLL8RP5CAiIo6AM/rI6KMzjh6ffVxgLPD9xtfO z46IEi4kHPniiPpOyxs7bWQwGJ+s+0T9q70GzQxEDqI7++90+7ZbzZWyuezAXYGHphw68+0Zi/YW bqPL1oPT4tJynubIi+VPzz11HOAozZYmnEtQypXlNwcDIvKc6rdn5MZlZtM1dXnDdk8ydrZgcdgj w6eemLtnndvXsqISkb3pqMPTOO94STRHwB19ZPrRGTuPz94laCL0XdLfrpvjGx/l//3AQ1O2nf/h hKCJzpSYJSUFUk0hD30EAAAAAFAndo8Ly7iXWpCWz2AyHkbcM3Y0G/jrSA6fO3r/xKNz9x2fv19g pOO7sLedjwMRmbla9F0z9MDknfnJOaIWxqP2fi4QaVcsjS8SDN/52eZP1uk3FVl72fb+YeDBL/76 1mKuflNDr2Bx9NaydV8dU10Wh73KNUSlVHWZ292mxlsip95K2vf5NvUXT7cEbGCymf4hffUs9avM zBVw/b/tu2vMHyqlytrLtsPkLuXfEOXp8SO+O3rup7+JSNdSv+/qIbbiFkw2c+TuCSe+Cl/bbqms qFTUwrjPj4N0qykcAAAAAAAAPiKs71ah9YjWrUe0rpToPeuVyyunxU1Tb2gKNZcULakisppsvyV+ fkv8KqUH/hVYZaVGDkZBx4MqJVp3tJ4cPbm6dn4a8elbVmre1jz4cnClxB4reqg3Zj+erd5wHeXa mPt9sWTj64k6prrjIuZWStSzEQXurhxPTV2tJdLf3r5wo5amQSdmVkq0aNd0ftra8t2A0NEVj9p0 tv/i1rflu0JzfNQCAAAAAFBnBm8aXfVkzd446OCk19Mdejk59HKqlOg6rJ3rsHbq7SYtTeY9+k69 beZqGXxudnm2tkEd1BvyElnnmX6dZ/q9TQtNnM0nX5z3evqMm4uIyKm/m1N/NyLy+7qPOt1rothr orhS5pjtV56ef/Dl46U8PS2FTHHl9/ORK07ailsQkY6JsLogAAAAAAAAQP2B9V0AAAAAAACAj0RV OeH+iTtH5+57PWOL7q16LR/w7yvMfpalpS9Q3wpIpVRmPczQszZAPwAAAAAAADQgWN8FAAAAAAAA qC9adG/Vonur91e+10TxwWl/rXb/Vv3TPDYd7Xp+3x9hBwAAAAAAaECwvgsAAAAAAADwEVh5NC2/ gfMHw9PTGhoWhOADAAAAAAA0XEyEAAAAAAAAAAAAAAAAAACgQcD6LgAAAAAAAAAAAAAAAABAw/Bx 7s8s5loSkZjb+gPW2Bqd/a8CqCEu29ByrXxIy5VU+lU/Sqj/0RqsbdQYu4ntTirDCr3mgKELAAAA 0OjeEwoM3ym9gZ2dpl1dlsbzxIBpYAPgLbpMLDBGoACISMwV/mdqqYdRrcUnjdYskzprhq7g5bbQ HKMdAACgEWL4+fnV+sHjx48PCAioIUNERIS/vz+iDAAAAAAAAAAAAAAAAAD/PVFRUZ6enqo3YTAY UVFRPj4+NRQVHh4+aPHKN9b4Qa/fDUlOj8yXlO8m6Oyz5nI+WO0RhtNCivZGyu5gnNVCgjLbmmVM RAnFD62ZospHs9tbs5pUHXbbDm9Zhc+9m1VXzbpmLcirTY+bziSiEMneyNLXOr1Il2Sa/82ukr1y QUNE8671tqUhmbsii26/bKrld3iiAUDjFJKdHCnNr/KQmKezUN/sv3GaPo9PvFN+scB4YZO3uioi JCMqsvD5W703sAnEeIPGwCf7m2qfBfpff8w/d4mrI/Mu1cHMzvGvOotV5mkMmIY2M423ZivF0r6R +bnV5uHssdZ5RkRibvuFOpMRNGi8LweZCz9MRRGGIe/xtaNgdWTJpXoV2AjDv4jI577fB6hLrN2Z 9DiRsgtluxodSd4jsiSdiMTcJgu1nYjIJ3N9bUrmNluojWtyAAAAGrAPfX9msc7L+4dsIRJzm3+Y eiNLHvz/nVAr9HotbCk5r77Z75bih2Kuc+Wj1dztLVKS+Y7DQ7eKqgtJzGvxzj0uvf+yWE7lTo8s Shbzbf973RRZ+Jgq3Js6siCjnjdYrOX0/x65jWcZADRmYp5OozjN93bDTDHf8i1eJZ9jpEEj+qvC qWLWU8W3Hj98w4T/9n7IdbJC/EqTuE0wYBrSzFQaX8PksSxPMYm57RErACIScx3fdxWRJXHv/yzq 0b30Ky42i7U7f6B+1OhY8yuXmNsMox0AAKCxYSIEAAAAAAAAAAAAAAAAAAANAtZ3AQAAAAAAAAAA AAAAAAAaBqzvAgAAAAAAAAAAAAAAAAA0DFjfre92j1q10nb8Iv6gUklxnRR4eOqvx+dsRmBf9zDi 6hrPMUub91vX6TOlQomAAAAAAABAuT96jr178PR/41x+atX98ZnL6FMAAAAAAIAGio0Q1HOD/5ye n5z1Q/PPEYr37dhXGzpOGuw+omdJQRGTVcuvPoT6BU/8ewOCCQAAAADQ4FzasO34vBXluwIjgzmP zpTviud+3qSVHaIEAAAAAAAAHx3Wd8tIcyR3D15xH+Pz3z9VBgPd/TqVSpWbmG7u7kBEXG2tWo6i XEn6nccIJgAAAABAA2Xl5TY6fGOVU6emndshPgAAAAAAAFAfYH2XJBl5F9ccuhN+uf3nPYgo8eqD rX2/m58apj4aHhzKE/L9vx91/sfwzAfJ8lJ59qNUaa7EY2JPj+CeRFScV7iq1eTAnbOPzNhUlJln 7Gwz6uACIpIVlZxcsDX+yDWVUtWqn0e3b0eyNTWIKCXmydGZmzIfpBCRsZP1iH3zNLS4RJR2O+HY rM3pd57zRULxvAHOQ7yra3BxXuGKpp9NjFohsjdXp6xxmeqzcKjjQK/qKk26/ujQlI35yVlWHRy4 2lpsLvr9FVsGzilIz1bI5NuGLWBxNBx6ePkvnkBEaXeeHFuwLv1eAl+kK54+3HmADxGdX7sr83Gi vESW/TRZmivx+DTA47N+RHT0y58fRUYrFcrV7UcTkYlTsyG/L6yh0ioLf3Yl7tiC9XZd2z6NulmU k99mZK8OEweigwAAAAAAPgwGk8nW5FZKvL557/lVf+QlpfYLDXEZ0lud+GNL/zZBA6O37Gs3fmji 1ZspMXf7/xJi06ld9pPnR2YuTYm9q1IoTVzs+677Rs/KjIiKsnIPTlmc9eR53vPUEkkhT0/4+bld elZmuc9TjsxcmnT9Fldb0PGLMW3HDa6hee9caXbuoalLnl2MVpTKdK3M+m0IMXGxf2U6nJ75R69x 7qP7d5gyurpKz674NedZskxanPkwQSmX9/h+TlNxewwVAAAAAACAj6hRr/PlJWVdWBX+OOJW28/8 J1/7Sb3OWoPY7WfHnvzGqoND1qPUdW1n2Pduq2spIiJpjuTyL8fH/b2Ep8uX5haqM5+YFyZ5kTc1 Zo2KVDsGrYj8fo/vN8OI6NjszY4DOnhO6imTlqbGPlFXWlIgDevzbfdlo5wHe2c+SA7rE8I3Etp2 ca6yGZpCvkOfdrE7zvotGU5EiVcfFGXm2/dpW12l8hLZrsCVHWcEtJ/QPfnG4z/8F7Ud54ehX9GY vSuIaLGp/8idS43s/8feXYdFlfVxAD9TDDBFNwICAoqgYBHKqKAodit2Y7Kuoq5ioa71Wmvu2t3d io4iNqJiYYHS3Tn1/jGICMMIiCjy/Tz77DNz7rnnd+LeO+d6Zi6mssSCrNzd/WZ6Lhxv16td8rtP u/vNYmmrm7dxIIQ8OXx15Kn/mbRqnPIhZkOb0dadnNWMdL3+npz8Nmq960jf+7u/GVFB4XFh71qN 6uH+18jspLRN7cYb2FmYuTTBGAEAAAAA/CzNRvRpNqLPljYDSiaKCwu1G5j13vb39o7DJt49Hv0o 7NGu42ZtWrB1tZqP6mfp7kIIOTxs+vUlm3r/u4QQcuPvTaqaagMPrM2KT1rXtOv4mwfVTQwlYsm+ vhPtB3QddGh9+sfobR2GqZsZWbRzLq8mlQ16d+NeCpUy4811QqHEhr7QamBaXBSFSs2KT9rZZXTL sQNbjh2guAeeHj438c4xrQZmkbcfHRgwZdqLy8o8Dg4MAAAAAACAn4VaZ1sulUg3tvgz7mnk2Ft/ O03s/M3FXUKIgYO5iYsNIUTTQp+jr578JqZ4U+tp3VXUWIQQ2f8lYsnjvTfazu6rxFZmslWajWj/ /ORdWU51U51XZ+9/vPOaoaJUz6noq9PhF0PYumr2A9pQqBRtayOHoe0ebruqoCZNB/OfHQ6SSqSE kKcHbjbu60JnMsoLGhPyvjCnoOU4TwqVYtTMoj6/MY77igi/eo+to2Hfpz2FStFuYOIw0PPh7nNF R4J9A5NWjQkhmvUNOXqayW+jqrFwKo1q39edEMLWVrfu6PTyXBDGAgAAAACgZkTdf7LCoq3sv7O+ AYoz6zay1DA1ojOVdBtZcg10cpJSCCFKLFWbLu3oyky6MrNRjw6pHz7JMsc/f2Pi5EAI4ehpq9XT T3oTQQiJevA0Ky7J1XcElUbVqF/P2qvti5NXqjGouqlRTMiLl2euSUQio2aNGSrKxeUU5uTu7DLa dcqwby7uEkKMW9hrNTAjhJi6NmPpaL6/cQ+HCgAAAAAAwE9Ud3+/S6FSpj5bf/efc5ud/Zp681uO 91RRZ5fNJltDleHoqRW/ptKoYqG4+C3PSKvkXjmJGeJC0e5ui2V/sEkilhRv6r5x/IN/L5+asIlK pbovHGTTtQUhJDMmhWug8SWQgcbbq08UVN68nb1USiKCXpg4WT8/fnfIqb8UBM1OSGfpcCnUor8d xdZVw3FfEZmxSVz9L8PK0dd8e/1h0WtdjRJHAk0sElVj4UosFSqdJnutqsFN+RCDsQAAAAAAqBkG TRsN3L+m6G65xGqoXDQlBoVKoTOVCCGEQpHdgmXFJwmWb018+ZZCpeYkpzE5LFlm3YYWH27etx/Y Nf1TbGZsom5DS0JIRnRcQXbOSst2sjziQqFp6+bVGNRhSE8VNe7dTfvOT1/qNHGIq+9IKq3oS94X ZizLz8jUtDCtSLeU/LWuqoZadmIKDhUAAAAAAICfqE4/n5mlxXVfOMh1Wvf7Wy5tdvFzGNKOP7sP jUEXi74s3GbFpakWr/tSKBUtWYdHU6KPvLxQ28qwdI8zGc6TuzhP7vL2Sugh7/9NuLNS01KfZ6SV GfPlDjkzOplnrKWgfAqV0mRgm6cHbwlzC1g6PENHCwVB2Tq8nMRMqUQqW+LNS8tmspVx6H8Tz0gn Mzbpy6DEJPGMdL5xJFCqofCCrFxhXgFDhUkIyYhNYuuoYywAAAAAAGoGTYnB1tX6nhJO+virmxgO P7uNpsQI2XU8ZM8JWXr7eVM2u/bb2KqXijqv5+YAnpEeIYRnqKeqoeb37sZ3Vru8oIQQm67tbbq2 Twr/cHCQL0tLw3FYL1l6h0W+dGXmoSHTxl7fL/tjvQpkx5e4eYlN5HxfFwEAAAAAAMB3oqILlHks t5m9Jz1co2mhTwhRN9OViMSvzz+SSqUfbj6PuPW8Kt1KozoOa3dlzt6MqGRRgTAtIiE29INs05tL jwuz8wkhmub6VBpVIhYTQqw6OeamZoXuE0hE4oQXnx7vueE4vL3iEE2HtH199sGLE3cdhrZVHNSw mQVDVene5osSsSTuyYf3gU9l+UP33ri18oREJD42Yl3ckw+RQS9Pjt+E46GYlUer3LTM0ENXJCJx wquIxwcvOXp3UrwLW0eDQqVEh74mhEhKfEugUoVLpdKg9YfEQlH88/evL91p2KU1IeSi/+bwq/dS 3kcfHbe0IDv3/vbTd7YcwxgBAAAAAPxq8lIzOPo6NCVGVlxSyXXWT3dD1eoZjL1xYNjpf226FP1g 17iFPUtH8/qSjXnpmYW5efHPXqd/iq3GoJG3H2UnJBNCuAY6KmpccaGweJOKhpq1V1uXycP295tU kJWtuPyYxy/eXguWiCWh+08XZGbV57fEQAMAAAAAAPxEdHSBjBKL2bivCyFERY3VfcO489O2HRux 1tS1kfOkLooX6srjuWz4jaVHtneYl52QzjPWcvPrZdC0PiEkZFfg8dH/SCVSVU22R8BgbWsjQogS W3nYWf/z03ZcnLGTravmvnCQpUcTQkjk7ZfnfLfJKrC1zSwKldrtn7Gyv9qraaGvbWP84uTdDosH Kw5KZzIGHpxxZsq/N5YcMW7ZwGFY0cpx/POPaREJonxhRNAL297OeWnZkUEvJCJx8cOB6/whoTLs yLLzszde9N/E1tFw/2uUZbtvPCpNmcvyXORzYMg8Qoile4uea6dXoXCugTaNyVjTYqhUImk7fYiZ sz0hJPJeGNdAm8lmRQQ/KczOiw17Ky4QYowAAAAAAGrAJpe+EpEoNSL66oJ1Qau32/by5M8cV15m j0V/nJm66O6mfRpmxq5Thwf/s7voFoCtGnX/yWK9loQQZR6nzfQxrlOHU+m0Icc2XZqzar1DV2Fu vra1ede1c9XqGVS2huUF/XT/ydFRMwuz8xiqyo26uzsO711qR1ffEUnhH46OmDno8D/Fj24uy7pL u6eHzh0bNYutqzVg35qSj2sGAAAAAACAmof1XTmaePObePNLJbb+s0fJt75hG2QvlHmsRTlH5fSs MsNjkbfHIu9S6QMPzZAbVMfGeMTF+aUSTV0bTnq0urx6jr4WUMGgRs0tJ9xdWSqx0/Lhshcz3v0r e9F0SNu6PO4LYi+XHhQr0xEnSvdb6ykDvjoS7u8u+dZpTE+nMT0rEk5u4YQQUX6hm+8gN99BJRN9 rhb9tNrv+RFCiIKVYwAAAAAAqBqnCYOdJgwumz4hWM4dX/FDlf+KvkMIsXR3sXR3IYTUd2vh++Rc cbZGPTsQQpLfRBwf+9ekB6c0zetJJZLYp6/+a+fdavwgOlOJa6DTb+eKCtawUkEJIW3+HN3mz9Fl y5n24lLx656bA74Zl0qj9tn2N44QAAAAAACAXwTWdwF+lJyUjK0dJpZNZ2nxxl3eWO5uUim6DgAA AADgd5IZm0ij09m6mrK3Sa/ec/R16UwluZnDL948P13OYqpVJzevVbN/UA0VBGXraEpxkwIAAAAA APArwfouwI/C0uRNC9mHfgAAAAAAqOPM2jS37dVxs0s/QqEQQnSs6w8+uqG8zFad3Kw6udVwDRUE vbniX4wgAAAAAADALwXruwC/EJOWtrNeH0c/AAAAAAD8TihUqsdCX4+FvrWx8m5+YzGCAAAAAAAA vxQqugAAAAAAAAAAAAAAAAAAoFbA+i4AAAAAAAAAAAAAAAAAQO3wM5/PbEpMaywWn9kAg/1dg0XT KXpBN5CzVVksv9vZWpUYI66a/NBM5aqMuIpVHRwmPsuciHW+vOXo1JqaqzbGWQYA8Jt/SLH1fvan ZD2MAtSV002pUaXSa1nreE7Vep+oiwOmtt2ZsvlKuiRPYZ4q3UIC/IYfB0zb3ybKr9SrRR9DfI7b L1MlCxztAAAAdRDFw8OjyjuPHTu2R48eCjIEBgZ27NgRvQwAAAAAAAAAAAAAAAAAv5/g4GAnJyfp t1AolODg4Pbt2yso6tSpU30XrPxmxBr6/W5AVpigICGSctSUEVecGJlvYUqtuR9SRKaZkhwrU6YS jrPv6kad4LJ9GPnhX1MqT27+QNuTFSy5ffI1+REp+0wZUVWoaiA3kBAS8OmSIONt6W1a74hq6u85 QHEeplSjotfZh01pMYQQvlprf5OZP7FWAVkXBAVvItNyTemagWbjihI/PRBkRH8Zr8a9cH4BQKW0 fze1+DWf3dRfb3gtbUhATIIgM1v+VZ2xXPHUha/q4K858kdewPcLCp59Cce08+d4V3G8Mm9XKj+f oeWvYl2hSuatEAgrVHgg9wxOHKgTl8eEv8o9C3SX/szLXUK4IDv5+8sJNHeR0+qkg+Xm1x5Y/qXp HQ6Y2ojPYAuE2RXJ5q+ih+6Cuvtx8GpNzQQKtPnjB352xN4QZEX8Uh0baDWSENI+akpNXO5UmxJR Q0F29Oe7HiOikiMo+EAI4TPr+3PbEULax/6vKiWrWPmrd8FpAgAAUHvV3POZ+UzdXYWEz3AtTtmV H1+Tj03eRQoJIXwuG6P+fd1I+PR6chJ5cv6RRZARXNmDRE7EQsJn8CtbT4FQ8KVYnmXpreQdn9Hy tx2gz49l3pVN+Gqtf5GK8ZkNdpEnfJb5V4k8o8+HSjROLgCoyrWF3fQ3aUg585NdeYSv6vCzL+B2 1VYUQ+tHVbLEDLP8ucFtnDJQhy6PynL++IUgP+wXuG5/73VAwQoxnynn28OCgk/fuoDgDrGWka3s YuAAKjbJ/OH/7CbIfPPDW8Ex+4UuQSUWm/mqNXQzwmcbff15V790hjr5R8oAAADqOCq6AAAAAAAA AAAAAAAAAACgVsD6LgAAAAAAAAAAAAAAAABA7YD1XQAAAAAAAAAAAAAAAACA2gHru+TtjevrWjsv bWi1oZ2bRCxWnFksFB7xGbussc3yJrYhB/bVQPWO+Ixd6WA/z0ivMCen1Kb3t25u7uSBEay2I+HK y3X2i5Ya+G1otlQilvzocMHr6fntvwAAIABJREFUr69uOH8+Z0r4xefofAAAAACAX9ytletXmNn/ bWB9ymdaDYQLXrdltU2L+WzD8ItXv7pDHDJuZf0m81T1C7NzMCgAAAAAAAB1Ex1dcGHeXFefCY6D BhdkZVFpNFli+NUrsWHP2k6bXirzi/Nn4168mHbvEY2pJBGJqxaxvMLl6rf538y4uFXNm5bdZGBn 7zFrzvcEfXL0yO3NG9M+fVSvZ+I5f6GFG79OHwkzjrn6ujuOcC7IyqfSqvjVh80uK3yC/SqS02VK O5cp7dY2XohzEAAAAADgV3B3w38X/eYVv2XraPtFPpO9zoyNv75oxaSQm5qW9YU5uTVQGZep412m jl9r61T6DnHv1syYuFWWDhgvAAAAAACAOquur+9KpdL06CgjB0dCCJPDKU6PuBNc8m2xtE+fdK2s lVgsQgiNzqha0PIKrywVNbWKr8iWDSoRiWKehnZbvtKwadNnx48fHjfa78lzhrJy3T0SPqUatTAl hDA5VeyEvPTchLAYXFYAAAAAAGopE5eWw84eLnpDoRSnp3+MYnI5Wg3MCSFKbBY6CgAAAAAAAH6i Or2+u2tA36zEBLFQuG+oN42hZOPZqaP//KiQR1eWBsQ9f06j058eP0YI6bl6rUnLVs9OHr+3fVvq x0hRQcFal1aEkBFHjvMMDSUikWDdmidHDwvz882cnL0ClrK0tAghi8xNuixZFnJgX35WJltbp9fa f3gGBuUVXoXKb2jPz0qIV+Gp+QbfK07MTUs74zf944N74kKhmrFxz9Vr9W0blxeUSqd7Lf5btqNd r94n//TNjI3RrG9eF48Erw1Z8RniQvG+XltoSjSbLnYd/+5JCIkPi7kw/VjCi1iWNoc/y9OufzNC SND/ria/SRAVilLfJeWl57by4bea4EYIOT/t6LvAVxKxRPaTXH17o/77RlWhMnKDAgAAAABADaBQ qXRlZsmUxJevz06ZmR4Vk5+RKfs1rceivxr16hq06p+oB48HHdkpy7bW1qnTykVWnTz2dBto6trq g+B2bkqaRCz2+t9iMzcXWZ7QvYfvrN+a+iGCoarqMnV86+mTCSG312wK2bk/OzFJmctpNXGMy9Tx GAUAAAAAAABQrE6v7w4/dJQQssDEcMjeAzpW1rJEY8dmo46fPjJhnLaFZcmnGdv17G3Xs/fNdWvi XrwY8O+24vTgrZvfCW6MO3dJmce7vnL5oXGjRh0/TQghUumL82dHHj9FYzBO/DHlxppVPVauLq/w KpgUKAi/dvXifP+SiXf/20qhUmaEPCUUSuyzp1rmFgpaVFL04xBVDQ21evXq6JFwfhIhZAF36pCT PjoN9WWJBVn5u7tu9FzW065fs+Q3Cbu7bmTpcMzbWhFCnux/MPLyVBMX85R3SRuaL7Hu0litnobX 6r7JbxLWN13sGza/yjVREBQAAAAAAGqeTkPrUddOf7zz4GC/4b7P71Zklwf/7R4XdJGjpxu69/Dp idNlez0/dvrKnIDeOzaaOLfITUmVSiSyzIaOTRp276xR3/Rj8P2dnr1tunpq1DdFtwMAAAAAAIAC VHTBd3p86GDriZNYWlo0BqPtnzOiQx4nhr+WbWo5YhSNwSCE1Hd2TQoPr4HKqNcziXn65OXFCxKx 2KipA0NFpSJ7FWRlnZ45vcNf/lV+4vRvKfzic7Yu135AcwqVom2t5zC01cNtt2WbDBzqmbiYE0I0 LbQ5+rzkNwk1EBQAAAAAAH60qHuPVpjayf47O9mvaoXY9evJ0dMlhJi5uaR+iBQVFBJCHu3c7zxl nIW7G0NVhWdsqGZiLMts1sZZtqBr4tKSZ2yY+uEjRgEAAAAAAAAUo6MLvlNmXCxHr+gXn3QmU0Vd PT0mRvZrYI6OjiydQqOKRcIaqIzDgIEqary7//17fu5spzHjXH0mUmk0xbuICgr2jxhq1d7DYcBA jOZXIxuTzjXgFb/lGKi9vfqq6LUetzidSqOKheIaCAoAAAAAAD+agYP9wEPbi+7vVJQrvmPx73EJ IWw93c83CzRCiEQoJEyljKgYDXOzsjuGHTkZuu+wMC+fQqVmJyRKpRKMAgAAAAAAACiG9V35KBRK BXPyDA0z42JJk6aEEGF+fl5ampqhoeJCKl54Fdh4drbx7Jz09u3B0cNZmpqOA70VBBUVFh4cNULb wrLD3HkY9NIja6SeGZNe/DYzOo1nrF48hOUdNz8wKAAAAAAA/GA0JQZbV6ciOakMhkRY9C1eiVic nZik+I6Pa6CX/jGqVGLUg5DTE6ePC7qkbW1JCFlp3hRDAAAAAAAAAN++J0UXyMXV048NeyYRi6VS ackvYpfVzHtI0IZ/shITRAUF11cuN7C3125gVV2FV1bkvbvZSYmEEK6engpPTVwoVBBULBIeHjda ic1ynz2nICszPzNDVFCAoS9m1ck2NzUndN99iUiS8CL28Z67jsOdFO/C1uVQqJToRx8JIRKRpBqD Xpx5Ivzi85S3iUeH7yrILri/5dad9dcxRgAAAAAAP4u2tWXUg5C0yE9iofD26o2ivHzF+ZsO7h+8 bktk0F1RfkFWfELC85eEkLzUNLqyMltPRyqVPt59MDs+AR0LAAAAAAAA34Tf78rnNGbs0QnjlzVu qMzjDtq2U6+RbXk5W40aI8zL+7drZ2Fenmkr5wH/bf/mz3MrXnjk/XvnZs+UiEWEkK1dPCkUarfl K+s1b/Fo/95727cV5GRnJyZuaOdGCBl5/JSquvqnRw+PTvQpzM1hKKs08vJy9PZWEDQmNDT86hVC yItzZ2V5XMb5dPSfj9GXUWIzh52deH7a0YszjrN1Oe4Lu1l6NFS8izJXxXNZrwN9txJCLDs26rnF u7ycwjzh1tYrCSEZ0Wnn/jhy1f+M43Anp0ltywsaefsd11CNyVGOuPmmMCs/9kmUuECEMQIAAAAA +FksO7SzH9hni0tHIpU2HdLfwp2vOL+9d9/C3NyzU2emRXxU5vFc/5yka9vQwp1v2aHt2oYt6Soq TYf0b9Sr6+f7hfytrp6EkIzomHO+s6/OXeI4wttp0pjI2/fOTZ1VdIfYphOFQu22YWU9p+YYDgAA AAAAgDoF67tkwceYsolcPf1RJ06XTXeb+kepFCqN5jb1j7Lp8z58+nIn36uPfa8+3yy8LNOWrSZd v1k2vZn3kGbeQ8qmt5k0pc2kKXKLKhu0XvMWi6LjcQB8ORIy15VK0bHRH3GxdH+2/tOj5FvfsK9W xJ0m8p0m8r8Zi6HCmPToL7mb5Ab1CfaTvfCLWEoIUbByDAAAAAAAVeM0aYzTpDFyN5k4t5gV/bJk CoVC6bwqoPOqgFI5h545+OUuzFB/UW5ccf4WY4e3GDv8q9tJOr339g3y7heUJ4UI5NwhuraSmw4A AAAAAAB1CtZ3f77wq1fO+8tZ6rPy6OAVsBT9U3vlJGfLfqRbCkuLPS5oBvoHAAAAAAAAAAAAAAAA Kgvruz+flUcHK48O6IffD0uLPe3VQvQDAAAAAAAAAAAAAAAAVBcqugAAAAAAAAAAAAAAAAAAoFbA +i4AAAAAAAAAAAAAAAAAQO2A9V0AAAAAAAAAAAAAAAAAgNqhRv/+rimN/dVbunLNRtckTCUM+fd2 o1hPTiLHVm5mPs+l4iXzmboVOWwqWhqDX0cHSFX45bUS+9eqm7JauePFM8LJBQCVvtSzm/7+V3Wa 7e8zXgytn10BV5w1UFcuj8qNK5Ve2y7+WuXcTdSrVPrnKwMbB0wt/EDBqAFU7GThNvhtovxCvcox K3qh+qvcjPBVrHC0AwAA1EEUDw+PKu88duzYHj16KMgQGBjYsWNH9DIAAAAAAAAAAAAAAAAA/H6C g4OdnJyk30KhUIKDg9u3b6+gqFOnTvVdsPKbEX/473fbpz4khJDceCLM/un9G0mlmKrq4jj7rj4U niz7g9rI6C6mdPkdG2hv/s0yAzI3CAruR8aGm9Lk/IgzUqXQlNeo0vUUR5vSdAK11gTkrhcI75Xe nCIhudK6M2p8npO/se9PrEBATqSgMP1LfZTU/FmmAXmnBMJXReOV8s60kFt0zFitwYkGABWaYyT3 /3JhYTr5c3xraUMC4m4JsiLlf5ypcU2Z6oqu8Axtf9WGP7Bu+dsEopAv4eiO/sqj5Q9H2pHyCglU 70cIaR8/onIfXsot/NV8KlTJjIOC/LAKlalqJSh4gnMHfieBWnImTu3fDC83f4NdP/Nyl3tMIHxR Da3mzf+6vXsIIZH5yaZM+U+LCbQaWe5HSbgHjqJaeYOj1l2Qff/b2dgt/XUn1YlJUZJnueeL9iUc MHV3tpzkXUMfRtr7f+BnR/bHkv+e8Et8+GrYE0LaP91YI5c7C8L7IMh/UDxDJiJ1QW4YIYSv2thf awAhpP3zXlUpmefib/wnThMAAIDaqyaez8xX0hDkxvNZ9X56a3flRfGZOhj17+pDoZwHu+0ihK8m 5xlZgvSKLurzmS13kXC5z3PeVXiDz7SrdD1zo78UzmhVumLkDp/nhNGsSXwlOf/cxmfYfD6E3vE5 TQghgiz8szsAVObawvxNLuZ8jqn8jzOSymdo/+S60R0rfKk3ljMZKIz6kkG5xY+qZAWeOitbA+Yz m+DEgd+Ggu8r8DlyTjdB1oOff7ljNPreVstbIeZzTHflJxc/M/PrVkd86wrshmOplh35WTcJIXx2 S3TF15OiNvKuErfQM3X+wGj14z+M7v2Uf0/4aZegkl9eV7OooXH8ehbNVy099a3U30cDAACA3wMV XQAAAAAAAAAAAAAAAAAAUCtgfRcAAAAAAAAAAAAAAAAAoHbA+i4AAAAAAAAAAAAAAAAAQO2A9V3y 9mrQOgevpfWcNrTqIRFLfnS44H92rW7ccb66Xfilm2W37vAa/vLMVQxKbVSYU7DBfflS27+2eK0u u/X6/y5emH/yB4VO/Zi8ref6pbZ/rWq5MP5lLMYCAACgBicA+RtazllqPGFLmwUl0yNvv17nMCtA d+zlOYfQSwBQno8PPi6z/bt21Xl9m3WvLr3C2AEAAAAAAPxEWN8lF2Yuc5064q9Pd8dc3UelVbFD NrfpV8GcLpOHTwu7rG5iKHcrf6aPiXOzag9aBZfmrIy4/RCHR8UpsZiTrs30WtRL7tbG3Zo6Dmj5 g0IHbb6ubqI5O2zJlOuzdK31MRYAAAA1OAFQnnR/ideqwaXSTV2tpz5e1rhvK3QRAFT/zdrCSxF3 I9APAAAAAAAAdVZdX9+VSqXpUbFGzewJIUwOu2qF5KVnJjx/XS31qd+mJUtLvYaDyu2WiCAs7lYn bUs9XRuDH1R4+qcUQ/t6FApFicWkUCnobQAAAACAWqOS83epVPqTF3cpuOMAAAAAAAD4yeh1ufG7 uo3OSkgSFwr39fWhKTFsurTvuHg6IST+efgFv78TXr5laWvwZ4yz69eFEBK0Zlvy20hRQWHq+495 6Zmtxg9uNd6bEHJ++pJ31+9IxJK1TToRQvTtbPrvWV2FyjzadTRozfaM6Liem5bY9+9SnP7syDnB ii3ZiSl0plLj3p06LZtVhaDpn2LOTV8S/SiMyWG5Th3ZfGQ/QkjUw6dnpi606dL+/fU7OcmpJs6O 3dcvpNJpIbuPPdh+JOH562OjZzKUmb5PLv72R8Kry2FPTzwyc7II/lcgyhc2H+Lc9g9PQkh6dOq5 ucejn3xkspVdx7drPtiZECIWiU/7HX5/K1yYV8g1UPf0727RxkpB4XHPo49O3psZl27bzaHHiv7F 6Tv6bciMy5C9TvuUMmTPWAs36/KClufykjPvg8JTPiTFvYy5t+MWR4c76vhkXNcAAAC+SZhXuMVt QfNR7VqNcyeEnPXdnRGT6n3E99O9txf89lt62EXcepWbmt1sBN9lsichRCwUn5688/3158LcAq6R pufSARbtbKsQNz4s6oLfvoSX0SxtLt+vm10/p+L6CJaffn7iQVZcGkub12PjSPO2jTBMADV+ZRBe Drj0+vJrqUTaqEujDnM70pn0pLdJ/3X9d8TREfqNDcRC8dbOW+x727uMdyWERNyJuBxwKe1jmrqJ eqeFnU1amMjK+fTo07VlV+Ofx0ul0vqu9QduH6QgKI1Bu/r31ZADj+hMutMYZ5dxLoSQwBWBieEJ xTs+Pf701oZbk29MDtn/6MHehwkv449NPMpQZhBCJt+cQmPQCCH3d96/u+1Ofma+sYNxl7+78gx4 ilqaLxSsETw/G5YVl8XSZvVY1dO8jTkhJP5l/AX/8wmvE1habP5UN7te9rL8jw+GCNYKJCKJfW97 WTiZSgUFAAAAAACA6lKn13eHn9lGCFmgYTfk2GadhpayxIKs7N09xngu8bPr2zn5TcTunmNYOprm fCdCyJMDp0de2GXi7Jjy/uOGVj2svdqqGRt4rZqT/CZiffOu37kO2mx432bD+25x++qRy6L8ghM+ c8bfPKJna5WbkpYZlyhLr1RQiViyr99E+wFdBx3ckP4xelvHIeqmRhbtnAkhCS/e2PbsOObafmFe weY2fcKOX7Tv38VxWB/HYX1WWLr12bbczLV5HTkY3t0K16qv43trDoVKKcgpKOq34f/Z9242aPuo 9KjUbb3Wq9fTtGhjRaPTbDo09vTvrqKmenvz9dN+h/68N19Byfq2RlNuzL68+HReZn7J9JFHJsle hBy4++jAXVMnCwVByyu845xuhJBdAzfbdLRtObw1rmgAAAAVxFBR6rdzwo5Of5vzG6Z+SAy//HRC 8CIKhUIIiXv6sdU4d/d5vbMTMze5+BvYm5i1saExaDZeTT2XDlBRZ91ec+H0pB1/vqz0V/oKsvJ2 91jpuXSAXV+n5Ddxu3usZGlzZeu4l/46GPfko/ehqRr1dVM/JHCNNDFGADXv0oKL2Sk5U25NlUql B0bsF6y54T7LQ9tSu+M8z6OTjvlc9glcdo2jx3Ue50IISY9KPzBy/6Cd3mZOZuHXwvcP2zc1yJel xUqPSt8zcHcH/46DdnhLJdLi73SWJyshS4ml5PdkZvLbpG09txk0NjBzNms+pPlalzVZCVkcXQ4h 5MmxUMeBDoQQR+9mjt7NVjRZ3mdjXzMns+JCwk6H3d12Z/jhEVx97rVl1476HBl9eozilsaFxXnv 8NYw00yNSOEa8gghBVkFuwfu8pzXya6nXfK7pN0Dd7O02eatzRNeJ5ybc27k8VGG9oYPdj9IeBVf taAAAAAAAABQXfD3d0sLv3STraNl378LhUrVtjZ3GNzr4fYjsk0GTRuZODsSQjTNTTh6OslvfvhD sWhKDK6B3sNth1Pef1TVVNeztapCIVEPnmTFJbpOHUmlUTXq17Pu3O7FqcvFW50mDiWEMFSYxs3t E1+9q7PjTqGQdtM7UelUCpWizFEmhEQ9jsxKyHQd345Ko2qYall3sH1x/okss41nY1V1FoVCsevu kBGbLhaKqxw35lnUjXVXBmwdQVeiKw4KAAAA1Uu3kVH7eb2PjNh8esrOPtvGqWoU/akOKo1qP8CZ EMLW4Vp3bvryzKOiCUBXR1UNNoVCsevXKiM6VVwoqvw88ylbl2ff35lCpWhbGzgMaf1wxw1CiEQs Cd0X1GmFt05DI7oyQ6ehkTJXBQMEUMMkYsnjw4/b/sFXYikx2cxm3s2en30u2+Q4yFHPRnffkL3P zz7vtbaX7LsgT088MXOuL1tktXK3Ymmx3996J0uv16Jei6EtlLnKKmoqujZ637oTobiMc6HSqDrW ujaeNi/PvyCEcPW5Ddo3CDkYQgjJjM/8eP+jfe8mCgoJOfCo5fCWakZqVBrVaYzTp0efMuMzFbQ0 9HBop4DOOta6dCZdx1pXdgcUfi2crc2x721PoVK0G+g4DHB4uPchIeT15VfmbSyMmhpRqJQWw1ow 2cwqBAUAAAAAAIBqREcXlJIZk8A10C1+yzHQeXvtdtFrPe3idCqNKhaKfnRlKFTq2Gv7b6/f+Z/H YP3G1p3+9iv+nXHFZUTHFWTnrGzAl70VFwpNWxf9KpfJYSupFv3rIYVGlYhEdXbcObo8Ku2rrztk xKQX5OSvdCz6ba5YKDZ1MieEiEXioI2BH26/kUqlErGEECKVSKsWNDct58iE3b1WD+QZqisOCgAA AD+C49A2N5ae1LY2NHX58i06JRaTSi96+qiqBjvlfYLsQzlo9fkPghdSqVQiquIEIDMmlauv/mX6 oa/+9moYISQnMVNUINKsr4MRAfiJcpJzxELx7kG7Zcu3sql+sTaT22zqsKnttLYsTZYsJT0m4/2t dyuaLJe9FeYLs1NyZOmappX4Cb4SW4nOpH++K+GkfEiRvW4xvOXJP064TXF7euxJA3er4rjyb/pi Mm6svhG0MaioTFWlrIQsrh63vJaKCkVlK5kZl8HV/7ILR4/7VvCWEJKdmM3RZX++RaUU16RSQQEA AAAAAKAaYX23NJ6xfmZs/Jdb3Oh4npF+0RsKRf4+5aVXB7aulueSGR7zfW+v37mn9/jprwIrG5Rn qKeqoeb39mblKv4jG1U7jgQDNVU1lt/jRaXS7/wreHU5bPhBHxWeakpE0jq3pVUrXyqRHpu8t7m3 c32XBt8MCgAAAD/C1QXHDJqYpkYkPj18x75/0d+8L8jKF+YVMlSUCCEZMalsHR4h5M4/l16dCxl+ 1k9FjZXyPmFd05lVmV0YaWbGpn6ZZ8ak8ow1CSEsbQ6NQUv7lKyqycGgAPwsLC0WjUEbeWyUtqV2 qU0SkeTMzDPNBje7v/N+4x52WuZahBCeAc/K3arflv6lMnP1uDFPYioetzCnUCwUy/6obU5KDlun aCW1vkt9horS+1vvn5581nFOh69v1srevPCcxjq3GNqiQi3VZNHotLSoNFUN1a/vHNUyY788TToz NoNnqEYIYWmzY59+aVFeel4VggIAAAAAAEA1wvOZS7PydMtNzQjdf0oiEie8ePt430nHYb0V78LW 1aJQqdEhYYQQiUhcjZXJSUr9ePexWCiiKTG0LEzEQmEVghq3aMLS1ry+ZENeemZhbl582Ov0T9/+ 5wauvk7Mo7C6fCQYO5iytDnX/3cxLyO3MLcw/kVMenQqISQ3LYelwWKylYX5wjv/CqpcfuCqC0ps ZVefdhUJWikxTz/hRAYAAPimt9fCnh2922vrmD7bx1/w25/6IUGWLpVKg1afEwvF8c8+vT4f2rB7 M0JIbmo2S5PD5KgI8wrv/HOpivPMTva5qdmh+29LROKEF9GP9wY5DnMjhFDpNLt+ThdnHkh+Gy8q EKW8T8iITsEAAdT0vTGN6jjQ8criyxkxGaJCUdrHtNhnsUVT9xXXGCqMrsu6uU11O+JzRFQoIoQ0 6d3k/a33ry6+FOYJ8zPzI+5ECPOFhBC7Ho0jgj88PvS4ILsgPys/6nGU4rhSifTxoceEkKzErNdX Xjf0alS8qcWwFrc3BeWn55m7WXx1s6bHjQmNJoTIHidACGk2pPmdLcGxz2LFQnF2YnbEHUV/S4hK p9r1srs4/0Ly+2RRoSglIiUjJoMQYuVulZuWG3okVCKSJLxOeHzoseNAR0KITUfr97fef3r0SSKW hBwIycvIq0JQAAAAAAAAqEb4/W5pSizVYSf/PT9j6cVZy9i6Wu7zplq6uyreRZnL9lzqd2DAJEKI ZYc2PTcGlJdTmFewtW1/QkhGTPy5PxdfXbDGcWhvpwlDCCGbXHpLxOLUiKirC9YErdlm28uT7zde VFBwec7K5LcRFCpVw8y4/67VVQhKpdOGHNtyac6K9Y5ewtx8bWvzrmvmqdUzVNyojounn/FdFLR2 ++zI4Lp5JFDp1CG7x14KOL2e/7cwr1DbUq/r0j5qRhpOI9scmbhneRN/FTVVj1lery4XrYIH/ysI PXI/Pys/NzV7g/tyQojPxek0Bu30zMNRIZHZSVlSiTT6caR6PU3vHaPzM/OCNgZydLlrWy+R7e4x y6uRV5Pyglaq5hkxaYb29XAuAwAAKJCdkHFi3H89N41iaXNZ2lznSZ5Hhm8ec20uIYRrqEFTYqyx myGVSNrO7m7W2poQ4uTjcWTE5uVmk1XUWR4L+r46F1I0AfjnUui+oPzMvNyUrA0t5xBCfIIW0pTo R0ZsTnwZnRWXTqFS3l4L07M17rN9vBJLedipGedn7Ls4cz9bl+c+v4+le2NZOV6rBgcuOrG7+8rs xAyeoUb3DSN5RpoYJoAa5rmg043VN7b32padmM0z5LlNdTOwM3gf9D7kQMiEqxMpFEqr0U5vb7y9 EnC5c4CXmrHa4H1Driy+fML3BJVGNWxq2H/rAEKIZn0t7z2DA5dfuzDvPJVKtWxnabzJWEFQkxYm qZGpWzptzs/Ibz2xtewP+so07dv02rKrTqOdS/0pmY7+nmdmngnaGMTWZk8WTCGE2Ha1FeULT/xx IjUiRYWnYtu9sZmzmYKgXou7BK64tnvgruzEbJ4Br/v/evAMeUospWEHh5+fe+7ivAtsHbb7bA/L tpaEEF0bPa/FXkcnHBEXiht1aVRccmWDAgAAAAAAQHXB+i5ZkPqsVIqOjcWIcztKJbb+Y3TJt75P LpZ86+Qz2Mln8DdjMVSYk+6dkrtpQvDxsok8I/2x1w+WV1oFgxJCuAY6/XauKpVo3Nz+r6h7xW97 /PPVM4HNWreYGnKujhwDNh0b23RsLKff9Hj9Ng4tnaivNvrElOK3jbyayF64jOW7jOWXLaT78v5l E5W5Kgs/rpY/WPKCKjb8oE/Jtw072+O8BgAAUIyty5v5fn3xW7cZXd1mdJW9FuULS74t+oA21Bh9 Zc6XCUDP5kUTgMmeLpM9y5bfb6eP3Lg6NoYjzsl5trMSS7nT8kGdlg/C0AD8zNtjJt1jtofHbI+S ieatzWc9ny17TaFQhh4Y9uWWysF41InRZcup71K//pmxFYlo0sJk1MnR5W2VSqVEShz6O5RKN3M2 mxo0tVRik75Nm/RtWsG1AaGnAAAgAElEQVSWKrGUOi3s3Glh59LXKCudEUdHls3vMNDRYaBj2fRK BQUAAAAAAIBqu4FFF1S7nOS0rXw5S3osLfVxgsO/U1CoGddWnH92MqRsurufl11PR/QPAABANZNK 0QcAUJ03ayk5WztvkXOzpskad2F8uZciifT6qusWbS3VTdRrLCgAAAAAAADUCljfrX4sLfVpz6/U haBQM9z9vNz9vNAPAAAAAAC18g5RkzXt/p+V2uXKkiuP9j7Ut9Xvu7lfjQUFAAAAAACA2gLruwAA AAAARUycGsyK3IB+AICfq8OcDh3mdEA/AAAAAAAAgFxUdAEAAAAAAAAAAAAAAAAAQK2A9V0AAAAA AAAAAAAAAAAAgNrhh6/v8pU0fp3WmirxMOTf24d0czmJ7Fz5o6/GrkTJLFP56cx6VaknTY/PbILx qjXHFVW76JjhYNQAoMJzDKbT7395lCrVmuFQMlaczldu8ZNrqNwYZw38dpdB+RMnPqdFpdJrWasZ jcq0y5QQYspUL6fVZopK47jhQKp9xwBGTc7VoE2l0qHOHBitfpsov9KkV63ohZrFr1IlnguOdgAA gDqI4uHhUeWdx44d26NHDwUZAgMDO3bsiF4GAAAAAAAAAAAAAAAAgN9PcHCwk5OT9FsoFEpwcHD7 9u0VFHXq1Km+C1Z+MyL9RzepfWZ7QkikJNKUavrT+zeyUGJK8OvA7+vDKJYpXb90ooa2KVP+D7UD tdy/WWZA2jpB3t0fUdtAg0MBGQcF+WGlN2Q7k0LjujNqfK6av6HJT6xAQMohQe6XUeCrNvbXHBCQ tVZQIH/cI3NGmdK/DFCgoU1AyjJBblCJElr7a87C+QhQx7VP2vjlssC08Od+4ytlAXkBAqGg2i6t DL6/in/1XCSz1wkKy7keplqY0hR9YEVmfzAt86yUQKuZ1XYBz9wgKLhfop9b+nMnyR+OsAflfhw3 bkEIaZ+wv3I9rGziz3P9UpP0i4L8t/KzSt8QaXLFyvyfIC8T5w78TgINbeScj+HLy81ffdeHKl1S XggKEquh1dptv2rv8/7fuIURa5sqf36WAMfa36D7l31Tn+IoqpU3OLSXcu7y5B4tukt/em0Dsi4I Ct6U+DBt4M/pXOLfTF6VW3muTYUnRZ6KToHYBFOa6ZdibU9+u86pMYK8zEhagakKs9JnKM/mZ1xe rgsKPpS4Soz+fSfA3p/b+O2ZVftXa2row8jmj6q0JbNb+Qf/mS+DG/VBkJH2a3342joSQtonDamJ yx2zJSGZgoJbn9+2IaJhsgktX4Xrr2FICGn/6n1VSuay/Q118YECAABQe9FrIAafwd9VsIvP4P/0 1u4qvI5n9n5vH5K3fJ5FmcQMPlPOpFBQkFDRg0Sl+p+xWbxmXPZ5jIJswueqYTRrEl+1sbwbFfnj viuH8FW4n8cx83MJrdGNAFDmMlK5p6L9CrMR+RVTKud6SJL4LHNFn8vZH/gc668+47JeV3cnt6xo Tp6cL3sJMlK/ZFD+ri8b8ZUty/nEf1ORiYRsYlD8+QLwG1DwfYVSV4YfdH2o0iVF53tbLW+FmM9T dBHYlfpObod8vgLjvqC2HfmF6aRiT92v4BpwjRz5DRTOT+R8NgmEmZUM0ab8u/ijxY9vFWQEV/gm nburMElu3RT1uTDz53Vy/c9XiQ+/+wS4laDgXkUzcxv88FMy803V28JwlXcU3S5zkVf/hS5BJRab Kz5P/u5Bb1Pq9Cwz0GwCAAAAdQwVXQAAAAAAAAAAAAAAAAAAUCtgfRcAAAAAAAAAAAAAAAAAoHbA +i4AAAAAAAAAAAAAAAAAQO2A9V3y9uqzdU1nLjWesKHlHIlYUjNBb/3v3ArLqX/Xm3hq4vaS6Ts6 L3t5+lGlispOyJjHHZ6fkVvloFAtCnNyNrTrsLSh3ZbOXctuvb5q9YV5C9FLAAAAv44FOiaJr8LL 27qjW5+XZy+Ut3V9S7dXFy4Vv30vuLW5bacaq/mevt53t2yrrtIUtxQAStxPbVph0fxvY/tTE/xq IFzw+v9WN3Kdz6sffimwZPqRYZNWWraYxzEtzMnBoAAAAAAAANRNdHTBBb/9rlM7Ow53K8jKo9Kq uOC9ufV8n6CKrt5lxqZdX3xi0oOlmha6wtyCkpv4M7vrNjL6Ec1UEBSqhRKLNen6lacnTt7dtqPs 1sbdukrEYvQSAABAbcGf8YeujXUFMxvY23nMm/U7tfSS/yIrTw8zF6cfETH80tXYp2FtZ06ryWZW tkWb23byuXERJ0Jdc3fjjouzFhW/Zeto+b1/9Pl+Kv56wP8mPbyqaWEmzM2tgcq4TBnjMmXMWju3 Uun9dm/IjIlbZe2E8QIAAAAAAKiz6vr6rlQqTY9KMWpuTghhclSqVkheek7C86iK50//lMzkqmhZ 6hFClFjKJTfVd7OpdHgK5TuDQg3QbmCJTgAAAPjllD+Pqt/apeI7qqirWbR1q6V9ULalUqk04vZd K0+PHxQx4vYdJodTw3P+SrUoLz0j4cVLnB91k4lzi2Gn95Y909M/RTO5HC3L+oQQJRYLHQUAAAAA AAA/UZ1e393VbUVWfLq4ULSv72oag27TxaHjkgGEkPiwqAt++xJeRrO0uXy/bnb9nAghQavPJ7+N ExWIUt8n5KXntPLxaDXegxByfvred4HPJWLJWns/Qoi+vUn/PRPLi5j4MvrsH3vSo1LyM3Jl+T0W 9G3Uszkh5NFOQdCa8xnRqT03j7Lv7yzLX15QsVB8Ze7hZ0fvqqiznCZ2VNxMBUHltpQQssnF32NB 3+B/LiW+jPZ7t/63PxJeXbry9PgJM2en4H//E+XnNx8yuO00X0JIelT0ubnzokOfMNlsV59xzYd4 E0LEItHpGTPf3wwS5uVxDQw85821cGutoPC4sOdHJ03JjIu37d61x8rlxek7+vTPjIuXvU779GnI vt0Wbm3KC1qePd5DTVu1/HA7ODctTSKWeAUsMHPGF/kBAAAqPAe4cGnfgKGFOTnWnTp6rVjMUFYm hDzavT9o/caM6Nie/6y279erOPPjfQcFq9ZJRCL7fr1oSozi9A2u7bPiE1TUeL6Pgr8ZUZifL1i5 5vmps1lx8Sxt7R7rVprz2xBCbv+zOWTPgeykZGUup9W4US4Tx8nyZ8TEXp6/ODL4bn5GpoaZyYjT R1haWoSQ9E9R/3bomhT+lmto0GXFYjNXZ0KIMC/v8vzFry9clkokjbp5dVg4l85kKqiM3JaG7Dnw YOfehBcvj42dxFBRJoRMviOQtff+tp13t2zPz8w0bubQZeVSnqGBrA+fHj5u1to5eOO/orz85iOG yH6YK7dFUQ9DrixcGvfsOY1Bf3r0OCGk5z+rTZxaEkJenD53Y8XqrPgE7QaWnZctMrC3I4TkZ2Su cXQeuHvbuZlzcpNT9Ro3HHp0v4IWxT59dn6mf/K794QQvUYNBx/azVBRKa9FYqHotO+M9zduCvPy uIYGngHzZIv05/3mvrtxUyIWr23mQgjRb2zbf+fWKnQv1FIUKoWuzPz6fir8rO/c9OiY/IxM2a9p PRb6NerpFbR6c9SDx4MO/SfLttbOrdOKeVae7ff0HGrq0vKDIDg3NU0ilnitXGDWpmiKHrr/2J1/ tqV+iGSoqrpMGdN6mg8h5Pa6rSE7D2UnJinzOK18RrpMGYNRAAAAAAAAAMXq9Pru8DN+hJAF6iOH HJum07DoqcgFWXm7e6z0XDrArq9T8pu43T1WsrS55m0bEUKeHAgeeXG2iXODlPcJG1rOsfZyUDPW 9Fo1JPlN3Ppms32frvhmRJ2GRqMu//Xx7puDA9eXyt9sBL/ZCP6WNgtK7SI36KOdN94Ghk28u1iZ p3pywvaqBVXQUkLIpTmHBu6brNVAv44cDO9uBWmZ1/cNElCo1IKcHEKIRCzeN2ykfZ+eg3b8lx4V ta1nH/V69SzcWtPodJuOHTznzVVRU7u9acvpGX5/PriroGT9xrZTbl6/HLAkLzOzZPrIY4dlL0IO HHy076CpUysFQRWU/2DPvnHnT3N0dEKPHDs9Y5Zv8E1c1wAAACoo+tHjSXeuiwuFe/oMClq7sd2s PwkhzYZ5NxvmvaVd55I5E16+Puc3d+TZY4ZN7R/s2J3w4lXxpkm3A8MvX7s4Z35FIl6auzDuaZj3 vp0a9U1TP0RyDQ1k6YYOTRp26axhZvLx7v2d3fvZdPbUMDORiET7Bg4zbGI//vpFFTVewqtw2eIu IeTZ8VPDjh/UbWRze/3m074zZEvLl+YuzE5KnnL/plQqPeA9UrBijbu/oqdGy22p49BBjkMHrbBu 2uffDSWfZhx24vTdLduHnzzENdC/tnj50dETRl88VTSPunFLy8Lc92EQhUotyM5R0CLj5o6jzh0/ MnqCtqVFyeczRz0MOTvjr2HHDug1bhR+6cru3oOm3LvJ0tIkhOSlpd/7b8eocydU1Hh56RmKu/fC 7Pm2Pbs5jRslzM+PexrGUFFR0CIag27TuaNnwDwVdbXb6zadnjrjz2cPCCFeKxYnv323vhW/1IJ9 ZbsXfhs6Da1GXTn68e7DgwPG+j6r0GT7wbZ94wSnOXo6ofuPnZ40S7bX8+Pnrsxd2nvbOhOnZrkp aVKp5PPJYt+wm6eGmcnHOw92dh5o07WDhpkJuh0AAAAAAAAUoKILSgm/9JSty7Pv70yhUrStDRyG tH6444Zsk0FTUxPnBoQQTXNdjp5a8pvYGqiP3KCvzj1uNtyNrcujKzOcJ3es9pYSQpp6t647i7uE EAqFtJvxJ5VOp1CpyhwOISQq5HFWQoKrz3gqjaZhamrdocOLc+dlmW08O6qqq1MoFLse3TNi48RC YZXjxjx7dmPN+gH/baErKSkOWh67Ht04OjqEEDNnp9SPH0WFhTiLAQAAKqjl6BFKqqoqaryWo4e/ PKvoM/f1xcvmbdsYOTalUKktRg5jstlVCCcRi0MPHO709yIdGys6k6ljY6XMLXpMsZmLk2xFx8Sp Jc/IMDUykhAS9ehxRlR0l5VLufp6DBUVI4cmXyYAfXrq2TakUCi2PbqkRnwUFRRKxOLHBw63nfGH EovFZLObDR30/PS5auyrkL0HW44ermZsRKXRnMaP/vTgUfGTSCgUSru/ZhTNoxS2qDyPDxy2691D 386WQqFYd+qoY231/NSZ4q2tp05UUeMRQmT/V0DdpN6r8xc/3nvAUFau17L5Nxtl4+WpqqFOoVDs +vTIiIkVFwoVjN0P7V74dUTdD1lh3kz239mpf1WtELs+3Th6OoQQs9ZOsjOUEPJo10HnyWMs2rdm qKrwjA3U6hV9w9isdauik8W5Bc/IIPXDJ4wCAAAAAAAAKEZHF5SSGZPK1VcvfsvRV397NazotZ5a cTqVRhULxTVQH7lBsxMyitM5OrxqbykhhGeoUafGnaOrS6XRSqZkxMYW5OSsdCj6l0FxoVD2E1ux SBS0YdOHoNtSQiQiESFEKpFULWhuWtqR8ZN6rVnF+/zbnfKCKsDW0Sk+PAghEqGQKCnhRAYAAKgI 2S9ECSFsXZ3spGQFObMTkji6RZ+5FCqVpa1ZhXA5ScmigkJNM9Oym8KOnwo9eFSYn0+hUrITEqUS KSEkIzqWa6BPZ8r5ZC+ePNAYDEKIRCTMS0sTFwp39/GmUCiEEImkmmeqGdExN1asDlq7UfZWSVU1 KyGRq69HCOHolZ5HldeicuelsXElf1nL1dfLiI4t29hv6r525YMdu09NmU6l0dz9Z9p09lSQWSwU Ba3b8OFmkFT6eVInlSgYux/avfDrMGhqN/DA1qK7ZRXliu9Y8qaArff1FF0kJEyljKhYjfpyfpgb dvRM6P6jwrwCCpWSnZhU5ZsLAAAAAAAAqDuwvlsaz0gzMza1+G1mTCrP+PO/31Eo8vcpL71ayCuc rcPNSih6PF1eWk71txQI4enrq6qr+YU+KpV+Z+t/ry5fGX5ovwqPlxIRsa5126qVL5VIjk2a0nzw oPquLt8MqvAAoWCwAAAAqiYvPV32Ijc5la2jrSAnS0crNvTZlx3T0qsQjqWlSWPQ06KiVTW/+iJd 1KPHp339xgWe125gSQhZ2chRls7V18uKTxALRTRG6Uk7hVr6MTwsbS2aEmPk2aOyQr57ClpmamRo 4OQzpsXIoRXZu7wWlTd7UTMyzIyNK36bERNbr2WzqtzbMJWcfcY4+4x5e+3GoeFjJ9y8rGlev7wW 3dm49dX5y8NPHlJR46V8iFjXvLWCGXg1dy/8wmhKDLaudkVyUul02TcDCCESsbjkd0TkTtG5Brrp H6NLnywPQ09PmjXu1hltKwtCyMoGLTEEAAAAAAAA8O17UnRBKVad7HNTs0P335aIxAkvoh/vDXIc 5qZ4F7Yuj0KlRId8IIRIRDXxXX7rLo6PdgoyY9NE+cI7m67UWEvrFGNHB5aW1vVVq/MyMgpzc+Nf vEyPiiaE5KalsTTUmWy2MD//ztb/qlx+4Mr/KbHYrhPGVyRopcQ8fYrhAwAAqIjH+w9JJRKxUPR4 /6FGXb0U5LTp1PG94NanB48kYnHI3oPf/EOw8mfedLpdn14X/5qf/O69qKAw5UNERnQMISQvNY2u oszW0ZFKpY/3H8pOSCyaGDR3ZGlpXfxrXnZSkjA/P+bJs8Lc3HILp9EcBw+8smBJRnSMqKAwLfJT 7NNnVe4Zrr5+TEgo+fy0EkJIs+GD72zaGvv0mbhQmJ2YFHH7joLdy2vR58L1Yp+FScRiqVQq+6mi w5BBz46figl9KhGLX569kPg6vFH3LlWo9psrgYU5OYQQTXOzkmtvcluUm5bG0tRgctjC/Pw7G7d+ Nb3X0aFQqdGPnxTnr97uhd+DtpVF1IPQtI9RYqHo9tqtorx8xfmbevcN/ue/yNv3RfkFWfGJCc9f fzlZdLWlUunjvUey4xPRsQAAAAAAAPBN+P1uaUos5WGnZpyfse/izP1sXZ77/D6W7o0V76LMVfH8 e+CB/msJIZYd7HtuGlWFuJtc/CUiSWpE4tUFx4JWn7ft1ZI/s1t5mZuPbJv6PmGTyzwmR9l1aufn x+/XTEvrFCqdPmTvrkuLFq9v01aYl69tadn178VqxkZOo0YcmTB5uZ2Dipqax2y/V5eL1teDt/4X evhoflZWbmrqhnYdCCE+l8/TGIzTM2ZFhTzOTkqSSiTRIaHqJvW8d27Lz8wM2rCJo6u71qVoTd1j tl+jLl7lBa1UzTNiYg3t7TGCAAAAijFUVEydnf7r2C0nNdXMxdl16oSiWZlbB4lIlBrx8WrA30Hr Ntj27Maf7qvbyMZrecDRMRPFBYWNuncxc3WWZX60e/+9f7cXZOdkJyZucGlHCBl59riqhnp5Qb2W BwQuWbG796DsxESeoUH3dat4RoYW7dws2/PXOjrTlZWbDuxXvLRJU2IMObz3kv+iDS7thTm52lYN hh7dp6SqWl7hnovn31ixenuX3tmJiTxDQ7c/pxjY2ymaf8prqWxTx0Vzz0ybFbR+E1tbe/LdG4QQ 2x5dRfn5Jyb+kfohUkWNZ9uzW3EnlFVei2ScfMYcHT1hmWVjZR5v0J5teo0bGTax675u5cnJ0zJj YrWtGgw9up+trV2FMQ3Ze/D4hKlSiURVQ91j3mxtqwbFm8q2yGncqCOjJyxvYKeirubhP/vV+csl pvccz8XzDwwaQQix9GjX85//VaF74bdn2YFvP6DnltZdiVTadHAfC/c2ivPbD+pVmJt71ndOWuQn ZR7X9Q8fXVtri/ZtLD3c1jZuQ1dRburdp1HPoi+aCPPyt7p1k83tz03zvzpvueOwAU4TR0YGPzj3 x1zZ1w62unWnUKnd1i+t16oZhgMAAAAAAKBOwfouWZC2o1SKjo3hiHMzSyW2nvbVTzp8n64o+dbJ p4OTT4cKRjRxajArckOpxAnBAWVzlheUxqB1XuHdeYW37G3zUW2rFlRuS8urzG/MxrODjaec4ePq 6fXbVLrTuPr6o08eK37bqEvRGLmMG+MybkzZQrqvXFY2UZnLXRgVIbcycoOWZ+j+PSUrtig6khDS sHMnnNcAAADfNOfja0JIs2HepSdCN+U/HMVh8ECHwQNLJTYb5l22BAWUWKxOSxd2WrqwZCKVTu+9 eb3c/Oqm9Qbu3VZ6AnB0/5cJgIH+opSip33QmUwP/9ke/rMrWJnyWkoIMXN1nvrgVqnEJgP6NhnQ t/Q8qrNn2T9zq6BFhBCuvt6o8ycqUo4yj1vcuooo21cKWsQ10B994eSXSV2pRehxo5zGffWtzcp2 L9RGThNHOk0cWc79VPNZH0NLplAolM4r5ndeMb/0GXqyxBTdUH9RVmRx/hZjhrQYM6T0yfLfmrLh GCrKkx7IOUNNXVrITQcAAAAAAIA6Beu71S8nOWur24Ky6Swt7rib83+noFAzri1f+ezkqbLp7jNn 2PXsgf4BAAD4xaaCKVvd5TzqmaWpMS7wQg1XJvzS1fOz/MumW3X08FoegO4FAAAAAAAAAKiNsL5b /VhanGkv/lcXgkLNcJ85w33mDPQDAABALZkKak57cu8XqYyVp4eVpwe69//s3WdcE0kbAPAnhYSQ RoDQS5AiClIsKIIaRcR6Yu/Ka8HeTs+zHOrJnWfvJ3rneWAXy+mpWFEUgbOAgqJYEJDeCQQIpL0f gqAYQhFF8Pl/8Ieb2ZnZZ2dnZ3eyG4QQQgghhBBCCKHWhIghQAghhBBCCCGEEEIIIYQQQgihFgHn dxFCCCGEEEIIIYQQQgghhBBCqGXA+V2EEEIIIYQQQgghhBBCCCGEEGoZPvv8Ll+NDwA8Iu9r2Nqv pBotGo/BVLJQrqZ871P1mrGqfJoL7q+W2swoRe/tRxYGBCFUy1nGsvX3h+rUuhLUPNXymTbNszvY WqqX89XNmrnB4MAAtb5usJZhUm39QHP1D03d+et+1M+41DW2ZNSaG0UTG1LLawP13mt89Q4tYHPU WA1aXstx0VPVIUA3ee94cW3AOESN2lSb82V7iTategDcrerfuhOzrL9ElRpbCl/NrUHLv5ZdwOa8 2xddv5YqsRh4akAIIYS+QQQPD49Gr+zj4+Pl5aUiQUhIiKenJ0YZIYQQQgghhBBCCCGEEEIIIdT6 hIeHu7i4yOtCIBDCw8Pd3d1VZHXu3LlRazfXWSL5c2+Se+JxAEgq4fJI5riDW4EkWRKPWvM7vEmU uzyKhpLEpFAeVVL13xDWv0rz9BNFhEreNn1VSxJ5UkpSeRKP9NE3iGUmIGd/UzsuxHycksPzye5a o1fRlkfVVrJcI5ynWaB0FT7F1pcxUvkuzt4dWvJfzawEGjyCYy2lp/DUq58DC+mwzC/rcagws7os hr6vniMejwh949xfH6/uN6RHeZQ6OvakYgce0b2pSuezOb4mTfN0iF9RSmi5QHmd1aJ4ZFWPziSV vuARa254iM4iVcUJL4dWvKrHGV/KIxklyZ7xyITqheUvecQPnpxLKnDgSXoAAHAv1HoO0lkEAO65 YxoWYaqLL7N6Q/zK0kLFRcqTSu6CrF4DCX6FZWjxYzx2UKsa47XdrqR7FJypNT17RDPW1i9jb2jx /SbYauuA2k4Hyjs0tgbv3ROfSdnJPCI9xKIyDu6Zu7AVtUR8jbah5a/r1Vq4c5u9tn4Zd0KLk2pt n5RXvE9+jjwpO5hH1qn1U1InnrpJwzKEFB5NvSXdqSi9xyO810Lo3Xx157fOAXBMQmXbdrCoO3Hi /i91w2FmY7Yl8Xh97mD45Z4ILX3yNTU2Lo9oH2Ldx13w/Et0d2oskN4ILX/8boTsCHJ9RQfIp1r6 sjwBwD3raGNyVjfzZbsBQgghhFos8hcog083DSgpw7eFtA4BhcBn1LxuDKgAvrqVksTi0Kr36oSK 76pqJGTTpq8qJPJpbQPKk/gaNd/KFSos5NNNv529FlpS611vPttKefRyql869OE+BT7FtlH9QM33 RwUIYvmayt+tGpCdwmdXvj8wVBBfmQNDHw9AhFDNvoVh+q5LUdLP1OxbisuU9mxfxYZQlU9OB8jq OEUGwAs+9YN34oWWv6y7OIpV3adRUTyfYhIgesZXq+72A8pf8qmOH1ZAzmcxQouEAFCjJh/Xh0/9 pDck1/bKx1AJ8Kl2dZ8Ny58CAJ+JXw9CrWiMV/v3FfhqxkrSi1Obv7tjOn/yVt9XcTqopavM5atx 3/2dXHNddStsSy2s5YteQf1+pqGec8BfpOXzam2f5a/4tLaffPEbrOJF5QHCioZe/waUpLSsQyOg 9F6dQ8HWMwDWZIQWCut9JW7x2Q/JkoTGb4uylvnxHYyP7+o0a2PLrHN0+hkuFhw//K/lR+cyM0AI IYTQN4aIIUAIIYQQQgghhBBCCCGEEEIIoRYB53cRQgghhBBCCCGEEEIIIYQQQqhlwPldhBBCCCGE EEIIIYQQQgghhBBqGZpzfvfVrZs7e3Rf377tnj69ZFLp5y4ufL//Npcua0wNX9y43iQZCnOyVxvr i4oEdaa8s2fXJif732zbnlu6uAm3KOm/yJ09Xf0seVf9fv5ihaLaVJSU7ek5ab11/339pn386c2N B4J/2tnkhQaMXHjvrzMYfIQQQqgR1ppOzY6v9edID47c8OzSw9o+3dVz+fMr0VX/TbgT599/zbcc zJubzwavPvoZxleiPX1WrW83Z9+AtR8MgyPjd/ZY7mfhc3XdCWzJqBkFTf1ts83E1ZyBFSVlH1wX uMxezxu1r/cCDBH6BhW+zVrNGSiTSDEUCCGEEEIIfT7kZiw7ePVPbrPndBo/sby4mEgiNS4T/wEe sy/Xa77WdeZs15mzd7h2+8KbWZSZcXPzxnk372i3aSMuLW3CnHndXBbeCT/3w/dfslBUGwqdNu/O 4ZjTVyP/CPr40w7D+uL1LUIIIdSC8BcP1bMxrmdiQ3uex4pRX/PmvLj+OD02qfcSr8+Uf4eh3T7H 9zUpdPV5N3+NOSnmkxkAACAASURBVBMReeDaB8NgF5uFYRvOLT34jYQXfbVGH1xRlJ67xXZyzeuC SP+YoJuR/udqpC/NLzo7a2thSva8SH+MHkIIIYQQQgihRmu2+V25XF6YmmLcsRMAUJnMxmVSJhBk PXvWfNEj1CdRYUoKlcnUsbAAAAqd/mVq1iyFIhW41rzP1gwJGF6EEEKoyU+jbVzb1X9Fmibdspfd 17yhieHPqUza5xzqGH7L7ehzhxe1Dhkxr49P/tXUuR2kYDAQQgghhBBCCH2S5pnfDRg7qjg7SyoW H5k8gaRGadd/gKfvGgDIfBYX7Lsq60U8XUeHv3Cx/bARABD2++7chNeSior8N2/KBIJu06Z3mzod AC79tOL17dsyqVTxSK6Bnd2Y/QcaURmlhUol4vM/LEm4fVtcVsYyNOy/eq1lL75i+TW/dbHnztI0 NV1mzFSdc/aL+AsrfixMSxUVFSkq6bFile3gIbUVCgB7+7l7rFgVvt8/+0U8RYM+4/xFuo5OgzZH RaF3/fdGHTsizM1RZzK7TZvhOnO2YhVBevrVX35OiowUFQm0zHj/CzqjKPTe3wcj//pz0d3IVn8Y PL8cFnPqirlrx3D/ExJReZcpXr1/mAoAhSkZF1dsT42KozLpbnPHd5niBQBSseT8ko0JoffFZeUs Q93+P8+z5DuryDwj9uWp2WuL0rPtvPp6bV9etfzgsHlF6TmKvwuS0ycd32LZu2tthaqQ9ybF32Nq QVK6QQfrYTtXaJoYYL+GEEII1XcMcDX6yORtFSXlNp5Og36dpKZOAYCHR0LD9l4SpOUP2zbNYUT3 qsTRx++E7jgvk8gcRnQnqVWPove4/1ScWUBj0xdFbFJdXNBsf46pzssbMTqWBjoWBrHnIjtP4PeY OwgAMp+lBPseyYpPpeuw+Au/sx/uAgB/DPZzHNXdeYq7YvXzP/xNJBGHbJgCAPf+vhF54LqoqNSk o8Xg3yazDbVqKzQl6vW1X4Mynr4lkUkxZyIAYNj26WZdrWsrVClRUekmx4Wzr/xcNY+70+1H92XD 7b7rmvEk+dRc/6KMAruhXb22TK1aJT026dJPR3ITMgBAv73pxEOL1WiUlOiEw+O3rIyvfHLx3NKD NJaG5+qxUon0/NK/E24/FZeVs4y0+68e24j58pBNZ7NfpI77q/KNuDFnIu7suTj/1vra0oftuZSb kCGpkOQnZpUVlnSb5tFtmofio4/DKxZV7BuwtsukPt2m9gWACz8GCjLyJwQuSo1OqC28qIV6dOx6 xO//5L9JV6Oru84b3mPRaAC4u+t01KErwuxCdRa926yhrvOGNyJnOlfTa/cimVhy5acDGGfUgjz4 Ozgt+mVBUqYwu8B13vCIvee0zA3GH1tdn0MjOfLpSe/fRh9cznPtAAD3/rwQue+8SCA06WwzeOtc thEXw4sQQgghhFDjNM/8rveJUwCw1sxo0uFjum1tFAvLi4sDx4/pv3qtvdfw3NevA8ePoetwLXr0 BIDHp4Kmnv7HrGu3vMQ3e/r0sunXX9PYeNAvv+W+fr2L77Yo/L9G16S2QklktXae/fuv/pmmqXl3 757zP3y/5H40ADw8fPjV7Vtzb9xSZ7H/WbJIdea6bW2mnT2ffP/e8Wne71dSxZYCwBW/teP+OKhj aVkmENDY7IZuUW2FAoCRo2P7gQO1zHjJ9/77e/SIdv0HaJnxZBLJkSkTjRwcZl2+SmNrKqacAeDJ +XORf/2p2FPfgteh93UsTRf9d4JAJJQLSwFAJpUdmbDMYVT/8YEbCt+mHxgyh2NmaMl3JqmR2/Xv 0f/neTRN1t3dR88v3rDk0VkVORvYWy8IP3Z17Z4ygfD95VP/2aP4I+rIvw8P/8tz7aiiUBX5x1+5 O/XcbqaezuWfdp6d/+vUc3uwX0MIIYTqKTUqYd6t9VKx5ND4LWF7LvVZOgwAOk/kd57Ir/GDr1nx qRdXHZ56ZrmRQ5v7gSFZz6ufv5sX8suLG48vrz5WnxIrSspnBq/Z0GG+Wde2U44t/WvYbz3mDiov Lgsct7n/6rH2w1xyX2cEjttM57Isetg6jXF7HHRXMb8rKRfHXbg/+cQPAPDk/L3IA9e9Ty5jGXBu bDh9avbe6ed/qq1Ek06W086uDJrtz7U0eP8FwrUVqjQTdZZGu/4dH58JV7yGOiU6oTRfaNO/EwAY dDBbcGfD1XUnyoo++E2Q4NVH7b5zdpneTyyqyHiSrEajqAgLiUxq5+nUf81Ymib97u/B55ceXPJg W0P3ZpdJ/B2uPxZnFTL1NAHg8enwTuN6ql7l8anwqWdWmHW1zkvM2tN7lY1nR01jbaXhVVOnjPaf c3D4bxY92ucnZb8IiZlzfR2BQKgtvKiFenr2zrU1B0fs/8HMxbY0r0guk1VeSXW0bj/EVcvcIDny 6d9Dlrcb5KJl3uBvVbIMdViGOi+v3cc4oxYn7dGrOWF7Aoetenn94dyIvds6eOe9TtO2NFJ1aBAI SRFPT0/fOO7ITyZd2gHAk7O3I/ed9z63nmWoc8Mv4NTUDdOvbsXYIoQQQggh1DjEr6cqL0KuM7i6 DsNHEohErrV1x7HjHhw+pPjI0N7BrGs3ANA2b8PU189NePUFCm3Xf6AGh0MgEOy9hgvS06ViMQA8 v3q58/iJDK4umUrt7jOryQsFAKdRY3UsLQGgEZO7qpm7dNcy4wGAWddubCOj/KQkAEiJjhKkpg5e v5Glb6BGoxk7OikSRx0/2tX7f5rGxt/IkUAgEPr8OINIJhGIRHUWAwBSHj4tzsp1mzeeSCJqmRvb 9HeL+/dWZdsY2FODwyYQCPYjPATp2Yq20cjr5Mfxt7YGjD34K5miprrQ2nQY5q5prE9SI7vNn5AU +bg0X4D9GkIIIVRPXf/nTtGg0tj0rt7uz4IfqkgZfzXaoqetsZMFgUhwnuJOZag3rkQ9G2MyVY2p yzZyNGfqc4S5AgB4cSOGwWU7jOhOIBK41oYdx/Z4cPgWAHTw6pb5LCUvMQsA4q89YupzjB3bAEDU sdtdvd01jbWJJKLLjH5vH74uyixo8Ii0lkJr4zTaLfZspFwmB4CYU+EdhnYlU1R9VZRjxn1+JTr5 /ks1dYppF6s669NuQCcNDoNAINgP6yZIz5eKJQ3dIpaBlrW7fdTxOwBQlFmQfO+lwwhX1asYOvAU z9pqm+sx9TVzX6erCK+ejbH78hFBs/3PL/t75J6ZGhwGHkGtz8NDV7rPHWbZp6Majco25mqa6lVe SbnZK2atzFzs2Ma6+YkZjS5CLscwo5ZH18aMQCBwePpGHa0IBAJTX0uYU6Di0CBT1VIfxp+ZuXn8 sTWKyV0AiDp0tev0wZomukQS0WW219v7z4sy8jC2CCGEEEIINQ7566lKUXoGS1+/6r9Mff1Xt25W /q2nV7WcSCQ14nZPQwuVSsRhe3a/CbsjB7lMIgUAxXe3hdnZTN3KyjC5uk2+pQDANvxcv1725Nw/ j06dFIvKCASiMDtbLpcBgCA9jWVgQKbUfKJCkJZ2a9vWsN93L3v05Fs4Epj6OkQS8cMIZJULSzd3 GKr4r1Qs5nV3AgCpWBK2+8ibOw/l8qq20cibNKUFgiCf1cN3rWQb6akuVAW6DufdYaINAMKcfA0t NnZtCCGEUH3QdViKPxi6msKcIhUphdkCxVOhAEAgEujarMaVSKKQFTmoUdUIBIJiFFGUkc8y4Lw3 LOG8Cn0CAOpMmk3/jjGnw/v8MDzmdITTmB7vBgx5t7adC/v9ouK/FA1qcVYhS5/TsBFpLYXWxqKn nVwOiZHxZs5WTy/cn3Rkier8h26eej8w5NySg0QSse/yke36d/w4TdUgSiqRhu259CYsTi6XyySy Ro+vnL37/rP4QK8FQ2JOR1j3daBrM+sYAepqvneVQZRKpKrD22lcz1tb/uFaG/G6tcXDp1USpGZr mSu5HHtyJvTRsRvisgoCkSDMypfjJC36xihOXkQikUylAAAQQCaVqT40zszcAgBsI533j69bG4+G 7Qh617uqF2fmswy0MbwIIYQQQgg1wlc0v8s2MirKqP4edFF6Otvo3cOjBILydWpb/smFRuzf9/zq Ze8Tp2lsdl7im509Kn96jcHlFudkK/4uKyxo+i39bFKio84vWzLz0lWulRUAbO7kqFjO0jcozsqU SsQkstoHlTQ0dJnh4zzZ+5s9NtiGuhoc9rKn/9ZYHuF/4vnlO96ndtI0mXlvUne6jG1c/nKZ7PSs n7tMHtqmR+c6C1WhrKDyZnRJbiEAMHS1sF9DCCGE6nsaLSxR/FGaV8zQVfUFKTqXnR6T+PGKTTQM 1i5Kz39vcJjPNqq83+002u3CikCXGZ4JYXFDN//v3YBBy8XH03lyn/oX8fGoWUWhynMgEhxHdo85 EyEuK6dzWUaO5nVcZlDI3Wd4dp/h+epm7AmfPXOurdNuo08ikxRzqArFWYUamnQAiNh35fmVKO+T y2hsel5i1k63HxsXyTau7dRolIQ7T2P+ifRcNboxcVEZ3uvrTxva8/KTsmPORLz/28yffFGCvhYs A53Ct1k1r6Qexp9fsGvmrZ1caxMA2NxuEgYKIdWHhqRcPOPatru7Th2f6Of97wYyVQ0A2EZclznD nKcOwtAhhBBCCCH06b6i9zO37etRWlDwKOikTCLJin8efeJ4p/HjVa/C0OUSiMTUx48AQCaRNGGh pQUFdC1tKoMhFoki9u+rSm/Tf8DDo4eLMjMk5eURB/74Ylv66coKCsjq6gxdXblcHn3iuDC78raF SafOdB2dy6t9hTk5YpEoLTamorQUADpPnByxf196bOw3e2yYdLajczk3Nx4oKyyuKBVlPn1VmJIB AKUFArqWJpVJF4vKI/yPNzr/kA0HKAwNt3kT6lOoCnEXQ0UCIQA8CDzH6+6owWGnPX6OXRtCCCFU H9En7shlcqlEGn3iju3AzipStvN0SrgT9/bha5lUFnXsdpmgKed32/Z1KC0QPgq6K5NIs+JTo0+E dRrXS/GRRQ9bmVgauv18G7f2VTPQnSf1jth3JT02SSqWCLMFiRF1n/pZ+pz0J0kyqUwulysejVVR aG2cxvSIvxIdd+FBx3dPEqvwMiSmokQEANpt9IhkkuKpXI4ZVyaRxV97JJfL34Q/TwyvrHlpgZCu xaQyaGJRRcS+K58STOcp7nf3BosKSyx62TUuh9rC++rWk9hzkcN3zBi5Z1bw6qP5SVkqwotaKKfx fcP3nE0KfyIRVRRn5WfFJQJAWX4RmUZh6HLkcnn0kWvCrHwMFEJ1HhoaWkzPddNpHOb5hTsre1fv gRF7zqY/fi2tkAizCxLDYgEgLfrlmZlbZFJZ6KZjMSdvCrMLgqZtKErPxfAihBBCCCGk2lf0/C6F Tp9y/OSln1ZeXuPL0OX2Xb7Sil/HQwnqTFb/NT8f+99kALDq4z5s647aUopFov0DPQFAkJ52cdXy 6+t/6TR+gst0n9oKdZk2I2jOzI327WmaHI8Vq55fvazIp8ukyfmJiXv7uVMZTLfZc57+e/7LbKlS QXNmZsfHF2dlEojEV7du6re3Hblnb22JLXvxrfh9dnR3JqvTnEaPsR08RLGcpKY26fCxK+vW7nHv JS4t5VpbTz5ygqKhYTfkO4lIdHbxgnkhod/msUEkkyYd23JlzZ5d3ceJy0Rca/Mhm5Zqmhi4zBgV NHPNxvaDaJosj1Wznl8OU6QP9z/x6PglUXFJaV7hnp6TAGB2yEGSmtr57zemPHwqzM6Xy2WpUXEc M8MJhzeKBMKwXYeZ+jo7uo5RrO6xapbtd71rK1RFPTtPHHLMe7kwp4Cpqz181yoAEKRmGTm2w94N IYQQUk2NRuF1s/lziF9JQbG5i43b3IGK5Xs9fGVSWX5S9vXfTof9fsnuu678Rd/ptTMZ9MvEU3P8 pRVi28HO5t0rT7UPj4T+d/B6uVAkzBbs6bMKAKaeWdHQX2al0NWnHP/h0k9HLq8+ytBl910x0qp3 B8VHBCLBcaTr3b3BI/fOqkpvN8RZIqo4u/hAfmIWjU23G1pdn9q4+Hiemu2/wW6eOltj/F8L9G1N VRRaG21zPa61YdzFB/3eezT2/A9/p0S9FmYL5DJ5anQCx5Q7IWARAEQdu31mwR9ymVyDw/BYOYpr bQgANDZ96GbvS6sOn567j9etbXcfT8WvXbhM9wia7b+xw3yaJt1j5ajnV6Mqx1f7rzw6GSYqKivN L1aEd/bVn0lq5KDZ/tkvUoszCwlEwqvQJ/rtTUbuqYyP0yjXGxtOu0zvV+OnN+pPaXiF2YKzi/4c tm0aXYdF12F1n9k/aLb/jH9/IqmRlYYXj68WymGse0Wp6ML3ewqSM9XZdLeFo/RszS37dLJy77zD aSpZneo0vq+tl5sicVLE04tLfpdJpQCwv88iApH43Y75pl3bh+85++jodVFRSWle0R6X2QAw+/Zu EoWM4UWtTG2HRhUCkTDywI8HPJfc2R7Uc/Fou2E9JKLys3O25r/JoGky7Ib3NO9hL0jNSbwbKxVL Uh7EV5SIDB0tE8NiS/OKWIY6GGGEEEIIIYRUIHh4eDR6ZR8fHy8vLxUJQkJCNlnn8+mmAdll3pwO GO5WIKDwqbe2Uc2FFee8WQ5KEov/9GZ0U/wdKr4bwlL+2mE/UcRnqargtjelQ0DhVW+ma42PQoWF fI1vqEGGlrwNMR/38XL3J7v5bCvl0csheutaKtunF711a/2JaF/GSOW7OHu3kqzSY705ytMHZN/y 1qt852GoID6kwzK/rMc1y9JzxOMRoW+c++vjfIbpuz7/N2+OZx3nhcyy2rqdxvE1adMk+fgVpdRa Z9lNb3UrVRtVdN2b1uWDPr/8ZYjOIlXFCS/X6zQqivemdQsQXfWmVT8EGSD8x5vW78Ooyr01BoQW CYF7gU+1VnIOelcf99wxfKpLwyLMrN4Qv7K0Wk9zZcF8tbp/DTe0/Cm/whIPnFZPVFS6pdPiuTd+ 4ZhxW/8Yr/hxSNvtSrpHwRm+mpLffwkVp4awRzRjhf0y9jbFVt8PsQ6o7XSgvEMj5XrTK/vSgLSH PCI9xKIyDu6Zu/gqu1n0NbZ80Su+Rr1+Azu0/HUId26zV9gv446q9ll+3Zvd9VMvfpO3e2sPqfVT YYW3tmvDMiwJb1n3cALyj1TdfKgcRejOb50D4JgEviYjtFAY4mBRd+LE/Xy6xWc/JEsSQsxnNmZb Eo/z6aZ13sHwyz3xdTW23Ewe0T7Euo+74Hl9hqBNQHrjg//K9avbOcsTANyzjvLVzRpzOcN2w3MK Qggh1FTCw8NdXFzkdSEQCOHh4e7u7iqyOnfu3Ki1m+sssVV9ibgkL2//ICX3dula2jODr7bQQgPG jMxPTvp4uffJ01pmPDxmvgU31v8Re+bax8v7rvSxH9EP44MQQgh9ZSPS4v0D1yoZHGqzZgav+coL vbHxTOxZJV+86/vjSPvhLl9/8OUy+c0t/1j27lA1udvStwghhBBCCCGEEELoY61qfpeurf39fw9b WaHeJ09jM/3G9V3p03elD8YBIYQQaiEjUub397a20EL7/jii748jWmjkr/0a9PDwLQM7s1H+c1rH FiGEEEIIIYQQQggphT8ChBBCCCGEEGrx+q0a/f4PAyOEEEIIIYQQQgi1VkQMAUIIIYQQQgghhBBC CCGEEEIItQg4v4sQQgghhBBCCCGEEEIIIYQQQi3DZ38/M59uCgA8Chtj3Trw1JTsSh7RSHlisnZ1 S1Bz+9JVJbIBgEfWwb2mOAyVLGdb1Ro9qryW5bQm20EU49pL132vkja4BxFCyjsxhul7p6d2n9Lt fL2nXYJuXedlvZphoVo3TdEkbQDgkdgfntmNPkpmAAB8FgNqKbeqPnyqSzM3GKodVIjwwEGtqhtk OipfrmbcoOUtbaudVZwOlHdocmr13zQtvhq3el11K2xILa8N1Huv8amWLeBcT9Rrgkw0VJ39eeQG f7O/xd3Def/mQytv/5qMqn/rcSvA4ovccLBo7IqmDVr+tTQ2NT2+hi4A8NVYX02vaIanBoQQQugb RPDw8Gj0yj4+Pl5eXioShISEeHp6YpQRQgghhBBCCCGEEEIIIYQQQq1PeHi4i4uLvC4EAiE8PNzd 3V1FVufOnRu1dnOdJX7253fdn2wCgCQNAY+jhzu4FUgq0VY80PPBQojnqSn59mgS6PIold+tTpIm 8EjlVR/x1Yx9Nboq/vYr3RMqvve5Klws4sk++i6z1AZk3G9qx4VY9P/gwMy9AQBJsqs8svKv/SYR PHgkJQ+NJckO8IjPlK7CV3PzpS1T+pFfxt7Q4vufUn++qU+o5G11NV79rng+GyH05fE1e/ia/fg1 1MQ95Wh1t6DRlqemWccZIfcAr/xZk51fmLN41KZ5tiCpOIgnT1T+kTBO9WPHSeWLP65GSDtVT1H4 FfqHiuruk5MIXB6lc82FOYwaT/QmkV7x6BIASMoO45G1lNXwPo+qkaSdVZBl50R2aEBLY9r4Gg6t rnZ2eGjJW+VJKbFAyqxXqMsYPIIDHsWoVY3xeNOVdI9Fr2tNz2rOxxn9krNCC4VNsNUOFrWdDuqb g8mEd6Pi37EVtcjRCMUxtPxtvfY1d1yz19YvPTC0+HFzXsWXWvGo+g1bhS7jabakS+akvFCeuLD6 v+rqPKpBczZRdStfzQGfZQD8dLiqctmuviZLqhO/WPyFTkZttzdmW14frzVDy+oj168kMrQi5Wts dRXPawyMP0tbolpDkW1oUWXz5rM0gZQaKnwLAHyGqa++KwC450xoVM7dfFnz8YSCEEIItVzkL1AG n20TIL7Hp+Cbr1qDgJJ8Pq3mlWFAWTyf2kZJ4nJh1ftqAqSq3gjHV+v6uSoMt/kaHWosDC0W8xn6 385eCxVmKhvK6wWUAZ9iqzxuYuArm7MPKG/kq7Y/fpNeA+pffB8A+GTT93Yr8DV74PGIEOJrmFV3 C2qMus4IwGc12Y8FBMiBT22aGzoBxcBnKD8PBgjjVNc5IAf4rA82PLSo7rkTvnrdfXJAeSKfYvJR DAv4DJ0PxwCvFGOAAAhT+qrYgPL7fGavAAjiEDT5zE965X5tL+sLFcfWZ4sAIKDsGZ/eBg8c1HrG eCVvah9dM5QdLMJmr3M93ymqaquVzRBXnQ7qlUNp8oejYktsSy2s5Ze/BgB+Pb5lVc854C/R8mt5 m/oXuoovLeGzGvZ69gDp2/ffZN4C7lR8GOQAcXwrfvs6n+36VbW9T/n6gtIX7CsmLz9I9tGg9Kto dRXPm+qHUeoOFEtTddz41G54dkAIIYS+NUQMAUIIIYQQQgghhBBCCCGEEEIItQg4v4sQQgghhBBC CCGEEEIIIYQQQi0Dzu8ihBBCCCGEEEIIIYQQQgghhFDL0Jzzu6+uPdzpOH298ag9zrNlUlnrC25y ZNwGs7HYyBBCABA079hm519X85ZXlFQ0SYYXVv5zed2FOpNJxdKgecc2OK3b2OmXqOP3v8zGiopF Gzv9UpRZhPsdIYSUOuj1/bOLd5o826SImJ0uU/xMB15du+/95eF7T23rNGGNft8X1/77xCLyk9IP DFqw3mroFsexmXEJVctvbgwIXvV7swe2CbcUIYRQ4xQmp62m28okUgwFQgghhBBCn09zzu8GL9vn tmjkytRTM0K2EkmNrIl/jwW4FxFCX7/Re8bPPD/vy5cbF/wkIy79+7vLl95bYT/MqWkzf3Hj+a0d Nz5eTmVQB/sNZeoycb8jhFqZK2v8E8NjPj0f/pJJZi72TV49XneHhZGBHUb0qbHcdc6o76OOckwN Pr2IsN0nOGYGK16eWxD+t167NlXLO3j17jRhQLOHtwm3tGEnxKuRtzYH4gGCmlzW08SdTtMuLf0d Q4EQQgghhBBC6H3NNr8rl8sLU7KNu9gAAJWp0bhMygqFWU/efNUBJmAbQ+iLKissjTrx4JvY1Pp1 LwUp+Xpt9Sl0ColMUlNXa9oqJEYmKK8agWA7sAOB2MgeMOd19osbz7ExI4S+NnK5vEkmdwGgTQ8n urZmSwxCYXKGUUcbAoFAodPe7+e5bc302rf5SsL75SWGP8YDBDW5mBMhh0f+pG1hiKFACCGEEEII IVQDuVlKDRiysjgzX1ohOTJyDUmN3G6Ii+ev0wEg88mb4B/2ZT1LpnM1+cvG2o/pDQBh24JyX6ZJ KsT5CWllBcJus7/rNnsoAFxasvd1SLRMKtthPw0ADBwsxhxeqaJQpZknR8YF/7DPyqNz4p3Y0vyi zv8b4LpguCJ94p3Yqz8dKEjM5JjrD9g408zFFgAODfPludq9CX1cml8sk0oHbZ5t3lPVsxckitr1 NQFRgVfI6hSXOV6KzEP8Dmc/Sxp33PfddfvNO1uD5j/YV1smtRX68uqDW+uP5CWkk9TIVp5dhu5a QKKQg7w3cMz0X169r2NtomNlHBt0q/PUAT0WjwKAwrdZF7/3T30YT2VquC0a2WXaQDwAFJ5fvhVz +pK5a+dw/8MSUXmXKSN7L50FAIUp6RdXbEiNfkJlMtzmTOkyZaQivSA98+rPO5IiH4oExVo8k/+d +YOuoyWTSEO3//H45AWxqNy8e+dB63+k62g9CDyd9jiuIDlVmJPnOntyxP4jWjzj8YE7ku89Cv5p k1Uf18TwB6UFgs4TR7jOngQAKVFPDo+bs/JlmKKgc9//TGMzPdd8j/uoPoS5wog/78QFP+3q3R0A Uh69PTz54MonayuD+eMZGkvdc9WgMP/Q3IQcSYUkPymvTFDWzbt7t/+5AoCoqGx7z83j9k+8uPp8 aV6JfnvDyYemAoC4THx1fXD89Ti5TG47sEO/FQPJVDIApD9Ju7TmfO6bXADQb2cw8aC3Gk0NADKf ZwSv+TfrZRZdm86f38feq9ZHZkVFZZu6/Dr74gKula5iyc7eW9yX9LMbbF9boakxKf+u+KcoU2DW hUdlqCsWCVjV8wAAIABJREFU1ib23KP//o7If5snKZfs6LUZAP53fAbbUPPQ5INWfGuXqW4AUJQh 2OLy209x6yh0yrq2Pw3284o6fl9ULGJwmcO3jWYbsAFALBKH7gx5eim2OLOIrsPw2jjCoodVSvTb axsuZ8SlkcikmH8eAcCwzSPNnM0VoX5952VRhmBp5AqWAVtRGZlEFro75PHpaLFIbO7SZtDP39G1 GQCgtFB1pnrUyQch2673nMP/lHlihBBSrTRfcH7x1rzEdEFqVrmwlMZhzrq+j2OqX5iSeXH57tSo 51Smhtu8MV2mDAGAqMOX7gdeyIpLOD37VzV1KgDMv/s3iaK8H35188G5hZuXPD6heEWNIC1nh/PE 76OOMfW1Hx66GLb7hCAte9iuZQ4j+1atkh7z8tKK3bkJKQCgb2sx8eh6NRo1bNfxlIfPxx9ap0iz w3nSgF/mtu3XLT8x7eLy3ekxL+UymUEHy6Hbl3JM9Ru6+SEb/s5+njgusDLzmNM37uw8Nj/sYG3p r67dn3A7Ki8hNeNpwn9/nGXqaU27sBMAMmJfnZr1a1F6jt2w3l7bl1alv/zT7yxD3bw3qS+uRhJI xKFbv7dyd65tSxsUXgAQl5VfXbs//kq4XCa3HdKz3xofMpWiYmMT7z6++vP+guQMjpnBgF/mmnW1 A4CtHcd1njQ46vAl52lDUx48S499OXzXj+ZujgBw769zkX+cFQmEJp3bDd64iG3EBYB1JgMGb1wQ dThYVCxk6GoN372cbcRNefjs2ro/Mp68JqmRY07dAIBhu5aZdeuAx1dL9OCvS2nRLwuSMoTZha7z R0T8flbL3GD8ibUAcHfn6aiAy8LsAnU2vdtsL9f5IwDg9qbjBcmZ4rLy3FepMolkwG+z2vAdFVm9 vffsxs9/Z8a+kctkbfhO446tBoCX1x7c+vVw3pt0khrJqp/z0F0LFY388o/7WMbcvNdpLy7/RyAR h+5aaOXRBQDYJrrTr217cDC4QliKewc156Fx4GRa1NOCxBRhdp7rQu+I3Ye02piMD9oDAHd3HIz6 +7QwK0+dzeg2d5LrAu8a6yaHR52c9P3owC28Hl0A4N6+Y5F7D4sKi02c7QfvWM021sfwogbfwLlw J+b4FfNeHcN3HZeUlXeZPqz3ymkAUJiccXHJ1tQHz6gsDbeFE7pMHwYAUrHk/LwNCSH3xKXlLGPd /r8tsHR3xhgihBBCqHVonvld7wvrAWCt5uBJZ9bptjdTLCwvLg0c+lP/9dPtR/fOfZkSOHQVXVfT orcTADw+dmPqlY1m3e3yEtL3OM+yGeSiaao7aOuc3JcpuzrNXBT7V50lqsg8Iyah26zv+q6ZIswu 3Nt9rqGjpXlP+8K3WcfGrht/crV5D/sXV+4fHbV24aM/6VxNALh/4NLM0B1Mfa1HR6+fn7dTdenF GXkUhvqyhGO5L1IO9FuqyLzL1AE7HKcXZ+QxDbQB4PHxkE6TPVXXX2mhHJ7+wC2zjTpal+QU/un+ fczJmx0n9QOAipKymaE7NvDGmXW3nXL+l788l/VYPEomlR0ZudZhXJ/xJ1cXJmce8FjK4elbunfE Y0DhdWikjoXZosh/CURCubAUAGRS2ZGJCxxGDRofuKPwbdqB7/7HMTOy5LvIJNIjExcYOdjOunqM psnKin9N19ECgHD/Q69vRc68ckSdzby50f/EtB+mnf8LANJi4uaEnAwcPetlyN25oae2dRqYl5AM ABlP4rtNG9t3xTxhTt5e9zGG9jbmrl1wRzSOIENwd9/thLBXXSZ2m3dtsWKeVYXHZ6KnnvQxczbP S8zd02+7Tb/2mkYcACgrLP0vIGJa0Cwam1YmKFMkvuJ3UZgnXBCyVA7yY9MPhe4M6bvMEwCCf/7X brCDy1RXsUic8TRdUWi5sDxw4l/9fxpkP9QxNyEncNIBug7Tws1SaTXUWbR2/Wwfn432+LE/AKQ8 eluaX2LTr31thUoqJCdmHnabxe862SXtSerB0fu7TOiqYjPtvZzsvZxu776Z8Sx9rP/EuuMoh7jg J1ODZpLUSGeXnLq144bXxhGKymQ8TZ/w5xQtnnZ+Uh7LkA0AJh1NpwXNDJp3jGup23tR3/ez8do4 oqKk4hfb1e8vDP/zzuvbL2f+O1edRbu57dqJ2UenBc2srVCmHmv8n5OzX2aF+YeG7g5x8+llP9SR SCZiU0cINa1bmwI1tNnjAtcVZ+Xt7DZl1jV/jqm+TCo7Mn6Vw2iP8Yf8Ct9mHBi8kGNmYMnv3GnS oE6TBm2yHTnSf5W5q4PqnC35nQlEwps7UZa9uwBA7JkbbXp2ZOprA0DnyYM7Tx68z2N2jVWCV/1u 59XbxWe4WFSeEftKjUZVkT9DV6uL9xCrPl0A4OT0dTc3Boz4fXlDN7/L5ME7uk4uzsxTVOzxyWud xqv68p/n2pkAEDDih3YDXbtO86pabmBvtSAi4OrafWUCYY1Vbm8/MmLP8u+2LJaUV6je0gaFFwCu rN4rzClcEBEgl8uPTfYN3XK476pptSUuTMk8NsV3/KFfzF0dXlz77+jEVQsjA+k6mtJyMdfKZIT/ yr+GLJx7+0Bq1POHRy6Zuzk++edW5B9nvc9sZhlwb/x64JSP3/RLuwAA5PK4C3emnt9OopDPzt94 a0ug1/alJp3bT/t3R5CPH9fKtPcPU/CwaunSHr2cE743cOiKl9fuz/1v3zbbyXmv07QtjYw6Wrf/ zlXL3CA54unfg5a1G9xdy9wAAGJOhsyN8NexNkm6++TY2LXfxwWqsxmFb7MODV3Z75fp44+vkcvk RWm5isw5ZnoDt8x5d/m2KOZkSMdJlZeBtzcdH/HH0u92LpCIqg8WnmsHAMAfMUVfxaER/XTOf2cD B09/efXO3Afnttn0zXuVpG3FM+rUof13HlptTJLDo/4e8L92g9212phUrkOApLsPT/9v2bjjO026 OgLAk1PBkXsPe1/8i2Wkd2PNzlNTlkwPOYqxRY25gRNyT8fadFFM0Ac3cEYudRg3YPzJTYXJ6Qf6 zuKYG1m6O5PUyO0G9ej/23wah3V325Hzc39bEv8PBhAhhBBCrcNXdLv8xeX7DD2Ow9g+BCKBa2Pa cVK/B38FKz4y7Ghl1t0OALQtDJn62rkvU5owcyKJ6DC2DwAwdDVtBnZ7dv4uAMScuGne0968hz0A tO3vTOdqJtx8pEhvP5LP1NcCAPMeDvmJGZJysYpyCQSC6/zhRBJRt71Zu8HdFZmzjHSs+3WJOnQN AIrS85Ij4hzG9VFdf6WFctuamHSxIZKITH0t854O+QnpisR6tjyyOoWpzzHqZM000BFmFwBAyv3n xRl5botGEklErTaGNoNc4v4JwwPg/T3V58e5RDKJQCSqsxgAkPIwpjgzx22uN5FE1DI3senPj7tw HQBSomIFqRmDN65gGeiq0dSNnewUOUQfP9djnjddR4ukptb7h1mp0bHZ8a8BQLetBYFA4JgZGzna EggEpp6OMCevsuGNHAwADK62jSf/2cUQ3AuNI5fJf/fckRGX5nN+rstU1zondwHA0N5I8aSptrkO U4+Vm5BT9VGPWXwamwYAin9lUln0qYe9F7pT6BQqndp5nPPT4FhFSo6p9vOrcckPktTU1Uw7V35P 5UXIcwaX6TDMiUAkcK10O47u8uDofypq4jSqU+y5R3KZHABizkR3GOJAppBrKzQtJrWiVNx1sguB SDB2MGnjatnkwew6pTtJjQQAbbq3yXmZpYjAo1NRA9YO0W2rR6aSddvqqTPVG5FzdNDDHrP5dG0G SY3Ue5FHavTb7BdZtRWqoGutN2L7GI9l/f9defbmtuvY1BFCTS7z2Ruzrh0AgKmnrWmsl/PqLQCk PHxWnJXnNm8MkUTUMjeyGeAa9+/tBo8riASHUR6Pgyr7rsenrjuNrePLfBwzg+fBd5PvPVVTp5o6 26lOTKHT2g1wJVMpZCrFdkjP/MS0Rmw+y5Br3bdr1NFgACjKyE3+74nD6L5NG2HTLrZtPV0AQFHV RmypUjKpLPr4ld5LJ1HoNCpDo/PEQU9V7qOYUzfMXZ0U08Zt+3Wj62gmhEZVDpvbtdEyMyBT1PTa mbMMdEpyCgAg6khw16lDNY31iCSiy8wRbx/EFWVUzs91nealeOCyjZtTTnwyHkStj66NGYFA4PAM jDpaEwgEpp6W4mLKvIe9YkLXrLsd21g3P7HyysvEuZ2OtQkA8Nw60HU1E249UlxLmrrYOk8frM5m 0DhMPTtzRWJuW9Pqy7dejvlv0qsPlq7t2g7oBgBkdQpZ/cOH0eVy3C+o+Q+N9pYEAoFjbmzUqQOB QGDqc4XZeQBg3qOLYkLXzLUT28QgP7HyXg2ZSkm9H3tm+vLxQbsVk7sAEBVwpqvPOE1TQyKJ5DJv 0tv/HhelZ2FsUSNv4Pj6fHAD5/6T4oxct8UTiCSiVhtjm8E94v65qUjc7rteGlpsAoFgP7qfIDVL WiHGACKEEEKodSB/PVUpSs9lGWpX/ZdpqP3qRuWdF6aeVtVyIokobfhXmFVkTqHTiGSS4m8NLWZe QjoAFKbkJNx6tMlivGK5uKxCmFOo+Juhz6mqCQDIJBKg1jqfRGHQqq7PmfqcvHdTsM4+g/+Zva3X D2NjToRYe3ah67BV119poakPX4TvOivMzCcQCXkJ6Y7j3BVpFHedCESiGpVCIIBi6kiQklMuLNts OUGRRloh4fWwxwOguknocRWxrSJIyywvKdls7/EuYmKea2fFcpaBHplC+aiNZTENdKuuZmkcdmFa JgCQ1NQAgEgkVt7WJBBkMhmRRKLQNaobHoed9+btx7VS7DtUx6UdkbAwdGnkgbv+g3Y5jejUdYoL TVNDdTCZuqwPuhRxdZfCNvzgYCzJFUrF0sBJBwkEAADZe5kM3TD8/uH/zi07TSQR+y7zbNfPFgCK MgQs/erMmfqsV7dfqKi8hZuVHCDxvzdmXXhPL8VOCpiqolBhTjFdm171smIGl/np0ZN/eMeQqct8 F9XKnrYkVyipkGibaX9qD58hYL6LDJlKpnE0CtMLddvqKS1UISX6bZh/aHFW0cidY9t52mJTRwg1 OT0b8zdhjxxGexSmZBVl5uq1awMAinc1b7YbVTkAEEt43R0akXnHcf339vGpKCnLfZ0izMq3GeCq Ov3Q7UvuHzx/btFmIonYd9X0dsrSy2UyxR/FWXmhWw5nxycSiMSSvEIqg964CDhPHfrPwk29Fk+M OXXd2qNbk/8ksOK1xo3YUtVKcgqkFZLA0T8SCAQAkEllqtMXpmUn3H64ybbyhzbEonJhbkHVsJlA JFQO1wkERVaCtKxbWw6F7TpeOZ7XUC/OymMZ6AAAU6/yhEggEaUSCR5ErQ+Johi612wVT06HPjpy XSwqJxAJwuz8qoGlOptRta6GFkuYXQgAhanZSn80N/VhfPjuM8LMfAKRmJeQ5jiu+hsVbGMuBh99 1YeGsqtaAHgSFPzoyD9iUTmBSBRm5VadpwDgzPTlAMA2Nqi+xE7NuLV+b9jWA1W3Yoozc1mGehhe 1OAbOAY6NW/gpGSVC0s3WwypvoHTs6NiIBe29fCbWw/kcrlMKsXbLAghhBBqTb6i+V22Mbfq1VUA UJSaW32VW9tvLxIIn555eXGpuLRcTYMKAIL0XIYeR5G+bX/n0YErlJXZgF+CrCgpk1ZIFBOuJbkC ReYA0KaXgxpNPeFmdMzJW55+0+rM5+NCpRWSwCErB2+bq3j29/S0TXVFQEdDi7ks4Rg2+vq2GUM9 DY7msic3aixnGegWZ+ZIxRKS2geHD9vIoCg9C5zsAEAsKi8rEGga6QtSM2vLv7y4RFwmUqOpA4Ag I4uhqwMAJDWyVFx9r7A4K0eDw8J9USe6Fr3vMk+3WT3vBUb6D97dcVRn/kJ3Epn0/mRhcVaRhiat wTnrMEhqpKknfbiWujV7Twq5+zS37tPcXoW+ODH7yJzghdrmOmwjzaJMQXVXky5gG6q6V04gEhyH dYz555G4rIKuwzByMFZRKEOHUZJXIpfJFVO8ZYWlVDqlUXdnSFJx5Z2Xoqwi1X0qXZtBIpMKUgs0 tOif0h+yDTWLMgTgYAIAYpG4rKBU811kPs5DkF54ZnGQXC7vObe3VS9rbOEIoc/EfeVUf/dZv/ec TuMwh+1appiMZBvpanBYy+JOf+LgU9vCWN/W4tmlsKxnbzoM60Om1PF6CTJFrfuskd1njXwVcv/E 1LVzbv6hbWFMJJNl7yYRZVKZMKdyVvKfBZs5pnreZ7aSKOSow5eijl5uXATa9HBSo6kn3H4YczrE c43PF7r8ULalDQovncshUchTz23nWpvW7xzEbdvPZfSfvvU9Zxnpuswa6ez9Xf33f4MuEFCLk/Ig /vy8HTNv7+K2NQWAzW0nVH0kzMx/b+CXx9TjAADLQDst+qWSy7fvVgzeNs9hrDsAnJ62EQOLWvyh cT/m/LzVM8OCuG3bAMBmy95VH0nKK2bcOnZ3+1/Hx873Dv5bMSvMNtJ3mTfZecZYDB1q+hs4xnoa Wuxlby7WWB6x6/jzi3e8L+6iaTLzElJ2OozBWCGEEEKo1fiK3s/cdoBzaX7xo6PXZRJpVlxS9OFr nab0V70KQ49DIBJSo15AXb9LpCJzuVweti1IKpZkxr6Jv/hf+6GuAOA4rk/CzUfPL0SIS8tFgpLE O7HisopGbJRcJo8+fA0AijPz44PvKTJXcJ4x6O6O06JCoUWjfgRXUiGuKBFpmukCQFrUy9c3olWn N3FuR9fl3PzlcFmhsKJUlBn7pvAtvgpJZcQ6O9C5Wjc37S0TFFWUlmU+fVGYkg4AJp3t6Tpal303 CXPyxKLytJhnFaVlANB50vCw3X8XZ+VKyitubvzd0KE9t62FqrYhl4ftPigVSzKfvoi/Etp+sDsA cMyMZBJp/NXbcrn8zd37iXcfKBJfXr3lxfU7eQnJp2YtLxeW3Dt4ImLfYdxHNaizaL3m95l3bbF2 Gx0A4JhqySSy+OvP5HL5m4iExMiExnSRJGKnMV2u/XZZkF4oqZAUvM1Pf1L5DsyXN+MrSioAQJun QyQRZRIZALTt0660oPTR6SiZRJYVnxkd9KDTWGfVRTiN6hR/LS4u+EnHUZ1VF2rkaKJGU/svIEIm lWU8TUsIe9W4QHEtuS9CnleUVIiKRXf963jpKJFMtPdyvLzuQu6bHEmFJC8xV5BeWPUpS5+V/jRN JpXJ5XLV34PuPN45zD+0OLtYUi65ufWaob0R11q31v6tXNJnice0oJk4uYsQ+qze3nuqaaLnc/X3 Kac3Vz1FatK5PZ3LubkxoKywuKJUlPn0dWFK9be1WAY6aY/ioX6/iNlxXP+4C3eeXQxzGudZZ+KX 1/+rKCkDAO02RkQySZE/19o0JepZwdtMqVhyd8+Jqh/mLCsoYurrkCjk4sy8Rk/uVo5I//fd3T0n RYJiC37nLxN2pVvaoPASScRO4wdeW7dfkJotqRAXJGekx7xUkd5xtEfC7ajnwXfFZeUigTDx7mOx qFzVOWvy4Ii9p9JjXkorJMLs/MS7j+vcKJaBTnrsq/qcEFFLVJZfRKZRGHpacrk8+vDV9+d006Jf vrrxUCaVPTp6vbyopA3fEQDsR/VOvPM4+vDVcmGZqKgk5UF89eWbqZ5irdchURhY1PIPjUKyujpD T0cul0cfOivMzHn/Uw0tTc9fl9I47PNz11T2rtNGR+wKSH8UJ60QC7NyE+/cB4C0qKdnpi2XSaWh v/nHHP9XmJUbNGVpURrerEANvIHjbEfX1br5y59lhcUVJWWZsa8KkzMAoDRfQNdmU5l0cVl5xLs3 c4iKhEFTVucnpj2/cOfqqj0A8O+CjQm3HmAYEUIIIdSyfEXP71LotCnnf7m01P/ysj8Yepy+a6dY eXRSvYo6i97/N59jo38GAKt+XYb5L25E5iwjHRJVbXuHqXKZvPeKCYrf3NU01Zt4dt21nw6e9dlK JJOMOrcdc3hlIzbKzMU2PzFjX88FosKSHotHmb/3SmSnCX1vrA10metV460y9URl0DzXTz8xcb1c JuO5dnBdOFxUWKIiPZFMmnRm3ZWVf+5ymiEuLee2Mx2yfZ7i/gKqNWJH91xZu21Xdy9xmYhr3WbI plWaJoYkNbVJx3ZfWbttT6+R4tIyrnWbySf2UjRo3WZMEJeJ/hg4SVwm4nXvNPavraqf5GAZ6JEo lO3Og+VyWe8lM827dwYAGps1dKvvpRUbTs9ewXPp1H3mRJlUAgBJkdEsAz0qk5EY/rBCWJoeGy+t qMB9pPxg16B0GOIAADQ2beiG4ZdWnz+98ASvq3n36W6KKdiG6u87+NaOG3+N2i/MKWYbafaa19uw gxEARJ14cOb7ILlMrsHR8Fg+gGulCwAUOmXK4WmX1vx7+ecLDC6z77L+ihnKpPuJF386p6jA/qF7 CETCd+uHK361V9tch2ulG3fpSb/lA1QXSqaQx+2f9O/Kf27tuGHS0bTjmC6NC5HbzF5nvg/a7Pwr laXed6lnQngd88SDfh4asvVq4MS/hDnFbEPNoRtHVD2U7DKtx6n5xzY4+amz1Mf/MUm/vWFGXPqZ xScVt7YDJhwgkomeqwZZ9bLu9j9XcZn4D6/fxSIxr6v52H2TVBwg2uY62uY62JgRQp/9lMHQSHkQ 9wtvEACosxk9F413mzuGSCZNOv7blTX+u1y8xWUibluzIZsWaZroK1bxXDPz3x+2h+0+zuBy5t/9 W3X+dl69r/68n2XANXJsW7Vwb28fmUSan5R+/ZcDYTuP23nx+UsmAUDUkeAz8zbIZXINDsvDdwa3 rRkAWLk7O4z02OcxC+TgNNbTsnflFKyH74x/l26P/OOMFs/Qbe6Y8L2nFMuDfPyynycVZ+URCIRX IQ/07SxG+q8Ui8r3e8wBAEF69sXlO6/7/dlp4kCXmSMqR6RjPG/8+pfLzBGNG5ECwPnvt6Y8eCbM zpfL5akPn3N4BhMO/6IivdItbWh4+/vNvrX50F/fLRJm57ONdXstnmjoYF3blmqa6E88vv7az3+c nbeRSCYZOdmM+Wu1qh03lC8RVZydvyk/MY2mybTz4pu7OaoOgsvMkad8/DbYDFNnMcYH/qxvZ4nH V2ti6d7Jqm/nHfbeZBrVaYKH7bAeVR/ZDHaJOXHz9LSNDD3O2CO+itc1a1saTQhaF+IXGLxsH5FE tOrX2aTLCiqD5rl+xolJv1Revi0YIRKUYGxRyz40+rpZebjtsPUk09SdJnrZDq/5ZSYCkTgyYPOB PhPvbPmz59IZdiP6S0TlZ31W5b95S9Nk2Y0cYN7TWZCSkRh2X1ohTrkfUyEsNXSyTbx9rzSvgGWE NytQA2/gnN16ZcXuXY5jxGXlXBvekB0/aJoZuMwZHTRl9UazATQOy2Pd7OcX7gBAeVFJUli0MCs/ 92VyckSMXC5PvPPIwN7aoncXjCRCCCGEWhCCh4dHo1f28fHx8vJSkSAkJGSTYQyfbRMgvuet5/YV bn9yZNzxcX7Lk058+aJFgpIt1pPm3tvL4em3oBYTUJDvzaj5Q5gBZaHeDCW/5htQLvSmV86jB4ge eat/8LNSvhpdFX/4le75jBXOv+2tPqLGwtBiMV+jQ3M2vHuPjv/v++XPbn2Z4kKFmSEWHzwN7557 g0/VCyg75P1uL9SMm9jQW72Nsn26w5uqVVtBvrRlSpf7Zez9pPoX3+ebfvDSyIDnP3prDcYeHKHm 4mv249dQDfeUo3yNypmhAFD31jCu44yQoaoHa/D5RW7nzWqaU0lA7p/edOVPtAdkHvTWUfUaw4Cc Lt7c9h/0mUXCkHaqXiDhV+hfr1qVJ3ozhtVcmFbgzbb4cAwQ6a1lCgABKYHenD7Ktu4Pb50BAZQg yHbz1vRsWEszHFpd7ezwWk8T4ot8er3e0xtQ8Kxqo3JfvQ0Ytex/Z7dqtzGSy+TpsS//HDDvp+Tg Ol+k3MqIBMItDmPm3j7AMTPAzq3FCS15E8KbrqR7LHrNV2MoO1iEIazmnHv2S26CZ/JCC4UhDha1 nQ7qlUNpcojJhHej4t/51EbG5Pam45lP34w5tAqb4pdu+eWv+RTH+qV8G8Id1+wV9ksPbOar+KwS b27DXtIQIH1bY4Dxtd+pyDzlrc5773o23pvds5kHzJoDPssA+OlwPlvVT9f7miypTvxiMZ/p+NkP yeLHIW23N2ZbXh/nM0yV3cF4G2JZfeT6lUR+pa1OeM1b44tMCRd9eBeOlFq9u/VdAcA9ZwKf2q0x rZQ1H88pCCGEUFMJDw93cXGR14VAIISHh7u7u6vI6ty5c6PWbq6zRHJrCl9JrmB/r4UfL6frsGfe 3lnravJmKFQuk9/89YilR6eqyd0bPwfGBimZ7eu7eor9mN54bLRCcnx3H0IIIdRsijJzSWQSQ5ej +G/Oi2SmgU5DJ3cDRizNT0z/eLn32S1aPMMWMBiRyW9uCrTs41w1uXtj/V+xp0OUjEhXTrMf6f6F q9fSw4u+jRE9DukRQgghhBBCCDWDVjW/S9dhfx8X8PUXes334MODlw0cLEYFLK9a2HfNlL5rpmCL RAghhBD6AsxdneyG8v37zAQCAQB025pNPLq+oZl4n9nSciNwbd0fDw9dNOhgOeoP3+oR6cppfVdO +0pq2KLDixBCCCGEEEIIIfT5kL/x7TdzsV2e/KVfztzPb2o/v6nY+L7phtfVafnzUIwDQggh1FwI RIKH7wwP3xnfbAT6rfbpt9oHWwJCjdZr2TgMAkIIIYQQQgihZkHEECCEEEIIIYQQQgghhBBCCCGE UIuA87sIIYQQQgghhBBCCCGEEEIIIdQyfPb3M/PZNgDAU9fBWLcOPApFyUKSrvLEZM57aajNU2GS Me41PkO/5hKqHgDwSLxa40Ysq2U5pRnqz3SuWQ2WPe5WhBBfw6y6WwBp3WeEJu3BeCBosqzItZ4i eeohSt8+AAAgAElEQVTmdaxLza8ZFhajiWplpGQhjfLRwECj8g8NXi01NAAAnswE6PTmH8Yo2yiE WnA3SG+jfLkao0HLW9hWazJUnA4aevrgUy2xIbW8NkC1BHk9U5piuACAp97gOz88KquFbSOJ/uGo j9Vq2z/btSGX0o5f5IK9kaXwGaYNWv7VtTqy/lfTK3bDjg4hhBD6BhE8PDwavbKPj4+Xl5eKBCEh IZ6enhhlhBBCCCGEEEIIIYQQQgghhFDrEx4e7uLiIq8LgUAIDw93d3dXkdW5c+dGrd1cZ4mf/fld 9+ffAUASPZmnaYY7uLVKSn7DIzVs/yapz+dRzfg0lq+WkV/6rdDixM9VN9oDHvujb3dLuoPM5Jva RyHc3h8cmILfGhnPilQeQUvpR3yqnS9zjNKP/FLvhxalftIGkMVAlL1XDSaPoomHHkLNhc/Q8dW3 +TJluQvOVJerZuyr0fW9MUZCdbegM5dHrePx3KSsTjzRgCY7v5CKeFRaE2X1jEevUP5RijOPpKVq Xe1/eeofbHiSWMQjqnyYoOghlKfXXSumK48zsObCN5k80ofFlYt46nQASCq9pTQgSSwGT9sCAJJS YnhEjQaERdOIR+WEaHV5dyrZEFoUpjwlPY+naVWvPHMMeRVd8RBGrWqM1364kp7zye+1pu8w1y/r XqgwtZbu3dhXr2HHiLvg5/d6adv/s3efUU0sbQCA33QgIRAg9Kp0BVQsNDUKKHbFdrGiXntvWK69 997LFf2sqFzsiKIoAjZAVAQUBKR3CAECad+PIKBCBMSCvs/xeHQzOzM7Mzs7u7NlucIQGYHXckOC yj80xcjW45M8cB81OAam08f8T8FW1CyHIoTR9WxLn7WWJre2LDNIwKv77OmxIeQmFWgaCi2a2Tl+ xWNDucLmlGEFFUOl6kJOSj312RO9P7qJKrZZrj32u4yNcxfJSpdmvVxxZHXgxJE/6GBkdKYx25L+ V50Rap+v3stStgUVhfyKrU5oaPj9XxLAYZqCXFZQaUTlfxXagYJKkCAGADgUi+XyAwHAuehBY2Km sJcrWNbZuRUeDOI/rW8D0DwBAGu594LK39fWLFssZ3bHIxdCCCHU5Mg/IA0O08lblMyhOGFx/668 4T2H2blhq1QAR55Z4+TH6HvlTfiMQ7H9bGGQEDg09T+ngoLKs2sbyjfmEoN3RSqH1rpR/cA3vSg7 qDSx5juavPMLOAx86ztCfwoORbfuvoXx8UgEXx1peEMZR0mlyY4vPG5TdUTeZXW+INS7tjeRfh7g 03W9Ba85crJuugriPuco2X89V+JaXuXqDfBZGXpnp3OUWADgXQocZePa4snkUNQq12U24HDvDRVf VHftgw1vkR+H0ql+caZ84/EIoV9rjFf3/XMcpVr2x6Ci+MpfGU25I3AorRoQ+Jsvhdc6qyftZ+ob gyD303VtsS01s5YvCK9nW2qS+wnqsQswZJ320ky9gcthNrObU71zgaNo3pwyLMqu2Q94/6hXE/+c sTGtAZ8r4tC/+5t7g0oeN35b5GsZlAaVhX1xUHP8FVtdXhqHafqDKl2h3afdjsUXHRG76ROV61iv BlBjGphDa4EHKYQQQuiHIWIRIIQQQgghhBBCCCGEEEIIIYRQs4DzuwghhBBCCCGEEEIIIYQQQggh 1Dzg/C5CCCGEEEIIIYQQQgghhBBCCDUPzW9+d0+bbTHXor8a7F1A3G7rrRu0Vu2z3SEWiRuRkM/o M1tbrFuhsKiCV/GNeX649f4Wo3UbtVf5Tb2Ebe6XdW/9vpuLNtYzMJ/L22zchZue/Y2J/tvH883V O1j4Px6fW7zZyombmfVzs1FRUrqP02+DWcdDPYdgpSCE0J8s5MiZHfYDVxrYx9199CvnMz859dig iRtauWzr2C/zzbvvnZy3x4wn3hcbPPbed3JLu94bW7v4LVhXtVAkEPhM+2eTdY/Nbd3Cz/phk0MI IYQQQgghhFDzRf5dN+zmgqtOc7vajutYzuUTSY2Zxh72v5HctKJtJhu+/Omgw56pobPqGQ83veje moAZ4fNUTdQEJYJGb1GDEkWNYDW4l1gkqmdgmiK97/Zlippqn1dTl2FTH/rUP1HOoqkalqafLYy7 FZT+4k23JdOwUr5F+JlLIYdOTL/nR6JQAODO+u25CUke/+79WIOMvhuXK6qzvxrP/W37MqJjR5zY 9z0ySaUrzAi6FnX5atiRUzWXF6VlXF+y5v2jxyQKpXX/Xr3WLqHIyTVVou8fPb65bH1pQWF5MY+l r2vh5uK8eHbCw7CTw8f327Kqw+jhAOA3f1nE2cteUcEMdTVsSwgh9PVxWu8xU2+e+pYYHCeNdJw0 cpfT4B+c87g7wemvYrvNm1jP8MEH/sfS15nge0RQyqfI037BuuBm5tzbdmhG4HnVFvqCUn7V8ugb 9zKi384Lu0KiUcRCETZaVKuwfXdvLaoezDPUmV6J27BYEELoF+qojwffWn21uqNWU/SKWIHFghBC CKE/UDOc3yV8PYhEIin8UKDbUR8AaEy5pk2/rLAs61VG/cMXJhfQmHJqpmwAoDKoPyZR1Ahs85YN aIYEQqsBPb6oJm7W69gGJdqiS6cvFyYGP6UpMrBGvlG7EYNfXPQLOXiiy6xJOW8Tws9cmnbP75Ma 7Nvz18y5RCI5M3YaU0tjVvBNYXn55RmLbi5bP2Db2qaKv4WT3Yyga2FHT8Xcujvet3o2gqmpkRrx Ujq/mxrxkqmpga0IIYTqNU4rKs76/k+yfieJYeE0Br0BI9uUdDPXzgQCgUqX/1GDf0KDghempNMU GWotDQCgZiYLUtI1zFpKl5DIZGy3qC4GjiZjr85pXPNDCCH0IzrqjkZjz0z62FFjeSCEEELoD/UT Lm0IygSHnPZ2+LuT3VRHALg207corWjkZU9C3SfPEd7PgjYFioViG4+2JEp1np8cCg3b/4hfyNfr qN9390AlXWUA8O5ztDizWFQhOj3oBIlKsujXqufGPgDwaOeD8BNPedk8Oaac3XRHx9ldACDl6Yf/ 9T++NHO1NEK/aZfkleSl4Wt1Y65ffOA7sUi8q/UWANCy0R5+ZlRdgbPfZF6b9V9hSiG/qEwa3nWN Wyt3awDIfJVxc/6VrOgsujqds8jZ+q+2ABC8LSj3XY6wXJgfn1tWWGY3zdFummNDE00OTbo5/4pJ T/PEBwml+SXtx3eSbmldJQAABzrtcl3bK2T3w+zoTCqDNvH+NDqbkZ+Qd32uX3pkmkQk1mqjPeDA EJahyu+6G2REvbk4wYubltV6SK+Be9dIF6Y8i7o6e7VFX+eEe6ElufkGDrYD9qwmkkkA4DdzRfzd EG561oKYQKZ25RzYjQXr4++FikXiXW16AYCWtcXwUztkJPrc+2LwzuNFqRmDDqy3Gd63MtGnUQEr d2RExZAo5KgL1wBg0IF1Bg62AJAY/PT2sm0FSaksQ91emxYb2LcDAH5R8U4bN4/Tu68vXF+am69p ZT7G9zD2a5VneQRC/y2rj/bzsB7U56rXym4LZlRNWPrNXxZ/P4Sbkbkg4j5TSxMAcuPf+81brtrC IP5BiOvSec9OnuMX88ZdOslgq9YVf2Z07M1l67Ni39HVVDlzp1i796vs4vj8oB0HXl/1L87IorNV B25f17Krg0ggvLJgecKDEEEZn6mt6bZqkXFXx7piTot8lRXzduSpg0ramgDQc6WX99BxbisXZcbE 3fxnvYlzl8SQJ6X5he1HD3OcMk66SmFK2vWla1MjXtIUGU7TxncY8xcABO89mpuQKKyoyH+fXFbE tZswyu7v0TJKTN3MOC3yJQCU80rEAiGVroCtCCH0e1tj3Lnveq/ws358Lo+hruq+c6WStgYAFKZm XF+2NTUymsagO00Z1WG0OwC8uHjj3o6j0++coTHo+cmph/t4jjq5U8/W6sayrfEPn4hFYumjt1qt TYcfkvW5h1ojlyExNPz2uj0FH9JY+jq9Vs8z6GCTG5/k57VB1VAv/uFj18XTn/3vMr+4ZJzPAYaa iqCMf3vd3tiABxKxpFWf7j3+mUmmUVMiXl9dvNGiZ9eEh09K8goNOrYZsGUpkUxKCX8VsGFfRnQc iUyO8vUHgEE7lht0bFNXTm6v25MQ/DTv/YeM6LePj19QVFed4HsEAGJuP4i6fMvIwTbk8Bkhv7zD aHfp08CZb97dXLE9Ky6BrqbCmTXOepAbAPhMW8bS134b+EjN2FCthcFLv9vtRw7sPG2MjBLIe//h YO8xBUlpWlZmg7YvV9bVAoA1LTtPunpcs5UpAET53go7dn7KzZPZcQnXlmwuTM/ic3nS6nBdPK1V X+eX//k//tcnPzlVWF4hXT7uwn4lHc1aixcA+NzinY7uHkc3X1+2rTSvQLOV6ZjTu3F/+YPGkEQC WY5Sc4nP2KMsA9W3/q/UzDTVTDRf+jxtP75z53luIoHoyvRTCYFvBKUVTF0Vt01DjZ0tAcC7z44W 3SwSg2KLs7h0NcagQ57KBpVDysjToaF77uS/z6Yo0Bxn9+g83w0AHu26HX4imJfFlVNSsJvu7DjL VRr4ltcFpq5K3rusuJtRBBJxwL7RJj1aYwU1dwI+/1Dvfh1Gj7Qb5wkA1xYvLcrIHOl9/MOz5zdX rDLpxkkMDSstKGg/coTj5IkAsL2TQ/uRI8LPnus4dkxKeET6q1fuO7cbOdj/2DxXHOo1v8NoN7vx fQDg2qKDRRl5I0/+8+FZ7M3lR026t0sMeVVaUNx+VE/HyQMAYHvHie1H9Qg/E9DRs3dKeFz6ywT3 XbOMHKyw9lFTdtS0z69n3lp1lamtlPc+N+7uGwKJMGDTEJNu5gCQGJpwe/31gg95LH3VXqv6G3Qw AoD8pNzry/3SX6VKRGKtVjoDtg5l6algwSKEEEKoefkJ87sUecqwUyP+dT3UsptJ/vu8OP/YaU/m yJjczYrOvD7Pb/ztyTq2ek+PhGW9rnyM9dXFqLD9jzxvTGTqKN1d6X9xzNm/700DAM8bEwFgleKS 0X7j1C01q+LRsdWzHNBapYVqckjiCbcjFv1aqbRQbWjm++wcmBuXs6fttjmvvb4aWN1Sc8Ldqcmh SeeGnawZvpzLP9n3mNumvtbD2+TGZZ/sd5yuzmjZ3QQAXpwOHx8w2cDRKC8+d1/7HeZ9LZX1WQ1K FAAyotLtpjq6rOrJy+Yd6LRLu42OUdeWskvAf8kNj7Oj1czYZYVl8sryAMDQUOww0c7E1QwALow6 fW/dncHHhv+uu4GWjeWs59dvL9tWVsT9tO29bT2o58S7ZwRl5Qe7DHl1+ZZ0Inbg3jUVJaXrtDt+ 0ja2/ZP7NnFPh35zXtyqT6LtPYe29xx6qOuwmgv1OtpMuHXSZ9wCtmmLmu9nLvyQdtZj1ojze42c OsT5PzgzfPrs8Bt0tgoAlBUUPT58ZsKtk/LKzLJCLnZqNbFNW3YaN/L4oNGKGuyOnh5VywduX1dR UrrO2LZm4JTwFx7/7lEx1LuzYcfcJ3f85i6LvR3YftSwWmMuL+ad/Otvt1Ve1oP65sYnnhw+ga6m 1rKLPQD4r9yc8erNSO/9Kkb6+YkfmNqaAECikC3cnN1WLZJXVnq079iVecvmh9+vs9OLiWNqqksn dwFA26aVSCDIin0HABmvY+wmjHJZPIeXk3fAZaC2laWRYyexSHR69BSbIQNGeO8v/JB2bMAIloGe dP74hY/f+P/+Z9DJNu998j5OP3M3Z2Vd7To7ZwV5iURSXsxLe/Fat5110uPn2IQQQr85CUTfuDf+ 0iESheI7b839nccGbv1HLBKfHjvPZnCvEce3FaakHxs0kWWgY9ylU5uhfeKDn95YsX3gln8uzVjh NG2Mnq0VAPRZtzA3PmlPt+FzHl3+aoJ1RV5X+MLUjLMTFo74d5uRfbu4u4/OeM6f/eAiAKSEv/I4 slnFUOfOpv1zQ//zW7A+9vbD9iMH+q/ZxcstmBV0USKRnJ2wIGjXMZdF0wAgKya+dV/niVeOC/jl B3uNeXU1wMa9l56t1YTLh32mLWMbG9Tn/cw9l80CAG+PGRY9u3byHFrzp/iHj9Va6s8JvkwgEspL SgGgnFdycuRMt+WzrQf2zE1IPjliJl1NpWXnjgBQUVI6+br3JpseBh3bjD2z5/jgybLnd2MDHo6/ eEhRU+3Wih2+c1aPv3SozrG3WcsJvkeSn0Wdm7CwZnVYD3KzHuT2YM+/GdFv/zq8SXbx0tVYAFBW yH18wmfC5cPySoplRcW4r6CKkvLJD5duMphn4GAy9srs4z22dp7nRqKQLPq2cds0TJ6l8GjH7SvT Ts2Pq2xgL88/mRi0mMaQC9p43XfSv+NvLwSA15eeBfxzefC/EwzsjUvzeBKx5OOJqqFl/3YqLdjJ Ie9O9Npu0beNSovKb4g82HRj8LFx/feOEvIFWAu/B4qc3LADe/8dPLylk1N+UlJc4P1pATel10My XkfbjfN0WbSQl5N7oEcvbavWRg72oooKtnHLwXt2HXcfOv2uf2rki+dnz/3g+V2KHHXYwQX/uv/T srNNflJGXODzaXd2fczze7vxfVwWjeLlFB7oMVfbqoWRg5WoQsBuqTt477zjg5ZMD9ydGvH2+ZkA nN9FP8CDPYGDd/3Vf9NgYbnw47G+4Ozf3iOOexrZt4wLjDkz7sTsIC+6GoPBVuwwys6EYw4AF6b+ 7972gMG7/sICRAghhFDzQvwpqWq00nRe7eYz5uyV6ZeHnPBQUJH1lFjsteiW3U10O+gTiISOk+xp ipUf+gr3ftppsoOyPotIItrP6PzhcTI3vUhGPEZdWkinMw0cjZT0lPPf5/2sQo+7FcvQULTxaEsg EtgWGu3Gtn927In0J+12OgaORgCgaqymqMXMfZvTmEolEW1GtAMAhjrDvI/lG79XXy2BtqNs1czY ACCd3AUAKoNq0a8VWY5MliO3GmSVn5D3Z+4h9tPHAABFnqbXwSY7Jv5nZSPqwnWjLh2NnDoAgJlb VzpbNeF+aNWvnedOkFdmAoD0b1STZR/XorQMk+5dCMSvdHcMtipdTZWlr6dhbkqmUpla6rycOpt9 3J0ghrqazeD+BCKRbdqynYf7s1PnAUAsEkWe9+21dqm6uQmZRlM3N5FjKkpXsejlosBSJhAI1u59 i9IzRYI6L9KVl5TKKSvVvAZEolAqSksBgEgi2QwZIM2teY/ub24EAEBK+IvizGyn6ROIJJKKkb55 T+foa/6VXYpNa4NOtgCg2sJAUVM9N/69jBKQSCS67WzSXrxOjYjS79gOJBJsPwih314nz6HSz7S3 sLfNefseAFIiXhVn5ThNHU0kEVUMdc17dom+HigN3G/Dog/Pok6Nni3HZDhNHd2I5GREXvsAwPeW kYOtkX07ADBzcaKrsRKCnwAAQ02FrsZi6etomBuTqVSmJpuXmycWiSMuXO82ZwKVLk9jKLQfMfB1 jcjt//YAAIocTa9t6+y3iU1bjAQCofuCKUQyiUAkyikyACDu7iMGW9XGvReBSGSbGLUb3v/Zad/K EwFzYzKNqqiupmNjqajJ5uXmy47cakAPZV1NEpnsNG1M0pPI0vzCJhtf1VG8leOraWPklRQBQPo3 +nOkPE7YYrRA+ufarNMfT2B1yHIURU0lHVtDRW0WL7vyrkqL/m0VVOgEAsF6WMei1HxRReWMQqtB tjSGHADYjuuc9OhdaR4PAJ6fCHaY5WrsbElRoCrpqVQ91GvU2Uw6oWvgaKKkp5KfWH0OqG/X0qy3 DQCQ5SifPVWMmi8Nc3PnRQt9ps244rVkyL7dCizWxxN5ks3gQQDAYKuZ93B9c/NWVXgVA30ylaph bs7U1CzJyf0ZeTZwXjzKZ+q2K14Hhuybp8BSrL74MJgDAAy2snmPDm9uhFWGtzBQMdAgUyka5gZM TdWSnCKsd9SUHfXz5C3t1kj/XFtSfUeXfnsDMxdLACDTyNIHfKN8w40cWhrZtwQAM2cLuhojIfgt AFDpNIueraXBWvWxzk/OxVJFCCGEULPz0z49ZTu2w/21AWwLDUMnI9kheVnFipqVs1YEIoHOrvwu aVFK4f31d4O3VT4DR6VTizOLmdpKdcXzyudF5OlwQZmAQCTwsooltU1dVN1D/V1x04qY2tXzcIra Su8C4ir/rVm9nEgiigSiRsRPpVOJ5MqpLAVVhbz43K+WgPTV1jUVZxYHbbib/SaTQCSU5JbQFOX+ wN2DpsigKlROeBNIRLFQ+LNyUpiSkXAvdItJV+l/BWXlvJzqi6HSFwyiWvmv2uw0fULYkZPtPAZX PRFbK+n1fQKRSJajAQCBQJCI6twBuRlZNT9Pq6il8e7+IwAoyckTVlSoGul/Fl4kEAbvO/r+YahE IhGLRAAgEYvrbHh0Or+w+gqIgM8XCQSKbDU+j0elK0hfEg4ACirKee+TAaAoNaO8pGSrTefKtCoE hg6VD5crarBrdCkkkeArbVi/fZvUiKiUiCjXJXOx8SCE/gSK6qpVB3ppJ1mUllleUrq1Xe+PHbjA 0L7yfQ80hkKnsUNvrd45zucgoVFf5ZQRee0DgLSshOCnW9r2+nhEKOflFgAAiUquPGbRqB+PWeKS 3HyRQHBy1CwCEABAXONAQ2PQPxnSCJp4SKOowSaSiJ8eKLOZmurVATTZ74IqL/pXZZ5CoxIIBBkH RCm6KutjKqoAwMvNV1BRbpIBfF3FWzm+0sbv0P+htNsZeJyrfI8OWZ7ySbslEClyFAKhstWJBKLg 7f7v77+RSEAsFNVsjXJK8h8HbHQA4GVzFVQZRan5VQ/mfnqi+jTydKiALz1NK6rZpJV0WVgjvyVb j+H3t+9gm5gYdqp+KRRVQYH48evgCizlvMSkqvMUApFIptEAAAgEsUj0k/Lscn/bWbapnqFdqxp5 lqs+PWEx896nf8wzmUAgkGkUAAACiMUirHTUlB21ja7HkbGVHXWNe1+UtD6/tFWYXpgQ/HZLuzUf j/UCXh4PAIqzuUG77mbHZRKIhJI83p95yQshhBBCzd1Pm9+9s+KWdlvd/MS8qHORNh5tZYSkqyum R6RW/bcsv/Tjua6S/czOHSfa1Se5lKcfrky/PDl4JttcHQC2tlz/8ayDJBJWn2kUp3MVWF/75CTh W7ddSU+Zm1Y9ecNNLVTSY30l8oYkWl5cLigVUBQoAFCUVsTQUJRRAnX5b5IPy4DleXMSiUoKP/E0 3PvZH7h7NPjKLYHQROl+Ho+SrqaZW9dh3tvrs7qoQkCi4t39AABRl64Ky8td/5kvLK+4uWy9x797 mypmJR0tbkZm9V6clqmkowUAdDVVEoVckJKmoPLJxbjQQydibt31vHhCXomZ9z55t6ObjMg1LE25 mdncjEzpt4HTIl9R5OVYBnoZ0THlxTxBGZ8iLwcARemZDHU1aWYUWMpeLx99e5vUs21zd9OuvIQk tpkxth+E0J9xrP/imKutoaCs5BVZy9cWitIyH+7z7jhmyI3l26bc8JbOrTaos5UReR3h1c1cnIYd +GTYlhufVPuYWU2FRKGM9znENjH86mY29eDlywOlJjcjq/pAmZ6lpNPI6dKqz0+U5BUCAIOtCgBE Ckn08ca74qycRmaytuJFiEQlMzTq9VKc0D13Yq5Fet6YJ6+skBefvdtmWfV5ZWbRx1FiAQAwNJQA gKnFKvyQ98WJ6vsrM/43OXgp20wLALYae2EV/AnubNysbWWVn/whyvc/G/dBlSfyPJ6grIwiLw8A RRmZDHX2r5XnDf/TtjbOT8qMuvzAZnDXj3kuE5SVU+RpAFCUkctQxzsS0A/pqCkkBrteb9dQ0lI2 c7YcdmDUZ8v/m+/D0mV5np9MopDCzz4Jv/AUSxUhhBBCzc7PeT/zuztxLy+8cD82bMgJj5sLrsp+ 969FP8uEe+8+PE4Wi8Th3k/LCsuky9tPsAvd/TA9Mk1UIeJlFSc+SJARSVl+KVmOwtBUlEgkESef 8TIrP6PFMlIRC8WxN95IJJL3QQmJDxO+mnmGpiKBSEh9ngIAYqG4EZtv1suiNL808n/PxUJxVnRm xMlntuM6NGGiEokkePt9kUCU+TI99voby4FWMkpARokpaiuRqKTiDG7V5G5aeOrlCefFIjHuObVX k4YagUhMDX8FUHkLf+MwtTXSo96IRWKJRCJ9qKXNX/0S7ofFXAsUlPH5RcWJwU8FZeV1rS6sqMC6 AAA+tzhg3bY+G5YTCIRuC2YkP37+9u6DxkUlEYkqSkqlf4Tl5QBg5sopLSiMvPCfWCjKinkbcf6y 7cghAEAkk6zd+91avjE3IVFYUZH3PrkoLQMASgsK6SosGoMu4PNDD52QnZxOGysNC9Nri9cUpWfm vU+6vWZr+1HDqHSFyr177xGRQJgZHRt7+55lnx4AoGfbhs5Wu7dlT1kRt6K0LDM6tjAlrXFbyjYz To18ydLXJXyn6/0IIfTL02tnRWer3Nt2pKyouKK0LDP6bWFqBgCIReKLM1d0HDuk7/qFqoa6t1bv rB4AqKsSiMTUF9FfHQDUFXld2gzunfDwSYx/kKCMz+cWJ4aGC/h1DgCIJKLtX/0DNuwtSssUVlQU fEhLfxX79VGHpnr667iao44mYebsVFpQFHnxulgoyopNiLhwzdZjQOOiir55j88tBoBn//M1tGun wFICALax0eurdyVicX5yasSFa42LuUHFi9CXSvN4dFUGTVFOUCYI3RNQ86eXPk/z4rOF5cKH224Z djaVPsXbdrRDyO6ApOC3Qr6gOLMo63UqAJTll5DlKAwNJYlEEnEqhJeJr7H9/b0LevDyvyvuu3YM 2bfr5orV+UlJ1Sfy+w+KhMLM6DexAQGWvXs1NOa0qKjLs+aKRaKgnbujLvvycnJ8ps3gZmQ0QZ7v R7z0e+i+a/aQfXNvrjian5RRned9l0VCUWZ0Yuztp5Z9Gvxh4LQX7y7P2ikWiYN2Xoi6FMTLLmBX q7sAACAASURBVPCZuo2bkYftBDWJNoNtE4Lfxvi/FpQJ+NyyxNAEAV8AAGUFJYqaSiQKqTiLWzW5 mxaVcnnOObFIHLTrTpRvOC+n2Gf6aW4GdssIIYQQ+kX9hOd3eVnFvn/7DDo8lM5m0NkMh1mdfcac mXh/OolKqjW8RmutPtsHXBx7VlQubOVubdS1pXR568HWwjKB70Sf/Pe58sryrYfYVP30JWMXU5Me prssN5PlKW1Ht2/lbiVdLq8sP2Df4Btzr1zyPGfo1MJhZmfp7GnSo8Trs/+TTmQe7rKXQCD03+eu b28IAHJMObfNfc8O8QYAEzfzQYeGNrQEqAzq2Ot/35h35dbCawxNRZfVbiauZrJXaVCiTB0lEpW8 03KzRCzpttTFqEsLGSVQF9d1va/OvBy275FKCxWnuV1DdgcDQFFKQeLD96IKEVGe+DvtBldmrUx5 GsXLypWIxanPXrIMdUee31dX4IyXMZcnLZFeAPXuP4FIJvdct8DExQkA5JgMtw1eZ/+aAQAmPboM 2r9WRqIHHAeLRaL8xJQ7q3YG7zzW2t2N4zVF+pP9tDEXxy/YZOQop8QccXa3ppW5sr7OqEsHA1bs 8J2ylEgm6dhaDT+1A4BWa8w0Bh27NgC4u2GneY/u2tatAEBeidnda9b1pWtnOnXKjU+8PMNL+uI7 76HjiWRSz5VeLD0dGVHF3QlaZ1z5/kxjjtOYc0epdIWx54/f+GfdrRUbGWw1lyVzTbpVvh65z/pl gZt3nxw+gZedq6SjNWD7WiUdLfuJo30mz9/cykGepey6dG6M/11p4JBDJyLP+/K5vNL8gn2cfgAw 9Y4viUIZefLAtUWr9jj1IlEorfv3clla+bZkppYmiUbd2clVIhF3mz/dyKEjABDJpNFnDvuv2rzH sZegrIxtatxv80rlurfo/aPHN5etLy0oLC/m7eP0s3BzcV48W/oTgUDQtDDT69AW2w9C6I9FJJNG n9rlv2b3nq5DBWV8tolRv42LlHW17u84KhGLu84aDwADtizd7zqyZeeOlr26AYCcIsNtxZyz4xYA gEl3h0Hblzc0cgG//HAfTwAoSs+6vmzrnY37bT0G2P/9l7Ku1qhTuwLW7/Wdu5pIIum0aTX80EYZ mXdbOef+zmPHh0zmZecr6Wh0nTlO28pc9vbaT/S4OO2fTdY95JiMEce2aLYybZJipNLlx57de2P5 tlsrdzLUVV0WTzXh2DcuqvYjBpyd4MXLzVdUV3XfuUK6sO/6hVe8Nqwz76ZiqOswcUT4uSuNiLmh xYvQ57vPdGefsUc368+TV6G7rnaPufai6iebvzr5TfXOep2m1Ubf/fC4yoUj7CpKyq/NPlOQlCOn pOA0z02jta6xSysT19a7Wi0ly1PbjnJo5W6LBft74+Xk+M6ZN2j7VrqaKl1N1WHS3z7TZk684gsA TC0tEpW6076zRCzuNneOkb1dQyMvSktPDHssEghSIiIrSku1rawSQ8NK8wuYWlrflOfsAt85uwft mElXU6KrKTlMHuAzddvEq5sBgKmlSqJRdtpNkogl3eYNN7Jv3fA85yaGvhYJhCkRcRUlfG3rlomh r0rzuUwtVWwt6Nsp67JGnZwQsOGG77zzRBJRp43+8IOjAcB1aZ+riy+HHQ9WMVB1msIJOfIAAIrS ChPDEkQCUUrkh4rSCm0r3cTQhNL8EqaWEpYkQgghhH5BBFdX10avPGnSpIEDB8oIEBgYuEV/P4fp 5C0648keicX9AySHJp0bfmpxyoofmah3/ClP1qiGrVLRxlPZCgCWq+isTb//HfMm9PFUa/fZwqAy GofyB106CSrPDmR3q7nEuWgjh2LRmPIsueMp16WuX5crDq91+drUb33ZUVBpIoepW52N/AJPlT/u BcLJT8PPjZu5ODoUOzr0K1iuaf5jEnIuusyhVO/+yxU6Vf8Uk8BhMiq7BepYT0b3r/RgqWWetCYb jXjzkjxV9ZomqrKHnir6dRxhVTxV9WWtSzrrqWT5acZee9YopVp61OzLHDmDr+dKTPRUH/b5wrh4 T5VPvmXunZ3uqaELAN4Zvp4aVrXFk+mp2QkAvN8Heiq3akCxECsMaaxAlQ4fDyWb6gwp8vNk12sc 4p2e4ik3GPdf9PuM8bipgZbutfScr/ZzlGoZKQUVxQdaTV+b9URW967RqYG99GoOpVWNXnqIjMBr uSFNMbL9EMj2+CQP3EcciloDYhDkBjKdPuZ/SpOfF3j32WHRv22nyd2wiX6vli8I5xBGN661NLm1 ZZkyz57uetJUvDO5ngr2XxvqPzv39+TFLyN+kUL2zvX3ZGt+Lc8x5yZsXPzq1C+RYVG2p1rn6v8m 7vBUdvzJo2Xtsd9lbJy7iEOzlpWuYvVw1zlxJIdu9913yZLHgUZnGrMt6X9x5GvZNYLKwgK1z1fv ZSnbfs2+yDsvzZPt8iNSksv65L8KKtXVLT8QAJyLHnAojXmj+3IFyzo7t8KD9W0A/KeBmicAYC33 Xp0JMbvjwQshhNBvLyQkxN7eXvI1BAIhJCTE2dlZRlR+fn5DV239aorkX2TL427G3JhXy333Zr0t +uwY8CvXWUluyWGnWj7qSVejT34088cn6ralH0gkuC/9Gm2j4DBneG3VxJocdAHLp2kKOS//sFst j7PTVVUm+1/8DTcY926EEGoGx6aCw309azk2qbAm3/D+xTN/d8vBl//5f7ncxWuq9SC33ylRhL7z mA2LAH3Hob738BH5yclfLve8cFbFwOAXzfOwFfnJtbwp2tNnrYqBJlY+QgghhBBCDfWrzO+a9bYw 623RHEuQrkafF7v410k0OTQJm/Uv0zZY814HYDl830JWVZn3LBDLASGE0K90bGLNC7vSTDPv4jXV xWvqn5AoQgg1X54Xzja/PPuswYpDCCGEEEKoCZGxCH4zBg6Gi1NXYjkg9Bvu3R1tF78Jw3JACCGE EPqVed6Yh4WAGj7U77D4VWRzy7PF4tf/w7pDCCGEEELopyBiESCEEEIIIYQQQgghhBBCCCGEULOA 87sIIYQQQgghhBBCCCGEEEIIIdQ8fPf5XQ7TCQAMaQZY1r8xQ4Zhg1chFv6gvNFYWEEcmvrnSyiN /Ny1IYn9SzQ5KhWrFaE/pQej6NY9xmBUdwvijvU49DTlaMSQTG+6Pk2h7iNsxVfWleh/0VGrNtEB VK+WhYqMz5fIKXz8R+01ZShXmR9DukbDMiAhcqgq9ctqfWvWkKSL+xT6rXpIZu1NmqNk3KDl39ZL t/rhI1v9L/Kg1sA8q9X4ty02pGY4NrBtdGv50actRGoTHpp/aM5pcs0tw5+cqBrSzX7fs3vrBgSm 2/2ILDU2FY68fYOW/3Ktjir/y/SKP/NCDUeuIyCEEELoZyC4uro2euVJkyYNHDhQRoDAwMCePXti KSOEEEIIIYQQQgghhBBCCCGEfj8hISH29vaSryEQCCEhIc7OzjKi8vPzG7pq61dTJH/vTXJOPIz1 imRLIsQZyv/Yu4OJrYGg/kcVcqCayyc7ZoFPkyfBoeotp9d+m+3a9P1BxU++KXZhBxDrVLeZCmVD mhLuOwj9tH5bc6+h3NdvV+eQbZfL/d3QyNdmxQXxcqvTkvOueryVQ2u7nOlZ3ZW92lsdTP1h1XOi P6gQRLGGJO2miaowzVDYyAeMkhjDDamfPMCXJHlsSC6QtQ4hFwilzaWxVbWitRnBQcXJtRcCFQwZ mvUqLmKwIbUYd2H0W43xGDtqOQVLGF3nCizjJO5LQ1Htrw3gMDot15jRsNO9nPvVq9PUlzNlPc67 Nvl2UGF8E2y1zfRP8hCzs8ExWMz9mP/Z2IqaIw7dJEhQr/OLQKX/fdecyDg8oT+a5D1AQWPatmKb 5dpja+ls41wBgKPYNSi/l6zVlVjL9VpUr5W7/0ddcJjeiLWc4/6tM0Kz8dV7Wcr2oKKQX/GciGVo +P1fEsChmUJxTlDxi6oWAqysIMEjAOBQnJbLewGAc0qfxuS/YL4hxSCpNM/w0/ejJSk8N2TxkiDQ kCysbwNgBgLAWq53UHlkLQnllhsKW3x9S5XMl+v3x84DIYQQqj/yD0iDQ2+JBY1k8C6N48hZ/cgU gyokHJrGn1PCQeVZteyYVL0fmQeOYqdv2oQCMUepegLDO4fHUcI3byP08/ptAA75O77QksOofnOm txA4tLZ1XwUw+Zilhz/4HZveolgOxa6JyvMyh9Gp8XVBVf5kSflXXsIfJAz+rtX3PQ8ltb+H2bs8 uZ6HdW8BcMhtcBdGv88YT/ii7o60ll4liPdExq+N3zdpDbhvkqP8re+IrnWGmMM0bUAM3Lef5r8t tqXmdnYTCQAcytebcT3ngL/T4Qn90a2U+56j2KapW1rXjwPgBpwLc2jG33+XjP+GjTKqJcLixC/G /I6/5DlRGodm+mPS+qw5cShOnwdQ6Nzg/BcAh8nwLs3jKKl8PmCmmntXBHIonHo1AEGQ7EOqNzzm KJljt4AQQgg1OSIWAUIIIYQQQgghhBBCCCGEEEIINQs4v4sQQgghhBBCCCGEEEIIIYQQQs0Dzu8i hBBCCCGEEEIIIYQQQgghhFDzgPO739fD3ee2WA3faDbIb+52LI0/QcL9sIOdh2M5/Pr4xcWb23bk ZmZhUSCEEPotvbr4+ECn5TWX/Ntj4xu/542OsILH32e7dIPm1EMOK3/YVvyURBGq8+Rux40tpnM2 Gszwm/HvD0guZK//DquFK1nj4/yjai738Ty41WzuCqVxFSXlWCl/lKSwF7udRq5t4Xp7zf6minNP 51Ex/sFfDXZv6/Gby/dgFSCEEEIIIfTrIP/g9MKO+N5afrDqvww2y+u1zy9YLv4rD5v1tDNysPmW SLgZufc2e894eEy1pa6glI+t7U+g3cbSdfVsLIdfQfi5CyFHjk8PuEGiUADgzsYtuYmJHkcq+x8a g9F3/WpFdfZX4ylKS7++bOX70DAShdK6b+9eq5ZT5OSaKpPvQ8NurlhdWlBYzuOx9HQtevZwXjgv 4VHIyRFj+m1c12GkBwD4eS2JOO/jFf6YwWZjtSKEmn5stu/urYUXqsdm6kyv5EbelHbQfu3UsOW/ d3H5Lzpn1qetURfz5pgoZ+kAjdZ6jV6dypCbEb4h6lxo2N7bP2zbf0qiH9vzyqlhq7GL+OO6xAMB t5ac+6RLfLe78uQuveDeOt8ZT9arGmsISit+QGYcZ7o5znTb1WbRZ8uHeU/lphdss5iH9fWnMbRv M/vRGb/5m3980lYDnMUiEVYB+iU66uPBt1Zfqe6o1RS9IipvAnt1JTL44P38pFyWvur0gPkAkJ+c F7jNP/nJ+3IeX8dGv996d9UWeFqNEEIIod8E+ccnaWBnNdZnU+V/CIRfsFAkEkliaJRZT7tvjKcw JYumSFcz1gMAKl0eW9ufQJ6lZNzdAcvhV9Dur2EvLv8XcuRYl+lTc97Fh5+/MO32zapfCQRCq969 6tMbnJkwiampOetegLC8/PKc+TdXrhmweUNTZbKFg/2Mu/5hx0/E3L4z3uds1XKmpkZq5Avp/G5q 5AumpgZWKELoO47NHE3GXp/7jWOzssLSrFepv3dBSSSSxIexZn3aNotECV9UZQuOJbb2erfnkqxX H7Ac/tAu0cF07H8LvuwSCz/k0pjyaiaaAECl07Cg0G+ifod9tqkhFhX6hTrqjkZjz0z+rA2//C8i cPvtQduG6bU3BEnlwtKCEh0bvT6rB1IUqNeWXL6y6OL4i9OwABFCCCH0e/gJ87sEIoFMo9ZckvPu w9Hes8Zd3qplbSISCA/3nG4zxMVx2lAZkXx4Fn13w7+ZrxMkYkmLzm09vFcBQMytkKiLd40c24Qc vCjkV3QY27fbwjEAUJiSdX3J3tTwWJqigtP0YR3G9pVG8mi/T/jpm7ycAjlFut0kd8epQwAg/PTN pyevZ0UnXJq6kSJHA4CZj46TKGQAeHL8SthRX35RiZ6tRd/Ns5R06rzpLzs26ZrX7sLUbD6Xt6vT WABw/WdCq/5dAODWsgNMHfW8hNS4gDACiTRg2xwT544igfDK/J0JQc8FZeVMbbbb6inGHNvcdyl+ 87arttCJDwp3/WfCM+9r/OLScb5bGWyWoKz89uojsf6hErG4Vb8uPVZM/KxIUYPEXL8Xdf66UZcO IXtOCvnlHSYM67ZkKgAUfki/Pn9D6vOXNEWG02zPDhOGVZ42+NwI2nyYl51HplGtBrv12lx5T/0+ O/fijBx5ZeacqBtVkQes2Pnmyl3pv4szc+ymjnRdNVtG5LXabtmz/bgh4d6XO076K+VpVHrkG/dD a426dMS6k9XVEAj9N647Omio9YB+V5cs6zZ3dtUsqZ/XkvgHD7kZmQuehDC1NAEgNyHBb+ESVSPD +IePXBcvfPa/M/zi4nEXzhSmpGbFxo3896iSthYA9Fy2xNtjtNvypZkxsTdXrDbpxkkMCystKGw/ 4i/HSX9LIy9MTb2+bFXqixc0BsNpyqQOo0YAQPCBQ7kJ74UVFfmJSWVFRXbjPe3GjZWReXVT07QX UQBQzisRC4VUOh0rFCH0fcdmcpTPFqZHJt+Yey73bSYAaFrrjfKdSVGgAkDig9jbSy4VJOawjNi9 tv1l4GAMADfmno2/Gy0WiXe1WgoAWjb6w89O+fU3vDSv+MrUE3nvs4o+5JYX8+VZ9Cmhq1mG7MLk 3OtzT6U+fU9jyjnN7d1hYncACP836OnR+1mvPlzyPEiRpwLAzMiNJGqdY+k1rL/77hoT/m8Qn1vG 0FByPzZJSVcFAGqNPCc2/ShnzTj/xVptDEUVwsOdV9t4ODjO6dXQRHnZRX5Tjqc8jldpoV5zSvj5 8aDg7deLUvIHHfnbxsOhRi0n3Zj7v9y3GQCgaa0/ynceRYH6YNPVgqQcQVlF7ttMsVDYa8vIFt1k TQy/9Y+6v/a/vIQsEoVk4mYzYP84EpUcuPpydnSah88saZioc6EPt16fGSHrBqnEBzG3l5z/2LRG GjiYyggsKK24vfR87LUIiVjSyr1Dj/XDyXIUn9EHWIbst/4v1Ey11Uw1X14Iaz+hW+f5feqKPHjb 9dy3mcJyQX58Vllhid20HnbTXQHgxtz/xd99JRaJd7VaCABaNgbDz87AjuJP7hKz36Rdm3eyMCWf X1QqfZrWddWQVgM7BO+8kfIsYcTZyna+q82iXptGmLnZnHLfbuho9j7oTWk+TywW99ky0qizhTRM 5JlHoftv57/PpihQHWe6dZ7bBwAe7b4VfvIBL5srx5S3m+rqONMNa6GZEvDLD7lN7DBmgN34wQBw bdG2ooyckSc3fXj26uay3Sbd7RJDIkoLuO1H9XecMhwAtncY2n5Uv/Az1zt6DkoJj05/Gee+a6mR Y4Nv6Ml8E39z2e6s2ES6mjJnzlhrd9fKKx4HzoWfucbLLZBTpNv9PVSaKABEnLsRtPOkWCiyGdxD +q4jGTJevb04bQ03I7v1AOeB2yvPfH2mrGLpa70NDFMzNlBrqffyv7vtR/XrPH2kjERf+t55uO+0 kF+Rn5RGJJM6jB7QZ/0cAHhywjfs6EU+l6dn26rvxnlK2urYkFA9Omoimfb5cOjezoB+690N7VrW XKjbRl+3jb703+Y9WgVsuI6lhxBCCKHfBvlXyATbRL/nqskXp22cevdg4IYTippqDlOHyAhfmJJ1 atjiHisnjfBeLZFIuOk5VT/FB4WrGevNeXySQCSW80oBQCwSnx65zGaoy4iTawo/ZB7rN4dloGXM sQUAnbZmln2cVAy1kx+/OuG+wKKXg4qhtu2o3rajem9pPWzIwSU138/8yu9+2FFfz0tbmFrsuxv+ vTh5/d/Xd9WVQ3VzwwlXdyY/eX1u7Mo5T05+9uuDnWcG71vUf9scYXnle71IFLKFm4Pb6snyyoqP 9l64Mnf7/MizAJDy/I3HiVUqhtp31h+f++x/fnO2x/qHth/dx3/FIV5uwayQfyUSydkxK4O2n3ZZ Oh5b87eIDwxVMzGc8+IGgUiobjlDp9v81W/E+T2FyanHeoxlGekad3cQ8st9pyyb8uC8ppVZaV4h N736A64zHvvG+T+4tWhLzZh7rJnbY81cAMh6/fbU4Km2Y91lRF5X9kQVFWxTo8HHNh7vOXZ62OXU 56+ee1/G+d169C3GncaOPj7UQ1FdveOYUVXLB27ZWFFSus7CqmbglIhIjyMHVQwM7mzaOjckyG/h 4tiAuwQApqaGdHIXALStrUQCQVbcWwDIiH5jN26si9d8Xm7ugZ59tVu3NnKwE4tEpz3/thk8aMTx w4Upqcfch7H09Yy7dAaAF5d8x188Z9CxQ15i0j4XN/MeLso6OnXlnKIgL5FIynm8tKiXum1skp48 w9pECP1gN+efbz2kg/0MZ0GZIONFsnRytzA57+ywAyMuTjfqYhZ38+UZ972zX62jsxX77ByRG5e5 p83yOdEbmtE23l/np6DG8PCZVZxZuNtq0ZSQ1SxDtlgkPu2+w2aE44iLcwqTco51X88yUjd2aW07 nmM7nrPFYNYQ76n1elWyRBL937Pxd5aSqGTfiUfvr/cbeHB8XZGzzbV7bvS46HloatiawJWXFLWU HWa7AUBDE70++xSNIb8wcU9ZAc+79xYShSRd3n4Cp/0EzpefsL05/3TrIZ3sZ/QQlFVU1TIARJ0L nf50nZqZVlJw7Nmhu+bF7pBTVqgrUZYhu/fO0Tq2RiU53KNd10adC203tkuHv7vtau1VnFGoqKUM AC/OhNh6dpE1vE/OPTts94iLc4y6mMfdfHHGfefsV5vpbGZd4f0XneVlc2dFbZJI4OzQXUEb/FzW DAWAihL+5OBVm/RmGDiajr228LjLhs7z+8iI/MXpR+PvLDFwNMuLz9pnu9S8X1tlfbU+O0fnxmXs abN4TvRW7AoQAKhb6kzwX5oc9u7ciD1zXtTr1bhPj92bfH+FoqZy5JlHV2Z6S9d67fs0YIXP4KOT DOxNS/OKJeLK58t0bI0s+9uqGKknh7490XezRd92KkY4xdUsUeRoww6u+td9ZsvO7fOTUuPuhk27 e0L6NoWM1+/sJgx2WTyRl5N/wHW8tpWpkWNbUUUF29hg8L5lxwfOmB7onRr55vmZaw2d3y0vLjn5 13y3ldOtB7nkxn84+dd8OpvVsnN7ANBpY27Zu4uKoU7yk5cnhsyycHNSMdTJinl/fenO8Zf36LQx f3rSLysmQXb8Wlams4JP316zv6yIV3N5RUnZ5JtHNrXuZ9DJeuy57ccHzZDO79aaaHFW7lWvrdPv nWTpa/mv3l+aXySd3H11JTDs6EVPn51MLfW7G49cnLLq76sHsCGhRuBmFhV8yMuKzbi6+BKJSuow yt5hYteaAQpS8sOOP+wywxnLCiGEEEK/DeKPTzLl2ZstrYdJ/1xbWPk1I9uRvTQtW5wesez11Qfu e70IMt8NGHXprn6n1h09+8kpMeSVFTUsW1T9RCAQui/yJJJJBCJBjkkHgJTnb4qzcp1mDCOSiCpG 2uZuDtFXH0gDGznYqBhqA4CBnZWSjnp+UoaMRMNP3+o0foCyrgaRRLSf5P7hWTQ3I7dxJaDfwdKs hx0AkGnUquduLXo7KrCYBALBenD3ovQckUAIAAw2i66mzDLQ0rAwIlMpTC01Xk6BWCSOOOffbf5o Kl2exlBoP7r3649bhBqNQCB0XzaDSCYRiEQ5JgMAUp5GFWfkOM0ZRyQRVVrom/fpFv1fAACQqBSm tsaz4z55CR8UVJU1rczqEz+/qPj86HkD9qxUMdKTEbkMGq1MVAx1yTSqRisTprZ6SU4e1lp9WPbq WZSWbsLpSiB+pbtjqKnR1VRZ+noa5mZkKpWpqcHLyS0vLZVTUqpxyUaORKFUlJQAAJFEsnEfJF3R 3NX5zS1/AEiJiCzOynaaMolIIqkYGpj3cIm+cUu6rra1lUHHDgCgamSoqKGRGy/rSopELNZt2yYt 6mVq5Av9Du1BIsGqRAh9x7HZ44QtBvOlf67NPC1dyDJix1yNSA6Np8hT9O2NK8dg5x4bdTUz6mIG AGa9renqigmBb5rvhme+SpE+x6moqaysr5oTlw4AKU/ii9MLneb1JpKIKi01zPu1jfZ92rj4O01x kT5r26KrRc6bVNmR247rqtla7/SgHa8vP3U/NonQ8BdlS8SSuBuRTvN6kWlkRU3ldmM6f3UVlpF6 zNXw5NC3FHmqvr1J1XK9TsZqZloAYNjZnK6ulHA/WkYkbHNtvY4tiSSioqayEcciPyELAJg6KqY9 bcK9HwAAN70gOSTOZoSjrOH9uVCjrhbSOWyz3m3o6syEwDoTFYvEEaeCu/0zkMqQoynKtR/Pee37 7ON4SY8sR1HUVNJp30JRm8XLLpIduXY7QwNHMwBQNdZQ1FLOjcvADgGlPInfYjJb+ufanJONi8R6 qJ2ipjIAGHWxyE/MFpYLAeC59wOHGT2Nu7emyFOVdFWV9dUqT0udzKUTugYOpkq6qvmJ2VgLzZeG RQvnxRN9pqy6snDrkP0rFFiV96kQSUSbwT0BgMFWMe/h9OZmUFV4FQNtMpWiYdGCqalWkpvf0BTj 7oYx2Co2g3sQiES2qWE7j97PTl35eMWjrYqhDgAYdLJW0tHIT04HgNjbj1p26aDbzpJAJHYcO5DG UGj0lpJpVEV1VR0bc0VNNV5OgYxEc959UFBVZulrAYCebaucd0mVl1nOXO80zl1ZV5NIItpPHPrh +WtuZg62IvT1jvp50pZ2q6V/ri25DABF6YUAICgTzH64ePTJv0MOP4h/+LYycETyOot/djltZGop f/Z0L0IIIYRQs/YTnt/VtjH1OFH59ABZrvrDRV1meRxwntJtwWi6qpLsGApTs1WNtGv9SVFTlUj6 ZBanKC27nFe21arypUAigcDw41O5r/67H3n+toBfQSASeNkFErFYRqJFadn3t/0veM95cZIVywAA IABJREFU6X+pCnLFWflMLbVGlMCXbxwSCYTBe8+/fxghkYBYKAIAaWak70qqeqM1gQASkbgkp0Ak EJ4cvlh64U8sEmM7/naKWuzPW05qRjmvZKtJ98o6qhAYdu4AAAQicVLg6Ue7vY+6jNKyNu+10Uvd 0lh25BKJ5PKkpdbD+pj27CI7chlIVEr1u80JBKz3evJfu95p6qSw4yfaDR9a9Rhu7SVcubsRK3c3 IEjEIhqdzi8qqgoj4PNFAoEim83n8agKCkRy5XNRCixWXmISABSlpZeX8Lba2lV3OPadKtuYevWO TyQRRUKh7Jzrt2ubGvkiJeKF66IFWI8Ioe87Nmtn6HFh6sexWeWdZwMOjHl65L7fFG8iieiyZpBF v7YAUJiSlxD4ZovB/I+9ooCXw22+G67RSud90BubkY6FybnctAKN1noAUJSSV87jbzWc/fEYLTSs z9O6tY8ulKX/IJCIIoHoq5F38ep3oNPybv8MpKspNiK5sgKeSCBiaFYmytBQ+uoqAw6Mf3ok0G/K cSKJ6LJmiEU/W+nymk/rKqgweFlFMiJJfZYQssufl1lIIBLy4rPajKycx+04xfm/Sce6LuofdTbE 1M1G9kYVpuQlBL7eYjDrY9OqkNG0SrK5ogrhyb5bvxwMk6gk6dGcIkchEAjS5yNlRF5VR5VHZ4EI OwSk3dbI43TlG7nJ8g34CE7V87gAwNBQrmpXACAWioBGLkrNU2mh8eWKry49iTzz6ONpaVHNeFBz ZDuiz/1t/7JNDQ3tqt8HRqXL1zh3YOYlpladgxAIxMqDb6PO8rgZ2Uwtdo1LIux3959UNi2/u5EX bgn45QQikZedL73IwMvJU9RQrTw8EYl0NVbjNrPq7IkiRyUQCFWXU2pNVM1YryS3MDf+g5qxfmJI hI6N+cfLLFn3t58I3ne6xmWWPKYmG1sR+kpHbaPrccTz49iVAgBEMpEiR+k624VAIKgYqlm4tU4M eWfcxRQA9NoZLItZz+eWPT0VenTg3rmPluA31BFCCCH0e/gJ87skKpmhrvLZQrFQdHXhrvaj+zw5 fsVqUDc1Yz0ZMTC11NJexNUzOSVttgKL6fXa57PlKeExV+btmBywn22iDwBbbf765OcvnplQ0mbb Tx7c0bPf9yiT0IOXYm6Fel7cIq/MyHufttveU0ZgOptFopDH+22X5hx9J0o6mgoqyl7x97/8iaGh 5rZhgeuq2Y92e58aPHVBzB3ZUT3YckQilnAWT6lP5KgJRfn+JyyvcF3sJeSX31y1xuPIwYbGoGFh zs3M4mZkSj/Tm/YiiiIvz9LXz3jzppzHE5SVUeTlAaAoI5OhzgYAJW0tBWWWV8STWuJq4INYerbt 7m7ZnpeYyDY1wapECH3nsRnpy7lAMo3sMNPVYabru9uvz484OO3xClUTDSVdFbNe1sNOT/72Xu5X 4Lx6yEG7Ffvb/yPPYgw6+rf0+7hKuioKKgyv5D21r9OQzfzyGVwZkYuFoqszvNtP4Dw5eNdqmJ2a qVZDE5VnMUgUEi+rSPrUYFl+ydfPBGhkh5k9HWb2fHf75fkRe6c9XqtqogkAvIzCqjDc9AJFTeW6 YhBVCE/22dJ31xjp47mXPA9V/dSCY0lRoCYEvo46H9Zz/fCvjLt0Vcx6tRl2enp9tpSuziRRyeMD lrDNtes1qJMReV3PSROwY8Au8euIZJL44z0BYpFY+ry4jJbF1GIVJn/+CqiUZwlXZp6YHLSCbaYN AFvN52IVNHd3NhzRtjbLT0qLuhxgM7iHdGF5camgjE+RlwOAoowcBlul6c5bNbgZ2TU67WwlHQ0A SAmPvrJgy+RbR9kmBgCwta17ZReqppIeFVsVvqygKe/TqitRpibbedHfR/pOUWupp27WoufKaR8z r24/aVjHsQOx2aCGddQUMoP9yX1jLD1VAV9QXsyXY8oDgLBcSFdl1Awgx5R3mNQ1cKt/UXoh20QD yxAhhBBCvwHiL5KPwE0nKPJy/bbO7jpvpM/k9cIKgYzA1oO6JQa/iDjrX84r5XNLUsJjZATWa29J Z7PubT5ZVsirKOVnvk4oTMkCgLJ8LlmOxmCrSCSSiLP+vKz8T8+9VdMiYgEqn6YFgPZj+oYevJQe 9U4kEPKy8xNDXjTh5pcWcOkqTJqigoBfHnrw0lfqjES0HdkrYPXRorRsYYWgIDkjPeodNuUmp9fR hq6uem/9/rJCbkVpWebL2MIP6QBQkpOfHBYpEghJVIqasYFIZlsFgPh7oVHnrw05trHmRd66Im8Q PpfnM84rPzEl5vq928t2AMDV2WsS7j/GuvtYPtyADVv6rF1FIBC6zZud/OTp23sNnlDXsbHWsDC/ 9s+KovSMvPeJt9dvau8xnEpXAACJRBJ84JBIKMyMfhMbcMeylxsA6LVrR2er3du+s6yoqKK0NDP6 TWFqauPyzzY1SX0RxdLTbcQrOhFC6Nu9vfWyglcOAKrG6kQySToiajPCPiHwTczVSEFpBb+wNPFB rKCs8jjI0FAiEAmpzxMBQCyU9fhR5KmQh1tuioXiS57HMl58SAp++99k75+yjR9C3irrq016uHLs Da+qR1f1OhnTNZj31viWFZZUlJRnvvxQcz6Gqc1Ke55Qc4jYsNFF3ZEHrrpMUaD22+vZdUl/n9EH pG9zbVCiBCLBrHfb4G03BGUVvOyiiFMP61HLURU8PgCoGmtU1TIApIUnvgt4JRaJI/8XXM4tbcGx rCsGYbmwgleubKAmXSv+zquav3ac5Pxox01+QUlLl9ayc9JmhGNCYHTM1fCPTStGUFYhazDs2SXg nwtFKXnCcmFBYk56ZFJTRf6xPSsTiITU5+8bXdfoT8A20055llCQnCMSiB7tviXkf+W8oO1Ip5B9 /kmP4oR8QXFmYVZ0CgCU5fPI8hSGhpJEIon4XzAvswgLtll7d//Jy//uuO9eOmT/ipvL9+QnpUmX SySS4H1nRAJhZvS72NuPLPt0baoUzVwcSvO5kRduiYWirJj3Eedv2I7oCwBlBVyyHI2hriKRSCLO 3+BlV37fx8LNKeHh8w/PX4tF4vCz18uKiptw8+tKFACiLgcMPbhyvO/e/lsXyitVzsy1HzUg9PCF 9JdxIoGAl52fGBKJTQg1jgJLwczF0n/dNQFfkBWbEeP/yqSbOQAkhiUUpuZLJBIBXxByKEhRk6li pMYv5vtMP52fnBdz+/Xt9dcB4OriSwmP8MIaQgghhJoZ8q+QiYSHEeGnb027d4hAINhNHPQu8GnA 6iO919d5/75qS92RZ9YFbjxxc9kBIolo0r2j3mGLugITyaTRZ9f7rzy8x8FTUFbONjXot2W2sp6G cbf2Jt3b7+o0mixHazu8R6v+XWqu1XPlpKsLdwfvvcBgs2Y+Og4ArQd0FfLLfWdtyU9Ml1dmtB7A MXJs01QlYD9xkM/k9ZstB8srM13/mRBzK0R2eLc1U+5v+9/x/vN42flKuupd54zQtsEn/JoYkUwa femA/z/b9rTrJyjls81b9tu1TFlfW1hefnvp1tx3SQQiUcVIb/jJbdLwz09cenzoTHlxKS87d1+n QQAw/tYJBRXlgBW7SvOLDnWpfEDcom/3nuvn1xV5g3JYzuUlBT/jZeflvk1MDg2XSCSJwc/+z95d xjX19QEAP+uNjY0aHaMEREpURIz5JwTF7p7x2N1d2Indiq2oiIEIiqKIDYiNinTDgDFgbGx7XgwB dYwU6/f9+ALv7k7fc8/dufdcHVtL067tofoQQnc2bbV0d9W1aYUQojAY/82dfWPZqul3nXPjv1ye OUe28J3fsJFYHK7bsiWqBnpyA8FgMMOPHLy+dPmuru44AqGVd3e3RfNlH9F1tHFE4g6XLlKJtOvs GcbOThXN5sSxWz7rdrHdRKUCprlZz/U+Kvr6NSXyy6PHN1esLskvKOPz97h5WnXzcJ0/pzJqbStL A0dHqEoAwC8Rdfzh5XHHpBKpkjrV3acf00oXIaRipD7i6szQJZcCxh/D4rB6bY0Hn5mEEAEhRGZQ PDcNPtt/D0LI3NOm70FOTSFnvk7NT8wpF4gSHsS16t+mNL848UGcpFyCxTf3fYdEZUrKk09rNSYg hMgMpc4Le3ac3R2Lx40MnHtr4bldNgtFpUKmpW7P3RzZ/CVCqNuGIdem+0VsDaJpMabHbGjI6EJe 4PF330Ydvz/lmQ8Gg2k/1eNTyKvQJee7bxtR30i9d40KnHh0i/EMFSOm/YiOL08/lG3f57RcUi7m fsm+vfxixNYbrQY4sRf3RghFHb9/edxBqUSqpE5z9xnEtKo4G1r2bB17LvISZz9NW2XIuRmy5Zoj dwbHnIwQFJaW5BXtcVyCEJr8eA1Jmdxt09DzQ/dIJVJWRwuX2V6CgpLK9DiM6Hhn5SXnaR7fvQXj RypGGiOuzg1dciFg/CEsDqfX1mTwmWk1RYoj4j03Dbu3LvCo23p+VgHDQL3Lwl66Dqz6Bq4AmUHx 3DTsbH9fhJC5p23fg+OhTwA/Mne3sRvc4UCX1UiKHIa7mLnWch+D3dAOwpKy63NO5idmkxlKHWf1 0LI2MHO1MXez8bVbiKcQHIZ1tO5T8dIWUanwYNc1CKHCNO6Nuadur7roOKqz8xSPxMi4G3NPyW47 ONh1DQaL6eU72rA9XAz+FvjZ3ICZ6/tuX0TVUKVqqHaYOMh/0qr/Xd+HEKLrMHFEwo72g6USadc5 HOMODg0I33/Squy4hKLMXAwW8+neM+2WpgP2riBSKaPPbwta5hu8cheNqe62aIJ5VyeEkBm7nXlX J9/2Q/BkksNgL+uebFkgWlamPdbNujh5tVgotPbuauxSS0quztucEvWWn50nlUhTo9+pGuoOP1Hj maimSMWichpT7dTw+QghLA6ra2sx+NAahp5Wq15dywVlAbPWcxPSKCrKrXr9V2t6AKhJny2Dry+5 vLWdD1mZ3G1pT317Q4RQzueswPn+xXl8Apmgb284+vQEHB7HLypKfBzPzy3Kjc9OevZFKpUmPInX aaVn2hH6UgAAAAD8STDu7u4N/vKECRP69FG0kE5YWNjmFolsqikUNFDAr+QmR7Vtc8YYLpSyyTb/ TgmHl2WFabhV3+Ka788mGjR5RMupznK3+6TvbWwW8iVsZaeqNpPD52iyfmGRJj1/ce5/kxa9fAHH L/hH+23KGg6tY526BXK9J0V8sr55BYNf+VaOsktVgHROVVf2ejebUfErjB/pKEfZo1kLQXCGQ+7X NEHlXOaQBzbwu4jFoX0zo+BXdotD0VbUo5ZHsAlWf1B7k7Uin4yIGguhLImjblen4hJd4ihVjEtz 4zL8emwec2uRupmWVCJNf5l4uPOaZXmH8ST8P36A3994LfNV8uCz0xoflKCgZKvZrKnP16kaw8sU f84Yr/xlGG37j9td40eyaU5y9uc/RapmibxXHErXGo84rfpVvWvOPTZJs1ovba2oh08KaYJcF3wO s/vmVmDX9zvY9Bb1CIH3Mcxq9tf0z2STYD7pj7u6iWFT6zQNEy56GsY49VMTo+D0VHXt8OzVubFL F725/s9WWcDM9cqa6l3nj8UTCcISwZVZ6zXMDF0X/M23zoTz7rGVjRo48tEdLaezjXNnK3dBCIVz vdgMRW9NXm5gUvWt3L1sktnPPyQ/h2lMbcAXXeOOsZWN5QRYlBBmMbbqKEvZ9pteE2HTOHS35oip KOeb/6pmVVU3ZQFCyDWlB1upU73Tn9aOo27tl5nE+XbFeD9RKEdL30+4l0Op0xVfuCg8jB6GEPLh +dUQ0RMOtXudGr9hLzjHAQAA+HNFRkY6OztLa4PBYCIjI11dXRUEFRgYOHDVllpj/H1/wLqz/tir y3d/3O62ZIxtf9ffIYXFeYUHPeQMYakajIkhe6E1g/qKC74fNE/OrdAWXl16bF0M5VPDYcg96C3n LhOqutrEG4E/N26pFMofAABq7J9ziw66rJM3TFKeGLn0d0ghLz0fR6h6y2bOuzRlXdX6Tu76eW3i fsn+cTsneKGaieZPSnkzRCptinOcVCK9uzbAzN2mcnI3LigmaM5pOUOdHvY9to+EowYA8Derc7/q N2gWN1HOu3s4/jvUWHo/68zykyPNT0rXs7fEEwkIIVFJaUFKZgtXWHQKAAAAAACARvl953fdlox1 WzL2dy47qjpjTtRpaEOgqVh4dbHw6gLlUM/DUG3O4wdQDgAA8Nv1zxrKc+I2/s4pNO5i1ap/u/3t lyMMBiGkaaU7ImBOfQPhBC9s/pT/kkjrK3Sp/4ujd3XsjAaemlI11OnhYNEDHpQEAACFnby/798X qdea6TeX7Xx8+CIGi8UR8Xb9POwHeUFdAwAAAAAA0Bh4KAIAAKgvo7ZtFsVGQTkAAMCfC4PFuK8d 5L52EBTFd7osaoKV8TzWDfJYB2ULAAAIIWTUznbR2xv/cgno2lqMv7YPWgIAAAAAAABNCAtFAAAA AAAAAAAAAAAAAAAAAAAAfwSY3wUAAAAAAAAAAAAAAAAAAAAAgD/DT1+fmU01hVIGirGIalAIP/cw JGl9v4Vo8Ge3GRKsLQ/ALz0GxdbNFxfGosbOjWFetZvEuLkLAWfUdEE1vE9moeIfQiP/ewMJlToX NQ2OX/BXjfHw9vK305xq3E7UDsdlNuk4U7O5c61i9v0Weov6hVBtfzYJ3gn9J17dOCDEr9OeBCco LvCXNHvlLl8HwKr1OVjMmuWQNGtopozrtf23G4JKKb9L81Dq1JD0U7gIIRaJ+P12shJCiIXTqGvs BHYtEeF14BAGAAAAfgaMu7t7g788YcKEPn36KNghLCysW7duUMoAAAAAAAAAAAAAAAAAAAAAgL9P ZGSks7OztDYYDCYyMtLV1VVBUIGBgQNXbak1xp/+DJzr+15Qr+B3k0jKYNFN/qH8lvJYyPzbLWos QhPfQZlIeVfTo9hs4eBwfm6jAi8isrDqVf9lnmORidCSAfhlvYqQUpcbutkkw+V0lzqG6VOaGS7i I4SQRICk5fLjzUlg4Shhpp4VY4w3faEuGlR9X1hk/T8ltWx6p+X6ixBCPnnHwkui5eeIyGBRbeqU d1EWC1GhDYC/SZjqeDmXYNxdNX4Bp+juXjaBvlxJr36Xeykzqr6u5LBcfYyirr7wYbggqbGdGFaN RWIhhBIFwSwsiU0yC09/We9ys1hYkf74SGhFfyK2Oi9c8KlOda094+clw6fI1y8vgSVtDzUCvu+p 8B9Y1Ia8EC0x15aFk7cuAlNasUP+chZWqcZDQ6nTcvVFVV10zshmOhkxT9V4msh5U+PXSNdrDJC+ uOpAK9gfLnj2O9YyOZeF/+mD6sTyAUhCZ2EIFVVMVEGYknBRDkIIYW4gFIcQSiyYysIZ1jvkrGAW gVTjp7hXLGVCXRuAwR6EkE9WnNxffhLxr1lUQR0uHlssV+4OvQcAAABQd82xximb3hEKGvxW/Mou sknO/1B+S0PYSg7fbklq8rXT/STv2EQ5S7aGC98ihNg0jUYFXsRjq1QtqumHEJtoCS0ZgF/WqwiT 2CTDJg+WTaAhhMLLBOwaltv1+/ErDBeojnpXX84XNr3Tn5hytlJr+Tkqj2fj69Qg/URZbKIJtAHw 1wgXfqnxeCGay9v/E0KITaA39bFZjyWO2eTGLm7vJyySZcFPULUoKFu5HiPD8KIP3ySpccNU8Ata Pj8XIcQmm9e+Z93mgBt7CFANoVLAD785fJB7dVz7F+V1ShVtnqBRsUN9FuNlk376KuXhZU9rSwND 3rcKEUJsgpWcj0Tvfzh3tPsdaxndZOMdf3os5bLTusq3101MhFB4OWITOla0Cgq9IY2NUePa2n78 VzWNvb+vr2q3YMo9pfoJEJvUAroFAAAAoMlhoQgAAAAAAAAAAAAAAAAAAAAAAOCPAPO7AAAAAAAA AAAAAAAAAAAAAADwZ4D5XQAAAAAAAAAAAAAAAAAAAAAA+DP8tfO7r6/G7vPwhQpuJH5O0Qr9hQJe 6b+T5deXYva5bGm26I513/Puaiy0tJ9byF5L31191MhA7q49e3PB4X8hpz+JsFiwp9309frDDnSe U3174sM3Ox0m+2gODFl6vHJj0uN3G41GND7SmDNhR9wXwSEAmsGDvXc3O67ZYLMicL4/lAaoU4/t Oefd1QeNDCT+btT+jpOaKknXZ+4IXrC38r8CXvEm4/689NwGBxi56+J26+Er6W5xwU+avAATH8bu tB/tw+wesuTATypeAJpH0tOojVbt/6w073Lxeh98B+qu+SU+ermzw1AfI9eQVXuarjaHvQ+OgLIF f5xPd97ubLNqPWvuHmcfiVgCBQIAAACAfxC+meN7fORh8Krrlf+lMWkLYpa/DXp9YeLp6rvZ9XPo v2sIQujN9VdhW0L42UUaJszua3sbtDZECPEyC0PXBX8M+4DBYiw9Wvbc0BdPqiUjrwNfRuwL5ybm qRqqTb0zGyFUViR4sOfe26DXRVk8NSN19yVeLf6zRAgFLQt86ve4+nf7bBnQemhbBZGmvUq9s+FW akwyBoudEjpTRV8VIXRp2rlXgS9lO+g7GE64PlVBYmTeXH91df6lPtsGWvewkW3Z89/27I9Z1RMz K3KBmpF65X9PjThWlM2bEjpLceByE1MuLA/fEfbyUpSAV6pvb9Brc//qIcslN6dyI62pGBVEys/h h66/+enuB5FA1HtTf5s+9v/CEche2E3LWue7jXHBb9NfpnRd7Ak9VNMU8qLBWtZGjQzEZkAnSbm4 kYHcWnLMwqudcadWjQkkLvh5esznrkuGNjKn+zvNmRyxvdlqgUglT3u2O/Z8+ON916pvZ3VsNTNm f+DUPdBQQROMMY5GBK+uamA0DeUF0SsaFtT+7r6Tb86q4868zMK7W0Om3ZmnbqIhKhE2OP31irTG LuLOu/TXqV1ne9RnbBYZvPpGtXKjLYhZCs3pp5+bFo/Usjb+vvpuPk5/+bHrktF1DETXoYX76vE/ KYUkZSXvHTOVtdUbHILLjIEuMwb62oz8GcljdbSb+fJE4NStdS/eJiHgFZ8ftopzYwu0YfBr3Vq1 ycKjq3GHdlAU/xRWB/uZj84Fzt4IRQHAzUUXO053dxztUlYkwOJgbUIAAAAA/IvwzR+lkZPx6LNf f4rCIIRQS69WK+LXVe7gN/iQiYsZQqiEW3xp+jnO+f8ZORk/P/XUf9KZuc8WI4Sy47I0TDS6r54v laKTw49EHrjfZabrd7FgMFV/v7oSE7YltO/2gQZtjJC0YqNEIsVgMKPPjmfoqUSdfXZhwumFr1YQ lYheq3p1W+4t20fAE+zstJnVwURBpHlfck+NOOa5vMfQI6PwJDwGWxExP6eon++gVj3tEEKVG2tK jFQqvbniWvLzRIaeavVcTA6ZKZVU7JTwKP7G0kBVA7XKT5+dfFKSX1x9f7mB15SYkrzi0oKSsRcn 0nUZN5YGXlsYwDn/vx+qqyrlNeVUbqQ1FWNNkYpFYr8hh826mE8Lm6OkTv2Fd19WbznNwKSL+Y8b Ex58ItHJ0D01XSHbNj4QpqVBI0OQSqUJEW8svBr7M1zCg1ckZaVG5rS0gJ/1OuG3rrZmPhTB38Ko nfHoMxN+OIPVT2lhadb7jLrvX5CaT1Ima5gyEUJEKql5Iq2xi3gUT1Im1b/cWKPPjmtkuYF6npsc 5PXwL0l0pboHQlFVNnNt85M6XgwGY92n899UvE0iMSK28fd7AdDIYY9UKk2IfGrh0RXGaQBqE/yb pFJpQQpXv60xQoikDD+eAAAAAOAf9QvmdzEYzHeP22KwmOrPwuYl5Mqe3Szjl2EwGMM2LAwGY+xs ErouSCqVYjAYsy4tzLq0kO1v3tUy+1O27G9+Dj9w3sWUqGQ1IzUL95aV4d/ddrvnhr6s9ibVI6Uw KG6LKp6PbNXT9vriK4LCUqISEYvHYvEVt/7FXo5mOZvIHjCtKdKH++87Dm1rP9Dxu2wW5fDVjNR/ fLBYbmIwGAzLydhjSXe/wYeqb8cRcJV/P/V75MTpUDmryk3Mizxw/795HpEH7isOvKbE0HUYPTf0 lf1t09MuYNYF2d/icnGoz81XgTEUFSXn/3Wq3L+mnMqNtKZirCnStzdekahEzxUVU8I4PK452yQ/ uyhw6vmUZ4lqxhoWXtaV2zNfp99cEJD1LoPKpLEXeNgOclR0gSGR3lkdFHvhhZBfRlGjdl3czX5o 200my6dEzlPWYezvtFXDXHPgsVEJDz7f3xLKuT7lxfHHETvCClPz++4faje44sfZlGeJoSuuZ8Sm 4Qi42PNRCKG++4cadTBBCBWmFoQsv5b48LOgsFTNWGPMjalUJg26MISQqFR4oPOctuM820/yRghd n7mvMC1v+MVlGAzmxfGQiO0Bhak5fffPsBvClu2/reX4NmO6RfmFtpvQPeXph/SX8f0OzDTubFNT +Bkv4y+O3cZLy2s1oFOfvdMqaup53LUZ+6y8neLDXhbnFhp1sO69ZyoWj0MIpcfEB807lPspFSGk bWM84uJyghIpyi/02dFbWa8TLo3bRiATEULTX+zFEfHcLxk35h5Mj4mXiiU6dia9905TNdJCCK1h DvTePjHqeKiAV0zTUu13cBZDXyPl2YfQ5ScyYr/gCPjY8+EIob4HZhp1aIkQkptTsUh8dfqe+LAY UUkZXZ/puX6MmasDQiho7sHPYS8lYomv7USEkI6dyeBTCxFCopKykGV+H4KeSiUS6z4uHj6j8WSi 4pIP33j+TUBkUUYeVVOlz55ppv/Z1xRpfeGI+NsrT0aduI0nE5yn9HKZ0UdBjhBCham5IcuOJz58 KygsVjPWHhO0lspkVA/w0Z5rL46HjLnho6yjBkfNX6z6iKJS+uvUoBWBufE5CCHtljojjo8jUAgI oYRH8SHrbuQn56kaqnut6mXU1hghFLT8yucHHyViiW+njQghHWu9wQdqfPowOy58RtQwAAAgAElE QVTz+pKAgvR8Aa9Utr/7ou7WPWwRQpnv0m+uvJoVl0lVp7FnuNr2bY0Qith3Lzc+u1wo5ibklBaW th/bsf2YjgoiLckvubboUtKzL2KhWMVAre+2QTrWegihgtT8G8uupL5MJtHIHSd1aTvCGSGUEpUU uiEo4206Do+NDYhGCPXdNtionXHDyi0lOvnaoitW3azjH3wqzis2asfqvbmf7Mye8OhLyNqb+clc VUM1r9XeRm1ZFyadsfK0tu1jf2tN0KvA2AXRS8Qi8UZbn0WvlzfzCb1enh+5nhYdl5+Qzs/Od5kx 6NGeS2omusMu+CCEMl/H35y3J+tdApWpyl44wnawK0LoUNdp9sPc2/2vt+zrV6dtw+JxPX1nIYSe Hgx8vDdAUMg3aGflvWMWQ5+pIN4Xx25E7DhfmJLd98ACuyFuFQX+9F3o8kMZsZ9xBHzsuTsIob4H Fxh1sFEQzp5244sycikqyrNen6rcuEbDy3v7jCi/m4JCPk1Lrd+hRYoTk/riw7UZO3hpOUYuNiRl JTyRINseOHXr5zsveGk58+LO0/WYVUOdVUdiz98R8ksp6vSui0fZD/NACK1W7ea9Y+bLMyH8nAKj DjY9tk0nUBTdZPDQ90LU8SB+dj6ZQW0/pb/LjIEIoaPuM1v27eI8pV9lAvBEoveOGfWtVrnFG7Ht XO6nlPIyETc+rTS/qP2Uvu0nV0SU8OBlyNKD+QkZqsY6XpunGjnXuMaGoJB/aez69JiPAl6x7KHk tuN7uswcVFODUaAwNSdk6YHEh68EhXw1Y90xN7dRmSqScnH4plMvz4SKSsuMO9n32DadylT5sU7H 3NwGXf1PHlgKQlZv/hASJpVIrL27eayYjyeRcj7FH+4xZMzlEzo2LcUi0UHPgXb9e7lMGYsQSoh8 GrJ6c35SiqqRgZfPEiOniuuF5Ocxd9Zvz3z7QSqRmHRyHnp8j8JhD+H2uu1RZy7iSSTnCaNdJo9B CIVt2pn94VPlF2MvXXuw69D0BzeiTvs/O3E+613cpSnzCGQyQmh6RBCOQEAIPT125vHhE4LCIgNH O+9NKxm6OopyKhCEb9v35lpwUUYWlaneZ/s60y4dEEKZbz/cXLou68NHqoY6e/Zk2/49ZftHn70U vn2fRCy2698L97WvqG+kf3/7EZQdcB/XdnSf9uMHIISuz99SmJEz/NSm5Gevby71Nf+vfUJkdEl+ YZuRvV0mD0EIbWvdv82oXlGnrrcb2y/lxZv02Lh+u5cau7Sub7yZbz/fXOqb9f4LlanKnj3atn/F Mh4P956NOn2Nn5NPVqa2nzBIFilCKPrsjfBtfhKx2G6AB46AhwMf/Fn8+uwsyuSJheWnB+3FEfFW Pey6+fRLeZFwqv+eJUkVZ8nAGacpDKVuPv0ifENyP2WVl5Vzv+SUFpS0n8huP7Hi5pjkZ1/urLma +TpVKpGadLEYenoilC0AAAAA/iy/3VD+0cEHbUa0l/3IqGqoZtPb/vriKy6TOgevuu6xtAfmh3tL U6OTWrhZyf6+sTSQRCPNj15aWlDqN+QwDo9FCPEyC/OTuVnvM68tDMARcG1Htu8wodM3P9bwSu9s CnEY1Iau881kgKRc8uRYZN/tA+X8FlYt0oTH8Ta97fe47igrEpixW3it6klUIiKEyniCc+NPigQi dROm63wP2eLPChJj7W0ri1RuseR+zkl6mjBgT8WKrBKxJGDWBc8V3tWfDFYQuNzEVJcSnaxnX/F4 4otTTz/dj5t6ZzaZTrky92LlPnJzWmvxKijG6pEmPPqiYabpN/hQzqdsLSudnhv6qho23xzMjbmX Scqk+R9Xl+aX+PXajyNgEUJlRYITffZ7ru9tO9Ax92PWiT4HqExl064tagrky/1Pry9FT3u2iEwn c7/kYgk4hJCuvX7mm3QSnSyVSNNfpiKEMl6n6ToYIITajHFuM8b5QOdvFsg1aMcad2u6/5iTzBaa 1ddnlpRLTg86rOdgMOn+XIoqJetdJkzuViJQiIP85h/zXGLa1Z77JSMu5MWURztlfUWbMd3ajOn2 3QtfxWUiZgu9/kdmH/VYPPXJrtQXH1/4hSqY39WxN50RvS9k6fHSgm8el896k9iqr8v/7m4WlQr3 d5z9+lKEbGL15oLDrfp3dJ7SU1QqzIiNJyiREEKOHA9Hjsdm09EDjs6tvj4zTUu17ThPc7fWCKEL ozbfXXeu/6FZCCEklb4NfDT21nocER8waee9Def77J1m0M5yXMgGf84WZgv979ZnlptTHAFn1cPJ c/1Yiirt4Y6Aq9P2zH1/FCHUY9vE3I+puxynznp1sPr+txYf5ecUzojeJ5VKzw5eF77xgtsqRYtq 3lp8NONl/PALS9RMdLhfMuj6TAWR1ldRBpdIoyyIP5Ebl3LEY7GuvalxZ5uaApeUi08P9NFzMJv0 YBtFhZb1PrlyclfWST7afTXmTNi4W+u/m/QF/4ibK6+26mnnPLaTSCDKeJMmm9wtSM0/O95v2FGO sbNpXNj7M2OOzwxfQNWg9fDpmxufvavrllkRtb+8WdNCe9zlKUnPE86N96u+fxlfcGL4Yc/lPW37 OOTGZ58YfpjKVDbtaI4QenkpauzFyUbtjPMScve4bbX0sFbRU60p0sdHHmAwmPnPVyAMSn+VqmGi KRsDnOYctevvOOwopyCFe6TfPlVDdbPOLQwcjcZdmuI/9TTTTLNe6zPXJOt9Zitvm/9dnSwSiPZ7 7X59Ldaun0NBav7ZcSeHHRtl7GwSd+fDGc6Jmffn6trqZ77LsO1jnxKdTGPSCtMKSvJLmGaav/Pk rkxadNyUx4dO9FzwMeTp1GdHtlsNzfucStNSO9FrgeeGybaDXHM/Jp/otYCqqWratbXDCM+XZ0Jk 87vlAuHbgPujrm1GCL2+dO/x3gDOjS10PeadVUcujvYZH7ZLQaRtxnq3Get9oNPkbwYATi3Hhfr6 j/ZhWhjWcX3mac+OxAU/qf7G3K+njwdjb+3AEfEBEzfd23Ciz955NYVQXiY6P2xlxzlDnCb0SYuO O+Y5u+3Yijvt+uydJywuXavl/e1QJ+b1pXvTXhwj06ncL2lYfMV1hFQiSXr8emyor1QsOdVvccT2 c/8t5ShIuZ6jZcvendSMdZMevT7uNceqp4uasW67iX3CN5yUze+KSsveBtwfG9yQlwjILV6E0Msz oWNDdhh1sMmLT9vTdqxlDxcVQ62CpMyzg5cP819r3MkuLvjJmQFLZ748IZtV/RGZQRtxef3zI9df X7o39lZV2sqKSuQ2mJpSKCkXnx6wRK+1xaSI/RQV5ax3CbIYI3f6f77zYuL9fWQG7e7a4+eHrxoX 6vtjnUKX/rPdWrmBn8ud8TBYKpWeHT0lfNtetyVzmOam3VYuuDh53uQ7AWEbfJW1NDtMHoMQKkhJ O8uZOuzEPuMO7eJuh58ZNXlmZDBVQ70gJe3k4LEeKxYM89srlUp56Zm1DHsys4lUpQWvH+Z++nKk 93Bd25bGLk5tRw32bd+tKDNbWVsTIfTyYqDjsP4IIccRgxxHDNps4zJg39bq6zO/Dgx6fPgE56If XUfrzvodFyfOGX/9nMKcbsx49W74iX1qxobchGS6rjZCqKyIf2LwOM9VC237eed+/nJi8DgqU920 c4es9x9vLPYZe+Wknr3NM79zWe/iGhbp339hQiYNOrT6WJ9ppl3acBPS4u48nnL3uOzCJOP1x/bj +rstmcDP4e77j6Nr28LYpbVYKGKaGfXft+JorylTw0+kRr97cepafed3y4qKTwya7bl6mm0/99zP yScGzaYy1Uw7t0EI6TlYtezRRY2ll/Qk9ni/6VZendRYelnv428s2j42cI+eveWz41ey3sXDgQ/+ LJzAmQihVRrTRl6cqmmlW+v+L889HRs028jZLC8+e0+HtZbd7VQM1AqS80723eXh02/YmUlSiYSX XgAFCwAAAIA/zi94R0XKi6TNDj6yf9cXBVT/qDC94EPou3ajnat+oxneLulZwu0NwcISoZWn9XdB vTjzlJfFazuiPUJIKpHGhb7rOKkLnohX1lRuPajN1zALEUKiUuHMiPkjT42NPHD/8/2PlSFstFm9 vuWqjDfp9gO+v4h6e+MVSZls0tFMQaQIIV56YXZc5rjLE6eFzc5P5j7YdVe2fWrY7LnPlix8ucJp tPP5/53K+5Jba2IQQtLqqypX8+hwhP1AR/LXZWce7gtXM9aw8rSuXL1ZceByE1Mp8236k6MP3RZ2 k/33fcjbNsOcaExlPAlffbJWbk5rzVFNxfhdpIXpBckvEnus7TP32RJdG71L0883W4OUSqRxN990 nPkfnoRX1qa3HlHxK0ncrXc0Lbrd4DYYLIZpqd16pNPzY48UhMPQVynhlkSfelrCLVYz0VAxUEUI 6bY2zHyTnvo8Sa+1IZFKKs7hZ75K03Oo90q/Kc8TC5O53tsH0HUZBApR39EQOq/qtKyNXFeO8Ods uTp974Cjc5XUlGvbn6XG0saTCFrWRnQdteLsBl7LOU/rhRAiUIgGbS2y3yfLNqoaa7+//iTp8TsC hWjY3kpxCEQq2cq7PZ5MxJOJ1n1cuPFVq7M6TeiBI+IRQiadbHK+Bl5fVj3bK6kpYzAY24GdC1Nz xcLymvaUiCXRp8O6LhpCpJJJNEobjsebK5EKQpaIJTGnw7y2/E+zpRGeTNRsaUT+uqZo3SNVAIPB uEzvjcVhNVsaWXm3f3f1kYLAU57HFSZne++YRNdVJyiR9B2rlj0nKJEe770W639/zM11MLn7L0h5 kbS59RrZv+uLL1cclYbq72+9SXqeQCATDNuwZBtjA6KMO5gaO5sihCxcragatPiIj02VjLg772ma ynb9WmOwGKa5VuvBbZ+frngnva6tvuyZWnVjDWUteu7nbAXhqBqqp8WmvLv1WiKW6DsYymamU6KT irJ4HSexsTisGkvD0sP6bdCrRpdb8maHdbJ/1xcHVvVy4zsihAhkgoGDYfbHbIRQbECMcQdTY2cT hJCFmyVVgxYf8VnPVj/rfWZ5WbmAJzBxMU2NScl8l6Frq/f7NxhNKxYGg1E11tFztMBgMMra6vzs /LjgxzQtNbshbhgshmlp1HqU1/Mj1xFCNgO7Zr6Oz4tPQwh9uPlIWUddv40lQijK76bTxN4qhlpY HNZ5av/kp2956bm/MFNOE/tUnD46O+S8T1KwZ1p0nLBY4DShDwaL0W9jacKuZUaBoc8syeNFnwwu 4fLUTPRUDLUqP3IY4YnBYLB4XOuRnu8CIxSHY9zJTs1YFyFk1MGGYaDJ/ZKOEGrZu1NpAT/p0WuE 0IcbkaosHR178yYsFt3WLWTPQ6ub6inraOR+TEYIxZ6/Y9zFwbiTHULIwqs9lakSfzeq3sd7DQ2m 5kHd+8LkLO8dM+m6GgQlkqwVIYSiTwZ3mj2EylTBEfFdl4xOff4++13Cj3UK/fxPJRGLo88FdJ0z hUhVItGobUYMenP9luwjx+EDtVtanB4+8c214H67N8pm7GIvXTN2cZJNslq4s6kaavH3H8m2Gzo5 tuMMJTPoFBWGVkuL2oc9k8dgcThNS3MrT9d3N0IRQnQd7RZunaPOXkII8TKykp5E2Q3srSCQqDOX nMYMV9HXxeJwzhNGJz+P4WVkKchpzLkAr7VLNS3N8SSSpqU5ma6MEIq7HU7T1LAb0AuDxTJbmLUe 2v/5yfMIoQ+3wky7dNBvbYfBYttxhpJo1AZE+q9cmFiZui6e4D9h5dW5mwbsW6GkWjH+xOKwdgM9 EUI0ppplt47vboRX7q9mpIsnErSsTOnazOKc/Hr3Qrcf0TTV7AZ0w2CxzBas1kN7PD9RcSo37uCg xtJDCBm1t2PoaXET0xBCH249NO3SVr91SwwW225MXxJNCY598HfTdTA0cjZDCKmbaiprM3I/ZiKE Yv2fGTqbtRvbmcygUFSpWtZ6UFAAAAAA+OP8gud3de30hx6peCYMTyZU/+jJ0Ugrz1bKmhVzM9lx mf6Tz04MmqasRf90L+5o3/1TQmcRqcSvlzHvw3eEjb08UfZzZ2lBibhcTNOiyz6lfQ0Ei8cSyIQu s1wxGIwaS93Kq1VCZHzlSsuLXq8sF5Z/Dv94huM3+tx4A0ejysQ8OhThPN7lh2unbyKVhd95+n8U FSWEUNsRTpEHK37SojAosj9aD2n7/NSTL4/i1U00FCemJiXc4tiA6Ckhs2T/zXyXEX3hxaTg7xes UxC43MTItuQnc09z/HpvGaBpoS3bws8uqqwCZaZy9fB/zGmtOZJbjD9GisVjHYe2Y5prIoSc/9cp Ym+4qFRUWcg/VWl+iVhUreVoVWSZl1ZQ/ZFuZR3Gp9sfFISjYa457tb0hzvD7q2/Zd3XvptPT4qq kp6DwdvAWIlIrGtvgCPgUqOSMt+kdV3Srb6JLEwtoOup/LjoKKjkOMr93rpzTEsDlot1rTvjiHgM FoMnERBCCINp2PueScpKRKWKWy4wOGzl2/h675767HBw4JTdWBzWbdVIK+/2CgIpyswP33g++10y Bospzi2s/mJdZW3VysDF5Q2ZIhWLxBHbL325FyuVSmVrA0glNea0OLtALCw/0Wel7PfKWsukOLug vEykbqLTmEgVINIolatDK2ur5sWnKwi8MCWXrqdRUaHfynqTmPr8o2F7S4oKPPL+b/x8Y6c/9NDo 78YYvTcPeHbyUeD8i1gsxm2hl1W3VgihgvSC+IiPm1uvke0jEoj4efymSgYvo5CuXe0Mos34FF7x qJOyJr3qxIrDissVHSCtB7elMCiPj0YELb/iPL6zbE63MK2grLhsi6PP14OunOVs2uhy0xt6eMR3 5UaikWRLkiCEMDiMRCRGCBWkFcRHfNrssK6q3HL5Ldwssz9mpb1K1bLU1ncwSI1JkYglenb6v3+D kc2ZYbGYig4Hg5GIJby0XLquRrUBgMan288QQmQ61dLbJfbc7f+WcWLP3XYYWbHMRmFK1r31JyO2 VTyyRqSSizLzqofQzJS11atOHyJFpw9+FpfKVKlcDIampao4ZA1zg3Ghvg93nL+37oR1vy7d1k6k qCp/HfdWTPZQ1Oj87FomJ15fvBtzOkRUWobBYvlZ+bK7FXEEfJsxPZ4fvW7UwSbmTKgjp/tPKhaE EBaLFcvac2p2/N0Xm00GVLTn0jJ+/WdWamowNQ7qUrLoeswfz1m89Fzlr+HgyUSKGr0gJVuzpfF3 dQr9/E9VnJMnFolODBkvWzTqu+FQ5xkT9rn17TpvGlW9Yp2hgrSM+PuRm21cvnaJZfzcPNl2dZZR fYY9VDypYlVzZS1m3peKOzPajRl+ZebiLrMmxV662sK9S2W88ptWWvq9bXsjdle87oeoRCnKzqHr aNWU03KhUN3Y8IfzVyZdW6vagaP16W4EQoifnausVbFUOwaLpWqoNyDSf+jCZLj3vc1HmRYslrN9 VS1TlbBfl7VQUmPkfUmtdmGCxZNJFachSb3f8M1Lz6brMKv1QsxPd59W9LdX7sScvykSlGGwGH42 V9bf8rPzlLXUq9WmKhz74O9T/VkIZS3Gt8Nv2RiAq27MhIICAAAAwB/tF0wX4Qg4GlPO03Vl/LKo s89Gn/9f5ZaPd+P07A2UtegIIfOuFlg8NvlFomzu8PP9j9cXXxl5eqzsra4IIYqKEg6Pq5ybLC0o kW1XNVATCURlRQIynYIQKi8rp6pTvykCIt7So6WWlU7Gm/TK+d3Epwn5KVzbvt/cI/9jpAghVUO1 oiye7O/ysnK5M3ASsYREJdYlMXI9O/HY2Nm0ckb2xeknvIxC3w6bEEJikVhUKtpos3rC9Wl1DLwy MQihwrQCvyGH3Rd7VX82msakFeUUyf6uLMaacqo4UrnFKDdSNUN1fnbR18BFGBym+ruHfyqKqhKO gONnFSlr0xFCpfkVWWboq1ZfooeXVsAwqOXSV8dOb+CxUSXc4qvTLwTNDxhwZIRea4MHW28Li8v+ W+pFoBDSY1KKc4tVq7UfuX5YhhzRdRhFGTyxSNxsxfLHub3qpK6DKfdLZuz58MoX0P5UP1ZTRZdC InSY1qvDtF6fQqPOj9w0JdJX3Uy3pu9cmbxT1VCTc8MHR8RH+YVGnbhdLXxMDfFi6pjCR7sD3994 yrm+hqJCy4tP32k/WUHqqZoqOCJ+bPB6pkWdpmSoTAaOgMtPylZSp9c10voQFpeKheWyqZfi3ELZ rENNgdN11YoyuHIPECV1+v/CNp/svTJk2XHP9WPhSPnryR1j4In4DuM7dxjf+dO9D+cnnZwSPFvd hMnQUbFwbTlo3wi5x1kjk8HQU+FlFFadQdILGHoqtYUt/wMrz1ZWnq1yPmef+58fVY3qONSJoaui pEJdEL2ikV1EreUmNyiGroqFm9WgfUO/L2QyIelpomFbI30Hw+enn2JxuNZD2vyhrYhhoMlLy6k2 AMhm6FfMVTiM6HZ9lq/z1P7x96J775n7dcCg6Tx9QLvxvZrizIJpikDquidNU7U4p0AqkcqmeEvz i0hUSm1DHbOBfstKuLyr07YFzds94OgS2faiTK62ray4cmhaiqagUp69uzpt28QH+5kWhgihLeaD Kj9qM9Z7lwMn73Nq8uPXA/2WNsNpm6HHtPB0HnRyeWPCUdBgZESlZdVfSEzX1SjKyBOLyr975yVD X5OXnoOQpewrpVyeioFmfesUNBKVqY4jEMZeOck0//6+GUm5+NqCVW1GDnp69LRN3x4apsYIIYau toV710GHdnw/dNfWTHv5pj7DnhKxSCR7h25xXj5Ns+K6z6RjewKFEn//Uezl691WzK+lKerqOE/g tOMMrVNONdRxBHx+SpqSmuq3B4UOLyOz2vkrg6GvIyuZ9NiqHJXmFzQg0n/owmTtQV07C25iWuyl ELsBFbf2lhUVi0oFBAoZIVSYnk3TbLK3ETH0tXjpcnqhlKi3V+dsnBh6hGnOQghtsevztZ2rpb+s unG5tIAHVQb+hqsAPE5289bXkUmhkipVwSibrqOSFp0E5QYAAACAP9pvdA941LlnzBZa1Z/2YJpr pkYncRPzpFLp5/sfeRmFTDNNhFDCo/jLMy/03z2EocsQ8EoFvFKEEAaLsXC3itgXLhKI+Dn86Asv ZIEoqSpZuFvd8gkSCURZHzLfB78x/88SIZQdl5nxJl1cLpaIJR/DPmR9yDByMq6M+tHBB22GOxGq PV4sN1KEUOshbcN97/BzikryS54ef9TC1RIhVMIt/hDyTlgsLBeWx1x4UZBaYNrJXEFiFCgXlj87 +bj9uKpHYN0Wec56uGBK6KwpobO8VvZUN2VOCZ2loq9aU+A1JYaXWXh80KH241ws3CxlOZI9D2fp af3izFNeZmF5WfmjIw8r45WbU8U5+rEYa4rUYXCbGP8XqS9TxCJxxJ57Zp1bYPHYtNjUyzPOS8SS 8B13Yi9H83OK/Kecrf6LeZPAYDEWXtYRvmGiUhE/uyj6dMUjFxZeLUu4JTFnnknKJVlvM6JPPXUc rehBzKy3Gbkfs6VSKZlOYeipyi4tlHUYwhJhfjJX00pbv43Rh5tvtay0a00SXYeR/jJVIpZIpVLZ bacG7VhUJi144RV+dpGoVJQWkyIsEQp4Av8xJ7kJue9vvA5Zdg0hdG2mf/y9j/9gR/bpdvQr/wf9 Ds4acHTOzQWHuV8yfmFiPoa8EBYLEELqZrpYHK7yuV6EEF1XLS3qI0KocmMpt0hZVx1HxBdlcKtP 7ipqHrrq6S/jqzePmpRwi6jqdJKykqhU+GhXYPWPaFqqGCwmNepTZWKwOKzjKPfQZX6FKTnlZaL8 xMz0GEXv4sLicbaD2MELj+R+SisvE+XFpxem5CiOtF6kEmn0qTsIoaLM/A83n7Xs3UFB4AbtLKlM RvCCw/zsAlGpMC36s7BEIPuIpKxEpJKHnlvy7urj6JO3Efgnfbz7XlhchhBSN9bA4nCy57Hs+zvG R3x8f+uNqFQk4JUmPIoXCUQVB4imMgaLSX2ZghCSlDfkAXQLV6uS/OKYiy8k5ZKsDxnRF547DnFS /BW5kSY++cLPKUII0bXpFIaS7Mxi0NqIyqTd3RZSWlgqLBFmvk0vSK164pCuzUh/nVa9iwhefS0u 7H1TFaZ9f4f4B5/e33orKhUJeIKER19k5abbSu/tzdeGbYxU9FWKc4t5GYVMc8202NTLM/0lYkm4 b1js5Rh+TpH/lHNNfh5vchZe7Uu4vJjTIZJycdbbhOiTtyqfJTXt6igRlYdvOGnCbl05i9lmnPej nRfTYz6KheX8LG7Cg5cNjpquq5H+8lNdevgmoedoSVAiPTlwRSKWZLz8FB/2QvH+WW8Tcj8mS6VS Mp3K0NOsvvz+430BAl5xSV7h00NXrft0UhBIKZeHJ5NoWqpSqTT6ZDA/k1s9+2auba7P9LXo3oGi otwMdW0/1D3+btT7aw9FJWWCQn7Cg5ei0rJa6ygvPlVQyK88gSpoMAihZ4evrtXqkfgwtto5y5rK VAmev5efnS8qLZOtko0QajPWO2LbuaLMvHKB8K7Pcd3WLZhWLOjAm/vaGIdzHD4gdM2WwrSMcqEw Pykl/dVb2UdhG30JFHLPzau7zJ7sP3FOuVCIELIf2Dv+fuT7m7dFpQJBIS8h8qlIIEAI2fb1Tnj4 JPrc5TJ+sYBXlBIVW9uwRxJ99jJCqCgr50PI3ZbeVYv9tBsz7OHeI4JCnmmXb5ZEomtrpcW8qj6q bDNq8KMDx9NfvRWLRPzs3ITIp7UM5Pr1DF6+Pjc+oVwozPuSVJiWgRCycO9akl8Qc+GKpFyc9f5j 9LnLjsMGIoSsPF3j7z9Kfh4jEYujzlwsLeQ1INJ/5cLk7tNXAaH9di8bsH/lzaU7uQkVz+lKpdKI XafFovLMN58+3HrY0pvdZKctd5eS/MKY8zcl5eKs9/HR5244Du+JECrlFrZaLIEAACAASURBVOLJ JBpTXSqVRp8N4mflyfa38uwUf/958vPXErEk6sz10oIiqDXwF1BlaUjEkg/Br6RS6ZcHcQm1vXjF tn/bhAdx0acflfEFAl5pyosEhFBadNLliX4SsSR8883YC0/52Tz/cUfh1bwAAAAA+G39Lsu9SsSS J8ciPRZ7fXOh4mblNKbD8cGHSgtKVA3UBu4dJnv85cHue8W5/OMDD1buuSzOh0gleq/vGzj34haH tSqGavYDWr+8WPECrT5bB15ffGVrm/VkOrnbsh769gYIodJCQdDyq/nJXAwGo2GiMXDPMC3Liok3 bmLep3tx3uv6VE9MTZE6jelQnFd8wGu3RCy26WUve1MdBot5cuxhwKwLCIPRsdYZdWYcVYOmIDEK vLocQ1FRMu1c9QYyMp0ie1gWyZ49xWMrlxGWG3hNiYnxj+Im5QWvvB68suIlYcP9OBZuVm1Htucm 5O3z2EmikTpO7vLmWsXvEXJzqiBHcouxpkh1Wul6r+8bMPMCP4dv5MTqvaU/QqgwLT/h8RexSJwS nSwsEera6CU8ii/hFldfNrlJeG8fEDjl3BbzFSosdfuhbV+efYYQIlJJowMnBc2/HLzwCk2L7ray h7mbosl4XnrBzYVX+FlFOCJOv41RL9+BXy8z1MVl5RgsRt2cWZDENXevCGSfyxZJuYSbkHt7VVDE 9rBW/RzYCz1kHzlPZV8cc3IjaxmZQRl2dqy2rR6OiBt5ecKtJVf3OG0SlQiZFtqjrkwUlYoSIz7z s4tyP2YnPfoilUoTIj7r2Oqbdm3xT/Vi/Kz8gIm+fffPoDIZVCajw/Q+/pwt/7uzGUfE7+swS1Iu 5iZk3l51MmL75Vb9O7IXDq5v+Fen7Ul5FidbQDL1eZwqS2u4/zIF+0f53b78vx1SiVRJTdl9zSim ZdUx3m3tmGsz90Vsv0zTVJn+Yi9CyH3N6Gsz9j3ee03NRKfjzL6RdZgQdZ7a6yJn60ajEWQGddi5 Jdq2xgghuTl1ntzTn7NlE2skRZXmvnrU+xtPq3UjSp4bxp0dtBYhZO7h2Hf/DISQ54ax9zacP+q5 hJ+Vz9Bndpk/UNdB0aKvPbZNCFtz+kTvlfysfIaeRu+90xkGzJoijdwVGHM6TMArLskr2tNuOkJo 8sMdOCLen7Ml+11yUQYXg8V8uh2tbcMacHQuQsjIuSU3IfNA5zmCguJOs/sbd2qFEKopcBwRPzJg xa3Fx/e0my4qETAtDUZdWVW5ejZCiMpkDPdfdrz7UjVT3bqs4A3+MlHnnl2edV4qkSqpKrkv7s40 10IIqeirjjgxLnR9UMCc81gcVs/ecPD+ipdHkJXJnit6nh17HCFk/p9l362D6hsjkUoafWZC0Ior wauu0jSV3RZ6mbNrefmi3EiToxIvTj8jLBYSKATr7jaOw5wQQlg8duSJcbd8ru9ibxKVipjmWj3X 91PRr3gAy3l8p4tTz2y0W0Wmk4cd5mhb6yY+/ULXYVi4WjVJYaroq444yQldFxww+yIWh9WzNxh8 YBhCSM9eP+7Oe20rHYSQGku9hFssW0r663k8RVgs1LXVS3j8pYRb0uTn8aZFpFJGX9scNHd38IK9 NC01t1XjzN3byj7CYDH2wzwe7rgw4HjV06Wt+rHLS4UBEzdzv6RRVJRb9Wcbd7ZXEP4+5wmScjE3 If32yiMR28616s9mL6poe87TBlwc7bPRsC9ZhTbs3GptW7OaAnlx7MaT/VfK+CX8LO6etuMQQmND diip0et3GUAiDD27+tpM33vrThg4tWw9qmJWMiP28+XxG2QL4Pt5z8ficd3WTzJ3b8tLy7m5YC8/ i4sjEvTbWvXaOasyqBaeTofY04pz8q16duw4ewhCSFRadrDzFIRQYVr2jTk7b6847Mjp7jy1v5lb W3P3tr6tRuIpRIcR3az7dqmepHYTe/v1mMe5saXWxPuP9sl+l1iUkYfBYj7dfq5tYzrg2BLFxSun PRtpjwhYH7rsUMCETVg8Tq+N5eDTKxTHa+7RzoTdeof1CAKVzF44os1YbwUNBiFEoJAJFBKOWHWz I46IHxmw4daS/XvajhOVCJiWRqMCNxKp5PZT+olKBIe6ThOVlLE62g05swoDz+3+Cp6rF93buvdo 7+H87FyGvk6XWZN1ba3jHzyKOnNxyt1ADAbT/n+jPt19ELp6c/d1y1QM9EacPRy6ZkvAjEVYHE6v te3gwzsRQuqmrOGnD4Rt9L25bB0WhzP/r7OB4zYFkRo5OXKTkg949BfwijpNGy97oa+Mw6A+d9Zv d54wGov7ZpGSbisXXFuwMmL3YRpTY3pEEEKoVS+vckFZwIxF3IRkigq9Ve/uxi6Kbi3qsX552Ebf E4PG8rNzGXo6vbevZejpEKlKoy8cC1riE7x8PY2p4bZkjvl/nRBCWi0teqxfdnHSHLFQaN3TszLk +kb691+YZHMDpq/t67uYqqFK1VDtMHmw/8SV/ws6gBCi62riSIQd7QZJJZKu88YYd2jI67T9J6zM /vClKCsXg8F+uvtU29pswP6VRCpltP+OoMU7gpfvommquS2ZaP6fE0LIrKuT+X/tfZ0G4ckkh8Hd rXt1lQWi1dK0x4bZFyeuEgtF1r26Gru0hgMf/AUoKkq9fYcFzb9wafwxlkuLDlP+U3ybprqZ5vAL U8LWXr+56CIWhzV3szY4alyYyk14+FEsEqc8TxAWl+naGyZEfCzJ49N1VaCEAQAAAPAbwri7uzf4 yxMmTOjTp4+CHcLCwjYb7mXTO0JBg9+KX9lFDnP4P5TfghCO0jfzE355SRyVJj4w/STXOTQ5j+yE C9+yhYMbG3gGj6NW9RozP8JhDt0WWjIAv6xX4SdxlOr0a+Byuksdw/QprVgQMrwsl02Q/75kv7QY Fo4SZlrx3lPXN33ZDBeojnpXX84pjuaftJbmcv1FCCGfvGM15qg8nsPoUae8lz7nEG2gDTStVQz3 KU8OazbFw6afw15cm7Fj9pvTMLVZR+HCL2Gq43/c7srdxSaay9v/E8K5swmKbgVYrqRXrzS4psxg K1XNVC1XH6Ooqy982ASdmLCIQ7NFCPkVXeBQrBFC4ekv2cqW9Si3og9hFgsr0h8fyaZp/LZVLCjk bXXoMvXeNVUjA2jwVTXIz2Wr12lV4XDBpzDtGT8vJT5Fvn55Cd9dav0o6emrc5zFi94HQd39S785 hHJUGzLk8EvHcRgtf2zziCllEzQQQn7Zkzm0boq6cfVFVV10zkg26affdRFe9jSMearG00TOGzaJ Ie9bhYh0nU2Qcw9iuOh9GH1x1YFWsP83rWV0k0Pu/dNjERgjCZ1Dqva2YEzFa8XCy4+zCUyEkF+O HYfWqt4hJ17gaFjXfMUXwNGqU+MJL4kOM9iDEPLJiqshC/c4aoZ1GvYrd4feAwAAwJ8rMjLS2dlZ WhsMBhMZGenq6qogqMDAwIGrar/3HQ+FDkDd3VkT9OpC1I/b3Vb2sB3kCOXzB19+ey/nJmT+uJ1z w0fNWPufLZa44OdB8w79uN3Cq22PrROg2YB/RHFe8UHvnT9up6pTJ96YCeUD5LSZ3ALZo6vftxkN lYkP9tVj1LH66KsLYfJGHeNsB7vWtSe/+Tho3m55Pblzj23TmyzP0iZYTVpYXHpv3QmXGQMrJ3f9 eszjJqTLOTsHbVUz1v1ZQ4JfESn4B04l3IPdBsg7lahNDLlU44Elkdzdstvsv04Nm9xtWKTgZ6lz N+nXfyY3MU1OL3R5pxpLDwoSAAAAAAAAIAPzuwDUg9uKHm4rekA5/H04N3ygEH5k4dXWwqstlAP4 x1HVqXMeL4FyAPVoMxoqc96dbYJRx8pxbivHNbYn7+5s0d359y+0I24zs98nWvft3O5/Vc/BcIK2 /oIhwa+IFPwDpxK1OS/u1usroT5bX5y6oNPKauDBHc0WKfgtLkwu74RCAAAAAAAAANQK5ncBAAAA AAAADbSq8HbjAxl/B+YzAPiGx/J5HsvnQTn8HYycbBd9gMWZAQAAAAAAAE0JC0UAAAAAAAAAAAAA AAAAAAAAAAB/BJjfBQAAAAAAAAAAAAAAAAAAAACAP8NPX5+ZTe8IpQx+NyyS0b+VX5zB91uI1KaP BaMrvxMgWiNhowP/NsEsiQk0YwB+Za+CV/o18VJU2USVqu6F4QJ10aCToOHfliOCTl33xDKgAYC/ CZtoUsN28xq3Y+lNnAYlh2Y/BzG+/lExxGUrW9YvzdX2Z9M0oCH9eS2fpoEQr057ks2b/1ILAIQQ i9jAIQeLIpXf5gnSrwM5x3ocLCSn5jgkFcbCJjFq3E6wkv9RDdt/u1pGOs0RC64YIWZtw/uChoRM VdR9scjqdR4JtK7tcFCCPgEAAAD4GTDu7u4N/vKECRP69OmjYIewsLBu3bpBKQMAAAAAAAAAAAAA AAAAAAAA/j6RkZHOzs7S2mAwmMjISFdXVwVBBQYGDly1pdYYf/rzu678HVCv4HeTKOSyarv/8a/K bxGPJfkmv4nkSyyCWhPHIuJUPkXxzfZcHqJEs9SKGhV4TgSrDANNF4DfpVcpcavLQghshv5yw3Z1 DNOn6GZ42UeEUGJOOEtYrmDPMLsbMMb4tyS4IIQSSfdZjHz5DRJRWESLOjVdsRILpw8lCv4mYar2 ci7BClfX+IXcz4r6bZrTcq1p9bvcex9b9XW6ynI9I9c3fWvcG2uFMI0dhCeWsVgk22qR0sL5QfUu N4uxX8tqA7SiPxGbbxvO+1inuraa/fOS4ZN3LLwkGqoDNMfwW1QiW7AkUcmdRdCq8dAg0JdT9Kq6 6PyXv/BkVJGG9G01fo37rMYAW12oOtCSQsILPv+OlYJ7wiKr/fRYGK9YxO8eFNZFSBkhlMgrZ4mN EEKJAm0WQbXeIRckKHiyNlHwkUWu60v9EjXvscgabOmwcMGnhnfsZPPlKl5wsAMAAAB1h2+GONj4 FlDQ4LfiJ3xS07J1f2d+URSbavrNFjFik5ybOBaR/JWX/BAPNXqFJT8UwaZ3gqYLwO/Sq5QgNqPp J8nYpBYIIT8Uzlap8XgPL4iAMcY/Jbz8I0KIzVDzEyA22UZ+gxR8ZhPrtDymX2le9SW+AfjjDxBh jesxsgnWcvYXvUUIsWlNvFwnm/79YVXT+vnhRVw2vbH9tl+OkE2nfR+jsnE9yq0o4duysoK29Ie1 fNF7hFBd2lId54Ab1f5rW5gUgKYZfhc+ZCvZIIT8EGIT6rHSfjOMfBScjCrSQJFzH154aRxCiM2Q 87tEeOHj70NQMfsdK6XoCZv2019S4IdesQntv+0Dk2VneT8Uy6aaIIT8BCUNeN2AX0GCgms6P8FH NsOyzom8V1FTZHM4WgEAAIBmg4UiAAAAAAAAAAAAAAAAAAAAAACAPwLM7wIAAAAAAAAAAAAAAAAA AAAAwJ8B5ncBAAAAAAAAAAAAAAAAAAAAAODP8HvN7z7YcnEza+QGnSGBk3Y2Q3SRO69stxy3ktoz 7uaz6tv9R2zaYjxqBcVbyBdAEwEPtvlvNhu+wWBQ4BTf5miWuwK2W49ZyegRd+vbZjl6wxbzESuU uwuLS6FSGkBQJNjksI6XyfvrI4W6+3n8p5zb4rh+hcFiYbGwcqOwWLjH1Xe99eoD3fdU33kVa2l2 XFYjYyxIzV9hsFhSLoFmAGMM8Jc55jnk3dVgKIffWfzdh/s79oRyAN+cSrZe3mwyZoPeyMDJe5rl uuDq9pYTVyr3iwt+8c2pZNTWLaZjV1D7wqnkd5P4KG6n0xIf/ckhK/wbHEjMucgjPTb83NE1r3ST 5WxeRj5UGfgLO+p9Fza3HbrBbkDggh1QGgAAAAD4u+GbOb7He64Gzz9c+V+apsqCpNOyv3npeXdX n5oWvU/dXE9UXNYMiXGZ2ddlZl9f6/99t33Q6YW8tNytZhxoH/+Ix3sDgxcd+qZZxp+tapY+J6c9 P6BupicqaY4fUFxm9HOZ0c/Xdtz3zfLEYl5a7lbLUVBfNYk69zzyUMTU0Jk4Ag4hdHvDrdwvuUMP j5B9SqKRvNf2VtZUrjWcA933pL9Ow+KxNKaypZuVxzIvohKxYUmqe6QIIUGR4PyE05xz4xtcAmX8 ssO995eXlXOT8jRbaNG16aPOjJWUS1YZL7XpZTdw7xCEUGxAzOWZ/gP3DrHpZRex737s5ZjC9AI8 CU9Vp7kt9LD0aNmwqG+tCbJwtzJ2NmlMDcbdfp/+Oq3rHLfGFCNCaH/33ZNvTq/jzjEXox4fjcz9 lENQIurZ6g3cO4SiolTTzoP2DeVlFG5tt7H6RiKVOC1sVmxAzOMjkXAY/uLOHMYY4M/BXjxDy9ry +27wZlj6y9ddl8yqa3fXsefkh9d/52zWN0c/T8KDx9dnLS9ITtVzsOl3aJuqsWGtX9F1aOW+ekGz dmL7jkds2y/kF1v16tZ79wY8mQRHyq84lVwPXnjsm1NJwvGqU8mas9Oidqmb6TbTqWRGb5cZvX1t Jn9/Kjk5j5eWt7XFeKiv3w2rg8XMp+sDZ/n95ukkKZO9Nw9X1lKBKgN/ZEd97ErwmoNVHbWG6oIX 5yo66sy8u9tOTLt9SN24mX7AAQAAAAD4hfDNH6WRi/XoGz4V/8FgKrcXJGWR6FSNFvoIISKNDHUD mrVZdmg1+upaOc0yOYtEp2qY6yOEiFQKFNTvrPWQNi8vRUcejOg8jZ3zKTvq3PMpoTMrP8VgMNY9 WtUxqN6b+zkMdMxLyPWfeu7e9jvdlnVvWJLqFWnik4RGPqZJopGmhc3KfJuxz3PXtLCqH9NpTOW0 V6myv1OjU+g6DNnfnaZ06TSly9lxp3SsdX6cVa07qVSa8OSLhbtVI2sw4fEXEo3UyGIsLSzNepdZ x53v7773cN/97qt7mrFbSETilOhkBZO7DWoBcFzCGAMA+Uy6dJDTDT54TKLT6trdFRRmvX7/m2ez Xjn6ecqK+OeHTe6+dVXLXt3ubdjpz5k+8f7VWr9FUVUxc+3UbIlMjHwWvmEX58ZpFUO988Mm3127 3WPtYjhSftGppOXoa6t+PJUXJOWQ6Eoa5npwKgF/OgwGY92rDZQD+IM76v+zd95RTSVdAL/pCYGE AKH3KkVQikpRQaSJUuxgw94RXXXtfa2rYq+fYkEFC4gVFUUBURAQARGlSu8tQCDt+yMRUSEqltXd +R2PJ8yb3Dvlvpk7uW/m9TGZdGZzJz5/URlJiiqnjX7AQSAQCAQC8Z/gH4jvYrAYPPmDzXAVGQXX /A/UFVay61nCnS5OGycZD7eL+ftiYUKWb+gqYbZA4+luO6YbDOlz2mONpp1J7oPU5poGPo/vvnOm 1kBTYZ6UM/ce7w2vySkhSJBtA7z7Lx4FALG7LyediGRV1JFpEv3medou8EYdj/i8Wb4suBawv66o gl3PEu6mdVrvZ+zdP2ZXaGHCK98La0RmaTrVbftMA9c+p71Xa9qa5EY/b65p5PN47jtmaw14Z5bB dx/vC6vJLSFIkG39h/dfNBoAYvdcSjp5m1VRR6ZT+832tPUfjnrh23+n8NjqfczrkKmXWcSyMIdF g2mKNOGl8CWXsx++aSitX5ywTBjdrMquDF96WVZTLvvRG6dlLolnnrIb2ZNDp0vKiX6GxuKxTD35 HoMNi18Uv1sr1l5fFVGUUkiSJNnNGmA1oa8wvSSt+MaqCHYjuzqvis/lKxopzYn071QpAAj4gnvb IlOvpLQ1tVEYEg4LHXuNNGc3sC/Nv1DyopjdyA60+xsArCb0tZ3ZX4zSW+uu05Tp1blVWXczMTis 5zZvPQeDrlsGCBRCU3UTVZZalFKoaKQkphkLk99GLAszdDHOefSmqbpJo4+m5/bhWDxWVNPVEVU5 VQCgaKQ4PsiPQCEknUtMOPuk/GXZpfkhBDIBAOY/WIgj4Gryq6+viihJKxbw+Eomyp47RjDUGACw QXf10L88k84lshvYkvKSw3ePpivTC5Pe3tl8qzSjBIfHpV55DgDeu0Zq9NHsqhl5XN7VpVdyHr7h tHBoynTXNe66A/QA4MaqiOxHb/g8vrAZlUyUxhweBwCcFk7kppuv7rwU8AXG7j2dV7rhSfim6qaH gfe9d4/s6WEmFEtXkRYjvBtkRr48Oymoramth7OR+yYPYfvEHn6UdC6RVdlIppH7TbW1nSEKHtSX 1Eduupn/JI/d0CKjITs5ZBpV7oOgSEFCfsisc6MP+mj200L3O/IxEN9O4vHg4uQXtXlvWRVVtv7T Hu8/IaOt7htyDADK0jJvLl5X/vI1lSlr/+c80zFeAHDUwbuX7/A+0ycIv3513jIsHj8scBMAPD1y Ov7ACXZ9g1qf3kN3b6Krihtmn504H7P7cH1hsffhv83GeonG3qfJd1ZvLU3NwBEIqefDAcD7yA4N G6uuhNxYtDY76hGfxwvsaQ8ASmZGY84eBIDm6tqbS9bnRsfhiASzsd4OKxfiCOK8fU4LO3rr3vQr NxpLyqjycl4HtukMsgOAjLCbDzbvaSwtZxroDvl7rXLvngBw2muSpm2f3OjHzTW1fB7P/e91WgOs AaC5pjZi3oqCxwm8No60hqr34R1KZsZd1agg/tnNxev0nO3zHsU3V9daTvGx9Rdtcz9oPcRp/dK4 vccrXmYRqdTp9y9TmbJ8Ljd6277nwZc5LWyt/v3cd66nMmUBYD1Db+juTc+DL7EqqzVsrNx3ridQ uoy3vbn7kKaqJGztQSsXbj54sjo7T1ZX3Fi6v49LY2kFRZoekBbdnthpTQHg1tINNFWl6uy8rJtR GBzWc98WPWd7Hod7dd6ynKgYTnMLTVXJdcsq8dHi9IvXzMZ6CQXaL/e/NCUAxXf/0amE8OG64O21 BYfrCqvY9U3C3bRO6ycYD7eJ2XmlMCHLN0TUU4E9Z7ttn2rgZnnac4OmnVHugxfNNY18Ht995zSt AT1FU8nZ+4/3RtTklhIkyLYLPPv/MRwAYgPDk07eYZXXk+kS/eYOtfX3RL3wL6MsvfDm8nPlr4qp cjT7P4aajuwnTM+4+uzBjquNZXVMfeUhW3yVzTQ++uLjQ3eenX40OWyxlKL0BuWZM+6sVDRRB4DU i/Hxh+/OilpT8OTNzeXn9Ab3zIt91VzDspw00HaOi/jChAcEZd9PbyipXfzib5oyAwCq3pSGBwTJ aitkP8hwWj0i8eQDdiN7cvgSSSbt9b0XD7Zerc6rwOFxek49PXdNwhHxAFCSWnDjz7PsRnZ1Thmf y1c0VpvzcB0A1L2tuv5ncFFyLkmSYjff1crPHvU+4get/fGkD33+rPxrq/bVFVeyG1iBAycDgNPS Kcbu/WMOhRQmv/I9tlY0UA+c7LZmloFj39MTV2r27Zkb97y5toHP57uvm61lbYYaFoFAIBAIxO8F /lcohLyxxtSo7QWPX54ftTEg49iXfCXh6M2ZsbukFGVSzty7Omef8Fvpl2LurDg54uRiDRuj5uoG AV+0E07FQt/I00ZGW6kgLuOky3LDYf1ktJVQ3yM+Y5ZGGlPv7CiIzzg/dmPAi/99kVkevzEzOlBK USYl+O7VeXuE30q//OjOqhMjji/RsDZurm4QCN6Zpbm+kYetjJZSweP0k0OWGQ6zltFCZvmtMPXk +06y/t/Io1LyUn0m9mtP99oxoq2pbVOPtR0zFya99Tk6XkZT5u7WyIWPl4Qvvvwq8qXluD7CqwK+ oCa/OvPOy96jLQCAz+OfnXTKbERv3/9NqCusPe59mKEhIwz7XQm4OGCeval3r6y7mTfWRAiDu10p zY3LSYtInXd/IVmKXJNfjcXjAIBMI48/5Zd45mlaROqUizPaM4tRCgAP99wfETjaY6s3t5Urvlm4 rVx1C42ilEKd/rotDS3yBgri85dnlpkM7Tn96mwOm3PIbV9aRKrZ8N4AcHPtNZNhptZTbTlsTmla CYFCAAALXysLX6vtvf8auW9Mx/OZJZlSVhP66tnrA0DI7HP3d94dETgaAEAAGTfSp1yagSPgriy6 +GD3Pa8dI9Qs1Kdenhk65zxTl/nRTuJOmxGHxxk6G7mudqdIU2IPPry65PIfT5cBgPsmj6rsyr0O uwJiF3fMf3vDDVYVyz/6D4FAcG7q6ejAqMF/uhQ8zcNgMSbDTD+qflfCu0FR8tt5UQt5HN7pcSdi Djwc9MdgAFAxUzVyM5bRkC1IyD85+pihi5GMhiyfyz/rF6Riqjrr5jwKnVKeVfZBcBcD+U/zLs27 4HNsvJqFOrrTkY+B+F4UJ7+YE3/z1LAJryOj5ybc3mVoW52dJ6nAPOUxwXXLKtPRHlWvc055TKTK M3UcbHuPH/U8+JIwvstlt2ZcuTkx4gwApF26Fn/ghN/1YJqK4r11Oy5Omj8t6pIYpZZTfCyn+Bzu 79ExUa2v+dQ7oaGT5jMNdL7kNGP3XeurXufsNR/cMfoIAJemBshoqi/KjOO0tISMmxO9ZY/jmj/E yLm9fFPp8/RxIcdktDVqcgtoqkoAUPg0+VrAqkkRZxRNjbJu3DvlMdE/JYoqJwMACcfPznx4VUpR PuXspatzlwu1x+8/gcFilmQ/BQymJDlNTk9bfI1KUzP6zZo0eO1iVkXVQeshyr1MhHFiALi9YrPP uUNy+jotdfUUaToAxO05ln3v0cyHV8l02v1Nuy6Mmz31Tqhwmi6IT5xyJ1TA450ZPjlm16FBKxd2 Vc2qrBxhqQAATyZJq6tWvHwtPr47LyEy69b9W0s3dEzstKaiSXnb/hHHdnns3cxli47txRHwhu5O rltWUhjSsbsOX5375x+vHovRWPk6x9jbTeTPGOg2llW0NwLiF1gXqE+9u7ngceb5MVsC0g590VRy 7PbMRzukFBkpZ+9fnXtQ+K30S7F3Vp4acWKhhrVhc3WDgC94N5XoGnn0k9FWLIh7edJtteHQvjLa iqjZ/zW0NracGrnLdeNo0xH9qt6Unhq5i8qk6Qw0KkzMubb0zKRLqZeZtAAAIABJREFUfyiaqGXd fn5q5E7/J39RZaUAAIPBAsDjg3dSLsRNvbaUKkcTI7807W2/6Y6DVw5nVTYcHLhO2VRDy66HmPxe gX5tTa2bNOZ8sDJKzPE5NVdGU/7uxssLk7eF+598dSvFcuJAhjpzyNZxKr01m6oaj7n+lXrxifk4 OwC4Mvf4gAB305H9siJTbywLFgZ3+Tz+Wd89ZqNtfM/Or3tbdXzIFoYGU9fBGNkA4mcM1AaaUy/u LEjMOD9jfcDDk180UJ+9PvPqXil5mZRLd68uC/zCbyEQCAQCgUD8OmB/vsrCJ6+2a4wX/rs2/0D3 hJiOHiilKAMAWgNNa3JLua0cAHh24rbNAi/dwb0JEiS6GlNaQxTD0BrQU/hjq4atMV2NWZNbhjoe 8bFZPs3cruMr/Hdtwf5umuVIe5FZ9jeryXtnlkG3beZ76zqai8xS/Z1Z9jcVBnQ1bEzoqvI1uaWo F74LRm4m9cV1eg4GGOxnzsaVlJOkykky1GUUeijiiXiaIo1VxRJeurYifIPO6r32u/r6WQu3VxYm v20sb7CbPQCLw8poyvZwMcq4ngYAfC6/8k2FupUmAKhZqNcV1XFaOGKU0pXpzbXNyReeNdc2y2jK SquKe+tVV0qFqFtqCI9ExpPweJK4h3UEfIGahXpRSmFJWrGKmaoABJ9tRutpdgBAIBPUeqtXvK4Q JjLUZTJvZxQk5hPIBHUrDfESiFSioYuRsGzGQ0xq8qvbL/X1sxa+I1nbWqfynfCvxdDVWIIhgcFg TL161ZfU8zi8rnLyefzkkGcOAY5EKpEkSbL07ZN+PQ0AmqqbpBRoGAzmW4SLp6+fNVGCSKFT+k6y fnkzXXTvW2vLaMgCgEYfTboyvaagBgAKU97WF9UN3exJU6QRKATVXmrtQvBEfFFy4eUFob4nJqLg LvIxEN8XeUN9DAbD0FJTsTDFYDBSivKsiqqsW1GSCkyzsV4YLJbZQ8984qjE48EA0HPUsLK0zOqc fAB4dfOelJKCqqUZACQFhfSdOVFaXQWLw1nPnfL2aVJDyT9jBo2l5dn3HjmuW4wnESnS9AFL5wpL 3vXwyEs5c9Ft+1p5I308mSRvpE+mSQFA8tmLpqM9lcyMMRhMj6FO8oZ66Zevi+6OUR5SivIAoDXA uiavgNvaBgAMTbXi5BcvIyL5XJ6qVS+CxGeOQ8TicGY+3gAgKS/Xw33wy/Db7Zd6jx8pp68DAO1x zeTTof0XzqIyZXFEgsOKgKLElIqXr9szYzAYLB5vPmFURyGf0tbc3HF3L0GC0tbU3I0WFlNT9X4W BkMcAQBPJrW/N9fQw0VChoHBYExHe9YXlfLaxHkInOZmApncXkIAaGM1o5v0H5tKtCYL/13zP9zN qWRUfylFhnCaqMktE00lJ+/a+HvqOvZ6N5XIv1sXmAgDuhq2RnQ1Zk0emkr+VWTdeSGpQDMbZY3B YpgGyubj7BKDogEg+Vys6Yh+Sj3VMRhMD7fe8gYq6WGJ7wYBYvzhu6mXnkwOXyI+uAsAWBzWbLQN AEgyaT1ce728ltSNQkoyaVQ5GkOTqWCkiifiaUoMVkUDADD1ldQstbE4rJQCXau/YU1euWgFlFWq 3lcPANQsdeoKqzktbQBQmJjTWFZnN98Vi8PKaMn3cOudEfEMGQDihwzUSZnbLX2E/66t2NvNgdrD XkpeBgC0rM1qCkq5YqdpBAKBQCAQiF+Qf2D/rrK5rk/ISpH6Dw9RFE/7XhkAkFRitC9mAIDP4QGJ UF9YKaOj/OkX00Ifppy5x2lpw2AxrPLajnIQCJFZ9tbzOSc6pRNP+SqzfB8qk1T80Cy5XCAR6gsr ZLQ7M8uL0SnB78yyoqajHMS3cHvjDbvZA+KPx5qPsaQri9v1giPiQHgEHwkPABgMRsATDQ7DNnv1 GmW+f1Bge+b64rrWptYd5qJ3/PA4PE1rbQDA4rFyOszc2GzzsZa5cTlMXXnhrtaukNNhTr00M/bQ owe77hkP7emy0k3MC1+7UiqEriz95c2iZqGeeuU5RZqibqnR/i7eriBJkogSorsAg8Pw30U3PbcP Tzj1JHzxZSwWO3iZi6GLkRghjRWN0YFRFa/KMVhMU3UTSer9i3Wl5KXahXcvdMrj8mIOPMyNyRYI BHwe/6M78SOaqlg8Du/U+BPCQC7/XU6KNIVV1fiNwsVDlRXtwZVUkGp/eiDtampKaBKHzcFgMaxK llB4fXEdTYmOJ3Y+KV9eEAIAdCW0iwv5GIjvDI5IAAAsFisKyGEwfB6vobiMpvx+55yUkuKbuw8B gEyT6jHUOfX8lUGrFqWev9J7wijRWF1Y/GDznpidoi19RKpEY1llRwk/jfriMgKF3B4ZpSkrNtfU cppbugq4NlVUcVvbZHU0P0pvKC7T6v/+DAyasmJ9YfE7V0f+3d2Be+fqEM0njqZI0+MPnLixaI31 vKl2C2cKr3YFkSqBxYuGOwkZRnV23vup7ZOjrRtKyqTeNSaeTKLIMOoKi+WN9AGAQhfFPCgyDFZF pViNVE5LYfufnOYWIrU7b1sXU9NPS87jcGN2Hsp9ECsQCPg83kfjTOeFZLPbSwgAREkJdJP+Y1PJ +WXfeV0gnEqKKjvdmJsWGpNy9j6H3T6VoHXBv4qGkhraO9cCAKSUGG+i0gGgobRWy/b9C1ZoStL1 RaIHIsszCouSctWtdCnS1M8aG5FKEr5LBQAkZKjVud15elJ46jIGi8GTCACAwYiGrKKk3LiDkazy egwGU51b3muMjWgFpKeY+/Cl+fj+uY9eMvWVCBQiANQX17Sy2DuMFrUPg5q2PZABIH7IQG2q53Nk Tbd8/g4DtbyMaKDGCgdqLhAJqG0RCAQCgUD8RvwD8V0cES+pwPiSnFgCns8RnTvK5/FZFXXtlzrd cUVTlq0rKP8osTDh1dU5+2bG7mb2UAOAHdoTUa8jvsks8Xg+l/feLCtrP2eWcp2YZeKrq/P2zny0 h2mgBgA79CegLvgupF5O4bZynZa7clu5N9de8zk2vvsmgcc5LXeNWBZmMsyUQqfQlaUlpCWWpqz8 NKf37pEnRx9LPPOUKkcdc8T3s5KVTJRHHRjbXNt8demVG2uujdw75p0BfZxTjNKvRVZLrq6otjCp YMA8h8/Gdzu1ZADAE/E20+1sptu9eZB1YWbwnNv+stpy7d/5KHPYoksMNYZfyDQcAZd0LjHpQuJn 5XeV/imPj8RkRmb4nZ9GoVOq86r2DNjZQcrHmalykjgCbkrodKaefMd0NQsNTgsn++Fr3YH6Xyr8 K2mpaxF+aK5ukmRKAkBh8turS6/MvD5XWJgdlltEA4UivbG8gcfl4fAfB0W4bdzpEXNiDz48P/2s X8i0rmLACORjIL4XdDXlhuL3h2o0FJfSVVWEn3uPH3ktYJX13Ck5D+I8928V5VdVtp4/tc+08d+u +suHwU4HXmk1ZU4Lu7mmVkKGAQD1RaUSMoyOwV1OC7vjNlYqUxZHwNcWFEnIMj6S07EF6otK1a0t xZfQ0MPF0MOlMiv7/NiZVDlZC78xYvK3NrLao871xaWSCkxx3aGq3FBSCmAmLH9LTa20mqg7Gssq FE2NhH30kZCPaipvqJsRflM0qLJb694WyRnoiMkvhq5q2slUtfdY5vU7ftfPUqTp1Tn5e8wcPsrw kVJmD92q17nCz5Wvc6hMWXQ48z86lXzRU3RYAq79MbgvmkqUZOveVnwylby+Ou/gzJgdTANVANih OxV1wb9tWlGVbSip7TCt1NBVZQBAWkWmY3p9SY1wRywASMhKTb+14vSoXZHrQl03jGm3t/YnIxvL 6joMqmxOS5sowlpSKylP+14l57VxT43YOXT7eLPR1gBwaebR9yug/VNPem5PDIqmytHGnBAd9UxX YUgwJJdm7kadjvjhAzUBL8n88h9wOvj8VbXd9LsQCAQCgUAgfj2wv3LhmAZqhU+zavPLeRxu7K7L 3JY28fl7TxgcFxiWH5POZbc1ltWUp+UDQEt1I55MlFRkCASC5FN3WWW1qNcR32qWCa9qC8p4HG5s 4KXPm+W4wXH7ruTHponMMj0PAFpqGvAUoqQCQyAQJJ+5wyqrQQ377bAb2Hc233Lf5IHBYBwWDS54 mvc66tW3CDRyM5bTkbv/910AUDNXpzIl7/99t6W+pa25rSyjtK5INJikR7ywnmY39cpMn/9NkNf/ 3KttX5VVZVcKBAKyFJmuTO+4e5WmSK/Oq2Y3sAGAz+WLV9oN5HSZ+U/yFAy7v6XsddSrtqY2AJDV ksPisHwev0PhacXPi9pLDgAttc1SijQcAddY3tAxuCsGmiKtJL2Ez+MLBALxO1eaa5upDCpJksRh cx4fje14SVJeCoPFFD0vbC8MFoe1GGt1Z/Ot+uI6bhu39m1NSVoxANCV6RY+VmGLLr28ldFc29xc 0/Q2sUC88K8lOeSZgC/gcXnJIc+Mh5gImwVPJkjKSwkEguSQZ6wK0QZiNQt1qpzkrTXXWVUsDptT /KKorfn92CIhLeGyaghFmnJ16RV0pyMfA/GjMXBzbK6pSzl7ic/llmdkJZ8ObY/h6TjY8jmc6C17 te1t2wOKllN9H+85XpKSxmvjsMor8x7Fd1s1TVmx5Hk6n8cTCASf3QsuqcDEYLFFz1JBuI8WQFKB aTDE8d66HZzmlqaqmkfb93eMPpanv/pLySR66773ywA83nSM162lG6re5HJb26pz8usLSwDAfNLY F6ERxUkv+Dzey6u3KjJfG3sPEVOS/NinrPJKYfkpDDqP0ya+RgKBIGbXIR6HW/bi5avrd4283MQI t5ziE7PzUGNZBZfden/jLmVzU6ahKP4Rf/Aku6Gxubr26dEzxh2EfFpT3cEDWWUVqRfCOS3sB1v2 yOnrMA10268mHDuzScE4P/bpZztITE07mapqaqmyDJKUJKeF/Xjvxy///lSp6RivFyFXS1MzWurq H27dZzrKA92Mv8NUolqYIJxKeLG7w75gKhkUt+dqfkwGl81pLKstT88HgJaaRjyZKKkgLRAIkk9H oankXzitOJs117BSzsfxufzyl0XJwTEW4wcAgPmEAS8uPy1OyePz+C+vJVW8KjH2FD1MQ5IiE6kk n9NzX15LSj4bI7I3feX0sEQBX1CTX5Ec/N5HFQgEMXtu8ji8svS3r249Nxpm+b1Kzm3jtjW1SqvL AkBxSl72g4z2S+nhCdaznKbeWOZzZp58D9EBJ2qWulR52v2t4S11zW3NrWXpb+veViEDQPzDA7Wu emHKq9rCMh6XG3vkIpctbqAuTn19eeF2Po8fvSc49UoUq7I2dN6WhlJkxggEAoFAIH5RfultQHou Fma+DodtAkAg6D1hsK6Tufj8ZuMGtTWxr/kfqM0rI9OpdotHKvTU1HUy13O2CDSchqcQe08YbDzc TpiZ09J2xC4AAOqLKq8HHLq7Oshisov1PM/82PTrCw4KowJH+i/EYDEe++epWxshW0GIzNLZ0mzs oMP9F4BA0Hu8k+7gz5mlr2NbM/tawP7a/DIynWq3cJSCiZauo4Wek2Vgzyl4Cqn3uMHG3h3McuAC AKgvrry+6MDdNSctJrlYz/XKj0u/vvCAcN/wkYEBGCzWY+989X7ILD/g3tbIHs5Gyj1VAIBCpwxa 7HR9VcR8W52q7MrLC0KF8cIgn/9hcViX1UMYql/0tK/LqiH/G3HEanxfeQOFCacn395wY+/AnZwW DlNPftgWL2lVBgBQGBJR2+882vcAAKRVGZ7bvXX665Wml3yqVM9ev6G0/ua666yKRhwRr9pbzWOL 13vTctDXttPZbbOdIEG0XzDIclwfLB7bldJOaWW1HvM8xG3lAsB+x0CaIm1i8JT2q2rm6pzmNuEh gUJiDj5MvZxSX1JXmFSQcSN98J/OPZzFGVXS+cTLARcFfL4Eg+q0wrXjdliXVUMilofFHHwoKSc5 /8FCAHBa4RqxLCz+eJyMhozdrAFxR2M+29rW0+0uzjm/1XQjmUbxPT5B0Vipq2a0nmobOvf8NrNN FGkJp2Uumbff/9hEliK7rnE/N/k0AOgNMvDeORIAXNe6P9gd9b+RR1gVLLqK9MD5DkI7GfqXJ02J HrnpZkNJPZFK1LLRVrfS6Ep4/tO86yuuCqPaR4YewGAxHlu91a004o7GpIQksRvZzTVN+x0DAWD2 7fk4Ao5AIWj20zrmeaippknLWttuzkAA0B2or2evH2i7A08m9B5tYTy0p1A4joCbcNrv9oYb+x0D Oc1tTD35iWcnt5+SDQAYLGbkvrHHvQ8/2h89YJ49ut+Rj4H4cRCpEpMiTt/4Y92tpRskFZiD1y3R cxr47k7E9vIdEbv78MiT79/0ZjLcndvCvjJzcU1uAUWabjJiqNYAazHyD1oP4XN5NXkFd9dui9l5 yGTEUPtl80XD4LwpFyfN36puTpam+Z4/Ityc2hVkmpTr1lXnRk8DAD0XB+9D2wFg+NGdt5Zu2GVk hyMRTUd5OKxc2J4fS8ATKBQi9YOzmt13ro9a//cpjwms8kq6irLnwa10NWUV856eB7aGzV7SUFTK NNSbGH5KUl5OTEnePkm6OHlBG6uJIEEx9nSz8PN5P7B3ViOaiiKOSNxt0l/AFzisWNDxLOhP6Tdn MqeZfdTBm9PcomnXb2zwofbdNvqug47aezdVVhsOc7ZbOEtMTYlUibHnj0TMX3F17p9KvUzGnPng 5dwECoVAIeOI74fcZyfOPzkU1Mpiscor91u5AMCUyAsSMgwxNe1kUpszJXTS/G0aFhSGtNOGpZnX 7ohXqtan96A1i84Mn9zGajIYMthx7WJ0M/4O6wJzM5+Bh+0WgwB6TxikO7jX59YF9m1N7GsLDtfm l5PpVLtF3gommrqDe+k59Q40no2nEHuPH2Q83Ob9VNJ/CQDUF1VdX3j07uozFn6DrecNy4/NuB5w VLQuGLAEg8V67Jutbo1Owf0lCJ1+pCKzqLGsDoPFvrmfpmisNvLIDCKVNOnSHzeWBd9aeV5Snj54 1Qg9RxMAUOml6RnoF+Z/sqG4hmmgPDF0oSTzg623VDnauGD/k147ZHQUNK31h24fdzXg1CaNOTLa 8jZznJPOPBJmoykzcET8bos/BXyBwxKPjmc+f0pp2tvLs4+JvOvhf2PxWJf1Yxjqsp1mJkmSXTaM vuB3SCDga1rr2851YdeL3gtOkaZGbQ57tPsGAEiry3numqRjb4TFYydcCLi9JnRv3xWcljamgfKw vydIq8shw0D8kwO1vaWZ96DDw+aDQNB7pLPuAAsxmetLKvKevOBxuIUpr9qaW5R76uXFpzbX1tOU kBkjEAgEAoH4FcE4OTl1+8szZszw8vISkyEqKmq77Ut7vD5qaMQvRVDzEz+izX+ovtVJfpQPfjwN 4m3zk3T/zlpYBn5Uk07SiwuBkuynoPpNwkuO+pEG/IJtmxKalHolZcxhX4q0BI/Le3oyPvNWxtQr M9FdhviXjyplJD952y/JuVq9zxfK3NgoOj01qOion0SX4bHoupgos+vCz46s3cjH+NcTzX0Nebb2 dJkgdlhXU0kQO9tPcvAXmW5LtR/FBLXqP0hB/LPzY2csK0j+Rjnr6LpzntyUN/yvjwDRbXVRjE5i io716+0Jxp3k52RAVba9ZF9x47bCvK8qg2Nmqj3t/WnGq1U0HNO97emdzxHRjTVdXfqKOaiyzY/5 gScfzbphL6X1Fe3WmBdlMOVdW22xJxiie/M3s3xOpj3L9ItyNryOMlz440qysfrEPzyoPnlzftL+ ZVl7fuoK6Fxs6sUnY07MpjCoPA7v6fGozBvJU68vQ5b5Y93v+lg/ujMABIGin4SeuGGcovJ+iK59 bk+U/uG3ZBeTkagMJTvtKZ08dhDdkgU1Cfb0Ttz+6Pr4KJOQ9zdaQeQv2imNZ/3kHH+4FtwpP6r3 h2PgW3tCPwAIqk71IzsAQFB1sx9D76slFyX6Mbt0pYLK7/spfOlzqEGkQ5pkOXuB7zdWdrW0G7rZ EQgEAvH7EhcXZ21tLfgcGAwmLi7O0VGcFxEeHj5q3Y7PakSv8UMgEL8TTdVNR4bu/zSdKiM588bc n1+emoIaCRkqmUYBAAFPUJ1bxdCQQd2EQCAQ/+mpqqrmyIBODtelysnMfBTx5XLurf/7RUj4p+mD 1y42HeP1GzeQ4BeTg0AgEL81nwyGWZGpN5YFf5rRwMXMfeu477ECqpSQlSTTJQBAwOdXZ5cxNJio HxAIBAKBQCAQiJ8Miu8iEIjfCaosdVH8n79OeWym2179MyzQbgcWjwMALRvtIeuHoW5CIBCI//RU JSez6GXst8sZvHbxYHRILwKBQCC+EgMXMwMXsx+4AprlfHXRqUCrZVgcDgC07HoM2eyDmh2BQCAQ CAQCgfjJoPguAoFAdB+KtMTYI+NQOyAQCAQC8SVoWFsue5v87XLW1WejxkQgEAiNfnrLXu/5yUop DOrYk3NQ4yMQCAQCgUAgEP8sWNQECAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQC8VuA4rsIBAKBQCAQ CAQCgUAgEAgEAoFAIBAIBALxe/DDz2e2x+ujVkb8amhi5f5b9cXJfpyC6fH9teAbu0gnAVnim7uM iewWgfiFRhUy/2cOWR/4FdL9kY/xn8Ierw90GQDQ7Hoq0cQrfLF10VGTIv5VNwhRuvN0gnGX6ZKy 37kMtI/LYE+3/bFzEOljT95eSuvrytwhvz3BEBnS72f5X9xr9jTkKiD+Le43QTT0aQL726eJnzMZ ia5SDLpMp+M6v0S3/j06Ba/xM7QINLv2bOVFH4i47kimyIhd8dG+QhRfx57QA9rQnYpAIBAIxE8F 4+Tk1O0vz5gxw8vLS0yGqKgoFxcX1MoIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBOLfR1xcnLW1teBz YDCYuLg4R0dHMaLCw8NHrdvxWY0/fP+uY/YC1K+IX418EkFTssd/qL7VypqcD56Zzees1CQRv7MW RqEmSbXzS1yaJrb3NwnnMTRxOsh0EYhfZVTBPtfEkb+zzPK7mi0sAMhvzdMkqYjJGWUSJvIx6i+j vvhP0ET9jPHgWjXJX7Q9Jb8tQxODdhYg/lVEyQV0sgRr6HqhiB0qRpo9Xn812X1j3a1o9pvOM5D1 Vku7fajL4/1Vgt1qylLHygddKiDcAOzrb50vuH01Me4fJLGOf3W7qe0XlT/1ALKi3xF7He3otjdf 1Ncy/j+uGBtZBdFtdag7ED/D/YZdmjgKAORzPTSxyl3eGkTp1VTN90N05u6fNBkZLuzqkiNrdpdf 46t3KZC2/P2N1hgY3Rr/K3YKf4wmXu2Ha+FdFnb9e1obgdsGAPk8RU2iOQDkY59p4iW/WnJllJiT k/JZfTVxzl83MstHRjcmdH9gl+qzWmkOutkRCAQCgfhy8D9Bh71kb9TQiF+KIE66PVH7P1RfYNvT PvD1g6rBXqrv99ZSaE/oXGYQN/MbGzyopfbnHC2FQCC+6Jbkgj1e/XuPIaKj2IIq8sSc7RldH/eB j0FQRd3x7yaaUwQA9hRFccbTVmBP+KJj/IPawJ6EzupE/ItukNYuY6X2BPvObqho+LLD7e3Jel+x 3CPYfZxCku+8wPxOMn/9HMTp6BYKo2v2EuZf0W7NyR+UVloX2dJvZvl12QBgT/y8lX5hDPhbQIsU xE9yv9vAnmAh8sO/xup+winl0Q2feXDHHm/Rybe4SdDFcevRnMxPppVf8cTmoBawJ8r8FC3GH87+ T+wlegNAUGOp0EkOau2OixsEUfZSfbq8ygJ76a+IGUfXsQBAjEAEAoFAIBDfHSxqAgQCgUAgEAgE AoFAIBAIBAKBQCAQCAQCgfgtQPFdBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKB+D1A8V0EAoFAIBAI BAKBQCAQCAQCgUAgEAgEAoH4Pfj3x3cLEt5sNZr/e5V5r93yzNvJyDr/zWYZn75V3Ru1w6/M/U27 bi5Zj9rhG8m5H3vIbtg/Xoz82Kd7eg3ayDSMXLG5Y3rc3mO7jPuvpelk3brfnvhw2/4L4+Z8u9Ir MxdHbdiJbADxy/kYvcZkXnuI2uH7D3cPUg719//FlZ4Ysuzl1bh/pKbXAvbf+vMoshMEopN1QWLG 1t6jf7OpZNC0zDuPUd99ygY5/bIXL7+jQFZ55RopTXZ9g8ih7e2wUb5H5Mq/fpjrHnOo/9BvkRC3 99guY7u1dO2s21HfpUhpl64dtHH7YC5zG/Py6q1uC2xratrfx3mzqunhAcOQxSIQCAQCgUAgfmvw qAk65fa6CwbOvbRseqCmQPxCZrn8kMEQG63+Zv/xdqh89eaovffsxzdktDUAIPveo6vzls1PugcA mxSMAQBPJkmrqVhO9bWZN7XbWnqOHMbn8r4wc9bNqJLnaQ4rArqtLmbX4dTzYfWFxXgyicqUG7x2 cY+hTlEbdj7cvt8/JUpOTxsAAnvaY/E4/5QoALgwbk7V65zKrGy6mjJRQmJSxGkpJYVu6GU3NF7w ne13/ew3G+dfBkMctfr3+yhdubeJ0/qlP6IZuezW6G370i5GNJSUScgwjDxc3Xd1GY/XtOu74Pn9 8LnLPkq39Z9u6z89sKc9Gl7+HcTvv3Drz8D2PyXlZZbm3cwIux8yfkXHbGZjXUf8b11NbnHUxiMF sSmtDU0qlsbDApfI6qkLM7Aqau6sOvAmMo7DbvXct7znaGcASDp59eq8Le1C1lQ/wpOJXQlv/7Ol tmG/pa/JCEe37QsB4Maiv58eudQxv9fBFeaTPKqzC/eYjWpPnBAeqOfUr7m6bqu6a8fMNBX5xa8j AKC+sOzKjI2FCWl0VQX3nX/oDhbdes+Db8TuDq7NL2ZoqrhuW6Dr2Fd8i3Va03bOeAU0llXPeXKm PSUt9E7MrjM1uUUMTeW5CcHCxEuT174IjRR+VrUynhH9v/8ssFv7AAAgAElEQVSm+Sn30nVa7/eL K7X/00fBWPN3rCkCgfjY9dp01GBwP61+pqgp/jto2vVdkPIgfO6fP3Ba6d3Tad03yRd516YDf1wh 7ZctUDDu/g81RCp1XsKd1Ath8QdPIKP6XX3+gw9vLQvv4PNLLc3egJoFgUAgEAjEf5D/RnwX83XZ BQJB3uNXBs69/rkCY5Bp/gfMEvPVZhmTajDEBrUcs4devzmTry9aMzH8FJfden3hmqG7NhKpEm1N zQAQ8CKapqz49smzc2NmyOlq6bsO6raWL8+c9yieRJP8lkr1XzSr/6JZ58bOUDI16hjgpCkrFiU+ l9PTbq6u5ba1EvESwvSxwQcBYLOyqffhHZ9GVb+c/JinfC73G3tEIBDkxTwxGOL46SUKQ1rXsf93 b0YBn39uzPS6t8Ueezcr9TJmlVc2lJSjMRgBABq2vSZF7O3YkUae9muqH7VnCHKfq21vCQDNNfUq 5obufy8iSFCu+W+7Om/LlMhDAMBr4wS5z9cd3Gfes/MSctLtz3k0llebT/IYumuxyH8iE8UIb+da wHaainz7n27bF7psFm18ZDew9vQcqdnfAgBY5dWyumpzn4oipjgiHgAkZKU7Cn+w+XhjaZXw85UZ G5k9NMdd+jv73tOQ8SsD0i5RmQw+l1eclOmxb5mKpdGLC7dDfJcvzb9FoJC6coq6qqmQhGNXmmsa Oqa8CImM2njU+9AqtX49QSBoT2eVVw8/tsZk+GAAwGD/uzcPhSGlO8j8F1eqPdDsH6spGlgRiO+7 XH3ywmBwv3+uwOiO/nc29Ve57j+rATCfzGVoRYwADRvtSeGzuzeEIhAIBAKBQPxr+NnxXU5LW+SG kFe3UwQCgfFQS+fVo/EkQuWbkmNDN02+9KdSTw0eh3vEbYPZCBvb2a4AkBeXGbkhtLagkqHBdNvo q9FHFHF5m5h9b8ulsoy3Ar5A287I56S4E5hxRPzdzZeSgh/iSQTrGc62s1wBIGrblYpXxe1fTL0c /2jv9fkP/0oKfphw6kH5y8JLc48QyEQAmP/oLxwBDwBPT0TFH7/Drm9Ws9AZunUiXVlGXE3ZbdG7 ItIjEhpLa6lMutfOyToDjQGgLKPw5qrg8ldFVDma/cJhpsOthfmTzz2K3h3B5/LNRloLf9gV8lVK Ed00y+bWyJVHXt2IE/AFxl4DnDfNwJOJlVlvjznMm3xzp1IvPV4b98jAOWZjB9suGA0AeY+eR648 UptXytBScts+V8PaRGSWTzLurftf2YtsAV+g7dDb5/yGz5jl2uNJQTfxZKL13BG2/qMAIGrjyYqX ee1fTL1w79Hf5+Y/O5F08kbC/66Vp+VcmvIXgUwCgPlJJzvayX+NgUvn7e/jkhF2sywtU9HU6KPI Ip5M0ra3VexpVJ6RJYzv5j2Kj1y5pTbvLUNL3W37Gg1rSwAQCAR3Vm55c/dhc00tq7ySIEHxOrC1 5yiP0ufpFycvaCgpMxk5zOvA1naxJSlpNxavq3qdCwCKPQ3HX/ofQYJS+DT5zuqtpakZOAIh9Xw4 AHgf2aFhY9WVUnZ9w26TgT7nD19ftKa5qkbR1Ghi+CkxNZU30i9KfN7Ld3hRYoqSqVF1dr6YzDE7 D1W9yeW2ttXk5LXUNvSb49dvth8ACPj8e+t2pF4Ib2M1UWQZDssX9PIdzq5vuDQloCQljd3QKNzA ajVtnO2C6QAQG3g06eR5VkUVmS7Vb85kW//pAFCYkBLhv8JwmHNOVExTZY2GrZXn/i1YPD7p5IWE /wWXp2VemhJAIJMBYH7SXRyRAAD7+7g0llZQpOkBadHthXwd+eDBX7urcwpwBLyei4Pnvi04IuFr mzHr1v382Kf+yVHSGqoAICHDkDfUB4Ca3ILri9aUpKQJeHwlM2PPA1sZmmrdMDBua+u5sTPyHsbT VJTc/16rbW8LADwO9+q8ZTlRMZzmFpqqkuuWVe2/f719knRv3Y6yFy8FfL62g63P+SMdpfG53NBJ /iAQjDq1TzibIH4cGCxGGHntkIJtTylOzqzOLuw5yhkAVC2NVC2NhOk9hg64s2qf8HNG2H2SJMV1 ywLRWP2uy1jl1QxN5S8ULiQt9E5zZZ32QAtua5swBYvHYfE40Qh/5JbmAHMZbRWhcGk1xY+Ew7so MgBwWlqTgiImRewBAFZFTX5M8thzW4hUipGn/ZODIZnXHlpO8cLice7vws+mY1zCZm1qKCoXbkpO PhURvfUEn8szG+sqvD3F1BQAanKK4gLPDlo9Iy4wuD3x/l/HhgUu0ezf+6NCNpZXy2ipflr434LM 6/GpF+5rDTCN2xvGZbdaTR3isHwcANS9Lb/+x6GiZ1kkKQm7BSOspg4R5n8R+iB62wVWRS2eROg5 YqDbthnC9P395jSW1lCkJQNSj7cLv7PmZPthyI1lNf1mezit8xMjvFN2GvlZTnZLCrrdZ8bQwoTM kpTs4YcXaQ0w7UrpBnnvoTtnJwVFshuaJBUYww8voqsyAeDZydsxuy/WF1V6H1poNsZBjManR6+X ped57p3/6ubTc2M3+CcdkdNTPeH2p+PqiRo2xl+ltCjpdcSCfQ3FVRo2xiQpCfw72ytLy7u59HD5 ywIqk26/dKzpaAfxStHIhvi5y9XWyM3HXt2NF/AFxkP6Oy+fiicRK7PfHvNeOPn8NiUTXR6He8TD 38x7kO2MkQCQF58aufl47dtShrqS25pZGlYii32b9PLe9pNlL3MFfL62bW+fo2vErQsIhLvbTiaF 3MKTiNZTvG2njwCAqJ2nKrIK2r+YGnb/0cEL8+8eTTp/KyH4Rnlm7qUF20TL1XvHRMvVUxHxJ8PZ DSy13oZDN82jKzE/s1zdE5x+41FjWRVVjuG1LUCnvzkAlGXm3lx7qPx1PlVW2n6+j6mX6FnJ5JDI 6L3BfB7PzNux45TxVUr/C7yJenh+3KyWmlqlXibDj+yiqyoBQOyeI0knL7AqKsl0qX6zpwi965hd h6pe53Db2mpy8ltq6/vN9us3e7LQ57yzavOL0HAKQ9p63rTPaqx7W3R90ZqiZ89JUpJ2ATOtpo4T n/9FSHj0tr2siio8idhzpIfbNpGN7e/r0lhaTpGmB7x4/x6HDUyDobs2Jp08z25olFRgtteoJCXt xh9r2I2s6uw8Pper2NNwzmNxZybnPYqPXLVZ5NJvW6NhbSUmM6uiKnzO0sKEZBltDQO39wu9ZyfP xew6XF9U4n1oh9lY7w+XaWur3rxbpl08QZCgPNy+rza/kMNmV73J5XO4bltXC136rngd+eDB5t3V OfmiRcrerTgiIWrjzoqXWT7nj75bnoc92nlwfuLdr23eoGHjtO1t8x4+biyvpMrJeB/aIa2uCgCc 5pbIVZtf3bgr4PONvYY4b1yOJ5MAgNPCjt66x2n9n2hMFuvz4z8ZwDnR2yLTrzxvLK2nMqW8DozR cTAAgIyw5w+2RjaWNjANFIbs8FbupYYaEIFAIBAIxL+Dn/1D8+2151lVjf6xWwQCwTm/vdG7rg5e PpKpp+yyZuzFOUdm310XteWylALDZpYLANQVVp2bvM83yF/LpkfW3dTgCYEL4rZQ5Wh1hVWnx/7t vGaMb5C/gC9oKKkRr7SxrI5IJS19safqTelxz83KPTW0bA2tJjoEWv/ZWFYnpSgNAM8vxln4DgAA i3EDLcYN3G66YOSBmR3PZ04Lfxp//I5f6FKaEuPelssXZx2aFrFSbE0vlKYVjAtaIKMlX5NXQVOW AYDWxpZTY/92XTfW1LtfVXbpqTF/U+XoOgOMyjOLrq84O+XKMpVeWglB98tfFnZPKaKbZrn8IKuy zj8lSCAQnBu9OnrrmcHrpjIN1F02z7o4ZfPsuMNR609IKcna+I8CgLqCsnNjVvuGbtLqb5Z160nw yJULnp+iMqXrCspOey51/mumb8gGAV/QUFz5GbMsrSZSKUtzL1VlFRx3ClDupac1oJfVlKGBZhMb S6ullGQB4Pm5OxaThgCAxWR3i8nu27VHjjyxEp3PDAB4MmnYnr8uT1so4PHmxN/86CqPwy14nFCe 8cp16yoAqCsoOjdmhm/oMa3+/bJu3Q8eOXXB8/tUpuzLq7ff3Hs4K/YaBov9n9NIq6njeo7yAACl Xib+KVGRKza31H+wd+3mkg0mI4Zaz5nMaWGXpqYTJCgAoNbXfOqd0NBJ85kGOh333XalFABaauue HDo19U4oRZreUlcvvqbKvUyyo2IAoDAxRbl3T/HxXQB4Hnx5SmSIho1VdU7+fivnHu5O0uoquQ/j 0y5dm/fsDpkmVZNbgMXjAYBMp42/fCLxeHDapWtTbl/oKETFwtTI00VGS6PgceJJNx/DYc4yWhoA UJ7+ysTbffr9K5wW9iHboWmXrpuN9bKYPNZi8tjt2lYjTwR+tJN4XkJk1q37t5Z+8KADQ1NtyN/r VSxMmyqrjw0annohzHzi6K9txpz7MZr9+wmDux2RVGBaTR2n5zQQAEImzr3/1+4Rx3Z1w8BeR0b7 XT/rc/5IWujVC76zF2XGkuk0HAFv6O7kumUlhSEdu+vw1bl//vHqsbCQpz0nOv+13DfkqIDPbygu 6/i7A4/DvThpPo5EHHFsp7DlEf8gj/ees5zq/VEksja/JP7AhQFL/N79/pgkp68RNGReZVa+gonu sMAlDC0VAGDXs16E3InZeYrKlLGa5m0XMF688MbSqrvrDk25fejJwZBPS8Ln8p4cDPU+skr4J7uh 6e3TtM3KTngy0WCInesWf5IU9YNb+9xNpoGGUi8DAKh6XSAhS6cwaMJLTAPNiszcj+QXJWZIyEpL ayoDQHlGzvVFf0+5fUjFwjDh6OXy9GzxNeXz+FdmrHfdugCDxbYLbCiprM0rKc/IiZi/FUckWE0d buPvI7zU2sA6P3Yph90qq6vuuGamvstvtqsmOypFTk814PkxDBbbymoWtsDZUevNxg7yvbCmrqDs uPMShpai7iBzLrvtyqzdsx7uUeyp1Vzd0FBS/X64e3Iw63bCR++Xdd4w2XnDZAAoT887PWKNxSQX McK7Kh6vjcPUVx1xfPH/XJbOjT9Q9CzrWdBtYXy3U6UgEGSEx025tQ1HxF+ZtevB1nNe+xcAgOVk V8vJrocHLPhsg6iY66WejwKAwqcvlcx0ip5lyemplr8sUDLT/iql3FbOhXGb7BaO6jt9aHHKmxNu f1pNdgOA1sbmU16rXDdPMx1lX/W68JTXKiqTIV4pAvFT1wUbj7Cq6/yjjgsAzk1bF70nePDSyUxd dZeV0y8u2Db7xoGoHUFSCrI200cAQF1R+bnp632Pr9PqZ5oV9TR46toFD45TZaXrispPT1jhvGKa 77G1Ar6goazqM+uC8moilbw08UJV9tvjoxYrm+hqWZtZ+boH2k9pLK+WUpAFgOdX7lmMcQUACx83 Cx+37ZY+I/f82fF85rRrD+NPhvsFb6Upyt3bcfLivC3TLu8SX9PS9Oxxx9bKaCrX5JfQlJkA0Mpq PjV+heuqGaaeDlU5hacmLKfKMXTsepe/yr++5sCUkO0qpgYJZ66Vv8rrntL/Alk3o2Y8CCdJSYZO nPtgS6DXgW0AoGJuZuThKqOlUfA44eSQ997183OXp9wO0bDpU52Tt7+Pcw93Z2l1lWcngt/cezj3 SSSZTgubs0S8Oj6Pd3bkFDMfb9+QY3UFhcedRjI01cXsweWyW6/MWjzr0TXFnobN1TUdj8CZ9zQy 63bUR647CAQZ4Ten3A7FEQlXZv3RXqMrM/8Y8Mcc0zFeWbfu3Vi8Vnxwt+5t0bmx031Djmv175d1 Oyp41NQFKQ+EK6NOub5oNUmKuuRNQkttXdCwce3PE1hO9rWc7Pvpe3NvLl1vMmKo9ZwpHZdpAJAa EjY3/racvk5+7NNzY6YtehlHptO6UipapJibNlVWH3P0Tg0JM58w2mqKb2Av+8bScuGrcJ6fv2Ix cYyYmopp3hch4dPvh5EkqdFb91yZsWjK7VAAuL18I6uy2j85SiCAc2OmRW/dM3jdUmF66fN0NCB/ 9QC+Irz0edG4C1NltJk1uZU0VQYAFCbkX1t0aVL4bEVT5aybGac8D/snLafKSaLmQiAQCAQC8S8A +zOV8Xn85AuxDn94EKkkkiTZctzA9GuJwksW4wYoGqmdHR+YHpE4fO804SE8qZfjtWx7CIOsBk5m VDlazqMMYbp6H70+kxzINAmKNFXB6DMP32EwGNtZrlgcVr6HiqGb+csbSQBAU2LoO5omnX8EAA1l tQVPXpuNFPeLZNK5R30nO0qrymJxWOvpTm8TsxvKasXUNOVCjNtGX/keKngSQb6HCplGAYCsu6mS 8nSzEdYYLIapr2zu0z/x9AMAeBWZojPQWNVcG4PF9PEbRJIkd0Mpovtmeea2w7IJRCqFJClhOdk9 /YrogWULvyGKJtpnR6xIvxI9/OifIrO8cE9rYG9hkNXArR+VKZ1zP0mYrm7ds880DzJdksKQUjDR /rxZ+o/C4rDyRlqGw2xfhj8CAJoKU9+5b9KpmwDQUFJV8DjNzGcw6qNO0bC2FPD58ob6H713dp+l 00a5HpenLvQNPaZqaQYAqRfCtQZaC0OPBm6DhNFBAChPz1QxN8WTiDgCXsXcrDIrW7xGhpZaZkRk QfwzAoWs3s9SfOaulArpv2gWRZoOAML/xUBlyrY2srjs1qLE52p9LT7bLMrmPYXbXmV1NKWUFKpe 5wAAXVWpubo2+XRoc02tjLaGtLqKeCFa/fsJf3LSsLGiqynX5L5tv2Q9bwoAEChktT69KzJfd6Pj mAa6an16Y3E4KUV5rYE2NbkF3WjGpqoamorSp/mJVAnDYc54MglPJhl7DREvXAyqlmZaA6wxGIzp GC8yg57zQLQDz9DDRUKGgcFgTEd71heV8to4wkKqW1v2mTaeTKdRGNIKJu8fDMKTSBf9/El0qZH/ 242Cuz+Hwidp27WGCP9d89/W8VJ9UfmrGzF9Zox4nzkhfZOCQ6DJCJqKvKad+btsFW+fprnvXvxH 1lXlXgaXpq4TpnseWLHoVdiK4nsjjq2N2332efAN8cLDZm1yWDFNWl1RwOd/Ws6MK1EkmqS2vWjz ivmkYQszriwvipx290jlq7ybiz/4cVwgEMTvv2A9d6zwT04zG08ht18lSJDbWC0d87c2Nl2dt8V5 01zh76Gvrj/SGdRH1coYg8X2mTGCJCkhvqaxu07L6KgbDhvYseT1ReVC1QtSL064sjtuT3B21FPh pbmJ5/7Iivgz71bfmSMv+C6rfvP297IZDAYGrZqAxeMwWAyZRgWAwoTMxtJqu4ARWBxWRlu5h3u/ jLBYAMARCTRlucT/3ajOKZGQpSn21PoS+ez6pgsTNnvu9ZfRUhIjXAwKxpoymkp4EkHBWJOmLNtU WSc+f9+ZQ4UnfGgPMKvM/OruUOypXZVdLOAL3j7JtPRzLXqWVVtQLqnAIFIpX6W0OPl1WxO77/Sh GCxG1UK//WjorNsJkgoMszEOGCyG2UPdfIJz4omb3VOKQPyQdcHFOw4LxhGpFBKVYunjln5T5L9Z jHVVNNQ6O3l1+o2Hw3ctFq0Lwu5rWZsJg6wGjn2psvScmGRhurqlcZ/xQ8k0SYq0lEIPrc+vC6aP wOKw8gaahs7WL2/FAgBNSU7fwSopJBIAGsqqCxLSzYY7iluuXrjVd+IwaRV5LA5rPcX7bdLLhrJq ccvVi3fc1s2WN9DEk4jyBppkKSoAZEU9lWQyzLwHYbAYpp66+WiXxOAbAPDqbrxOf3PVXj0wWEyf CcNI7+7Nr1L6H8EuYCZVTgZPIhoOc6585y138K770FXfe9fK5qYaNn0AQFZHS0pR5LpnXr9j6ecj qcDEk0k2n9u/W5iQ3FhabhcwC4vDyWhr9nB3zgi7ISY/jkigKSsmHj9TnZMnISuj2NPwszXqO2OS 8PAP7f42whrxudzKV2/Ura0AQK2Ped3bYk5zi1iXPkxrwDuX3tXxo5XRRwj4/Kybd+0WzMSTiFKK 8ubjR322hAwt9cxrkQXxiR8t09T6mMvp6wCApl1fqrxczoPYzyxSrN4tUgbY1OTkAwBNRUnf2SHp dAgANJSUFTxOMPMZ3r3mNfYaQpKkAoCFn09+XEJzdQ2fx0s+e9Fh2QIilUqSpFr6+aSH3QQAPo+X cvai2451aEwWZ/lP87frrhH+uxZwUTSsnU1w2z5c3kgJT8bLGymRaWQASD6bYDrKQslMBYPB9HA3 kTdUTL+SghoQgUAgEAjEv4Of+nNzU2UDj8M9NXan8BUqfN4Hv3gO8Hc/OHitwx+eVFkpYUpdUXXO w4ztpqKtBhw2h1XVKEyX1VL4cr1ESTKeJDoRTkqBXp0reoiyz2THsID/DVwwLPXiY/3BZu16O6W+ uPrB31dj9okWS0QJUmN5PU2R0VVNuW3cTwvZUFrT8StSSow3D9IAgFVRLyUvLVreYzFUOVo3lCK6 aZYVtbw27ilPUfj2Y7Nc7HPQZqbDiolUOel3ZlmRc//Zdu2RIrNsaWVV1grTZbWVv8YsKe3bvKQU Zauzi0RmOdMzbNb2gUvHp56/q+/Sr10v4iMe7TyoPdCmKCk1MyLS0MOlPX3+s7sAcKCvK1VO5l2X Fefcj92ubfWuy9isymoAkDcyyAi71dbUjMFi3yYk9180S7xGz/1bE46dCZ+9FIvDDV63xHCYs5jM XSkVIjzW7AtRMTctTkmrzS+U0/18LEFK8f2bPrFYHI/DBQA5Pe2pd0Jjdx958Feg8XB3l03LKAxx dpV2MSLl7CVOCxuDxbLKK9tjPCQpSSJVFBnC4HB8Tnde3FuU+Dxu7zFWWQUGi63Oye/lO7wbzUhh 0BuKSz/N31hWEb11b0VGFgaLbaqq6fZLkTvuJ5BSlGdVVAIAj8ON2Xko90GsQCDg83jCn5+EhZTV 1uxUztOjZ9pYTQOWzO24DxLxQ1E2N/Q5LzpWHf/hq2efHAgxHDZQSlGuPUWtj8mq8gfs+saEo5eP OUxdmBFGlKRg8TgLPw+mgSYAWM/3idl5mtPMJkiQCRSS8F226tamvccPfXP3Sa9x7l0JTzh6GU8i 9B7v3lU5H+87bz33/f4PDAYjKS8DADI6qgOW+IXP/qtj5te34zgtrT2GDRRNH1QKt4XdfpXTzCZK vo+BcdltwaMWG7jamk8U7W5hlVe3FwyDxVLlRV5EpzWtzilMPnN9VmzQRwXG4nEECmngsikYDEZG R9XQY2Be9DNdx74AQJEWuU/mE4clHg/LfZQkPBT6d0FKSRaL++AOrS+qbGW17NATbdHmtXE1+/cU emgzonbG7rl8bPAfSqbabltmyBtpiBcuEAguz9hpOtpe38VKvHAx4Ih4DBaDJxGFtvKRo9JJjRRk 3g3UWN7XD9R4EkFaQ6HqTVF9cZXhMJukU5FlabkqvfW+VimrvJbKlG5/JbOkgsjwGoqraEqyHdv/ zd2k7ilFIL7/uqCqlsfhnpqwUrQu4H/wYvIBc8YcHDLXIWA8VUb0fF5dSUVObPJ2S593y9VWVnWd MF1W82vWBVSK6B4HkJKXqc4vEa0LJg4LW7xr4Dyf1LB7+oP6tOvtfLlaUvkgMDjmYOi7lSO5saKa pijbVU25bRxZDeVPlqtVtA4TpZSi3JuHzwCAVVkjJS/TYbkq3Q2l/xHo755BxOLxPC73vXcdfJHT 0orBYlgV771rKYUOrjsOx+NyAIBVXtnu0kspfOa86/rCklZW0w5dq3fTCkezv7gXM2Ow2Bn3w2L3 HDnmOELJ1Mht62p5I4MvXF9gcFhhjbB4vJy+Tm50rPnEMbnRj5kGuu1bZjt36QtLch7Ebtex7HRl 9BEttXU8DlfynVJJhc+f+O25b2vCsTPhc4TLtKX/Z+8+45pI2gCAP2mEkgABQkdCF0ERUYqgRBFQ sdeznYiFs5ezv3Y9e6+op2JX7IhgQ1FAsQBiw4aASIfQAunJ+yGIoBAElbM8/58fZHczMzv77OzO llnbHpXdtOpv66pqMbh5it6kf/+wqpNCKExJaz2k8qE953F/nhs/03PWpKQT56x9O1f1MRtavVWF UdViAAA3r0AiFEmEooN9RnxyIaI8r0AsEGqbm2KbrOic39FkyNGAD+f8FAAozysTC8Ta5jqfNmuZ xWYdLKv+VDfUKMkoxgpECCGE0K+hSe/vqjHVSRRywNk5TKtPe5JSsTR09sG2w9n39ke27OuqY6EP ABpGWjberQftHv/JwuoGjMxHqV+er7CcLxGJ5W+xlBeW0XQrO8bmHrYUFaWU28+Szt71XTio5ok5 4dN+mqGW2zhf55GdvmhNddRJFFJRRoGqFq1mZ0+7NJtT7USTo2GkLa+ZrKS0al2a8kZkihoZlroM khI54PImpk2zz8JSEjp1c9uAHveCzrcc2FnHygQANIyYNl3dBh1a+FlY6mQmvGxIWPIkQrH8ZZfy gmLahwuj5p6OFBXllBsPk05G+q4Ypzgsf1uct+kP/j068d7ljLj48NlLLbw6VN13BAAtc1OnkYPD Zy3zDzsCABpGhjZdOw86tP2TROz6dn9yKnSbUxd1Q/0WPX3t+/nV01xSldpPGt1+0ujXV6NODJ8w 4c4l7Q83XAmftxh1ZNoIJi5tHh09rWv7ZZe56wgSAwe7gcFbKzhFFybNuzRz6YB9m+paPuN+4oVJ 8wJvX2DaWALAOivXamkTGprvJyRC0cGew3tsWu4wpC8AnA6YVjONL61GU7e2F6cuqCgsUtWu8bzL ub9mMUyN/S8dIylR4g+ckD9r3wg8zsc+f3l+ofzK2p2te5PDrvqHHVHR1ChMSdvi0OnDvq+fmfC4 1nSa+3XxmDpuT+d+TGuL5j28cc9tAiQlMk2vlsvKAm5FfHDoyLCtn89S1qC3nzIscunukvc5zOZm WmaG3A/vHon5AgKJWPXB2o9HB4mk+muFnyd+L+hUaX/KLRwAACAASURBVGbeahNfABBW8ADgTeT9 yfHH5XPTYhKL0rJaDfatdRWkYkn1+7UAcGfrcZe/BlTdg2Q2Z1VwSnlFpfIhmvNfpdn3r4wusUB0 /I/ZTGuWz8rJ1Q5zWlkJydXCu3Lk+VrX9OG+c6WZeZvt+st3WBGPv9rEd1zUPgbLUMQTCEq5yhp0 ABDzhWo6jNoKL656P/jnpWHEVNWiz35z9PNZND1G15VjvJf4x2w5c6j/opnJBxUndWvtCZlUyp47 9EsS/1YIX322YORo9eJSnGFrC5quprCcn/Mk1bCNVUMzpekyyvOLZVKZ/BYvr6hM/sKfhrFuaVZB tZPhfA0TZuMyRejb9wt0GCQKOeDkWqZlbf2C+dvaDu1+72Boy15sHXNjANAwYNp4uQzaPv/TfoGe dubjBgxzIqzgfeyuckpozMoG1rx9a4oKNSUmIen8Td95o2vudZ+1XQZMt9F9nYf3+KI11dYkkclF 73NUtdRrNoC6pTkfvzJTmpWvYagrr5msJx/XiFdc1ohMfxOfP9WX8SDxwqS5gbdDK8+urV0UbEcA oOnqlOXmf7gyUM/HXDSMDVS1NGenPPzyEtL0mF1XLvBeMidmy+5D/fxnvrjbiMNK390bDnT/48G+ o2pM7cGHd9ZbSJuuXoMOflHPSIWhSaKQq25y84rqvxVXo5s2YvyE2HB5N42bk/cxmLNzFNwslwhF B3sO67Fxufz13NOjP37OwNyzPUVFJeVGTNLJ877L5zW6ess+FKY0K1u+mLKGOkmJEhBxUh4Y1a6b aZMo5KL096raWrhD1X3OT6Lp0WvWG51EIRW946hq1/jKiaYJozTzYxSVvC9u5mqGFYgQQgihX0OT vlFEJBGdhna4ujykJLNQLBQXpednPU6Tz4pcc4aiQu259k/P6T1DAneJhWIAaD2gfcqtZ8kR8SKe kF9akRqbLOILAaBVX5fUmOSE49ECLp9fysuIT1Gcr0wqSzgeDQBlucUvrjxq4fdxxB5n/84xO8L5 xRUWnvY1+uT6jMzEtwAgFVc+RNl2BPtO0OWsx2kSkZibV5Iam6xoTcnEVv3cIhYeK0jJEQvFhW9z SzILAcDGu3VFETfxZIxULM1Nfp9wItppWEcAsPV1TLn17N2DN1KJNP7obV5JeSMyRY0Pyz+7X12w uyQjTywQFaVmZyVWXryIXLafokLtuWWa55zhISNXiAUiAGg9xDvlRnxyaIyoQsAv4abefiTiCQCg 1aDOqbcSEw5FCLgV/NLyjPvP6w/LQxEAUJZT+OLSnRZ9On4My3G9Yjad5BeXWXjVGARY3VAn8+EL +QUmAOCXloeMXM5JzUq+GHvlf7sBIHTKppSbCb/DVgubvrDjzAk0XR3bXr7aFmY3V27+ZAH2/KlZ CY+fX4gAgNZD+qbciEkOvSKq4PFLSlNv3xXx+PKLBemxDwJvXRgVfrzj7In1Zvrq8g1heQUAaFua EUkkqVhcbdPoZz16KpVIZDKZ/Hn8ujJthGYubR6fvPAlgzPXJffZy4JXKTKZTFmdrmFkIBEKq5e8 MCWNX1IKAPI14nGKyMpUmh5TJpMlHAqpfllEAXVD/cyHSVWJ1EUsFArLK+Tfzc2Mf/zm+u1PEvnC amzRp7umqfGRAQEZ9xMF3PKS99k5T5Llhacb6JOUKGXZuY2+uSu/DJf77CUAvI2KrSjgmLPdAaCC U6SmzaDSaSIe/87WvVULtxrUK/XWnYRDIQJuOb+0LOP+x/G+VLUYDLNmfxzddW78bHkJ0X8l/sAF pq2ZkVOLqimp0QnF6dkymUzEE8RuPkI3ZGpZmACA44ieiYfD3j98LhGKotcftPRyIZJJAPA45Ep5 QbFMKs249+TRsQj7/l0UJD7q8s7JCScmxB2eEHe41eCurQZ39b+0rWruna3H2gb0oVR7vfjV5VjO 20yZVFqcnh29/mDLaonnPH6VGf/cyb/3x7jS1rT0co5ctltUwX8Rdjsr4YVtz44AIBGJTw6fp0RX 67JsgqCUyy8pE/OFAGDbo2PKjfvv4p5IJdL44NCqi/K1rmmXpeOnPT4tL3m3tdO0rUwnxB3WNDVQ 1dKw6e5xed42EU+Q+ywlOTTKyrc9AFQUFr8Iuy3k8sQCUeLhsOJ3ORadnQEgYs7mlxExha/fnfJf KOBW3As6dWfr8Z8lWkycm6vpMm78c4RXzBVW8HMevy1+lwsA5fnF6XefSURikhJZx9JIIqzn1dg3 NxKSTtwY8O+s6lfG60r8h2LoaPX0XLSJiy0A6LcyfxEe14hXaY2crCmq1LjdoVKJNDspJSWysm20 6dauglOaePS6VCzJfZaWcPia/MvE3yRThL5Bv2Bw16ur9pVk5YmFoqJ32VlPXlf2CzYcpKhQe/4z 2XPykJBJq8RCEQC07ueVEp2QfOWOiCfgl3JT7yZVdld7d0q98ygh5IqgnMcvK89IfFF/vyDkCgCU 5XFeXItr0c3jY79gRI+YoFP8kjKLDk41u6s6mY9eVvULAKDt0O539p7JevJaIhJz84tS7yYp7K6S WvXpFLFsd8Hb92KhqDA1syQrDwBsOjtXFJUlnr4mFUtyX6QlhFxx+qMrANj6uKVEJ7yLfy6VSONP XOaVcBuR6W+LxykiqyhXnl0frv/sunkPn4cHjpVm5Yj5gjs79tV3zGqjpqtzY8VGXnGJsKIi5/Hz 4nfvFSxfnl+YfveBRCQmKVF0LM2q9wsa5OmZi24TAkZfOTXk+F5dW2vFC7ce0i/lRnTyxS/qGRGI RJtuXaI37RLx+Ny8goQjp+rvpl25ISwvBwBtS1b1blpmwuPX125JJZLEo6cFJWXyU/ov6KQkfdJJ cR47ImZzEL+4xKLuDxvXW72PT10oTEkVC4S31+9kebioajGIJJLTn4OvLlhVkpElFgiL0t5lJT4B ACKZ3GpQn4g5y3DfaVgDTia2GuQUMedcwes8sUBcmJJf8r4IANqMdH18KiEz4Z1UIn1+ISkvOceu T2t+KT9k1CFOakFy2JMrC0IBIHRqSMrNV1iNCCGEEPq5NPXnALsuHXJzw4V9fVZx80o0jLU9p/Y0 bMVKuf08/ujtCZHLCASC6xjv15FPri472X3FME0TneFHp19dHnJ2yr9EEsnI0Wzw3okAoG2uP+zw tMg1Z8MXHiWSiFadW5k4WSjI1NTZipOWF+S7lF9a0WFSd/kHfeUcB7lfX3XabazPJ0Pz+S4aFDr7 UPT2cBpTY/LtfwDAvpezmC86O/VfTmqeiqaafS9nM3dF36rx+2d45JozBwev5+aVaBhp9d4wSsNI W0mNOvLEzEv/Oxqx6BiNqdFlXn+rTi0BQK+Fid8/w06ND5IIRXY921Wl3NBMUSPDcvX4m6sO7fOd xs3laBjres4ebuhonXIzIT44fMLdPQQCwXVCv9dX71/93+7u6ydpmuoPP7vy6oI9Z8etIZJJRm2b Dz6yCAC0LY2Hnf4nctn+8Fk7iCSilY+ziXMLRWHpZs9JzQrqMJ5fzO0wY4j8g76VYTnM9/rifW6T +n8alv8Ehk7ZFL3xOE2XMTn+gKC0Ii06iZtbVPDqXfqdJzKZLPX2I4NWlhad2vza2+vp2UulWbku gX/K/+y2dtHujr1aD+3PYH38FLeqFqPDzAmX56+09u2saWo8/OyBqwtWnR33N5FMNmrrMPjITgCQ SaRkZepaC2cAIFOVbHt17bdnA4lCvjBpbsa9RPm4xO/vJzLMTIaF/AsA8QdPnhn7t0wqVdVieC+f w2z+8bqz26SAUyMnr27WRllTfejx3fqtWtSVaV2iNwYlHT9XkpGZERf/7FxEl8Uzq1731LNvTiAS m7nWuKh3YtiEglcpAm75ub9mKamqjgw99Ml3iKsrzcwOn72Mm5tPUqIYt3PsteXj0K9WPp7m7Pab 7DpS1FTYc6a0DRhi2aWjlbfnZntPsoqy4/ABdn27f8lG8f1nXuiU/0VvDKLp6kyOvwYAD/cfj9sV LOByubn529v5AkDAlROqWgzfVf87MWy8TCplubu4Tx0rv7Xc0GokU5X8Lx27tmjNscFj+cUlqtpa ruP99Vvaei+fGzp5/t0d+7XMm3lMC4z9cBc2ZOTkvOevyrJzCUTi62u39FvaDti/WcTj7+7YGwBK MrPCZiy8tmiNk/9gt4kBANB21NCoVVsKXr+VyWR/HNslH07NbUJAyMjJa0ydVBia3stmJ1+8Kk9c 29Js2Ol9kcs2hM9aSiSRrHzYJs6ONXb29u26rV5wdNCYwFsXaLo62OQ2PalEGrcrxGdZjcc48l+k nR//T3k+h6JMNW5nPzJ0i/zFKQMH6x6bZ58ds5SbxzF1d+i9o/KtrPSYRxGzNwvLeVpmRt3XTZff xawrcZrux/ctqDQVAKgaIZmT8v71tbgem2bV2Emz8sNmrC/P46jpajn80ZU9N6BqVuyWYw5DulWN gSzXZ9eCs2OXrjL2VjfSHRi8XJ545sPnL8NjAODZ2Uj5Yu5ThvqumqJnb+m34e9T/gslAqFdPy+z jpWNSa1rqqxBl7+hCwAqWhokClndSPdDpv+7OHXtequeyho035WTjdu2kF+EjdsZcnbsMiAQDFpZ /XlhsxqTAQBpMYnqRrpUulrqrXhhWUXWo5cSgejnuT5IGnF66eX//bu1zThRhYDZvFnPzRM1m+mJ BaIr8/8teJ1JIBK0zAwGH5wrX/7hgctxQaGCsgpuXtF2lwkAEBCxRlWLfnXRgQpOWVDHyneAbHu4 +f4zuq7EG1rIujKta/md7pOkYiknNfvakuDojafs+3VgzxlS18LGTtYXp23vsWECAJi0a/78fIx+ S/OGZkqmUoYcXRA6bfvNlUdNnG3b/Fk5WqaSmsrI8ysuzQqKmLOHpsfosnikVRcnBZki1NT9goXj bm4+um/gTG5+kYaRruekPwxbWqXEJMafuDwhfCeBQHAd1ef1zYdXV/7bfcl4TWO94cErrq769+yM dUQyycjBZvCuBQCgbWY0bP+yyPUHw5cGEYlEK3Zbk22KXvszbWfHSc8O6jmZX8rtMH6Q/IO+lf2C Ad7X1wW7BfT5tF8wf0zo/K3RQSE0Hcbk63sAwL5HR7FAcHbmBk5alooGzb6Hp5mbg6Lu6tIJkRsO Hhw+n5vP0TBk9l4zXcNQV0lNZeThlZcW74xYGkRjMrrMHmXl2RYA9Jqb+S2deGryaolQZOfXoSrl hmb6e7L06mjl7bm5ZUeyirLjsAF2fesZNKjd6OGct+k723en0mke0wKfng2rPKH1n/TpCe2+LUQy ecSZ4MvzV2x17CSq4DNtrXpuWqHZzLiuxMV8wZV5KwpevyUQiVrmpoMP7fxwWDn28dTd2QcAAi6f lI8kXCsVhmbksvW31+8AAM1mxr23rbLo3EHE4+/27FXj7HrkH24TAzSbGQ8/G3x1waqz42ZUntIf 3qWgBnpsWnF+wqx1lu00WSath/R/dOx05bGsfTepWMJJTb+2ZG30xl32/Xuw50wBgPjgE2fGzqjs pi2bW9VNa97DJ+nkudOjp9L0mH8cDZKf0sdu3Zt45BS/tKyikCNf0/Exl6g0Nd+VC04MHy+Tylju zu5Tx/GLS6t1zwdcX7LObWIAkURSvO3qql4AcBjc5/z42bnPXhi0tu+3e0Nlg7Nq4c1Vm/d1HcjN zdcwNvKcNcnQsSUA+G1YGrlsA+47DeW3vl/ksvCDvYO4eaUaRoze2wdrGDOMHE16bx98bsKJ0vdF zOb6f54LpOnSS94Xp0W/4eaVFbzKS7/zViaTpUa/MWhlbNHJGqsRIYQQQj8Rgrd340eMHDduXJ8+ fRQsEBkZudYinE1z/GHXn19asd5xxsQbyxmmTIyG30ew6Km/VvcfNyxLuOutB0+M+5dhZvBt1jeb 769S4+5gcOFUf50O37hWyaf9af1rn8VL9lfu/1WJ84o+WYWvJJVItjh06r5uiZWPJ5FEKi/g7O7Y q8/ONQoe60YIfdwlxVH+1G98+SM4c5+/UksACM475q87qK7FokpiI+3Pyf/vVXKGTTHGzfFrixK9 h3I1toq+ouARpvvTv+hdz+DyKH9lFtYq+nV2EMGrSJ1pn0/3KvViU9i17VBRQOzBJitqwBcq+y0v jlC0gGa3mnn1YlM+vm+6UGW2V/5NNlW39gJLD9Q1qyGnhSJ/6rCPaQqLgfsvW7UBDzhGVSREmlQO FeuVtIOtafkDd1e5612HT7y8i9HMAAP+4xYsfsO2+KJHQKKEryO1pny/kiznpv+G9Z945FTSiXOD D+9UYWhKROJ7uw8mh14effXUD1XIW2u35TxJrnfs6C/rnpeut3adeO8yg9Wska1Wz2G2PX1dxv35 VU2fcJG/sgcABPOM/JUVPUq+UO3jqY5X8ia2+ne/ZxlV+irSdnpdc72449nkWvryUeJ4kDZjU2xr O1olR6p/fCxmednmH7RPxGvmr+rw/XPZ669SY2i3qLI4tpIdAASXZftrdAeAYEGYv1qDH/QPfr/L v+YxvcbcbIK/dr+GtMxctu6Vr1zZhQYT8BiHEELo5xUbG+vm5iarD4FAiI2N9fLyUpDU+fPnBy5Z V2+O5F+j4soLy3Z3Xfr5dDVteuDlxXX9SiaV3Vh33rJTy8bd3G1cpuj3UV5QvLtjLeemajqagbd3 KgrLFQctuzh/q5u7qFZSkbg0M5thaix/CrssK0dQVq7gUXeEEELoO3kZce/SzKDPp9t0c/Fb/9ev lClCv2+/gFOyu+fk2nqOmoGhWxX1CzYdtvRs27ibu43LFP0Sh5Xrl2Yurq2F7+K3funXp89Jfaeq rSV/HVYmkRS+TmGYNfjGZ3CPoZzUWu6O+4cd0zIz/Sb1IJPJvkEiUumNfzZZentW3dy9vnTd45Dz ny/ZZdGsVoP7KCgNRiZCCCGEEPq2fpH7u2ra9BkP1jfoJ1dXnHp4+KaBvenAoPFNlin6rajpaM54 fqxhYblwz8N9YQYOlgMPLsQK/L5tnzK1b9C6kJGTJUIhEAiq2ow+O9domZtizSCEEGpiNt1cbLq5 /A6ZIvT79gu0NGbEHmpYv2D1vodHww3sLAZun9dkmaJf5bDSxaZbl++XfvtJoy9Mnre5lSeRTAYA s45u3dc2+AF3/7BjP35NXl24+uH+owYOdgODt1dN7LJ4VpfFszDMEEIIIYTQf4782665z4KBPgsG YgSgHyssl4/zWT4O66FptBrcR9ET1gghhBBCCP1X/YK5o33mjsZ6QD8gFYbmH0d2/eCF9Jw9+Vt0 z+f6LJ/79en4XzyKYYMQQgghhL45IlYBQgghhBBCCCGEEEIIIYQQQgj9FPD+LkIIIYQQQgghhBBC CCGEEEII/Ry++/jMbJoj1jL60bCUDH6v9SUxPquBb79jsmTGdRfA+JuvAkLov2xVCLrfPk2iRuV/ qCaKzis03D/+n2KM2+KXx6YYgwq1nuAh07/4aKKGVYp+qR2Eal3HjsOuczrB+lvvpB6flUr3u641 i2haIzslTVBt07AyV1uerWmJgfTzRb6mJYD0i5ZUssLqQr/I6TfR/sPJDK8BO4u6dVPskgpzYZOd 6pwu06njyGL7c2wUUkWT5GJe5yyKwYfwMGxMyioWiuYqNayrxdak4X6KEEIINTGCt7d3o388bty4 Pn0Ufb0yMjLS19cXaxkhhBBCCCGEEEIIIYQQQggh9OuJjY11c3OT1YdAIMTGxnp5eSlI6vz58wOX rKs3x+/+/q7X0364XdGPJo2eymKY/EbrW8BmCXrXmKJ+hkVVaroCEF+ylFQw8BBC37htkTZjEfWx Hn4Dt+qJhIp0llQPqwn9pi0hRY1FNkrLsWTx20Q6WCwvPBFV8SSN9IBFqWOnkCjqAKaRpCxq87QC S5ag9jdi2eq0hUY1UvYqmPNxLrXVQvowr5fT68yAUA4g/NpVpjqw6J1rFjucRVJuUCKRtMpCeiWl YBT9fGEveQSar1h09S/a1syJjcjCq2REXbPYFJeFqpPk/1+edz2qHEMINUnYK+WxlLQAIK1AwiJp 1RmfdNOFBh0+RvLTvk1TvEj7c3XuTdwTdf4sc1+dCdpcq/r/8ortUaJ7P+JGybZjEb/7eEJptGiW kmaNSWU0ECoBQJo4gaWsBABpSoSGvm4LAGkVOixynafQabxbDXpZHADYqmOjytIavaZsOmuhQUfc 2RFCCKEvR26CPKoPpYjQjyBYmvr5UHK/8voCsNVpn06hWjddAUQv2eTWGHgIoW/ctgg5bHIzrIdf W5T4HdQ9st+Hg1o6W9kZ6wr9pi2h5BmbYhsMoo+dL9WWwYIHbKpLLTuU4B4AKNhfgkVx8tQ+OXWs p7tHbfXpFHrtJ35R3Fg2/Wv31mChgF3zSnewBNhk64Y0LK9qlBaHlPzpwr5QHnj1j60dJXjT6FzY FJcvWkzNArcIapI+dZ485oPhJZtu2oBI/v5X5KJKYuspQ21n7JXneHTPWmaV3Wrc/tjUGwW4DdoW jcxFFv3JcTaq7C2b3hwAgosS2DQXAAgW3mcrt2xwyhXZbNU6yx/MA3niXxoG3HsAwKazcG9FCCGE mgwRqwAhhBBCCCGEEEIIIYQQQgghhH4KeH8XIYQQQgghhBBCCCGEEEIIIYR+Dnh/FyGEEEIIIYQQ QgghhBBCCCGEfg4/1v3d2zturHVauqrlwvOzQpogu9g9tza2X7mYNetl5PPq00MmHF7XdtmiZjOF 5QIMEXR73c21ZitWGS45P/50U4TlltsbbVcvps19GZFcIyxHHF1nvmKR6hwhV4gbpWnwS3hrmk0u zSr6wuVvLDsbPvMI1htCP2pjfngtq9cqg67n/1rVJI358Y3NByxW6/AyvMYHyUKGL1xn1muRiruQ y8ON8iOI3nzl2LCgX2BFLs44HjHvVPUp+3tseh6a2OgE02Jfb2m3ZLnB1CsLz2KcINQgwvLy7T6e K1vZBPX0+apDyd5dGz3aLTY3fBl5rdGJLLEwynv5op4GZP7siGULccN9vWUm3XOepnzDBLl5nEV6 3vwSLgCk3Xm8pf2o5aY9rizZ/a3S3+oekBzx8UQl5Vb8Lu8JXxW0u05vbDt8sYHPy2txGA8IIYQQ Qgh9V+Qmzu/uvuiIpReq/qTp0GcnLJb/vzSn5Mb6y5Ouz9I21xFVNMUdLPdxnu7jPDd3+PQ676Cd I0qzS9a7LMf4+E3c3R4TMfvix7DUpc1Oq7zAUZpVcmPZ1UnxM7StdETloqYIy6kd3ad23Gy/9tOw PDysNLNkvdXK33MbXZ5z3MbP0axj86bMlKqu3GPLn3R9zS9cvuVAF6lY+snEl5cSsxLTOi3oizsa Qt+/MT8ZMWtrtcZca3b6xQ+Nef6NpXsmJRzVtjIRlfObpDEf4j51yGa7QZ825keWl2bmrbfENgF9 d+zZ3fVaGDX65yx3q6kPlpyfgs8tIdRgSmpqk67eSjp3+u7+PV91KBk73n3s+M2erlilCABY7VtN vXPg/PSN3y8LQwdr7/+N/qqgHT/AffyAzS4jcXuh73nOfzNiztlq5/z02akrn517dHL4vuqLOfzR rv++P8UCcdSqiEfH7vNLeMZOpr22D9Ey18E6RAghhNCvgdz0WZo6m408Glj5B+Hj9OL3RVS6so4F EwCU1Ki4bVCThqW72ciLY2oJy/QiqrqyjjUTAJRoSlhR/wmZTJZ6+4WNn2MT50sgEOz6tvvy5Zm2 tVxGT72VTFVXwY2IUFM15g4jwzZX7cPVGvNsqjpNx7oZACjRcJdEvwXzjjZYCQihTw6IjVwA/bDb 7mvTr/GXiibdku2EtY5+hnN+i5GhE6vvJi16Oywq/Pj0Q7DfNnO2NQBUFHB5RRUBEVPUjRlh00NC J5/wvzQJKxAhhBBCv4b/4P4ugUgkU2vkm/cy5+L8M8VZRfxSnvxtWu+53e38HKJ33shISB/67yj5 Yps7rOq2pLeNV4tDI/ayXMzfxryuKK6QSqR+S/uYtbeUL5N46sGdvbc5aQUUVSX3cZ4dJnQGgJig qPjjcdx8rrK6smtAB/dxnrjh0WdhSSAr1wzL5zkXp5wrzijml/Dkb9N6L+tq169V9PqojPvpQ0Mq H0nebL+227qeNt1sD/Xax/Iwexv1pqKwQiqR+W3oZeZpURmWhx/e2RrNeVtIUVVyn9qxw0w2AMRs uhV/4D43j6usruw60d19asffpKpFPGGQ+5J2Yzq5TvAGgIuTg0syOcPOTCfUcfEifn/U/b03c5+8 O+2/i6KiBACTE1eRlMgAcG/X9bs7rvKLK0xcLHpsGalhrAUAyRfjk47eMfO0jd0SIeaJ2o3t1GlB 35AROxks5qvLj3SsDXWs9R+fvNt2dKcOf/spKOf58fvfXHtSmsmZ+WaTupGWfOKhXutZHjZvbz6v 4HClEqnfhuFmnrYAkP0o7dTIoNJMjv1A1z67AuQLZ9x7c/V/IdlJ6SQyKen4HQDou2eMqTtebUfo O59jKNd4Fifv2duLU9YVZ+TyS7jyt2m9l/9l169z9PrDGfefDQ1ZXdmY2w3qtm6qTXf3Q71msDxa v735sIJTIpVI/TZMN/Ns86ExD7+z9QQn5T1FVdl92pAOM0cAQMymY/H7Q7l5HGV1NddJg9ynDsGt 8CMcaK4sPPsi/LFMKrPr7eiztC9ZmQIAIr4oak340/PxZdnFakz1PluHWXSyBQCpWBoyet+b688p qkodpvm4BnaST4xaF/7oeJyILzLzsPZbM0iNSVeQaczWa/GHYrl5pcrqKq5/dXKf1EU+PWLeKXUj RmFK3suIJwQSofeWYVZd7AAgNfrVlUVni9IKGCydbqsGmrpaAADnbX7Y7JNZj97JJFKDVia9tw5n mGoryPR9fFro9GOlWcWmbpZUunLVCfbD4JjoLVdL3nP67vjTYZBz1fKPT92PWhfBzSslUykt+zl1 WzUQAIL7bDH3bJ56+2VZbqmaDq3v9hGazbQbpusiVQAAIABJREFUuqaR/1zMS84acqTyCc6kkPu3 N16ZHIfDvaKfz6ubkTc3rS1MSyORyVadvHqv3kCiUNIf3AtfssCK3Tn1bmxFUVHbocPdx44HgFvb NhVlvBPx+QVv30jF4m4Ll5m7d6gr5bex0aemjJ95L5FEpgBASXbW5g4uM+48pOvqNaiEErHowpy/ U6JviXg8dUPDrguWWHZgF6S8OT9nhjbL7E30Le/Z8x8cOcjnlo06foamwwSA5KsRR0YNE1aUN/fu 6rdsFUVZGQDeJyWGzptVmpNl2s6VSqORqZVHz5jdO+NPHOHm5yvT6a4BY+Vrir7c65sPjwcs5RWV GrS06rdttoYREwBidoTEHwnn5hcp09Vcx/VzHz8AAKK3nihIyRALRJzUTF4x13VMH9exfQFAIhJf Xbrn8dkbKgx1t8B+9eZYnJEbNm/b+/gXVLqqx8RB7Ub2ULx8wrGIqA1HpRKJwwAvEoVSNX2759iy nEIVTfq0ewerJlYUlYb+vSk97olEJNY00eu7ZZZBS8v0e0/D/7fDqnO71NikiqLStiP85GtUZ9CK xBf+3pQS9VDEE6gbMrsu/cuS7cQvLV/v8MeYsC36duaVJ2OuI73nj7brVWe/OCvp9aX52wveZACA vp3F8KMrKCpUBYVJjX10ZemeovRshqlBt+UTTF3s5dPfPXh2feX+nKcpMqnMvIPjkOAlGLc/5wUc Sl1TMhPeFb7JbznQCQDUjTR7bhksn95yQJuzYw9j7SGEEELol0H+EQqha6M/+szE9Aepx8ccmBY9 70t+cv/wncCLU+m66omnHlyYc0r+q6cXH11dean/lqGm7cwqOOUyWeVAqUYOJi26tdQy1U6/n3pg 8C5bX3sthRfLEAIA3Rb6o6+PT7+TdnzQwWlPZ39RWO6NC4yeTNenJx5+eGHiGfmvnp5Ouvq/8P77 /zBtb1ZRWC6TyirD0smkRW97LXPt9NjUA1332Pa00zL/LcKSoqI06NCE/d4rLTrbcVJyX0YkTbi/ nFD3k+lOAWynAPZa0ykDgsdXH5/5yam4uzuu+ofPVjfSur7o9KkRO8fcXCCf9SbyqY61/rSnawlE oqCsciBWYTk/MHrJapNJpu7WIy/O2tdlpeL7u312BQi5/BXMwE+38p4bgTGL6fqaiYejL0zYP+3Z OgAwaM2akrT6ytwTvJKKqiVNXCxHX58fMmIn08YAx2dG6D9rzO3MR0fuSr/z+PjAudOehXxRY77n XGDMv3R97cTD4RcmrJb/6unpyKvzd/Q/sNi0fauKwhKZ9MM5hpNti96eWuZG6bFJB3wn2fbsqGVu hNX+37r8vzPc/LIpDxbLZLJjQ4Oi1oZ3WdQbAC7PP539OGPYsb+0zJic1Hx1I4Z8+dfXng3YO2rg 3oCMh6n7/TY27+6gaaIVu/3amxvPAyPnKGuo3FgVdmLk3tHhMxRkatTGtEXP1lpmzPS7bw703Gzr 56BlxpTPurU+on+Qf69NQ8X8yg89FL8rPDYsaOixv8w8rF9eeXL0j51THyxRY9JpeurtRnWw8moB ACdH/XtjVVj/oDqHuBQLxCdG7PGY5uMyxjMzMX2/36Z2ozzks9r6e7T19wjqtLrG8nzR2QmH/ro5 V9/euKKQW5pdXDXrccj9sddmUWnKUWvDz44/GHCpwWvablSHzW0Wl+WU0PU1AODRiXtOI9pjKKKf EcOkWfelK41atS4vLNjb1y/p3Ok2g4YAQPazJ67+o7vMmsctyN/ZzcvQvpWZmzsAJJ07PfHyTR0L y7R7d4+NGTkj9oGyukatKZu7d1DR1Ey+HGHfoxcAJJ09Zcnu1NCbuwBAIlNsfbp2XbBURVMzJmj7 hdkz/r6bAAAZCQ+H7N6vZcq6tnbl9Oj752dPf3H1ctuhIwDgfWL8pGu3JSLRoT8HR+/a1nn6LLFQ eCIwwOOvSS5/jsp8krR/UJ92w/780Hdu3aJrdy1TVvr9uAND+tv6dNMyZWFgfLmXV++Oi9hGpauG jFl+c/3hPptmAICRo00LPw8tlmF63JMD/WbadmuvxTIEgEcnrwWc32Dq2rLwbeb2jmOad2uvaaz3 8NCl11EPJ0btUdagnZu6XnF2Uon0yLAFDgO7DD24rPhdzr89pzFMDRS8g5ubnBo2d3vA+Q1GrW3u HwjNff62atakW3tfXouLWLCr+vJ3g84QiMRZj08CgZCV9ErH0kQ+PfvJG9fRfbrMD+DmF+3s/Jdh K0sz99Z1Bi2FbNu1fdelgSqa9JhtJy9M3/B34jFldTWHAV0eHgrrsWYKALx78IxfzG3eTdGxI3zB Dvs+bLexfUV8QfbjNxQVqoLCFGfkHhu5eOihZWbtHV5eizs6YuHUOwfUdDSLM3IPDZrrs3jc0OCl MpmsNCsfg/bXc2frjbaj3T+5AQwAGffTjJxMsX4QQggh9MsgNn2WGQ/T1rZZKv93cd6ZxiXSqrcj XVcdAMzaW3LSC8VCMQA8PHav/diOlh2tKSoUDSNNTePKV+7M3CzkN3RNnc00DDU56YW44dGnYRmX vpa1XP7v4uSzjQzLQa3p+nQAMPO04LwtFAvEAPDwwP32UzpadrGmqFI0TDQ1TSuvJpt1NJff0DV1 N9Mw0eS8/Y3CUs/e2GvpgJA/d16YeGBA8F+qWrRGJBJ/4JbLX16azXSIJKLbZJ93ca9Ls4rkswgE 6Ly4P5FMIhAJyhqVA7Hq2ZmQlSl0fQ2jtuZ0QwY3r6SxW9lV/kVeM09bzts8+VZGCP0wjfmTtaY9 5f8uTl7X2N28C11fGwDMPNtw3maKBSIAeLg/tP3UPyy7OFNUlTVM9DRNDT405o7yG7qm7g4aJnqc t5m4Ff5bUok04ejdTrO7K6lRqTTltiM9nl5IkE9PPHa32+qBuraGZGWKrq2h8ofB8/XsjVr2b0sg Epo5m9P1NQte5QBAwpG7Hab6qDHpJCVypzl+7x+m5iVnKcjXzMNafkPX1M1Sw5jBSS2omtXM2cKm a0sAICtT5Jcak0Lum3WwNvOwBgAb35ZqTHpKVDIAKKlRbf0c5IvZ9W7DeavoonNmYrqwQuAyxpNA JBg7scw96xkfgqREVjdkPNgfXZiSp6pN07c3rppl17sNlaYMAE4j3dPuvKko5DZ0TdUNNa197OIP xwJAaXZx+p03DoNdMBrRz4hpaWXi6EQkkei6embtPThpqZXdZhLJoe8AAKDpMJt7+z6PCJNPN2nT VsfCEgBYLm5qOsyUmGgFiTuPGPXw2CH5/x+dCXEaPLRxhbT17a7KYBAIhFa9+5VkZ0lEInnB1LR1 GM1M9WxsyUpK6vr63ILKNsRlZICSqqqKhobLnwHykmcmJQorKlz+HEUgEo0dHKu/dmzm2l5+Q9fU 2VXD0IjzLg2jokE8Jg5S09YgK1Fsu7nnv6ysPbP2DvIbuqauLTWMdDlp2fLphg7Wpq4tAUDb3Iiu r13wOgMAkiNi2w7vTtPVIlOV2v81oL6rK8/Lcgs8Jg0ikohaZobNu7Z/FnpLwfIvLt+x8Gxj3KY5 gUhwHtWLSlNVnD7D1CAz8eXzSzFSicS4TfOqW6pEEtFhYBcAoDEZzX3dnodF1xO03d1VGeoEAqFV /84lWfkSkRgAnAN6JZ2JFFbwAeDRyWsOA7uQKGTFhUkOj0m/95SiTG3mbPfxqlZthUk6fd3MvbVZ ewcAsPF2VdPRTLkVL5/ezMXe2b+nsgZNRZOu18Icg/bnPOdPXWs2X/7v4pQT1WeVvC96cemJ87hP XwTPefw+bkdUlyU9sfYQQggh9Mv4D97fNXQwHrLHvzL7z56nU6DqxUcAoOmqV57KE4kAIBVJQIlc klWkxdL5/IdPLiQmnnog4osIRCI3v6zqnRuEPoZlG+MhJ0ZUhqVKY8NSn17VwwQAqUgKVCjJKNay qOXF3CchjxKPxIt4IgKRwM0tk8lkv1WFO/l3vLn8LNPWiOXRyPGKSzIKb644H73ukvxPJTVqWU6x uiEDAOgGDPkmqI6kRAIAApFIUaYQCITqG65BaAaaNbeyGKhk3IMQ+mEa8+ZDTq78cI5BbUhjLq22 m+t8tptTSjJytSyMa2vMryUeDhfxBAQikZvLwXOM/1x5fplEKD7Yf5t8ZAipRFo1XSwQa394p7Y6 jQ8v8gIAiUKSiCUAUJpZRP/Q4JOVKSoMteL3HF1bw7ryfXLmYeKxux8O66XVD+saxoxPFi5+z0m5 +WKtzVz5nyKekJvPBYCy3JKoNeF5yVkEIqG8gEtVV1awptzcUjUmnUCsHACDpqeuuGYIRMK4a7Ni tl7b67veoKVxt5UDqlan6lkoVYYaAHDzy1S1aQ1dU+cxnucmHvb8u1vSyXvWvvZqOjSMRvQzev8o IXbvLm5eHoFAKExLbd1/YOWppqoakVx5yqeqyShMq3zrsfrbuqoMRtUt1Vo5DhgUuW5VYerbiuIi fmmpdacujSihRCyK3rntbcxtGcikYknVIUw+0C6BSCRTqQBAIBCqDklq2jofOtG68hJy8/PVtHUI xMoTZhpT9+M+Hnou8dRJkYBHIBC5+Xl4XGsoDcPKAw2RQpaIK58EfXLuZuKJKyK+kEAkcPOKqmqV rqdV9UMiiSRfnptXRNer7D/SdRn19Iky8wRc3rqWlcPPSkQiVnsHRceOPE5V4gQiQU1HU3H6bYZ2 VdGk391z5tK8bW6B/T0mDZafHSmpqRDJpMrI11IvVPh8m0Qkjt524u3tBJkMqgetnq2Zvp3Fk3M3 HQZ4PQ29NfrCRsWF6b1xxv0DoeenbyASiV3+F2Dbzf1DT7CWwhS/z0u5Fb/WflDloZYv4BYUy6dr mxlioP785/zNhhwfU+sFnLgdUbY9W9H1a5wXFaUWHBmwu/fOobotDLD2EEIIIfTL+A9uS5AoZJrC D5h97OGQSVJxZc9HKpFyC8qqZtU6mqu6vkZxBueTiRkJ6RfmnAoMm8q01AOAde2W4VZHtYSlEomm 92VhSSFKRdXCMq++sDRUL04v+jQs77+7MPFMYPRkZnNdAFhn8c/vVuHXFp4ybMPivM1LOn7HYcgX DOH4WdVqGGu7Te7qPK5zE5e87pGk61qegPsXQk3YmFNoel801j2RQpaKxNUa8yLFu7m6oU5xevZn jfmzCxNWB8bsYzZnAcA68964Cf5z8jduA8KmM631a0zXoZMopKJ3hZ/fuay6RVrjKGOiVZpVDE4A ACK+iFdUXjUwzOcyHqZemHIk8OZceabrbOv52oiGEcOma8tB+0d/Mv3cxMOMZtr+F6aSlMjxB2Pj j8QqSISmSy/PL5NJZfLy84oqqGr1PNNA01XvuqK/96LeMduuHxqwfeazyochynIrx7QozSqGao9R NmhNzTvaUFSUUm4mJ4U88F2GXyVAPyWJSHRw2KAey1c59BsIAKenTqiaJeCWiXg8iooKAJTkZFfd EOXm5VYtU5qTTWcyFaRPpdFb9e6XEHJcWFHeesCgqhvGDXJnb1Dy1Qj/o6dVNDQKU99u6VT/iTSv uHI89orCQnnJaTo65YUFMqlUfouXV1xMVVMDgIzE+Atz/w4MvcK0tAKAdS6tMSoa3FkgfvqYaUZ8 8oUZGwOv7mBaNQOAdQ5/KO5a0JiaZXmcD9uurJ4DiiFTlaE++2nIFxZPjcnIevSqWmyU1vsT2+7u tt3d81+/O+6/RE1H02lYNwAQlFWIeAL567wlWfk0hfeh7+w6nRxxx//UWhVNWuHbzC1u/lWznEf1 jNtzTkWDpmNurGdrprgkZCVK+8D+7QP7v468f2L0sgmRQdoWxnUVRsOIaePjOmjPgk/P6Ax0Mh+9 xED9JS7g1HK6IuAK4oPvjgybWH1iSUZRcM8d3st62fZshVWHEEIIoV8J8UcuHNNSNyMhvSiDIxFL YoKixPx6xkF1HNguds+ttLgUsUBclleam5wNALziCrIyhcZUl8lkCSfvV78bh1BjwrK5bsb9d0Vp HIlIErPxlphXX1gObxu75XZa9FsxX1yWU5b7NBsAeJwKsjKFpk+XyWQJBx9wc36vsHx99cnjk3f7 /TtuQPD48L+PcFJy6/2JuiEj82EKQOUT3wDQdkynO1sishLTJEIxN7ck9Vbyj7my6oaMrEfpUolU JpM1+qVhhNC3b8xtWBn3nhWlZUtE4piNR8U8QT2N+Qi/2M0n0qITxXxhWU5h7pM3AMArLCErU2n6 2jKZLOFgGDcHPwDxA5zakohOw9tfXXSu5D1HLBAXpRVkPXoHAEQysdXAdhHzThe8zhULxIUpeSXv OQrSaTvSI3rzlbLcEjFfdOOfi4atTZnN63zhg8cpJ6so0XTVZTJZwpE73Nx6Lpe3HuyScjM5OeyR iCfkl/BSo1+J+CJ5OnQDDZISuSynRPHNXQAwasOiqCjF7YmSSqTZSRkpN54rXr48vyw9LkUikpCU yDoWuhKRpGrW41MPClPyxALx7U1XWO5WqlpqjVtT5zEdY7Ze4xdXWHSyxVBEPyOxUCCsKNc0NgGA zKRHb27frJolk8mid22TiEU5z5++uHq5Rbce8umZjx+9vnVDKpEknj4pKCurPtBxrZz/HPX88qUX Vy+3GdTIwZkriorUGNpUGk3E59/ZG/QlP0kIOS6TSiViUULIcbtuPQDAqHUbiopKXPA+qUSS/fRJ SnRU5T5eVERWVqYxdWUyWULI8ep3r1Gj8TilZGUqjaklk8kSjl3m5nIUL9+8m/vDw5dKswvEAuGd PfV8OcikbQs1JuPGmoO8Yq6wgp/zNKU4Q9FWs+3aPuVWwrsHz6QSafzRCF4xV3H6aXcec/M4AKCu r6OiQZMIRR/3iK0nJCJxztOUF5fvtOjRQWHQlqppqVPpqiK+4M6u09VntfDrUPw+9/6B0DbDutZb k6+u3ROW8wBA29yYSCZJJRIFhWk90DvlVnxyeKyIJ+CXcFNjH4n4AgBo1bdTavSjhGOXBdwKfml5 RnwyhuivJP7AHaatfvWP7JZmFR/ovtV1vKdNN3t+CY9fwpOKpfxSXsjIA5y3BckXH1+Zfx4AQief SLmJN/4RQggh9JP5oYcVterU3KFvmyC/zSCTOQ5sZ1nfd8Uc+jsJK4QX558teleorK7iMaGTnq2B ZUcbK3bzzR4rycoUx4Ht7Pwqn9cT8UW7e2wBgJKs4rAFZ6+tCnca4uI2ukPavbdh/zsr7yrs7rmV QCT0Wj2gWVsWxgqqDEsfG4chjkHu20AmcxzR1rKLdT1hOayNsEJ4ceq5olSOsoayx99sPXsDyy7W Vj7Wm1usIatQHEe0tevXsjIseaLdHtsAoOR9cdi089cWRDiNcnab5JEWkxo29Zx8kMndHbcRCIRe 2/s1c/spw5KbW3J2zJ6+u8eoMdXVmOrtp3YNGbFzbNRCkpKi5sh31R+hk4Oj11+i6WlMTlwFAPb9 ncU84dmxezkpuSqaavYDXMw8v9nV5Oyk9DMBu+W3Y4O7ryWSib6rhlj5tKxr+QsT9mfce8PNKZFJ Ze/vv2GY6Q47PU0+y22K76kRO1cbTVTWVB0aMlW/VTPciRD6IRpzX1eHob5B7QNAJnMc0d3S26W+ xryrsJx3ccr6otRMZQ26x8zhei0tLb1drHxcN9sOJKtQHUd0t+vX6UNjLtjtMRoASt7nhU3bcG3h LqdRPd0mDU6LeRQ2db38OZXdHcYQiIRe22c3c8M3Cb6xrv/0v7kmfF/3jdy8Ug1jLc+/uxq2bgYA fmsHR64IPdhvGzevVMOI0XvrMI26X8l1/auTiCfc02WdiCdkuVv9cXisgvEYLDu3sPJqsdlxEVmZ 4jjUza5PG8Ul1GymPfzUxKuLzp0df4hIJho5sQYHjwGgeC/pEzr92N1dN7XMdDwme8fuuK7oJJ5K HnI4MHTGsZurw0zambcZ4V41a2eHlVKxhJNacG3p+ehNV+z7ObFndRcLRFcWnCl4nUsgErTMmIMP jPkY3oNczk86nPs8y8DBpN/OP+UTQ0bvy3ueVZZTQiASXl9/pm9vPGDvKMVr6jjE9fqyC27jO3/+ lQSEfgpUNZrvgiUnxo+RyaQsZzf3cRP4pZVvt6sbGJCUlDZ1cJZJZZ2m/W3mWvnWbHOfbknnzpye OoHG1P0jaJ98uObYvbsST53gl5VWcDjbfTwBYPyl6/Lxk/Wa29KYTJCBjrmF4sKI+PzdvXwBoCQr M2zh3GtrVjj9McwtYJzbqLEhkwPXtGmhosnwnv2/5KsRitOhKKuwXNz29vUrL+KYubb3+GsSAJCV lIbs3h86f/bNzetN2ji1+fAlYMuObCvPzps7OpOVVRwHDLbzww9VfgOWndpadW672WUEWZnqONjH rldHxcu3G9mDk5a1s/NfVLqqx8RBT89HVTbL4/7Je5FWlltAIBBf33iob2c+YNc8Ipk04tg/lxfv 3treX8QTMK1Ne66dqmmiV1fiei3M/VZNPBW4UiIU2fXqaOZe+Yr2w8OX4vaeF3AruHmc7R3HAkDA hQ2qDPV3D56dGr9SWM6jqCjb9fBwGt69co8wZJKolE3Of8qk0k4zR8g/cyviC3b7TAKAksy8sDnb ri3f5zS8m9u4fm5j+4YE/rOmRX8VTXXv/41Ojvj4ABOJQnYa1j1216khwUvrrcn4oxFnJq2RyWSq DHXvBWOY1qYKCqNpojf82Mqry/aenbyWSCYaOTYf/O9CANC2MB52dEXkqgPhC3YSSUSrzs4mu/GZ pF+EVCKN2xXls6zGgDqJR+5x3hZEzD4TMfuMfMqw04H6LY3Sbr/m5pUVvMpNv5Mik8lSo18bOBhb dLLBakQIIYTQT4Tg7e3d6B+PGzeuT58+ChaIjIxca7SbreGOFY1+KMHSI/66Q36j9c0m+1OH1ZgC B/3V7ZuuAKKL/qpuGHgIoW/ctgg5/krOWA+/tijxO4BbbLKTokgoPeuvhDchGrsf9dli26O1yxjP r0+KX8Jb32LexNgFDJYOVmzTbUHJM3+VLsEZIha/TaSDxfLCEwAQLNjvT+tVyw4luAcSMlvZue5z tjh/Wt/gbJE/tc5bUAuNatw68iqYw6Z+fE5lIX2Y18vpbHrt4/pGcWPrmtWQxl/gr92vZiUc86e2 akjD8iqSNr2y/EkpbM16Phed/uDe8cBRcxM+fUv+1rZNOcnPBu/8t0Hl39uvR9uhIxwHDMbobXwM FMaA5it/nTb1b2vBm0jmxEZk4VUygk2p89mvhaqT5P9Znnf9N6z/9HtPj/svmZt8+pukdn3l/tKc wn5bZ/0Ihfmhw15015/uDADBmS/9NR0VLLnQ4OPr1F5P+zbBFbmokthI+3N17k3cE2xys9rP8TL3 sem1nIFEld2KtLlW9efyiu0/6EZ5x/X//tUbLDviT69xUI4qeCs/8gYXHfPX6QAAwcL7/urdGpwy J9tfve5TgsJD/hoNObZy77FVx37lyi406IjHOIQQQj+v2NhYNzc3WX0IBEJsbKyXl5eCpM6fPz9w ybp6cyRjpSOE/nMvLyVemnHk8+k2fq39No74lTJFCCH0kyov4O7uvPrz6Wo69MAbc37uTGXf4PMB Mqnsxqowyy52eHMX/Zrq2E0auvc8jwgrznzfslflN6pfXr96afH8Wk5Hu/j4LV2JtY4a2c25Gndp Xi33w2x8Xf1WTvpxDhwAwEnNenjokv+ZyktX5YUlu30m1nbU0wi8suN7FwYhhBBCCKGfC97fRQj9 92z8HG38HH+HTBFCCP2k1HRoMx6v+B0ybYSrS849PBBj0Mpk4L4ADBWEavXi2uVzM6eqaesM3rmX rKRUeTraxcemiw9WDvrG3RwfVxsf1x+8kOWFJds8RhNJRK/5o/TtzCuPetoaM+KP4BZECCGEEELo S+D9XYQQQgghhH5T/uenfn0iPkv6+izpi5WJflWm7VzmJiZ/Pt1z8vQvT6S5d9d5SS+xMtGvsEe4 2M99ceYrE1HT1vgmgyp/k8IghBBCCCH0MyJiFSCEEEIIIYQQQgghhBBCCCGE0E8B7+8ihBBCCCGE EEIIIYQQQgghhNDP4buPz8zWcMdaRj8aFrXZ77W+RNNPpwCrSQtA0saoQwh9h8ZNCSvhl8cmNwNw qi8SDLGi0O/bEhLUAYBFYrI1adV2CrPadyiqC0hJilIjGwEAi8hswE5KbfXpFHrr77vKSsafVULD zu3ZZOuP/69Wb+inCXtlJaAyviw+LRt59KG4YD2jH+y8t7JPzVKhNyCSm+SKnOJc2ORmdU6ne9Y+ q47pP9xGUW2Kb96xwLTOWVTmh/DQatTxVEXRXIpGw8KA5gJS3FMRQgihJkXw9vZu9I/HjRvXp08f BQtERkb6+vpiLSOEEEIIIYQQQgghhBBCCCGEfj2xsbFubm6y+hAIhNjYWC8vLwVJnT9/fuCSdfXm +N2fNfN6Go/bFf1o0iRvWCqi32h9ueEsUmmNKQbTWcqmTVcA8UsWoRwDDyH0jduWkksskgbWw69P vZ5BINIE2iyCHdYTQpHMTst5L6JEBYr2F2k5i6hW99x4FrFCwc/ZFNuFKjUe8PV67lejDC0ueXEe 1Pl7ogAIkq9t/AUvWATxV9fVxA/d1X4YOT/fCQAwWGrOX7qtzQKr/r+8eFcU//6XnWO4s8jGte8F NP2FepUvqS+vyIwSleIWQU0R9rwJLBIVANKkGiwSq85WmtpqIX3Y8owNwSWpLDV3YD5oogMQbWNd s7ySdtT5M72HdSaof+DjnpsXG1X+7kfcKIU7G/qSa2NyEWV/cvUmTZbLUjUHgDShLUvJEwDSSDdY SqoNLz+HRdapc66YyVKxbViCqtdY6nmNXlM2ufVC5T9xZ0cIIYS+XFOMJcLWYGBFox9KMAfYdNPf aH25wNbsUGMKAJvSdIPRBYuBrWSCgYcQ+sZtCwBb1RHr4dcWVZEIAGyKotu3wYIcNlUX6wr97juL oPKKKpuio3B/KVewQLAA2BTbhmbNVq+e7z9VAAAgAElEQVQ8z4wqja6colT7QJFR4mw2hfmVaxos eNHoQXc/1NWbmt1V/KLQz3YCUPKcrWbxRdu6POXTcFV2/rIsgE3T/6L4p6jjFkFNEfY8YFM7AkAw L+nzgfEVhSi59fcuW5T4UT1l0Kyl0Y4qflPXLvn5cxhstR/xG1vBhZ9eafkuueSHfHKcCi4+y6a5 AEAwp5RN06kMDxWbhnem7rLVreucyyli0xp2OTdY2hTxhhBCCKEqRKwChBBCCCGEEEIIIYQQQggh hBD6KeD9XYQQQgghhBBCCCGEEEIIIYQQ+jng/V2EEEIIIYQQQgghhBBCCCGEEPo5/FL3d9Pi7m1h d1lubXdlxSrctOjLLTFh571I/cpEhOW87Z1GrmzePajr2BpheffRFo9hy829ryzbgVWNmsz+rhOf X4jCekAIfY0n5+7t9FyM9fDTid0WvLGl72JGq5eXb2FtINT0hOWC7V3Wr7RfGOS3+Zsnfmvr9RN/ HcJK/jEt0zLPefzsGybIzc1fpGbMLykFgLTouC2tOy7Xsbwyb/m3Sn9ra8/ki5er/ky5cXuXe7ev OgBt3b2xhdtierOXEdcxHtB/4vaWw2tb9lpl0+38dLwwiBBCCKFfHLmJ87u770DE0hVVf9J0dGYn 3PtWibNcXaZGXT8/ex5uV9T0lNRUJt08mHTm6t29p2qEpVvrqTFHz/+95pPlSzJzz05bmfHwmYah rt8/0yzZzr9PXd3dcTJizpaP7YCu1uy3YRhCjcAv5Z4YOt8/bOvns9jzAvTsLLCK0G/lbtC1iAXH P7YtTPXZyZUX1p+cvRe9JZyTmsdgMSfeXgYAnLS8yJXn0u++EpTxjNqY91w3XNtCHwC2eyzMe5FZ PdlpD1drsXQzHqRcX3HmfcJbFU01t/E+7hN8qxb4PHEAOB245/GZOPn/jZ3Mx11ZIP+/VCyNWn/h Ucjd8vxSxyEePdYOr5wukd5YdS56S/icF1tUtWkAUFHIXW0zpXpJ1A0ZMx9vqPqTV1S+3WOBfR/n bv8MUVyYdfYzynKK5f/vMKW796IBAFCaXXR16alX1x4TiITmXVv3XP8nmUpRXMO1Jq6gMKgunNSM yBXb0u88FJSWGzm17LlxgbYl6xum7z7Z332y/+bW3bCqEfqP+gXUSddnJp2Nv7svGmsDfbPLHR1c pz66fX7CrO+XhaFjK+9lc7/qADQl0H1K4OaW7ri90Hc8598TErFwa7Vzfq3ZT0Pl/y/Nzr+xZu+k 20e0LUxEFXysK4QQQgj92shNn6Wpc7uRRw9W/kEg4DZAP4Qmj8Sz01YyrVjDDq55E3X/ZODiabHH 1HQYv099m7Z3GBm6BduBr5QWnSgVS2qdZe7phPWDfkOmrtYjz/z9Sdvy+HRc5KpzfbcFmLSzBJlM PrGCU27kaOa3ahhFTeni34cuTAsOuDgXAMbfWCz7sExq9IuwOYcZzZgA8O7+67YjPYefmFaYkvOv 3yrjNuamrlZ1JQ4A3LySfjvG2PdpBwCEaq3cxVmHizMKRp6aoWWuJxVJPhSGe2Lkdg1jbVm1FFS1 aYsyd1f9eXPthap7tJVJzT6sbqhVfUqthZHJZOUFpTMS1tL0NACASCLJp+clZ+pY6Hf/Z6gMZIcG bIjdftnz756fHRsJihNXUBikQAWn2KiNvd/aeRRV1YvTl16YsiQgPBirBSH0o3Zc0K+7sWt2xFQY mpZenljr6Gc453cYGbLp8zAuzsih0mk6ls0AQElNBSsKIYQQQr+2/+D+LoFIJFOpn0yMCdobf/wE N79AWZ3uGuDvPm4MANzauqMoI0PE5xekvJWKxd0WLzB3bw8AwUNGmHu0T429W5afr6at1Xf9Gk1j 47qyi1y/Me/lqyF7g+R/Jp09f3vHrsmRV3Dbo+qSL0cfGTFHWF7R3LeD38ppFGUqAIj4gqiNwU8v 3izLzldjavXZMMeiY1uJSHxh1tqUWw9EPL66oW7XxZMsPds1NDtuPiftzqM/9i5XUlVu0b1j3L+n ki9Htx3e6ze6UkEkkpWVqk/Jf5m2t9O4UeHbDFrbSISi3Z6jHf7o6j51aF0pSMWSqDUHHh0NF/EE Zh3a+G2YocZkAMBSRscem2Y+OhrBzS8ybd/Kb8PfFBUqABSnZ4f9veH9g+dUdVWPqcPajekL8H/2 7jquya0PAPhvvQEjBqNj1AVESYMSh4jY3dfAvnZjJ9cu7LyK3YhiK4oiBiomYlHSNWpsg9X7xyZi MNT7XgT9fT/8Mc7Oc87ZOec5T58H0uMSzk5c6dDZNynqfnl+sYW3S9fNs4hkkoqSv7/3/Nqi7TnP 3splMiu/pv2PrAAAQWHxhRmhydEPSVSKc79Av7kjSBRyTYmryDTlVvzluZuLUjJ1LE3ar5pk4elc U6aiEv7JYQuzHr8WlfJDm/QGgGYjuiuq6+GeMzHrD5Sk53bfPs+538dHDHOev7swfV3uy2R1tg53 ZpBT30AAiFl7oODte0lFJS8pXVhU5jG2j8eY3jggoIY8thC+fAj1+sqIzqsHcbzsqgeaulmaulkq Ptu3d72ySDn1Aon6cdfo/j9RLYb7E4gEAPAe104RaNjY3NDRLP9NluL67lcTB4CyvBIWh/1ZYUoy eS9O358Sv0qNpVE9LxqT0TSI26iT+9MTdz/ZS/uwuFhU+ejgrSEnplV99Tz8vqCgzKqlg6RCrPqX Cnh8ApGoZaZL+PQcrk3rxjatGys+27Zxynud9WELVRoxcU/6wyQWR98u0EV14ioK87M82HM8M/55 UUoGP7/Qe3zQna37WZZmA45sAoDi95nnpi/NePicxlT3mTSs2bA+ikWeHT8XvWo7P6+QTKM26dm+ /YpZACCXya4t3vD0eGQlX8BgafvNGuvSvwsAvLly68ayLYXJ70kUsm1b364bFpGoFADIevLy/PSl ojJ+4btUmURq2NhubOypmjI1dW9i6t5E2f06tL6yYK3qH7XEwL3TmnmP9p0UlZZp6Ov12LFMy8QQ AHJevL4QvDz35Vt1Nos7Y7RTn06q00mIuHxjxbay7Dy2nVWHVXOMXRoBgFwuvzJ/7dtrtwW8Yn5u AYVB77Z5SZNeHXA8Qb8nsVB8eWnkqysJcpncsaNT2zmdyDTy1eXnee95fbcNUg4ap+OjN16beCNY KpGeCT6RdOuNWFipaazdbn4XG98/fiDTrOcZ5xecLkjKBwDDRsYD9w6nMCjp8WkHBu2ak6Cc+yoi +DhDkxE4rzMASCokh0fsTbmTpGmk1XFJNytvW2y4+uPttZtHBowUFhYZuTTpsStUy9QYAG6Hbnu0 9zA/t4CuxfQYN9x74mgAiFm7peBNkqSykvcuWVhc4jFmuMfYYQAgFUuuzA15diyCoaPtOWFkrTkW p6Wfmzov48FjmqaGz+QxzUYMUh0/ft+R6BUbZBKJc78eik2YwuZm/mXZuQwdrcnPY6vtRRSdHR+c FhsnrazUtjDrvmOdkXPjtDtxF6YvsG3rl3LrjoBX1HTYn4pfVBOpWHJm3IykqJtigVDT1LjdigU2 /q1EpWVrbNxHREUYNmmkiBbq5BOwaJZjj69vy1RkejF4oaapceHb5NcXrhJIpK6bV9m29QOAhPBz N5atK8vOZdvbdlizxNjVCQDCOvaz8vNJiY4ty81T19Ptvn2ttoUZ9tuGuc//yfmEvFfJkcFrijNy RaX80BZ9ASBg7l+OXfxiNh5Mf5QwYJ9yrubQFn3b/z3JLsBrf79pHE/n5FuPBEUlMqms47LJlt5u WLEIIYQQaljqy/t3TZydBu3fO/fl014b119dvoqX9l4R/jQ8wm/yhDEXznZcsvDoqLGi0tIPB9Vn +u3cNv7qRUsPj/ApqmYoavbngLfRt8pycxX/Pjl12r1fH2x49JmM+Jfjo/dPunMk91VSzOZDisBL izanxMb/uXf5nNcXBx1YZeLiAAAkCtkh0Gfc9X2zEy8492h75ouJl79FQVK6GkuLoa2p+Jdta5H3 OvU3bwK2HSdw2fgTwxaJhRVXF2xjGrG9Jqqa5DN2w+F31+6PvvnP9NcROhyjo3/OUYTLZbK0u8+G Xdk64eGhkoy8mHUHAEAmlR3sNd3CyyU4+dyQM6E3lv3zLipOET/3xTsSmTzy+q5xcQfT4148P3lN 5dmT7P1dJzfu5T81MXxqYnjruSMU4SeHL6ZrakxNPD323v6MBwnRy/eoTvyr4cVp2Yf7zgxcNn52 xmW/OcMP9ZpRnl9UU6Z0LY2Bp9b6zRlu2tRx8vMTk5+fqLoW3nRY1ynPTxo2+eRMX0VZ+b4uk9yH dp2VdqH/4WVX5m9NuvFAOSoeutB8ZI/Rt/YMilh3ee7m4vc5OCCgX0lpdlFRWn5uYsY61xkbms++ s/XzG7yK0grubr/qO6Xj5wP12+y0u2/cBvp+Fl5ZXpH3KtPE1VJ14hWlwiODN/9tMWZb68Vvrj1T BKbdfcP+w+hqyMlVjaZsa704KVr5ij4SheTU00MmldX0K54cu8O2NTJyslD8W5ZTfPXvU902DpOK JbX+UlGJQC6TrXKYssx6/IG+6wvefWUdz3iYpPhFAHAu+ABNgzEjYf2AgxOfn75fazV+tTA/V2Z8 QtC5PUxD/TdXbo27ezr7aWLhu1SZVHawzzgLL/fgtzeHnN55Y/mWd9fvAIBEVBE+Zm6fsLVz3t8d fy/CdWB3RSLJt+4/P3Vx/P2zc9LvDTm9k+PTVBGuY2HaYfWcWSmxY2PDU2MePD2mfL9A+F9zWozq P+H+mf4HN2ibGSsu7taUabXul3l32wHfaaNq+UlyecKZK8MuhE2IO6tlZnRjxVYAqCjj7+s20n1I r1nJMf0PhF5ZuC4p+q6KNNLjnkZO/bvnzuWzUmN9Jg3b121keUERALw8e/VtVOxfN49PS7hm6t6k 05q5eHEX/c4uLTlbllc68UbwxOiZua9zokOvAIBrn+avryWIypRTfT4Jf+TWpxkAkMgkh7aNx12d PvtFiHN3tzPBx38s0wsLIxp3dpn9bMn0uPn+09tRGLXMlv/mRqLnsJZzEkJajfc/OmqfqFSIDVd/ vL5wdVR0ZHDqUxpT48Yy5fOFJu4ug04fnJuT2GvPpqvzlvGS0z7sh59oPmLQ6JgLg04fvDw3pPh9 BgA8/OfA26s3x8VdG3vvSurte6qzk0mlB3sOsfBuEZzyeMiZwzeWrnsXperN67kJr85Nnddn/7Zp r+M0TYxyXyRWfTX+QVSPXZ+/Mfrupl0EInFG0qNZGS+6bFqpZ6t8/0v20xe61pyR188Mv3IqNnR7 yq07KjIlUcgOnQLHPYianfXSuV+PM2NnAABdk+ncr8fDfw4q4ry/91BUVGLfKVBFOioyvblig137 NjOS4ic/u23p6wUA6fcfRU6e0/OfjbMyXvhMGbOv84DygkLl2aSj4f2O7hr/IMrS1zN81GTstL8G fXur4We39tq2kKHFnHz/2OT7xxy7+KleJC4soufWBWOvh3mP6Xdm6kqsQ4QQQgg1OD/h+m76w0er 3Foo/iJnK19HZ+nZgmVhDgAWzZtpGRvz0pQHPGbubnrW1gDA8WihztZLuq28k9SxY3uahjoAuA/o m3o/TsArqik7TSPDP1pzHx09AQClOblpcQ+ce3THhkefaTG0B1WNztBitgjq8fL8TQCQSWWPj15o v2Sivr0lmUbVt7eka6orIju091XT0SQQCE7d25Rk5UnF3/24klggJNM/PsVOYdAry3+v8zLp95+v suqk+IuctEoR6B7UxbCxzcGe016ER/XYOZ+gct7m+P3nWk4ZqM7WIVEpfnNGZDxIyHuZrPjKdWAH AoFAJJPcBnV8GXEDANLjnpdlF/hM+ZNIIrKsTO07tUw4fb0qKc/xfQGAwqCZNW+cl5isItOnRy+b ezo1H9GDrqXB0NE0aGwDAGXZBe+u3fdfNJpMozC0mb7BQQ92n6418S/Dnx69bNnKzbKlGwDYtfdW Z7OSrsfVlOl3n2m6GKthoOvcL5BAJLLtLd0Gd6oqpLGbvYWXMwDoWpsxjfQK3qThgIAa8Njy4N0q h8mKv8hp+wGgJJMHAGJB5aT7ywcdmxK75dK7GwkfdkiS/rYYE9p0pqaxDsf788dS72y74tLPm675 +cRuZ6fus2vnatTEXHXi42KWTHu2ZuarDS2Gtz46ZEthUo4ifm5ipkMHtxkv1vnP7n5s2FZBIf9j 0vKv/yi5XH53+1XP0W2rQk5P3OM3o6u2ma5c9nGZmgqja2Uw48W6GQnrJset0DbTPdg/9LMLyQ/3 3yzNKW4WxAUAuUz++tITnwntyFQy00DLbYCP6sRrKszPpe9gQyAQdDimJu6NCQQC05DNzytMj3tS lp3nM2kYkURkWZnbd2idEHEZAEhUiqax4YPdxwqT0tR0dQwbK3uClomRgFccfyBcwCtmWZlrmxkr wtl2VmbNnIkkItOQbdmqBS/5PQDIJNL8V0nmnm4AYNbcuTg9SywUAUBNmQJA+oOnfxs3D3Vup2ls UHXxWNWOyqj+iqesrFo2z09MAoDXl25q6Os59+1EIBLZ9tZuA3s8+EfVtaX4g6edencwcnIgEAj2 HVvrO9i8CL8IALkv3pi4OpJpVBKFbOLWOP9NMo4k6Lclk8rij8f5TWpLVafRNGhN+7d4cf4ZAOhZ s40cTRIinwJAWV5pyp13zj2VL8JwaNdYTUeNQCA4dXUrySqWiqU/kK+OuW7ipRdpD1IodIp5U06t 8U1dzC29bAgEglN3N7qWWtLtt9h29YfP5L/U9XTJNKpD58D8xNfK0x0tPVlWFgBg4d1Cy8yEl5L6 YT/cycK7BQDo2lgyjQwL3iQBQGLk5aZDB2gYsMl0mteEUbUdVT0qy871mTKGSCKxrDn2ndomhJ9T Ef/VucvWrX1Nm7kSiMTmo4bQNDRq6ZyW5pmPnr48c1EmkZo2c6WoKfeLiCSSc/+eAKChz7bv2PZl xAXV6Th0aafG0iEQCE59upVkZEkrxQDQfHTQ06OnK8sFAPDk0AnnAT2rP0/8lbNXNWdq7tHUrkMA AJDpNMWBdvyBY059uxk5NyYQCPadAvUb2b04qXxFq2P3Toof7j70z9Tb9wWFPOy3DXCf/8Wqxl0U f5EzVv9YIk7d2zANdAHA0seNl5opqRRjxSKEEEKoYfkJ8zMbOzfpv3ObMns6XfHh+ZnIxydOiUUi ApHIz8+vOkVI12RWLaimo83PL/gQrvkhUAcA+AUFaqwa313afMig09OCW00Y+zT89B/+fuq6+H44 9Lmqd99qGOjy83kAUF7Ak1SKdS0/n/pbKpbEbD6UHPNQLpcrXn36A2e0qepqElFF1b9ioeh3ezeM sZt9/8PKKZLIjI+Xun2nD97qNcRvznB1PW3VKZRm5TGN2R9GEiqDpVWcnqvfyAoAGFrKcYPB0uLn FQFASXpuBV+w2lr5aklppZjjq5x8icZUr6p8AokoU/n8WXFGjq7V512iJDOPwqAxtJWZahqzBbwS sUCkIvGvhhdn5CRdf7DKqtOHXlHBVzy/+7VMv1dpZp7mh+oCAKYR++1V5dMATEO9jydNiMT68wQe Qj8ytrhw+u8bXzUyAACRTKLQqa2mdyYQCCxLfYeO7ikxiTZ+jgBg1tR6Xto2UYkgbs/1XYFLp8Sv oqorhyNBIf/pibtjoxd9lv6VxSdKMguHnJquXGVqTpyhrbwlyO3Plg/CopNvv9K1NiSSiZbe9n8E OAHAHwFOTCOdzCcptv5NVP+oN1efiYWV9h1cFf/G7blOppJd+3t/Fk1FYdT1NAFATVcjcEnfpRZj eSl5ejaGiqVeX34SvfrssMiZFAYVAIRF5VKxVMNAOQJr6GupTrymwvxcirPDxKoXghAIMpmsLDuv gl+++g/uxw1By2YAQCASR107dHvj3l0BA42a2LdfHqzfyBYA9Gw5wy/tux2658byrY7d2wYumcbQ 0QKAjIfPYjft4+fmE4jEwqQ0l35dFPWj94dl8o17boN7JN+8z7azojDoAFCSkf3VTAHArJnzvKw4 UUlZ3O6ju9oMmPLsMlVdTcWPYhqyP2w1SIoby0ozczWNDT5GMNZ/e+22yu1mrqXPxzdKaBrpl2Rk A4B+I5uEM1cqywUEIul93NOWU4bhSIJ+W+UFfKlYum/gTsVdhjLZx7thXPs0exL+0H1Ai2cRj61b /sHU1wQAqUQas+V68u23crlccevMj93p0nVV77j9dyJmHCcSiW1mtncIbPxlnOopq+t+vCbHNGDy 88uw7eoPxYTMAECkUKr2q58fj3h88IRYJCIQCfzcvKrWZBp+HMaJJKJieOfn5jEN9T+0L1t1diUZ WRX88tVWbh82NJUcX08V8fm5+VWJE4hEdX1d1em7De7H0Na+u2XX+anzPCeMVFxIVhzPEsnKs0lq LJ3CpBQViUjFkpi1m5NvxMjlIJNIAEAukwGAgaO9oVOj5yfOOPfr8eJU5PCr4bUeRNeUaVW1Vzv8 ybasVhWaxoYl6cpXUdC1NKsSAQB+XoEaniNqcPv8zvb99y6rvs//jeTVBnYNA92qo2AAkIklQKVg 3SKEEEKoAfkJ13dJFKoG+5OjlPT4x2dmzhl97jTbxgYAVjfz+nj4kZf/cQc9J5f5YcGyvDxlYHYO AHyW4GesvDwpdEZSzO2np88EzpmFrY6+JCxWTv0tKCzW0GcBgLquDolCLkrPVmNpVY95Z8exxEsx QcfXM7SYhSkZG7wH/EB2bFsLQVGpsLhUMUVz/rv3jbu0/q0qnEShVB1NVZFJpGcnrWo6rOv97Seb 9A7QszVXeerEoDQrD6ARAIiFFUJeibaZ8vxIWU6BoZMtAJRm5mkYsBSR1VhawclfuZld9VPCn9E0 YmfGJ34WqG1mIBZWCHgliq5SkpGrxtKiqNFVJP7VcC0TA7t23n32h3xLplUJfWPJtcwMSzPzqp3v yNMy/XA6iYADAPqVxhZy1SVJBR1zPbGosqJUSNdSAwBJhVhdj1k9Al1LzWtcu6hlp0syCtl2ypOD cXuuW3rb61obVo95Y9WZlNuvhpyaXvVa3FoTrxrcaOp0ANCxYD87+XGiRYlITKbXfhbpztbLLUb4 E0nKOVfu744qzSpa8cdEAKgsrwCAd9EJE2L//pbCyCQyuVxedRn73Y2EyOkHBh2bwuIoT/UydNRJ FBI/r4RpoAUAwqJy1b+0psLUw76hZWKoxtIOfvuVWSs1DPTaLZ0RsHDy7Y179/f8a3pilCLcyMmh 957VAl7xmYkLzwcv77VrhbRSvK/ryE5r5zn36wwAJ0fMrEqk+7alezsOfbDnmDpbt+++dbVm+qH7 Mb3GD4kK2ViSns22t1ZR/i83HFpmRqVZH2fbLs3I0TI1UpGCtqlRaVZu1b8lmTnmHq4A4Ngt8PnJ i5uaddE0NmjU2b9x93Y4kqDflrqeBolCGnZiDNvG4LOvGnd2ubj4THFm0fMzj1uOVc75eWfnzcTL L4KO/MXQYhSmFGxoteIHj8mpZK8Rvl4jfN/eeHX0r31jL07VtWKTKCSp5OPTwGW5pWraah+OXARV 4eWF5Uw2E9uu/iAQP58jLT0u/sz44NEx59l2tgCw2sZd9c68hj67LFd5GkRYVFzb1s1IjaUTnPL4 Wzu5vl5W/LOPR8G84loXcejSzqFLu/zXb4/0HaGup+se1B8AKsr4YoFQ8ThvSWa2hoG+qj2ZjTsS Iy8HnT/K0NYqfJeywbll1VfNRw6+t/UfhraWnq2VgaO96pJ8V6baZialmdkft3oZWeYeTT8cLX44 m5SZDQAatV1ER/Vxn59KVpy3qRWRQlbcVQAAMqlMcQv1D5wKQAghhBCqh+rF+3eFxcVkOk2DzZbL 5fHHTvDzPl6EyHz67G30LZlU+vjEqYrSMisf5aXfZxFnC1NSJZWVt7Zs43i0UNOp5VG/5oMH3t62 U1RSYu3rg62OvhR/5LxcJpOKJfFHzzt25AIAkUxy6hFwccGmgqT3kkpxYUpGSWYuAAiKStRZWjQN dbGo4s72oz+WnRpLy6ZVs6hV/4iFoleXb2c9feXQriW2QtSSHRQGrfOG4FYzg44PmS+pUDU/UtNh XWPWHijLKZSIKq+H7DR2s2c7KF8eeXfrcVEpX1BYfH/nKcdufgBg1ryxuj7r+t+7hMVlleXCnGdv i9Oyf6CETn0CUm4+it9/roIvEJXy0+MSAEDDQNeug8+1RdvFAlF5QfGtVfvcgzr/QOIu/dslXY9L PHtTLBCJSvgpt+LFwoqaMlXQNGYXJqWLSvgAIJOomg/Qrr23gFfy+OB5mUSam5AUvz/SPagLdjn0 O1BjadgFulxaeEwsqsx9mZF4Pt62jRMApMS+Kn5fIJfLxaLK2E0XmUbaLCvl2XxJpSRuz3WP0QHV 04nZcOFFRFzff8aAXC4qESiuZdaUuKCQ/+ri48ryCkml5PHh28UZhdbcRgBg26YJP68k/mCMTCJ7 dvKeWFBh4mKpuvw5L95nxqe4D/y4jRh6ZuaEO0vHRi8eG73YqbeHU2+PoPAZKgqT9TQ1Iz5FWikR lQqvLj5h3sJW00gHAFJuvzo1ZlfP7SO1TFiiEoGoRAAABCLBLtAlZuMFsaiSn18af/i26mqsqTAX 5x15feVpYVLOiZE7Kvii+7ujvnzzcR0za+6izta9vnSzsLi0UiDMef6q+H0mAJTn89LuxkvFEhKV omdjUfXOhdyEtwVvUuRyOV2TqWViqJhJUlJZWVku0DY3BoDM+BfvomKr0n8Rfslz7KDhl/b3P7xR 38FGdaYptx8Uv8+Uy+ViYUXsxr1MI32WtcX3/iK7dq0EvJLHhyJkEmluwtv4g6fdh/RUEd9tSM9n J85nxr+QSWUvz17NS3zn2C0QAIRFJWl3Ho2+cXTouT2+00fhoIF+62NjEtG9X4srS8+XZBZLKiVF 7wuznmcovqIz6Q6Bje/uulWUzoUcGgAAACAASURBVLMLcFQECooE6ix1mgZNLBLf2Xnzh/N9cz1R sVnRtdQjkkiKR4F1zHVlEtmrqwlyuTz5zruUO++q4qc/Tst9lQ0AybFvBYV8Kx9bbLv6TMgrItPp Ggb6crk8fv9Rfk6e6vj2nds93HOoNCtHIqq4s3l3LVu3Fu7q+nrXQ9YIi0sqywU5zxKK09JVxHfo FJh0/db7ew9lUumjsCPC4hLV6afG3OPn5gOAprEhQ0dLWlmpCJfL5TFrt0jFkpxnCa/OXWnUTdWL 2wWFReq6LBpTQywU3dm4o/pXjbp1LH6fEbdzn9uQ/rXW5Hdl6hY04NmxiMxHT2VS6cuIC3kvXzv2 UM6T9Oz46cJ3KZKKyltrNnFaeqiYCg79Ati2FukPE4reZ0vFktubD1WfR+1LmU8ST40LkUll0Wv3 Pj1xmZ/HOz5qYWlWHlYjQgghhOoncn0ohI2vry23VaiPH5lOd+3d07Hjx910+8CAp6cjTk6cosHW 67dza9W0zM7du0VMn5n76rVRE8ce65Qv7zw+bmLe6zdluXkEIuFt9E3DRg69Nq5XfOXau8e1Vas9 hw9VzCaEUHUUBp3j6bKr85hyXomlp6vPOOUjuR3/nhy1cte+ftP4eTwtE/2ua4K1TAw8R/Q+/tei lY07M3Q0A2aPSrwUo4gcu/3Y42MXRKV8Aa9ks98QABhzZTeJQjn+16K81yllOQUEIuHtjTjDRta9 tiwAgG7rZoZPXLbcoaOmsX7vbQuZBrq/eSsk3XjwKCxy7N19BALBY2yft1fuXpm7ucOaKTXF9xjb Vyyo2Ok3Qiyo4Pi49Du0vOr22z/aee3kjizPL3Lo7OszZSAAEMmkQeFrL83etNGlr1hYwbbndA6d oW1h9L2F1LUx//PkmqglOy7MWE8kkWzbepg1XwIAPXbOvxgcuq5RDxKN6tQ7wG/uyB+oAW0Lo4Hh 667M2xw+KoRIJpk0bdT34FIVmQKAbVtPK27T9Y49KeoM7syhTYd1BYCtnoNlEikvJfPqwm0xa/c3 7tmGO2soVZ0x5OyG89PWXgzeoGHAarPoL9sAD1z30W+i24ahkTMOrGkyja7JCFzUx9TNEgDy32RH TNxbXlBKoVNN3a2GnJhGoij3EJ4dv8vQUVdcka0StTxcJpGtcwtW/GvszPkrakFNiROIhHs7r4WP 2w0EglFj88HHpypmSKbQqYOOTY2csf/i/KO6Vgb990+oepS2JrFbLjv38aya7RkANNiaVZ8VjwUr nrWtqTDSSmnk9P28lDyqOs3Kt1HfPWMVkW+tP1deULq366qq1OalbaOq0zqtHhQxYc/qRlO0zdku fb2eHI1VkXhNhUm980bTmEVjMlJuJ1byRVnP0qQVP3nudyKZNOjk9ktzV2107ygWiNj21p3XL9A2 N5FUVFyeu7rgbQqBSGRZmvUNUz56W5qVc2HWSn5uAYlKMW3apEvoQgCgaagHLp1xdPAUuUzO8XL3 nhgkKlZOi8rQ0YoK2Xhr7S4A0DY36bpxkbWfZ02Z5r9Ojhg3vzyfR2HQTJs6DTm9k0T57n1yqrra kNM7z89YdnHWCg0DvTYLJtm28QEAsbBih19fACjJzDk37e+ri9a7D+7pOXaQiatj102LT4+bX5qR zba3Hhy+Q0NfFwDkUhmZTl31BxcAyDSqQ+c2PbYv+4HyIPRraLegy431V/7ptYWfX6Zlot1qQhvj JsrXZLj2aX5w8O6mf3qQqcoVxHNYy+PjDqx0WcjQVguY1SHx8gvl0L3z5uPjD0RlQgGvfHObNQAw 5uKUqq3Mlx4duX9q8hG5TK6moxYwuwPb1gAAGFqMrit7n59/+uSEQxwPa68RvlVvT286wCM69GpB cr5cLu+3c8iXr4pH9YpNm1a2AdxQRy8yg+46sE/VVcaaNBsxiJecstWjLU1Tw2fymBenlG+NPT5k bF7Cq7LsXAKR+PbqDcMmjXrt3UwkkwedPnBp9pKNzr5ioZBtb9t5w3JtC7OaEjdo7NBxbciJoHHS ikrHHp0sfZU30D/cc+je1n8q+OX83LzNTVsDwLArp9RYOu/vPzwxdFwlX0BRozt26+g+9E9FfE0T IxKNut7RUy6T+c2ZYtnSEwDEQtGOlh0AoCQj69yUuVfnL3MPGuA5foTnuOHHh4xdae7EYGkHLJ6d GPnxli8SheweNCB2447+x3bXWpNfzbQmJm5OXbeuPv3X1NKMLLbDH4PPHNLQVz6n69yvR8SYabkv Eo1cmvTYsR676K/N1t/DuXfg9oDhAHLXvh1s/JqriFySkZty57FULE5/lFBZLjR2tkuJjRfwSjSN 9bEmEUIIIVQPEQICAn544VGjRnXr1k1FhKioqFUmelytH7wd8ubGLTkvE/tu3/xZeFj/QQ7t2rYY MujbkxKVlq5p7j3uygUdczNsdRTGexCkb/wb/d7sbUG6zp+EMJoGMR3rrgDCR0G0Onqn0SItn7H3 Dug7WGI/R+jXH9zytwcxuVgPv7ZowWPQ1OVSVG2zwvg5QXS/n1jIxwdPPz12ru/+dQwdLalYcn/n 4cTIa8Mv7a//1SuTyja4tu+wao5tQEsiiVheULSD27fbliVWrfAeoAa4slTkRbH9QoSvahk5K9KC aBY1f3tZxbcK8xmfHAD6v+zI1VTOMRBdGhPV6Lw/7wGX+vUdv2hJdk1ffcfgz48JonP+XV29i2KP U5b/RQ+uljf2nwa2A1DyMki//ze1dXlSlOXoqn9Dird9axa5lCDtpjWuBQYuygQFmb9h/afdiTvS b8Ss98/+L6ldW7iiNDu3x871dZNpWMd+Dl3atRgd1PC6fenAILUAAAgTPg1SUzUV03zmnyHpa8NK Ujjq3sB+wCW7/OcbIMmTKI11NX3r/3QLV9vmK0sVvwODh1z6Vy64Roviogz3flxz82LraaO8nxXE 7vTfH/IcDzL45L1gYcXhijEwjFcaxOoJAGHC40Fart+dcsbdIJZXjd/yioLYXt+XoOx4EOtfnWqb Tx+M2ziEEEINV2xsrKenp7w2BAIhNjbW399fRVIRERG9F62uNcf6fm++HOQ1fCH/jkRksutrQ224 vnhxF6GG5driHc+OfWVKzzYLRzv1Dax5nZf/hEwRQgj9rnipGWq62nQtJgDIpdLCt6k6HNPvTSSs 83Beylcm1QyK/Idl+V/twcrE4tKsXB1zY8ULnsuycyv45dpmxtimCP1/lRfyd3Ta8GW4uq7G6HOT sH7Q/9frC1fPT5v/Zbhdh4COa0P+P3n8uwOujxvQpNSHew4FXTimXFMKCne07PiVNUWP1W7lov9X pv+3dBBCCCGEEPqpfv25164sX/nw4BGjxo16b9mI7Y1Qw9Jm4eg2C0f/DpkihBBquLzGDT4zcVGo S3simQwAli2bd1g5+3sTCYr85yccCdBp3bf+fXzYDGmlGAgENZZWt81LWFbm2KYI/X+p62pMvTsX 6wHVDbsOAXYdAup5IcsLCje5+RFJJP9FMw2bKF+Koa6nOzXx3lfjp92Jw5ZFCCGEEEKounp9fbfV xHFfDQ86cuDbE2k7e2bb2TOxpRH6TSwquY2VgBBCqC4xdLT6HWioL/Bz6tPJqU8nbESEEELfyMKr +az05/8yEXU93e+abPn/kikABJ0/ii2IEEIIIYR+DUSsAoQQQgghhBBCCCGEEEIIIYQQahDw+i5C CCGEEEIIIYQQQgghhBBCCDUM//n8zFwtHaxlVN9waIzf6/dStT8PkfLqtABEKvY6hNB/MJhbYyX8 8rhqrkBh1tITSPpYUQhxad+0InCI6j/87dfz1Wz52WculfXfDv4k9X9dVzbVDle9sfM0wB2Ab31N OFf9B3cVOHQZ1jOqX92e0uLDGKj9jasJV90cyOK62ACRXVR9q21TYzj968+ccOnNG0ajqDnVyYhn VtMYyKGafugVZj+SMkNXZb56350glYGrKkIIIVSXCAEBAT+88KhRo7p166YiQlRUVGBgINYyQggh hBBCCCGEEEIIIYQQQujXExsb6+npKa8NgUCIjY319/dXkVRERETvRatrzfE/f37XP/9PbFdU36RK Sjjk3+ipr1SZPYfi9UkIYSyHRK+7AhT4ciq6YcdDCCH0IxsRnaccmqptVqr4AYcowYpCKEpvfUjh 0WjBc1Xri0Yih2JQ47dFyZxKVc8BczVazDcY/8nh3uuVn0Rg2kcz8mtcnm8ClZr/dkyApxyG8N/W lfE0ZfmLdmPPaXjbhZJYjvSbhv1UsQaH5gIAXHXr+fptQoQ50WL+vz62Gl81O1GqzIdD7Iwtgurk oH4kh0gDgFSRK4doWeMoTbOZzwwM4adFVxYDQGrppro58I8y21zTV/6vp9S4mK6qLVrV5xD+2ejK V/WxUcqLOCS9/zwXiQGH/EkuqeTDHHomAKSWmnAkvgCQqmbFoXz35Bmp7+eo6B6pTApHx+X7Eswt 5Ih+fFodrpb9fPMuuLIjhBBC345cB3lwaR5Y0aheCZNc5tJcf6PfKxRyP52iOUwMXAq37goAMq6m NnY8hBBCP7QRAS5V1aRzYeIHXJoLVhT6zUVXPFEefKk1UblCJXLJ7jV/m8zVaPHdh3tM+89DqFZf LyRUcDX+7anwMD5wGXb/qq6Er7+ltKgebxdiv7GjhhUlfDZFM5ei8W9zrwAuxafaZ01sEVQX3b5C eQgfJiqpPsl8jSMzVVu5E6Xm9p9vgATxtW0mvrKfFl32BAC+ugtXtUWr9nPs62OjlN/9l9ujb8ql rJjLMPx01/dDZ4C3XHUrAAiTA5f63adcwlS+pCBMFselOHxngre5Wva4tiKEEEJ1hohVgBBCCCGE EEIIIYQQQgghhBBCDQJe30UIIYQQQgghhBBCCCGEEEIIoYYBr+8ihBBCCCGEEEIIIYQQQgghhFDD UL+u795ad3XVH/OWW8yKGH+4DrKL3XR9XZNFC3Umvb70onr48aC9q+3mLdCaWFlegV0Efebm6sij g7bU9G3SjYRtvou+N83IyfsuzjqMdascBzZvXeXabLmjc8T04LoYB3bsWufps9Dc6vW1qE/GgTHj V7s1X2DKqSwvx0ZBCCGEEEL/UurtpxtchoSwO1yesx1r45e0RMcq51nC/zFBfm7+AjVTUUkpAKTG 3Nvg7Buia3N5dghWNUIIIYQQQohcx/nd3Rp9cXZ41b8a+szgt0sVn0uzSq7/fX78/Tm6NmyxoLIO CuM9obX3hNahLks+C+8TNrQ0q3iNwwLsH+h7GbtwAhb1+o8SvzT3qF17F0sf+4ZeS3d377m46ON6 p8HWC378UDkO5ORcX712/PWrulaWYoGgLsaB0SO9R48M9W71+TiwbXNpdvaaZp7YqxFCCP1/8VLy okLC0+68rigVmjS16rxusK6NIVYLQvViN3XLqYszt1Y7XNUJTj75/0qc4+M86cm+iHFrsJ7Rj/Sf lh6Tnt6KGDvjv8tim1f7MXcuYlWjej9Qn704659qA7V2cNK+hIg7xwatrB7NuR+3564pkgpx9Ipj T45cFxWXmzb9o8umcSxL3OlCCCGE0C+CXPdZWnhZDzk9VvkPgVAVXvy+kKZJ17PVBwCqOg3bBtVb 1brt5xg66jatG/8/U/xALpenxLyya+/ya9ShRYvmQw4f+Mo4kJ5BYzL1rK0AgKqujp0NIYTQr0fA 45u4W3Zc/SdFjRY5ed+ZCXuHXZyN1YJQfdlN9Woy5Oyqb99LR+i/PPKsu6yExSW5z19ilaMGMlA3 GnJmcfWBulEXzwX5J6oihHWab9XKCQAEBaXCorJhF5Zqmuidm7rj7MStQZFLsAIRQggh9Gv4Cdd3 CUQCmU6pHpL3Mjty6rHi9CJRiVDxNG3Aos6O3Vxj1l9Nf5A64PBIRbRQlyXtV/Swa9d4f49tHG/r 5Og3Al65TCbruKqXZUtbRZzHh+7f2XKDl5xPUaN6T2jdckoAANzeEPVo3x1+Xhldk+ExppX3hNbY 8Ki6JfojR0XNN2xiDgBPj929u/XKXzcXpj9IOjtpn0Mnt6TrL8oLyiy8/ui6cSiRTAQASYX48ICN KbdeaZrodFz1p1WrRop0NnvOK8suZmirT37y8b7RJQajOq0Z9GjfTVGpUENfq8eOEVomLADIeJR8 dtK+0iyehZcdjUkn01StjI/23Yz750bui/STI3ZQ6FQAmBC3lEQlyySy6FVnnxy+LRaJLX3sO67+ U52t2TDOVBAIZNont3HkvX4dOXtecWamqLRU8TRtwOxgx04dY7ZsS4+PH/DPLuU44N2q/eIFdm38 9/85mOPRIvl2rKCoSCaVdQxZZOmlfNb28fGTd3bu5qWmUtTUvEePbDluDADc3rbj0eGj/IJ8OpPp MXyY9+iR2PMRQujX8+CfG5nxyUWp+fy8Uu8J7e5sucyy1B9wdBIAFL8vODftQMbDZBqT7jOpQ7Ph fopFnh2/G73yDD+vlEwjN+np0X7lAACQy+TXFp98euxOJV/EYGn4ze7m0t8bAN5ceXZj6enC5FwS hWTb1rnrxiASlQwAWU9Sz087ICoTFr7LlUmkhk3MxsaG1JSpqbuVqbuVInf7jm5X5h/DhkOoHu2m EolkOvWzwOK0nHPTNmU8SKRpqvlM6ttsRGcA2Ok33mVAQPORXRVxzoxfSySTOodO5iVnnpu6Kevx G7lUZuRs03XLdB0OPi72u3h79eaR/iOFhUVGrk167ArVMjUGgNvrtz3ae5ifV0DXZHqMG+49aTQA xKzZUvA2SVJRyXuXLCwu8Rg73GPsMACQiiVX5oQ8OxbBYGl7Tqj9mKU4Lf3clHkZDx7TNDV8poxp NmKQ6vjPjp6OXhHKz80n02hNendpv3oxAJyfMu9d1E2ZVBra2BsAjJwb9z20AwAEhbwL0xck34gl USnO/Xv4zZtOopDT7sRdmLbANtAv5eYdAa+o6bA/Fb8IoZ84UBOIhKqQzPh3hUnZTXq1BABNE93O oWMU4U16+oSPDsXaQwghhNAvg1wfCqHfyGj4pclpd5OPDNg1+ck3zYoct/v26BvTmYaajw/dPzPh iGKpF+HxVxac6blrsIWnlaCwXC6TKyKbuJs36uLMstRLu5O0t9Mmh05OLEs9bHtUq9yE9Mbdm428 Nk8srNzmu+j5qfvOfT0B4M2VZ0FnZ/Q/NOH5iXtHB26e+mINXUsNAMbf/fv1paefv0lXLk8483DY hVkkKjl8zO4bK8502zRUUiE5OnCzz+QOLUb6Zz5O2dNhRbOhXBUlcR/Syn1Iq1W2k3rtHl19fubY TRffRT0ffWMBXUvt+tLTRwdvGd5gHwDSt7MbHn4iLe7BkeGjJsfe/KZxYP/B0efPMPX1Hx8/eWbG LMVSL86eu7J0Wc+NGyyaNxXwiuQymXIccHFu1KEdy8Ii7X7c3j79Hdq1ZVlYYCdHCKFfT+bj1LGx S/Z1Xf3mytNx9/5e5zit8F2OjqX+wd7rnft5DTg6qTgtf3fbpTqWbJvWjSUicfhfu/+6uciwiZmg sKw0q1iRSPLNl89P3hsft4yuyeAl5xIpyn1mHQu9DmsGmrhZlueX7vIPeXrsrtuglgAQPnqX77RO Tn08X198cn76AcXFXZlU9tVMq4palJZ/d+tl3+mdsdUQqs9kUtnBXnOd+wcMOBZSnJa9u80kHUsj G/+mrgPbPTl0WXF9VyKqTAi/OfjsKgDQMGA1G97ZNqAZABwbvOT60rCeu2ZhNf4mXl+4OupmJI3J PD7wrxvL1nfbuhoATNxdGnXtwLKySIu9v7ddH4fO7VhWFgDw5OCJYVdOWni3KHyXsrlpa/tObbXN TR/+c+DttZvjHlyja2me/mtabZ1TerDHEOcBvQac2FOcmr7bv7sOx9ymTaua4ktEFeGjpvwVe8Gw SSNBIa80K0cR3nH93wWv32105U5+EVs9/smhE1iWFlNf3xcLhccGjIpets5/YTAAZD994TFmaJtF M/l5+VtbtDV2aWLZygtbH9UTdzZFNB0W+OWdOukPXpu42WL9IIQQQuiXQaz7LNPvp6yynav4i5z8 g88rOPV2ZxpqAoClry0vpUBSIQGAh2F3vMb72bS2pzCoWqY62uYsRWRLH1vFBV0LL2stUx1eSgE2 PPpGnuPaAgCFQTVrZp2XmKkINHW3smzpQCAQnPp40rXVk6JrmcaqxSh/xcM9Vi0d8hMzASAzPqWy vKLFSH8CkWDqblX1BPD3ij8Q03JyB3W2JolK9pvdLeNBUt7LzAZRsekPH61ybar4i5w15wfHgW5d mPr6AGDp5clLS5NUVgLAw8NHvEaNtGnVksJgaJkYa5uZKscBTw/FBV2LFs21TIx5qe+xeyOE0C9J 396EQCDocNgmblYEAoFpoM3PK02Pe1eWXewzuQORRGRZGdh3dEs4/QAASFSyprHOg3+uFyblquky DZuYKRLRMtUV8MrjD9wS8PgsKwNtM11FONvO2KyZNZFEZBpqW7ZqxEvOBQCZRJr/Ksvc8w8AMGtu XZxeKBZWAkBNmQJA+oOkv43+CnUK1jRmcXzssNUQqke7qfcTVln1UvxFTloPAOlxL8uyC32m9CWS iCwrE/tO3gmnbwJAk95+Oc+TCpMyAeDVhTtMI13TpvYAQFVnOHT2JtOpZDrVsZsvLzkTa/X34TPl L3U9XTKN6tA5MP/la+WRiK+n4oKuhXcLLTMTXnKqItzYzcnCuwUA6NpYMo0MC94kAUBi5OWmQwdo GLDJdJrXxFG1dddHZdm5PlPHEEkkljXHvlPbhPBzKuKTqBRNE6MHO/cXvktR02UZNlF1HFqWnfvu 2k3/xTPJNCpDW8s3eOKDXco37BBJJOcBPQFAQ59t37Hty4gL2PSobgfqxFXWQxR/kZO2Vv+qJKPg 1YW45iM7fLZIzrOUe1sj2ywciLWHEEIIoV/GT3h+19jVvP/B4crsGZRvX7DqeVwA0DDQ/HBcQQQA mUQKNHJJRhHLiv3lgs9PPnp86L5YJCYQCfy80urpIPRFN5NVfaYxGVQ15RzCBBJRJpEqPlefA5lp qM3PK1GdJtNQqyoRqVgKAPy8EnW2JoFI+NCftX6stKVZRUxjHeXaRKcwWBrFGYX6jUzqfz0bOzv1 373jQ8np39FA8o8NpKGv/8k4IBYDlVqSmcXifOXB3OcRZx+fOCEWVRAIBH5efvV0EEII/UoU91QR iUTlC0EIBJlUVpZTXMEXrbadpIgjrZRyWtoDAIFIGBU1//aGi7va/G3kZN5+eX/9RqYAoGdrOPzS 7NsbLtxYFuHYvVlgSF+GjjoAZDxMit10iZ9TQiASCpNyFZM2E8kkvT+Mkm8kuA32TY5+ybYzpjCo AFCSwftqpgBg1sx6XvZ2UYkgblfULv+QKc9XU9Xp2HYI1YvdVLc/+h9e/OFwlQYAJem5FXzBauve H9ZlCcfXGQDomur2nbyfHrnael7Q0yNXXQe1U0QoyymMXnEgLyGFQCSWFxTTNNWxVn8figmZAYBI oUjFEuWRyPGIxwdPiIUiApHAz82Ty+UfjhMNqhYkkohSsRgA+Dl5TEPlYQ7TgK06u5L0rAp++WpL tw+ds5Lj66kiPoFIHBV99vb6bbv8uho5O7ZftUi/UY33GJVkZlMYdIa28lhV09hQwCsSC4QAQFVX I5KVZ5PUdHUK36Vg06M6HahdbfsfnlV9oK5yb1ukQ2cPpqFO9cCi1JyDfUK6bhmv3wgn8UIIIYTQ r+MnXN8lUUlVV2dVI5JJMrHyippMKuPnlX08LCEQvoyvaaRdnMb7LDD9QeqZCUdGR89g2xkAwGr7 +djq6MueJv3Q08pyiqt1s6/HFxbxqz6XF5Qya7s6+2V31WBrlueXymVyxSVeYVE5TZ1We0G/SEfL lFWaWQTuAABiYaWQx9c21W0QdU6iUDTY7G9rHbLsw5kRmVTKzy+oZRwwNChOz/h8HIh/fCZ41ujz Z9m2NgCw2r0FdnuEEPqtaJmw1Fjqwe82fvmVhoFWu2X9Ahb1ur3h4v6e66YnrlOEGzlb9N4zRsDj n5mw9/yMg712j5ZWSvZ1Wd1p3WDnfl4AcHL49qpEum8fsbfDigf/3FBnM/vuH1drpgp0LTWvCe2j QsJL0nlse2NsJoTqy26qAevTXW59NZZmcPLJLyO7DgyMnBzqOa5n0o34rpuVU+me/mu1joVB0Pm1 JCr50d7zj/ZfxFr9fRCIn8+Rlh4Xf2Zc8OiY82x7WwBYbe0OKg84NQzYZbn5Hw48i2vZupkaqbF0 glMff3sJNQzY7VYsCFgy+/b6bfu7Dpz+9kFNhdE2MxELRQJekRpLBwBKMrLUWDoUNQYAVJTxxQKh 4nNJZraGgT42ParTgZpK1jDQ+TK8gi98FHZlyNkl1QNL0vPDOi8MWDTYoZMHVh1CCCGEfiXE+lw4 tp1h+oPUorRCqVh6e0OURCRWHd/1zxaxm6+n3n4nEYnLckpzE7IAQMgrJzMoGgZMuVwef+AeP6cU Wx190dOMX4THyWVyXkpe/IGYWuOnP0jKTcgAgOSbLwUFZT8wu7KJuxVFjXpvxzWZVJb9NC0p6sW3 LKVppJP5MBkAZBLls6dNg7gx68+X5RRLROLrS08bu1qyHX61s8NsW5v0+MdF79OlEsntbTskIlEt 40Cf3rE7dqXeuy+pqCjLy8tNfAUAwqIiMp2uoc+Wy+XxR4/z8/Kw2yOE0G/FrLm1ur7W9aXhwuLy SkFFzrP3xe8LAKA8vzTt7hupWEqikvVsDKWVyjuKchMyCt5ky+VyuiZDy4SleAZLUimpLK/QNtcD gMz4lHfVNt8vTsV5jgscfnlO/yOT9B1MVGeaEvOq+H2BXC4XCytjN1xgGuuwrA2wjRCqxwNII3V9 net/hwmLyyrLRTnP3hWnKd9aau3nLhNLopfvt+K6VV0VFvJKmUZ6JCq5LLsQL+4iIa+ITKdrGOrL 5fL4fUf5ObUcidh3bvdw17AngQAAIABJREFUz6HSrByJqOLO5t21dM4W7ur6etdD1giLSyrLBTnP EorT0lXEL88vSLsTJxVLSFSKnq2VtPLjORYNQ30CkZjx8AkAyCQSANAwYNt1CLi2YIVYICwvKLy1 aqP70P6KyHK5PGbtFqlYkvMs4dW5K426dcCGRvXBo7CrbHtzE/ePL9ktzSrc23Gex5hOdu2biUrK RSXlMolUVCo4HrSal5KTeO7e5XlhAHB24takG0+xAhFCCCHUsJDrc+FsAxyc+zbb3mo1yMH1zxY2 /vaq4zv3b1YpqIiceqwotZCuxfCZ3MbA0djG38G2TaNQ5yVkBsV1QAvHbi6KyGKheIffGgAoySw6 N+3E1UWR7oM9PcdyU2OTzk07rpiJd4ffGgKR2CW0r7mHFfaVX1intYPOTNj7t/FfLCsDr/GBj/bd Uh2/aRA3euWZgnc5crm838HxdC01AHgYFn1v+7WKMhE/r2SzxzwAGHZhlhpL4+srHo3c/+CEs5P3 3VgeYdbcxm2w77eUM/DvPmcn748JvaChrzUhbikAeIwJEAsrd/r/LRZWcLzt+x0YR6jpoeMGy9aP 69yj+/YOnUEud+3Ty6ZVLXXl3KtHpUAQOXtuUdp7upamz9gxBg72Nq18bbmtQr18yXS6a59ejp06 KscBkWhHhy4AUJKVdW7u/KvLVroP6Oc5Yljq/bhzs+fJpBIA2NGpK4FA7LJymXmzpriyIIRQA0Uk kwadnHpp7tGNbrPEgkq2vXHn0CHa5nqSCvHlOUcL3mYTiESWpX7ffWMV8UuzeBdmHubnlpCoZNOm Vl1ChwAATYMeuKzf0UGb5TI5x/sP74ntRSUCRXyGjnpUyKlbayIBQNtcr+umodZ+jjVlmv86K2Lc P+X5ZRQGxbSp9ZDT00kUErYRQvV6AAlffmn2to0uQWKhiG1v0Tl0sraFIQAQiASXAW1vrz/Wa+/c qvgBISPPTlh/d8splpWxz+S+sRtPKMKPDwnJe5lall1IIBLeXn1g2MS61545WL2/PJs2rWzbckMb eZEZdNdBfRx7dFIdv9mIQbyklK0t2tI0NXymjHlx8qyy/wwem5fwqiw7l0Akvr1yw9CpUa+9m4lk 8qCIA5dmLdno5CsWCtn2tp03Lte2MKspcYmo4vKsJQVvkghEIsvKou/BjxNR0DWZ7VYuPNxrKADY tmvdfftaAOixO/TijIXr7D1INKpTn25+86YrImuaGJGo1PWNPOUymd+cKZYqJ4VGqG7IpLJ72yLb LhlSPfDxoeu8lJyLM3dfnKm8W+LPE/MMG1umxrzg5xUXvMlMi02Qy+UpMc+NnK2s/ZyxGhFCCCHU gBACAgJ+eOFRo0Z169ZNRYSoqKhVbvu5NJwCBdUvYeWXg9R7/Ua/VygMUv/kluow8YAgeru6K0C2 LIgWhB0PIYTQj2xESDeDmLYqN+vhQYzGP7GEjw/GPD12p+/+8QwddalYen/ntcSzj4Zfxss2qE5F VzyJ0lsfUni0lhWKeDyIUeOTdmH5J4KonVWnMN9gfPV//V+v5DI/uQ03mpHPpX797thoXkVNX33H mMCPCmKZ/6u6Er6OMlbOpexftPvfFwnV9XYh/0AQw/2bYhYlBLF6KruufpsQYc7/IfeKoCBa6w+f IYj25+9W/2l34o70HTEr/Rl2xTrt9hV9g2iBABBWVhLEUHUebz4zMISfplyqICSI6fWfb4AE8VFm m2v61v/1FC7T5StLlT0BXeDSXGraolX9G8I/W08bpehukIb3f55LWXEQ85Md3TDxOsW+cVjhW8WZ ljA5BKl/97Ys7N3YIJZ/jd/K4oL0+39fghm3g2i+/+bHzjfvgis7Qgihhis2NtbT01NeGwKBEBsb 6+/vryKpiIiI3otW15ojGSsdoXri9cUn52cc/DLcrr1Lx9UDsX4QQgih+omXmq+my1TM5yGXygrf 5uhw2FgtCCGEfs5x5YWr56fO/8pxZYeAjutC/j95yOVYzwghhBBCCP1ceH0XofrCrr2LXXsXrAeE EEKoYfEaF3hm4t5Q52AimQgAlr4OHVb9idWCEELo5xxXdgiw6xCA9YAQQgghhNCvDa/vIoQQQggh 9OMYOur9DozHekAIIfQ7sPBqPivjOdYDQgghhBBCPxcRqwAhhBBCCCGEEEIIIYQQQgghhBoEvL6L EEIIIYQQQgghhBBCCCGEEEINw38+PzOX5oG1jOobDtn0N/u9Rp+HEOt0xeQQOdjrEEII/eBGRM6u JQJJC2sJIS7N5dtWKDOV+2zG350v0/7zEKrVfzsmUNX+bV0x7OqstOg/6QMknW/uLf//4z4OsXm1 zxbYHKiujqk9PxzdU75jKVqjutgAqbmp3Ey41BhO+1dbtJ/fKFTdusjlixbnkJkfegVH+eHHUtZw V9l5zL+/l7JxVUUIIYTqEiEgIOCHFx41alS3bt1URIiKigoMDMRaRgghhBBCCCGEEEIIIYQQQgj9 emJjYz09PeW1IRAIsbGx/v7+KpKKiIjovWh1rTn+58/v+pf6Y7ui+ia1xIojaf1b1wCVwaHW3dNO qbKHHIoAOx5CCKEf2YhADIekrypCvgmn0hMrCqGoRj1CCvdGCx7/i9XNjENvqiICl6Y/X9Pxk8O9 /C2fRrCJzjlS4/JaMqDL60NdcSkt5quNBwD/ginYcxredqHUnCNr9k0xycBR1wYALk1rvqZZiGBX tPjR/7MkeQ6cCh9sEVQX3Z74nkNjAEAq/W8OVaPmUdp3vuackLxr0eVJAJAqNOJQWXWxAbKpcUXw T9xb42LGNc6gEKXVqupzSF5sdPn7+tgovJQ6OK+SCvoc2icPCqeqHedoZn0SkpTKIX7347aprDEc eo2TEKTKkziUiu9LsDKHQ/zxOTa4NKv5mq1xZUcIIYS+HbkO8uBSuFjRqF4Jg/dcdfPfugbE+Vya ft1lJwQu1RE7HkIIoR/ZiFTGcCkeKjfr6VxNU6wo9JuLLs1QHnypuf746iYo+IFdRC7N5vMQZvOv FxLucSkt6lvVNZSJQFG1YZ/H1dD7ppiiAi7tk6svXIr7/7UkAq6WDrYIqotuX/aeq2EIAGES4NJ8 ax/Z1K0BIEwo+MaV5V9tgPgFtRRG0/Jrm60UAOBSvjKjb7Q4/4ufUx9P4ITxUrhaNv95LiWlXOYn m+YwKXApPp+ORalc7ZbfP4LBZyPkp+MncKlm37nTnsOl4VsPEEIIobpDxCpACCGEEEIIIYQQQggh hBBCCKEGAa/vIoQQQgghhBBCCCGEEEIIIYRQw4DXdxFCCCGEEEIIIYQQQgghhBBCqGH49a/vpt1J W2G6omGVeaPLxsTIROydv5K3Ufc2ePZb9ke7zb6DZFIZVkhdjwN3X62wGNbAxgG3SYnn4rDtEEII IYTq2PWl4ReCD9Xb4h0P2rr6j8kLNIMqy0U/ZzfVfVbiufiqf5NuJGxrufDbF9/TYcXLMw+xm/3X YnfuXufVaiHH9nXU9fpcTl7a+93dey9r7LqmhXfOy4Z0GkRUVrbStXlpTi52tnrl1oYDq5p0WW7X PmLKcqwNhBBCCP3ayFgFX3Vp1iW7DnaWvpZYFb+DuzuPX5y/sepfDTYr+MVZxefnp6/FbDrIS8nQ sTAZF71PdTr8fN6VkG1vr90Viyq6rp3ZpHubqq8uzAv1GTfAfWCXirJyIomYEHnj2Ij51Zd17hXY c8t8AHhy7OLtLYeL0rJ0LIzbLZlgw22uiCCTSKPX7n1y4nJ5QZFrv/adVkzDhvvPx4E5++zaN7Vs 6YhVgRBCDWmzvvvoxcXrP27W9VjBjy9itSCEvl2Tnh4yifSb9xiP2rV3sWxpX2fF6xM2tjSTt8Zh aj2pLmMXTsDi3p8FikqFRwduCjob/GV87syuBo6m2M1U29ahy5gLZ/9NCt6jRniPGhHa0q+OS/76 WlTW8xd+UyZ9Y/yYbTt0LMyHhx8XC4QUBv0n1rmorOzoqLFBRw58Y3yahkanpYuZ+mzsrnW9p1fz CZzS7PzrK3eNv3VQ19pMLBBhXSGEEELo1/Z7XN8lfF90uVyecivFroNdQykw+vcsPJyHHP9wLpig bIBnp65ErdzdPXSOWbPGAHLVKUjF4rBek224zcffOqCmq139lJBcLi9OzzV1dwQAGlMdABp1bLXg /cfbqMN6TrLycQMAmUSa+SSxy5pgE1eHZycvHxs+LzghkkKnAUDkzLXF6dlDjq1jWZnKJBJssroY B2Je2rVv+vMKjAMBQgj96Ga9ucuQw5twtwoh9GPY9sbfs8eYaNfe5Tfbr/5kYGXoqNu0bvxZlNTb r2SSr89aZNXKAfuYasKSktzEVw208Cl37tGYGt8ev/h9ul1AGwKBQFVX+7klT713XyaVfs96QHDs 0B6768/Z0/vaCRwAKE7PoTE19GzMAYCqzsCKQgghhNCvra6v74oF4stzLr8690oukzt2d2y7tC2Z Ts5/lb+Lu2vopaFGLkbSSumOljuc+zt7T/YGgJSbKZfnXC5KKdKx1Gm/ur2Fl4Uinff33l9beC3n aY5cLrfiWvU/1l9FpiQq6eqCq4/2PiLTyZ7jPb0neQNA1JKovIS8qgWfHnl6a82tCY8mPNr7KG5X XO7z3JNDT1IYFACYED+BRCUBwP3t9+9uuSsqFpk1N+u0oZOWqZaqXyoURy+PfnHqRVlWmbq+eret 3az9rQEg53nOhWkXchNy1fXVuTO5Tv2cFPHjw+KjV0TLJDLn/s4kCqkqne/KFP34OQoigUyjfhZ4 ffWeziuncbw+P1+TEht/efEWxSO27UMmWbRwAoCEszdo6ox2i8crex1FuXKF9ZpUllsoFYsPDphB olIc2rcMXDSeQCRWZZf55FVhcnqTHgEAQCSTOi5X3onv1Kvt6cnLSzPzdK3NSjLzXkRcm/I/9u46 LKqlDQD4u8USG3QjS4ugiKBSyippY2JeMbHzinrtVrA7P8FuMRBFURSwAbFRKelaaoFl8/tjEQtW 4SpX9P09Po/L2Tkzc2ZmZ+bs7Dnn8WlFFSYAkCiUZl3agsrqawsPvw57JBFLrHwcPFeMIMtTCpKy 9nX9Z1TYEp22xiK+cA97vo1vJ+fpvQEg9c7zawsPF6fmqRhpdVs3ytCx5vKI9w+Sbiw9lvs0TSKW GLNbDzk+R2Y/QL6+5GhcSCRZXs5xUg/nab0AIHLFifyXGbU7Jp64c2fD+amPNsUF33h44Hres7Qz Y7ZQ5OUAYOrjzSQ5MgA82HP13s4wXmmFQXvznpvGMfXVZPYD/Ki1p5+fu1eew1HSZPpsn2jStQ0A 5D5LuzLnYN7L90oaTHZA/za+nWr6gUM3o9adEQtFNr6dpcnV9AMNSRQhhNCn46zUqUkLVVrovomM UTdlqRsbPg29Zj/Mp9OkvwAg9W7ctZVbi99nqbTQ67ZslmF7GwCQiMU31u1KPBfOr6hSUGF2mTm2 7YDuAFBZXHpx7pr0h09EfIGygU7fDYt0rC0AIGb3kbhjodwCjjyD5jDG13n8MGm62c9ehy0M4pVX FKW+FwtF2q3MJl07Ul+iCKH/XE5i+unRu8qyiq0HdPTZXvN0j4xHyRenB1v2bJcc+byisNzQybzP tlFEMiku+PbDAzfznmecGbu7Zsb4aHXNjHHvjXs7r/NKKw3am/Tc+BdTXxUAXl2OTzwRa9TZMnbr VSGP335M1y7zfeqLHABitoTHBUdx88vkmQoOEz2dp3o37qASjsbc3X6Vk5JPUaQ6T/XuNKsHAOQ+ y7gScCTvZaaSBoMd0LvNIEcZRwoA8YfuRK27IBaJbXydPp2mbndYWJ5TrKCsNCMxULqFV1p5Zszu 7CdpvLKqzTYBANB+TBfnad0A4PHBqOhNYaWZnL67xtj4OtVGUmdmojeGFb7NEVYLOcl5VSUVtfH/ ypabteq5clnc8ZO8snKapnq/jeuZujoAUJKZeXnh0swnT6g0msuE8e2HDwWAJ2fO3dy4ZXJEGJVG 46S/39PTZ3jwAQM727BFS9/diRaLRNJLb3WsrHx3b5eRaJ2Ry5B69/61VWuK32eotDDotnSRYXv7 wuTk0Dnz1YxY7+7EeMyb8+jwUV55+aiTR2nq6oKqqmur1r6OuC4RS6x6eHv+M49MpWbEJ1ycv9DS yyP5TkxFUZFhh/Z91q0hkkkZcQkRa9blvHhBIlMSz4UCQN8NgYYd2teXk2ur1iZHxxSlpOa8fHn/ fwfpmppjzp4EgFfXrieeO2/k6BC794CQx2s/Yqj0auDcl6+uLFmel/RGSU2NPW1ym759AODU5Gkq BgZvbt5SNzFRNzF6GnrRftiQThP960tUIhbfWLc+8Xwov6JSQUW5y8zpbfv35ZWVnZk2M/vpc155 ubTY2w8f6uw/DgDCl65g6OoUpaQm3bhJIBH7rF1t1sUVAEID5r+7facsJ/fvB7EMHW1p5NE7dxcm pwj5fE5qWlVpqcNoP4dRIwFAIpFErFr7Nup2ZXEJt6CAoqDgE7imdZ9e2OX+wC9w8l+nXApYX5KZ xyvjbu7oCwAeCyZY9e4SvfVIRtyLoSE192re3NG328rpFh5OhwbPZjnapNyJqywuFYvEPVbPMHJu hwWLEEIIoealqdd3r869yi3gTnsyTSKRHBt0LGpNlPsyd42WGl5rvU6POj3x7sTIpZF0HbrTdCcA KEkvOeZ7bOipoUadjZLCk472Pzr96XQlDaWS9JJDvQ55rvYcemqoRCwpyyqTnWh5TrmcklxAWkBh UuF+t/26bXWNXI3aj2m/ufXm8pxyug4dAJ4ce2I30g4A7EbZ2Y2yC2QFDjg44NP7Mz87/ezejnt+ YX4MPcaNJTdO/3V67M2xso8050nOsNPDVI1VOSkchj4DAKrLqkN6hniv9W7j26YwqTCkV4iSppJJ V5O8F3mXZ10efW20np3ew70P857nNS5R9AOV5RQUp2fnvUq5+HcQSY7cfqSP04TBAFCSkXNs5Pyh h9YaOdkmXb97dETA9LvHldRVUmMT1M0Mg/tPL3ibptXKtNe62SqGugDgd2YLACzV7Tzi+HrNlsZf J3R31wn7v/p8vbqcGfdSUZWp3EIHANLvP9EwY11fsTvpeixdW91z4UQT1/bNt2yvzg/hFpROi98i kUiO+QZGrT3tvnSohoWe1+q/To/ZOjEmMHL5cbqOitO0XgBQ8r7g2ODAoSfnGnWySroad3Tg2ukJ W5Q0mCXvCw71XuG56q+hJwIkYklZVtG3+oFiOZpCQPL+wqTM/Z6LddsaGXW2bj/aY3PbqeU5xXQd FQB4cvy23V9uAGDn527n5x5oMnbAgemf3p/52ZnYezvD/C4tZuip3Vh67LTfprE3Vso+0pwnKcNO Bqga63BSchj66gBQXV4V0mel9+q/2gzqVPgmK6TPCiVNpkmXNnkv3l+evX90+DK9dqYP913Le57e uEQRQgjViV9R6X85eK2Np2GHtiOPbj3Q37/TpL9KMnOOjZkz9H/rjRzbJd2IOeo3e/rt00rqKimx j59djJhy84Q8ncZJyySSa+bM9/YdJxAJcx6HAYGQ/fSVuknNTw/1bFq16sZWNdRPf/jk4KCJll6u qob6AHBuxrLOU0a26euddD06bPF66eJufYliHSH0n9OxMZwWt/baghNVpZWfbs97nmHt035c5CJB FX9XpyXPzj6w8XWy83O183MNNJ02YP+ET+/P/OzMg3s7r/tdCmDoqtxYdub0qJ1jry+UvvUu8oW6 mc6MJ+sIRGI1lycjcgDQa2fUqredqpFm+t03B3ustezZTtVIs6FH9Pzsg4hFJ/vv9zd0NK8sKpeI JTXTUZ8g79WD2wx0LHyTE+ITpKTBMOliVV9m8l5kXv778Ogr8/TaGT/cH5n3PKM2/in3VyZdfRI+ 91jtFnmm4vAzsx4duPXs7IPRV+Z9mhn7UWz7UezdnZd+ulFGZp4cix0dPt/QybwouZk84lQieXEl fPTp4yQK5dysObc2b/UJXCMWiY74jbXp33fogT0lGZn7+w1SaWFg2rlT2wH93kXHhC1e5hO49szU GS6T/A3sbAGgx4qlhcnJW7t4zoi+9c0E64u8vvAlmZnHxvoPPbDXyLFjUuTNo6PGTY+6AQAZ8QlD 9u5SNTS8vjZoZmxU6Jx5ryNu2A8dfHX5Km5R0bRbNyQSybGx46M2b3Of+zcA5L16bd2j+7jQMwIe b1e33s8uXrLp52NgZzvmzIlTk6dpmJp8z/2ZvRbMA4DgISMsvTw6+v316Vvv7kSrGxvPuHOTQCRU V1QAQDWXGzJspPeif9r49C5MTgkZ9peShrqJizMA8Csr/S+dX9vW3rBD+5FHQg4MGCxjfTfl7r1n Fy9PibwmT6dz0tKJFDIAyDMYw4MPPDpy7NnFy6NPHftil9tbd/TfvL732lXC6urajT6Ba/gVlSst W38R+MmZc6NPHzfs0L4oNW27u3dLT3dlPb2X4Vff3r4z4cpFApF4oN+g9sOH4uLuD6fZ0njMxZ3p D54eHzl/xoOT37PLw+BQ/6v76FpqCSeuXJi17jv3QgghhBD6dRCbMjGxSBx/OL7LP13kaHJUOtV+ lP3zc8+lb9n52Wlbax/pd+T52ef99vcjEAgAkHg80aizkXSR1aKbhZKmUnJksnR7C8cWHcZ1kGfK K6goaFlryU6XQCA4T3cmkoiarTQte1u+DH0JAAw9hrmXeVxwHACUZZelx6bbDJV15URccFxH/47K LZSJJKLjFMf399+XZZfJONKEwwnd1nfTbKVJlidrttKUZ8gDQFJ4Ek2LZjPEhkAkaFhqtBvZ7tH+ RwDw+tJrk64m+u31CURCh/EdqHRqIxJF/0bGo+eB1r2l/y7NCQKA0ux8ABBU8abfPz7i2PrYncff RT0EgMQzEUbO7YycbAHAwsNJSV0l+fYjafj3j571WDtzdvw53TbmZyYt/550S7PyX1+L6TCq3xfb q8srLvwd6LlokvQ64NKs/LzXKZbdOs1JDHULGHty7KJKTmkzLWqxSBx/5FaXeQPllOSpNAV7P7fn 5+/V9AMj3bStDY8MWPP83N1+e6bU9AMn7hh1tpYuslp42ylpMJJvPpVub+Fk2WGspzxTSUGFpmVt +O1+YGovIomo2aqFZc/2Ly88AACGnpq5Z7u4Q5EAUJbNSb/7ymZIZ1n9QEhkx/Heyi00iCSi4+Qe 7x8klWVzZPUDR251Cxql2aoFWZ6i2aqFPEMRAJLC42hayjaDOxOIBI2W+u1GdH104DoAvA57ZNLF Rt/ejEAkdBjnRaUpNCJRhBBCAJDx+GmgbTfpv0vz10o3arU0JVPl6Jrqejat6Noa3EIOACSeCzdy sjNybAcAFu4uSuoqydEPAICpq1VZXBp/4lJlcakqS19Zv+bSHBVDvazEly/Db4lFQn1bq9onBRo5 tpMu6Bp2aMvU1eakZwGAWCgqeJvaon1bADCwa12SmSuo4slIFCH0K3Oc4gUAFAU5g/Ym+a+yZM0Y D93uON5N2UCNSCI6TvJ8/+BdWXbxhxkpdF3Yj0gmEYgEeYaC7MiNOrWULugaOpkz9dU4qfmNyPbj kNtOU7xNu1pTFOSY+mrKLdQBIOlqIk2LaePrRCASNFrqthvR6dH/bsnIzOuweJMuVvr2JgQiocNY NyrtRz4kVUZmdG1Zhk7mAKBmotVc2knHkX9Jb7Zk7ORY8OYtAGTEJ5Tn5btMGE8kkVRZhi093V+E 1TwVvteqFe8fxx0a4SfPYLhMGN+Y8a7+yOuUeO6CkZODkWNHALBw66qkrpYcHQMANHV1JXU1lRYG Wi0tyHJyDG0tbkGhWCSKP3Wmy/SpckqKVJqS/ZDBz8OufGwnY0cBAEVe3qBd2/w3b39sMRIIhK5/ zySSSQQiUZ5OB4CkGzdpmho2/XwIRKKGmWk734GPjhz7ML5bkKlUuqamnk1rurYWt7BQRsxMHZ3K kuL4k6cri0tUWYbKenrfzEwL+3YW7m4AQKZSyVSq7MC6bVpLL1lWM2LRtbQK3yUDQN6r13ptWpPl 5Ehksp5Nm4J377BH/eFf4DRCm77udC01ADByacdJyxLyBViwCCGEEGpemvT63Yr8ChFfFNIrRLps IxZ99jyeznM673TY2WVBFyV1JemWkoyS5JvJgayaGzEJeAJuAVe6Xc2kAbcnlaPLkeVrjpSuTS96 V3OdXwf/Duf9z7vOdU08lmjubV6bbp1KM0pvrboVvT66Jk4lufLccoYuo74jFVYLv85kWVbZp7vQ delvI94CADePS9em15zJEAlKGkqNSBT9G7o2LYccXF3zqZCXAwAiiUSRl3Od5UcgEFSN9C27d06N iTNldyjJzEu+/SjQuveHZlnNLSwGACKZZDesl4YZCwAc/X2jtx4RVPFqv/atz/19pyy7d5aeVNQS VvOP/jXXwt2x3dAe0i1EMsnI2dbcwwkAzD2c6NrqWU9em3Xt2ByLuiK/VMQXhvislD4l58t+YHbf nc5zuswfqKTO+NAPFCbfehpoUnPluqCKzy0olW5XM9ZuQD9AkyfLUz70AypFyTk1/cB47/MTd7jO 6Z944o65l11tuvX0A4W31pyO3ni+Jk5FanluMUNXtb4jFVYL1Ix1vuwHsos+3YWuq/r2xhMA4OaV 0LWVP+kHGI1IFCGEEADo2lgO2bfuw7Be81Ws9IaiBCKRQpUjEAgSsRgASrLykqMfBtp2+2JYVzcx HHNmT8yuw7c27rPq6ea1YKqCMgMA2vn2UmDS7+0/EbZovePYIS4TRxBJRAB4diEi4dRlAa+aQCRy C4qkkRPJJHUTw5SYh+0G906JfaRhypJODOpLFCH0y6LSFeQUazoTAokoFohkzhiLbq0Jjd54+ePk La+EoasCAHQdZWmn8T2RPztzP+FIjIDHJxCJ3PxS6aW3DVWaUaRqrPnVaSmHofPxngF0HZW315/J yAw3v7TOaeoPISNhsrOkAAAgAElEQVQztYk2I3QtzQ8FRRQJBABQmpVdXcENsnOQbhcJBCzHmvM4 Kk2p48gR4ctWjjp5jEBozOPiZURep5Ls7OTo2MB2HT8MQDxuURF8eABQ7dMNCECQiEUVhYUigSBk uF/NFzjij82eSqPJKSp+aCcksVD4o4tRi0gifdZOcnIZ2h+X+ena2m+j7tSM7x8yT6FSa8f3+qib GI85czJm155bG7dY9ezu9c9cBeVvNDOmjk4Dcq758eNGJBFFQiEAaFqYvwi7yq+oJJCI7+PiO03y x071h3+B850+bR60D9/DEIlEABALhCBHwbJFCCGEUDPSpOu7SppKJDnS6GujNVpqfPGWWCi+OPWi /Wj7B7setB7YWt1cHQCY+kyLbhaDDg/6IjBDl5EVl/X96fK5fBFfJH2GbkVBBU2LJt1uzDamKFKS byYnnkj0Wu312T5fnVsx9ZmOUx07jOvwXUeqoUSikIrTixXVFD+LxID56d2kyzLLmAZMaclkx2fX bq/iVDUiUfRvkOTINM3PFsxUDHUEPH51WYU8kwYAwmq+kpoKADD1NC08nQbt/fLyXFVDXW5ezU8H hDw+gUT85lNyq7mVcUcvjzy96dONQr7guN98DVNDzyWTP8mM7tNz1z+GqeY36Bzml6KkySTJkUeH L9Ow0PuqHxBdnL7XfpT7gz1XWw90UTfTBQCmvpqFt92gkJlf9QOqWXEN+OEzv4In4gulX+5XFJbR tGpO441drSkK1OSbiYkno71WDP+8HyB81Q+oOU7p2WGs5/f1AwwShVScnq+oRv88EvVP7yZdllnI 1FeXlkx2fPLHfqCY24hEEUIIAQCJQqFpfNdvAZm6mhbuLoN2rvr6LR1ri4E7VlYWl14IWB22eMOA rcuk2y292Zbe7IK3acfHBSipKdsN6ZMR//xCwGr/y8HSn3kF2feojaTvpsUHB016dPickrqK7541 30wUIfRrkrX0VseMUdVxsleHsV3/TeQZj5IvTDnof3uJhoUuAARZzGhczhm6KiXvC7+e0356P5iy LA7TQE1GZpQ0mNkJqZ9MUyu+46i+N4cyMgONWvL8j5tKHQONjqKySkB8HfdpKM3KvrN9Z4e/hoct Xjrhcugn14Z+74HLiLzu8Do6Fm5dB+3c+unGwuTkuk9n1NVJFMro08c0TE2/arSE+tvzT6k1pp5u WU7ux3aSncPU021cVDpWrQZu31JZXHJh7vywJcsHbNn4I9tbXXFY9ej+7MKlbW6eDG3tVt5e1j17 YKf6w7/AqQ+RQq79/YFYJOYWFP/stooQQggh1GSa9P7MRBLRbqRdxIKI0oxSYbWwOLU4O6FmUTNy WSRFkdJrWy/Xea6n/jolrBYCQNuhbZMjk19dfCWoFPBKeam3UwVVAgBoM6hN6u3U+JD46vJqXhkv 42GG7HQlYkn8oXgAKM8tfx32upVPq9q3OozvELMxhlfCM3Ez+fw0mJH1WHpjvZof99mPsb+75W52 QraIL+LmcVNvp8o6UjKxzeA24XPCC98UCquFRe+KSjNKAcCim0UlpzLhcIJYKM57kRcfEm83yg4A LHtZJt9Mfn//vVgkjguOqyqpakSi6MdSVGFaeDpfXbpdwKvOe5X86sodM3cHAGg70Cv59qNXV+4I qni8Um5qbLyAVw0AtoO7J5y8kpnwUiQQRG89bMruQCSTZCcRd/SShjlLr61l7RaRQHhyzEI5mqL7 ggnVZRW8Uq6wmg8AZm4O3Pyi+GOXxULR07MRgkqenk1LXhn31PglnLSsV+HR15btAICLfwcm33n8 q3c6JKLdX10jFh4uzSgUVguK0/KyE1Jq+oHlJyiK1F5bxrsG9D/lt0lYLQCAtkNck28mvrr0UFBZ zSutSL3zXFDFB4A2A11S7zyPP3yzmlvFK6vMePTm2/3A4ZsAUJ5b/PrK41Z9HD72A+O8YjZf4JVw TdxsPu8HapaQxcKa36rbj/a4u/VidkKKiC/k5pWk3nkusx8gtRnUKXxucOHbbGG1oCg5pzSjEAAs utlVcsoTjkaJhaK8F+/jD9+yG+kGAJY92iffevr+QZJYJI4LiawqqWhEogghhBqkbf/uyXcevLoa Jaji8crKU+/GSYf1vNfJhe/SJBKJPJ3G1NWSXoMFAGn347kFRQDA0NFQYNKl26uKS8nyVJqmmkQi iT95iZv/8Uc8zy/ecBw7eMy5vUMOBGmaG8tOFCHUHDF0VLLiUj6bMY7qcnfb1ewnaSK+kJtXmnrn VSOireJwyQpyNC2mRCKJPxzNzW3kw1lsh7nEbruaFvNayBOU55ZIH51r0c2mksNNOBojForyXmTG H462G+kqIxLLHrbJt168f/BOLBLHhdyunabKKhZdlaLkXF5p5aclU6eGZqbZMWjXTklD/eaGTVWl pfzKytwXL0syMwFALBKdnjqjw18jeq5cpsYyDF+2snYXmqYGgUjMfJL4zdKrL/L6Rz2f5OiYV1cj BFVVvLKy1Lv3BTxe/SduJLvBgyJWrSvNyhby+cXvM7KffftMhKGtnf3shVgkkkgksi+lbRALt66V xSUJp8+KhaK810nxJ0/bDfZtRDx5r5MKk5MlEok8nc7U0RF9cktehrZWUWoar6zsm8Xe4I9zSWn6 w0f+l86POnm089RJ2G02JQ0zw4zHL4rf54gEwpjtR4UyZ1xZT16dnbxCLBJHbTiYePoaN59zavyS sux8LEaEEEII/ZrITZye9zrvW6tvHfA4wM3jMg2YrgGuura6yTeT4w7GTXowiUAgOEx2eBvxNuKf iO4buisbKg8PHR6xIOLcuHNEElHPXs/3qC8AqJmpDTs7LHJZ5JU5V4hEopmXmUEHAxmJGjoZclI4 u51380p5nWZ3kj7Q98Ppru2NJTccpzh+cZssr9VeF6ddjN4QTdOiTY2fCgDW/a2FVcJz485xUjgK ygrWA6yNXI1kJNpjQ4/IZZEhvUK4eVymPrPPzj5MA6YcTW7k5ZFhs8LC54TTtGnuy9zNPMwAQMta q8eGHqdHnhZVi6z6WdXG3NBE0Y/ls3nepYD16236yjOUvJZM1rdtBQDKBjrDj62PWL7z3NSVRDJJ z7aV7/4VAKDT2rznutnnpqzkFnAMO9r02TBXduRikfj+vjOeiyZ8djqR8CopIhYAXlyseeiU88TB XkunUOSpI45vuBSwPnzxNjVj/SHBq+WUFEqz8tPuJnALOIVv09PvJ0okktS7CTqtzU062//iBeu9 xu/WmlMHvBdz80qY+uquc/rp2hon33oaFxI56W4QgUBwmNT97fWEiIWHuweNVm6hMfzcPxELj5wb v51IJurZm/kengUAaqY6w07Pj1x+/Mqcg0QS0czT1uCguax+wLElJzVvd+e5vJKKTjN9pA/0/dAP sG8sPeY4uceX/cDKERen743eGErTZE59vBkArPs5Cav45ybs4KTkKCjTrPs7GXW2ltkPjIlcfjyk zwpuXglTT63PjolMA3U5JfmRFxaF/f2/8ICDNC1l96VDzTzaAoCWtWGP9WNOj9osqhZY9XWsjbmh iSKEEPp+yvo6ww9tjli17dzMZUQSSa+tle/uNQBQlpN3Zekmbn4RSY6ib2vVe808afj3j5+dnrKI X1FFUZC36t7FbqgPAJi6OpixHTc79yXLU20H9bTq6VYbv4IKIzJw951twdK0+gT+Y9KpQ32JIoT+ cxemHsx4+I6bVyoRSzIfJauwNIad/MaFs14rfS/OCIneFEbTZE59tBoArPt1EPL45ybs56TkKSgr WffrYNTZsqE5MXWzNnNvvblNAFmBYjusk1Xf9tLtabFJl2cdki4+7WEvJxAJvbf4tXAwqy8emyHO /IrqSzMPFaflyzMVXWb20LI2kFOSHxk6J2zOkfC5R2laTPclA8zcW8vIjJa1QY+g4adH7RLxBVY+ Hw/n8cGo+7uvV5fzuPml2zsuAIDR4fMVVWkAYObRxti11abWcyhKVHZAb/tRbADY6bxILBRzUvOv Lz0TvTHMul9H9tzeDc1Ms0Mkk0aE/O/qilVb2e6CKp6GmWmv1SuU9fVvbdoikYhdp00GgD7r1uzw 7G7SyaVVNy8AkKfTvRcvODZ6PACYdWX3Xb+uoZELeLw9PX0AoDQ75/LCJdfXBNoN8XUcM0pZX394 yIGI1evOzfqbSCLrtbXx3bVd1onb4gW3Nm09MGAwt6CAqafrOnWybutvnIk4jh19evK0tTb28gzG 0H27tK1a/ZBilFNSHHk0JGzx0vClK2iaGu5z/zZjd25EPGU5uVeWreDmF5DkKPpt2/Ze83FZ3Yzt auzstMmZTVFUYE+faj90cH2R5Lx4eXb6LOkt04OHjiCSSF4L/5GRH4lIRKZSA+0cAIAsJ2fZzavf pvUkMhm73CZg5uZgM9Brt8cYAImtb3fTLrJuj1eamZd6N0EkEGTEveBXVOnaWKTGxldyShm6mliS CCGEEPoFETw8PBq98/jx4318fGQEiIyMDHQMZFPYv+zx80p5603XT344WcVIBVvDnyO48L0f1e+P LgFBgR/drOmSq7rip2T0C/cDFevN/Sc/2KDC0sJPB0II/XJjFn+3n3xvWQGyM/zkB/6COU84dTnx XLjv7jUKygyRUPjg4OlX4bfGnNuLdYp+hqiyzMhW/VYUHfxXH7fKQj9md9lhFjGsPv3TrWAHm/rZ vVujco+z6XV/gR5FvF/fW01vkeIUAHArnMmmtsX208zGhQKOn2K37wrJK/RTNfzQdA1WVO77wTnJ qvST74U1gmQQi0RbOrt1X77YjO1KJJEqijh7evr4rF9r7OzUsMZWnuinZgQAwcIpfvTuMnvpf1bk 36jZq7DST9X8pw9A3MJIU5f63nV7dZDNMKpr2EoFXWM2RaOOtwQFkcyP1/GvyI/9RfuijNt+GnY/ PZXSMj/1z34kFCza7qdm/NmW10f8VIc1OGaitR+zTf39Z7yfUsMWtoO5j/wU/tWP0RcxumKngRBC qPmKjY11dHSUfAuBQIiNjXVzc5MRVWho6MClQd9M8Tf5wWBFYcUelz1fb1dSV/KP8a9vL4lYcnPF TVMP08Yt7jYuUYTQT+sHyva4zqvrI8nwv71WVj+w6pSph23jFncblyhCCKE/ASc9S1FVWZ5BAwCJ SFyUkq5iqIfFghD64YJ7reOk1HEHUb/Lc1WN8LKz5n+aU8SRXoz75RmHmqr/5dBfPPM3Ajc8PX/h 6+3uAbPb9O3zOyVaH7FQWJaTo6KvTySRAKA8N7e6okJZD+cDCCGEEELo3/pN1neV1JVmvZ7VoF0i FkY83v9Yp63OwEMDmyxRhNDP7AcYs17sbFg/sOjI4/9d17ExGhg8s8kSRQgh9IdwGjfkwtzVm136 E8kkADBysuu+DKeOCKEfz+/SXCyE3/k0R0111r07zTTz7gGz3QNm/wmJ1odMpfbdEHhq8jSRQAAE gqKKsk/QWlWWITZshBBCCCH0b6eaf+yRe6709FzpiS0AoT+Z54rhniuGYzkghBD6GRSUGYP34L0c EEIIoT9am759mv66YYQQQggh9NsjYhEghBBCCCGEEEIIIYQQQgghhFCzgOu7CCGEEEIIIYQQQggh hBBCCCHUPPz0+zOzKWwsZfSrYRFZf3wJUJs0ObIStjqEEEKNHbNMvhGAZIClhBCbof8DPm4UnQan SzX9cgu9Q3MqN2pbbDzNb1wgfW9DZckp/eSc6GJ1oKY6p1aueUFo14C9qKSm6Ehp6jKHJ6N6t1M0 6n6rnu2/XKUoNkU+WRTKVz0b7cst9MY80ZklKZXZ5Br8rRGLxMSPKkIIIdSUCB4eHo3eefz48T4+ PjICREZGenl5YSkjhBBCCCGEEEIIIYQQQgghhH4/sbGxjo6Okm8hEAixsbFubm4yogoNDR24NOib Kf7063fdyt5hvSL0h0sT3GQRcrAcEEIINWoQqWaRNGUFINxmUURYUAixKS4g6h/F5/yLj5uIRaTJ SoLKXMT47Ip5N86yLwOJX9a7fzkX+PxfomNRM2bJsSIZ893y/sGW0/zGBb4qi2T9XSErw1kEDgCw aR0XaU1ZkRUVVZb6I3MiLmQpMrBGUFM0+2pdFkUVANIUilhyijKbJQnIoSxyKgCkVfZjkQybIHuR Gl0AwC17w8dsFLmwyOoAkCZez6LK1b0btd4vDCMNwmpf//BP7g+rFDqTRVX56alkPvjijmhpjESW GuXzvs6RRWzw7QTSSLdYpHoH/TTJKxapYbdASONXssC48dMYOatFtAH4YUcIIYS+H7kJ0mBTaFjQ CP3JggXAlrPCckAIIdSoQSSeTTWXFYB/m01xwYJCqObkS071X3zcCthUZsNT/DjNi+K/AAA21bHO kFHl19l011+iY4EMNsWyJv/yrbHZNLNxgZ/FVtD+rpCVwKZ1/Ky51nOr2EbmpKSQrWSCNYKaotlX V0lvgxwsKmJTtWSFrCpkkRSkU6NgADZV82fnLao6/+NHTMHiQzcLbAYNAIJLgE2zrWMvbgIAsBU7 1fFWZfSXA80P/eT+sEqRcJqgeIMB2Eyzz9NNZJPtvgwjs1XUHbMQaofCunraV1+k8h2dczR+84MQ Qgg1JSIWAUIIIYQQQgghhBBCCCGEEEIINQu4vosQQgghhBBCCCGEEEIIIYQQQs0Dru8ihBBCCCGE EEIIIYQQQgghhFDz8Gut794J2hpoZLNGt2XoxFlNkFzslt0bLTssoeklhV//dPupEf5Bxm0XK+rw uRXYRBBq6n5gw/lA03FrDPxCJ+1qin5g66WNVpOWMAclXY37rB8YuSnIbPxi+kB+BQ8rBSGEfp9R JuhWoNHKNbpLQyeeaZLZ5p2NlmuX0OYlhb/6fLZ5NMh45WLFuXwuHysFIQQA/+ux4uXFh80rz/wK 3naHgNWGY3ezF2AN/vaehd7a2dX/s0bbd/bLy9H/ov1Ube88brV5392ek5qw0f4HiSKEEEIIIfQz kJs4vXvb94UHLK79k6apEZD2VPq6LDv35vLAKXG31cyMBRWVTZAZ5+kTnKdP2Gzt+MX2QYf3lGXl rDdrh+0DoZ/SD+wIC58X/Ek/wAxI3v+hH+DcXHFiyqNNaqY6gsrqpugHpvVyntZrc5spX/YDITPL sorWt5yA9YUQQs1slNkeEx5w6ZNRhhaQtujDKFN6c3nElLhZambqggpBk8w2OztP77zZOvCr2eaw sqzS9Warsb4QQlLsuf20Whl8sTHpanz2k9Qu8/r/mnmWU5Kfcj8w8WTMvV3hWIONc3XJHgsvByMn m+aYKHv2CC1Lo3/RfhSm3NmXeCby3t6zTdho/4NEpXZ5TJp4fSe2+R8w09t/Jnzpjo8zPQ2VgIRz 0tfPQiOjdx7npGWptNCdfOOAdKNYKIrafOjJ2YiKwmLbQd49V83AMkQIIYTQ74Hc9EkaOncceelk zR8EQu32kvQMKoOubm4CAHI0JawbhH5jhk6WIy8s+tAPfNxe8j6fylBUN9MFADkleSwohBBCjZpt Go28NLaOUSa9mMqQVzfXAAA5mhwWFELo12Hc2errjal3XlIZClg4vyuJRJJ6N9HCy6FZJEr45Nub mkbr0hYr8TtVlXDzXiRjOfywmV7HNiOPBdU2Ten/T8/fiAz6X9+Ncw3srUDyMfClfzaXZOaOPBqk aqQnFoqw9BBCCCH02/gP1ncJRCJZnvrplvyXry9Nm1uSkcUrLZNeTeux/B+rfr2i12/LeBg/9NRB abDN1o7dgpZbdPM41HsIy8UhJSqmsqhYLBL12LDSyNVZGibh8Mm7W/dwUlIpiorO0yd0+nsqAMRs 2hl38Cg3v0CeQXeYPM55Ol6Qh9B/jEAkkOUpn/cD7y/N2FeSWcgrrZBeTeuxbJhVX8fojaEZD98M PRFQ0w+0mdItcJSFt92hvqtYzpYpUc8qOVyxSNwjaJRRZ+uafuBo1N1tlzgpuRRFqvO03p1m+QBA zJaLcQdvcPNL5JmKDhN7OE/rhbWAEEK/9ShD/nyUyb007XxJRgmvtEp6Na3Hcm+rfm2i10dlPEwf emrkh9lmYLegXhbdLA/1PsByMUqJeldZVCkWSXps6G3kavJhtvn47tZoTkoRRVHOeXrnTn+zASBm 0+24gw+5+Vx5hrzDZGfn6Z2xFhBqdh7970ZWfEpxWj63oNR5So+7O66oGmkNPT4bAEreF1yeE5z5 +B2VruAyrWf70e4AEL3pYuHbbCFfyEnOrSqpcPD3cpjgDQCH+q81c7dxnNgNAMqyOetbTVmY9T8Z v1x8HHwzevPF0syivjv8bXxdpBszHr6NWHI852kaiUJKPBkDAH13+hs6tgSA1OiX1xYdLU7LV2Fp dlv7l6GDReGb7NBpe9WMtd/dfOaxdPCjA9d55VWjLi6kaTLrS7TOI7q+9DgnLd83eLo0zNNTsVHr z097uF4kEF2Yti/51lNBJZ+hp+a9aphp1zYNLd70+0lXAkLMPGxSo19Wcrj2fl2dp/T4zZpQJaf0 wqxNRalZpZn51dxKBWX6hOs7VVpol2TkXZ6/LTPuNZWu6DJ5UPuRPQEg7siVhyGX814kn5m4hiJP BYCpMQdIlHq/olneokfPtVPjjlzhlVXQNFX7bQtg6mkAQJ2RF7x9v6/7tFFng3TamIkEwj1ek20G uDtPGtjQRLkFxaEzN2Q8eqnK0v10Sfjx4bDobSdLs/L7bpljM8Ctdnt24tuwf7YXvssAAG0rk+FH V1IUqLc3HS1+nyuoqi5MzhQLhN1WTDTuZCujGN/ceHgrKKQoNZtEJpm5d+yzYSaJQo5cG5z/Om1I 8FJpmMQzkXe2HJ8avV9GPKmxT64t21ucnqNiqNNtxSTDjtYyAguqqq8t2/v66l2JWGzVq7Pn4nFk qtyp8atUDLXfXH+gbmagbmLw9NxN+xE9Ok31rS/y6K0nCpMzhNUCTmpWVQnXYayPw7i+ABA2f9u7 qDixSLy540gA0Glt6rt/EXa5/2qmRyCQqV/+UO/mhuBea2ayHD67ML00O//5xZsz7x1XVGEAgIzW jhBCCCHU7PwSMxvNVi3H3LiQfvfh8UF+M57f+55dHu4L8Y8Op2trJRw+eWHy39K9np+5ELFgRf// 7TB06lBZxJGIxdLAenZtW/XprmrMSo99cNC7v2Uvb1VjFtY9Qr8UzVYtxkSsSL/3+vjgwBlPt39X P7A/wj9qDV1bJeFo1IUpu6V7PT97N2Lh4f77pxk6tqwsKpdIan64q9fOpFXvjqpGWul3Xx3svtSy VwdVIy0sdoQQ+mNGGe0xNyam3007PihkxvOA75tt3vePnkrXpiccfnxh8lnpXs/PJEYsuNL/f4MN nYwqiyok4g+jjJ1Bqz7WqsZq6bGpB733WvayUjVWw2JHqNnJSkiZFLMmxGfNm4iEyffWbbSeVvQu R8VI68igIJvBnYYem12SXrDfe6kKS1O6wPnkePToK4sMHVsWJedudwxo2cNe2UC9oYna+3W19+v6 xSNsDTqYjQlffGr0Ng1z3U/vz1zyvuDY0A1Dj882cmmVdDXhqG/Q9McbASDj4dshh2epGkVeX3pi ZuLm0Kl7X1+Js/frWmeKYpG4ziOyHcbe2Wker6xSnqEIAE9ORrcb5goAJArJsoed96rhCipKMZsv XZi6b/aLbY0o3pynaQ7+Xu6LfLn5pTs7zde1MTLq1Op3aj+3gg4pqjKGBC8tz+NscfSbELFDpYW2 WCQ+MmyhzUD3oSHLS97n7u81Q8VQx5RtZze8u93w7oHWgwbsmv9dt0qWSF5cjh59YSOJQj43LejW +sM+m2bVF7mGWQuvpf6nJ62ZeGNX5OqDdG11p4kDAKChiV6et42qpDjn2cmq4vLgAQEkCqmm0Y7o YT+ix9ePsL2ycIe1D9txXF8Brzrn6TuKQs0v+xNP35h8a6+6mUHa3afHRi6e9fiIPJNWX6Iqhtrd V0/Ra2tRUViyr/u0xNM32g31bv9Xj80OfuW5RXRtNQB4cuq63TBvGTkvycg7NnLJ0EPLjZxskq7f Pzpi0fS7B5XUlesLf3Xxbm5h8bTY/0kkkmN/LYnacMT9n9EAwK+o8r+2fa3lAMOOrUeeXHugz8xO U31lRP7k5PXRoRsMHVoXpWRt7zy2ZTcnZX2tHmumFr7N2OoyesaDEOxmf5Ky3MLi99l5r1Iuzt1A olDaj+jtNH4gAKQ/eKph2uL66r1JN+7RtdU854836WyPxYUQQgih3wOx6ZPMuP84kNVG+u/S1IDG RdJmUF+6thYAGLk6c1LShNV8AHh88KjTNH9Td1eKogLTQE/ZsObxRUadnaQLuobOHZkGepyUdKx4 hP5bGQ+SAk3GSv9dmr63kf3AAGe6tgoAGHWy4qTmCasFAPA4+IbT1F6mbjYURSrTQF25hUZNP9DJ Srqga+hkydRX56TkYi0ghNBvO8rcTw9krZD+uzT1XGNnm23p2nQAMHI14aQUCauFAPD44EOnaZ1N 3c0pihSmgbKyocqH2aaxdEHX0NmIaaDMSSnCWkCoOdK01CcQCCosTb12JgQCga6tzC0ozXj0tjy3 2GV6TyKJqGqs1bK73YvQB9LwurbG0mtq1Uy06doqhW+yf3YOE0/GGHVqZeTSCgAsvG2VNJjJt54B AE2TqaTBUGFpalkZkKkUho4qN7+03k6yniNSN9PRaW344vx9ACjPLUmNfmnj20m6i2XP9oqqNAKB 0GagU2lWkYgvbMy3DySi9AJlmiazZbd2Ly8+/M3aT+7LVOl1nHQtVWV9rYK3GQCQ8fhleV6hy5RB RBJR1Ui3pbfTi4u3Gxd/x9F9pFcfGjvbFCSlyY7cblg37VbGR4YufH7xdr9tAV/fXfmbJGJJ0rV7 LpMHkuUodC3VdkO8vrmLiqHOqysx6Q+eU+SpLTp8vOW4QftW6mYGAMByaqOkoZJ8J15GJBpmLQzs LIkkIl1L1ad5hocAACAASURBVKhTW05aNgAwdDXM3TvEHQsHgLKcwvT7z2wGesj6pJy5YeTcVrqG beHhoKSunHw7rr7AYpE4/vjVLrNHyCkpUGmK9iO6P/9QjFqWRmSqHF1LVc/Wgq6jxi0olh25ro25 oUNrAFAz1qNrqxW+zcB+9afM9B6/CLTtJ/13ad5GACjNzgcAQVX19OgjIw6vjd198t3tx9LteUmp lt4uc+JOu/09+qT/0kpOKRYgQgghhH4P/8H1u7rtbIacOFCTvEIDnq9Zez0uANC0tT6cIpIAQCwQ AFWuNCNL1cTo6x2fnTqfcOSkoIpHIBK5efkSiRgrHqH/lq6tyZBjcz70A3IN6Qckn/QDKh/6ASIA iIUioFJKMwpVjbXr6AdOxyQcjRJU8QlEAje/5NN4EEII/W6jTDv9ISdGfBhlKI0dZeifjTICMVCh NKNE1UStrtnmk4QjcYIqAYFI4OZ9vHsEQqh5kS6eEWufJEIgiEXi8pziai4vyKLmUkURX8hyqbnq lK718XJAIokoEohknMP+ECWZRcm3ngeaT5T+KajicwtLa3NOIBLJVAoAEAiyki7NKKzviGyHsZ+c iLEb2fXpmVgTtjVdWxkARAJR9KaLKVHPJBIQi0Rf9JbfT05JnkiuuQBUUZVelPy7/eBSqyUrJeaJ zSCPkoy8stxCLUsjACjNyq/mVgW19q0pbYGA9T1X69aFrqUqfUEgkURC4Tcj7zxtyE63CV3+HqGk xmxEclUlZSKBkKZVM+rRNFW/uUufjbMeHrwYOnMDkUh0XzDaslvNg7TkGR+v1lVUYXALSmREkhn/ OnbXaW4eh0AkFKVktR1Us47bYXSf89OCXGcMSzx9w9yjo+yDKsnMT74dF2g9qOaTwqvmFtabaEVB sUggDPGdJ10FF4vEn/QJFOkni0KVIxAI0pYvI/LaOgIA4odqQj9+pmdjMWT/8pqZnjwVAIhkEkWe 6jpjBIFAUGXpWXZzSY2NN3W1J5JIRo5tzd0cAMDczYGuo571NMmM3QHLECGEEEK/gf9gfZckR6Fp aX5PSCKFIhYIpK/FIhE3v6D2rTp/fMrQ1S5J//LXkRkP4y5M/ts/+qpGSzMACDKxxVpH6D9HkiPT tJS/qx8gk8RC0Yd+QMwtKP1WP6Bakp7/ZT/w6M2FKbv976zTsNADgCDz8VgFCCH0W48yJJoW/ftm m0SxQPxxlMkv/9YowyhJL/5qtvn+wuSz/tFTNVpqAkCQySqsAoR+J0x9NUVVWsCbXXW8V9clkSQK qXahtyyn5N8k/XU/xNRTs/C2HXRw2qcbG3rdsIwjsu7nED7/cElG4bMzdzvN6C3deHd72Kuwx34X /lFQVipKzt1iN6txh1NdXiWoqpbes7c0m0PTYv5mTcVt/uhd7hN2uI5XUKH33fK39Pm4TF0NRRVG wPNT31vHstrDl4FlRC4Wii7O2Ww/oseDAxda9+2ibmrQ0EQVlBkkCpmbz5GuWVYVl31zF7Icxcm/ v5N//7eRD0+MWT4pcreaiT4AcPM4tWHKcgrpmir1xSASCEMGzu25dqrNQHcAODNxTe1bxi5tKYrU 5NtxiWcjvRaP+0Yj19Ow8HQYtHfh9xypkoYKiUIeHbpBw6zFd32CZEReX9kSAP3ImR6FTNP47AcH KgY6Al51dXmF9McEwmq+kpoyAKgY6j4NjawNJuTxv35wL0IIIYRQM0X8lTOn0dIs42Fccdp7kUAQ s3GHsIonO7ztcN/YLbvTou8JedXluXl5z18CQBWnmCwvT9PWlEgk8SHHubl5WOsINSMaFnoZD98U p+eLBKKYzReEVfxv9APD2LHbLqXFvBTyBOW5xXnP0wGgisMlK8jRtJQlEkn84Zvc3BIsWIQQQgCg 0VIz4+H74jSOSCCK2XhbWCX81mzTPnbLnbToFCFPWJ5bnvc8BwCqOJVkeQpNmy6RSOJDHnFzy7Fg EfqdGLQ3U9Jg3lx9uqqkgl9ZnfssveR9gayOxVwvKTyeX8HjlVXGbL74b5Jm6KhmP0kVi8QSiUR6 4WDbwS7Jt569uvxIUFXNK61MjX4p4PF/4BHJMxQte9rf23GlOL3Aols76cZKDldJjU6lKwh4/Lvb wxp9OBKJJHrTRZFAlPss/XXY41a9OwBAwtHbdzZcEAtFZ8btyElMTYt9dX7ynmbaVN4/fK5soDX+ 6raRp9fVXrpqYN9KSUPl5rqQqhIuv5KX+zy5JCPvkypWy4p/DdJ7ETWicdYfeeTagxQF+V5B011n DTvlv0rIFzQ0UQKRYOHpEL3tpIBXzS0ojj9x7Zv5eXP9Ab+iCgDUjPWJZJL0am8AyHqS9PbmI7FI nHAiorq8wrhTvT+7F1bz+RVVygZa0r3e3Xr86bsd/HrHbD/JK+WasL/xCNW2Az2Sb8e9uhIrqKrm lXJTY58IeNX1BSaSiHbDukUs21ealS/kC4rTc7IT3/6oyKVomqoEIiEzofF1jWRTVGFYeDhdXbFL wKvOe53yKjzGrKsDAJh16cDN58QfvyIWip6evyGo4um1seCVV5yatJyTnv3qasy1lbsB4OLcDcnR cViMCCGEEGpeyL9y5sw8u9oMGbDb2QskEtsRvqbubNnhbYYN5FdWXpo+tzg1XZ7JdJk9Rcu6lak7 28yzy+ZWHckKCrYjfK369ZIGFlTx9rh4A0BpZtblGfOvL1xlN2qY45RxaTH3L0+fJxYJAWBP524E ArH39qAWju2xrSD0H/UDtjaDO+/uNBckEtvhXUzdv3E3M5uhrvzK6ksz9han5cszFV1m+mhZG5q6 2Zh52G5uPZmsIGc7rItVX8cP/QB/j+s8ACjNKro8a//1xUftRro5Tu6RFvvy8sz90hPvPa7zCERi 763jWzi0xOpACKHfbpSxsBliu9t5G0gktiPsTd3NvzXbbMev5F+afr44lSPPlHeZzday1jF1Nzfz NN/cah1ZgWI7wt6qX+sPo4xgj8s2ACjNLLk8I/T6wnC7UR0cp7ikxaRenn5eevvHPZ23EQiE3tv7 tXBkYXUg9GsikkkjzgRcXXB0q/1sQWW1Rkv9XhtHK7fQqC+8y/ReZyfsCrKYRGUoui/2TY56Ljv+ nS7zxUIRJy3v+rIT0ZsuWvdzZAf0lb7lOLnb6VHb1hqPl2cqDT06S7u1oXILjeGn50YsPnZuwi4i maRnZ+IbMuPHHpHtMNcjA9fZ+7lJb/UMAI4TvU+N3rrOxF9BheaxZPCrsJolt9jtYQlHbvPKKis5 5dsdAgBg4p3VJLl6v2Rg6KqS5CibbKZLxJIu8/pLnyKc+/x9cVq+sFqQGv3Suq9DVTE3LealWCiq vZNzMyJHU8h49HKlUS8AkGfSOk8f4jJ5EJFMGnFs1dUle7Y6+QmqqjXMDXsFTpeuXwKA15LxF+ds id52kqahMjXmQGOqsq7Ik+/Exx0Jn3RzN4FAcBjX923kw4hle7uvmtzQRHuumxY6Y31Qa1/lFtpt B3k8ORlR02i7+ouFYk5a9vVVB6K3nrD2cWXPGg4AcUfDz05ZJ5FIFFUYHgvHapgbSsO37OaUeCby zMQ1NE3Vwf9bIs+kAUDsrjMJx6/xyisqi0q3dx4HABMjd1Fpil7L/E+MWS4RS1iOrZ0nDeSVcWvz Y+vreWP1/xzH95M+OkEGZQOt4cdWRyzfd25qIJFM1LNt6bt/UX2Jkihk7+UTbq0/fKD3LG4+h6mv 6TpjqK6NWUMjl0GeoeS9fOKxEYsBwMy9Q9/Nf2PX+sP5rA+4NH/TevuB8gya18IJ+m1bAgBFnjri yLpL8zeFL9+hZqQ/ZP8KOSWF0uz8tHtPuAXFhcnv0x88lUgkqfee6FibmXSyw2JECCGEUDNC8PDw aPTO48eP9/HxkREgMjIy0NGETaFhQSP0JwuuvOhHVcVyQAgh1JhBpCLeT9FFVgD+Pj9FRywohAAA RP3/3cetwE9BT3aYRQyDT/904yxjy1nV/hnFfwHil2xq3R/JqMLr9b3V1B2LXIafUrdFCj5uef+w 5Vtjw2kC6feTjg/bOC/5B1ybG1yW5Udz/66QRQf96DWrdIu0pqzIivrBDankkZ9GzaWohW8zggfN HXU2SM1YTyKWZD99u6/71IVpl8lylD+86m9vOpr7IuWbK6Dfg1fKXd92yOSovSqGOn/cdIhT5adi DgDBoiQ/upGskFWFLOo1tpwqAASXavop/vTLFaKq8yM1ugCAW/YGtoJFTTYyNfxUWQAQXLLUT61j HXtxE4D6jq3YqY63KqMjDT7eKuCHf3J/WKVIOH4Mi5+eSvIlP7W2n6d7xk/L4fNeUc5PocFPowsW nvCTb1//BPucH7VzwyKsjPaT6/VvDnYRbQAOlwghhJqv2NhYR0dHybcQCITY2Fg3NzcZUYWGhg5c GvTNFMlY6AghhBBCCCGE0E9SUVi2p0sdj+pUUmf431r5hyTqvWYESCS/cS2X5RaSyCTahyfLFiSl 0bXVG7q4G9x/Dict5+vtfmcDVVm6PynnTZCo5EdUvUQsuRl0yLRr+9rF3aSI+2Hzt38d0sLLocfq KdjzIIQQQgih3xuu7yKEEEIIIYQQQj+Lkjpj1rOtf3ii6feTfu9aNnJua93HdZfbRCAAAGiaGw4/ 2uB1dL+zQU2f8/8k0YaKWLH/8aHLOtamA/cuqN1o4elg4emAPQxCCCGEEPoz4fouQgghhBBCCCGE fiJDB4t5KXt/4wMkEAkeC8d6LByLdf0F15nD/n0knovGei7CskUIIYQQQugjIhYBQgghhBBCCCGE EEIIIYQQQgg1C7i+ixBCCCGEEEIIIYQQQgghhBBCzcNPvz8zm0LDUkboD8ciymEhIIQQauQgQlb5 RgCSGpYSQj/m40ZSaPDpnpzVl39KmM3gSMWKNRmWb4313gzHBa3vDkn/uTmhKmN1oCZq9nKkmhcE +rd6curH15TqJsgbm6pZ80LB4mPSCtUf8mBV9140W6Do1P2WYqfmUSnQFF90sGi6X26R/3Lqy6KI GxMzoYWsd4kaDY6QqIsfVYQQQqgpETw8PBq98/jx4318fGQEiIyM9PLywlJGCCGEEEIIIYQQQggh hBBCCP1+YmNjHR0dJd9CIBBiY2Pd3NxkRBUaGjpwadA3U/zp1++6vYvDekXoD5dGimIpFmE5IIQQ aswgIkhkkTVlBSjtyBJ7YEEhxGbQQO1SlLDx519pfCELzGQlIddyEa33Z6d7BcO+DJQnrP/ssx0Q dX6JjkVxB4uqAgBpRa4sMgsbTzMbFyiJLCVJw3bhGLJIWmlVb1gUfEYVap7NXi2fJacOAGnZ8t+8 sDJNMZTFKG66vBU7swR9ACCN+Yol9+V9INKq3rBIjLr35LyrL85Ii01uafsTFI7byuuyCR2jqh/8 uVVfZsIi6X8+9c1nwWe3ykgj3WfJqzY4ZoWOLLkfOSinEZ6w5HiNn8ZQLBcp+OCHHSGEEPp+5CZI g01TwYJG6E8WXIX3vkMIIdTYQUSQyJbvICtAKbAZ+EAQhD6cfJHtGv9x4z9gy7VscIpUh9rXUdX3 AYDNdKwzZFRFNZvO+iU6FhGwqZ0BIBiATWuBzaaZjQvViWxqm4btAqVsmn5w1Rs2vSUWIGqWzR7y 2RRLAAiGVDbd8NtdHIXdhHkTSL/3CwZgU/S/+jbgDZtqWseIUP0OANj0tnW8Vf5E+kKFqPBhoOn4 B1d9IVvJ+POpbz5b+bMiDS6/z6bZNmoo1PyRWeWDtJUihBBCqGngb1cRQgghhBBCCCGEEEIIIYQQ Qqh5wPVdhBBCCCGEEEIIIYQQQgghhBBqHnB9FyGEEEIIIYQQQgghhBBCCCGEmofff303/eHjta3s mleet7p4vLp6HVsnQo2QFvtqi/3sFdp+1xYexdJACCGEmt6leQHhSxZhOSD0hXPTV0Wu3feTIudX VG1nj1ht4b3bawwWdSM8uxC902PGp1v+N2DBy7B7jT8rufdiS6dJK0wGXVt+8Jc96tg9FzY6jF9i 0DfpxuNvBg72XfzgYNjPy8ypCUFBtqMW6/nwK3hfvJV858ku79nYStH3uLMxItB8wRrDuaFTmuIL gdhtNze2XrJEZVrS1eeftWe/g0EWCxYzp/IrqrFSEEIIIfSTkLEI6nR16WoLTzcjp45YFAj9cPd2 hYfPP1z7J02TGfBm14+KnOVsOf3xhtCpe7GcEULoDx1l9u8NX7r44yijoRGQ8Ez6+lno+eid2zlp qSotDCffuPXpXu8fPTzQ32fw3gOW3t2kW7gFBRGrV7y9GSng8fqsW9/apy8AlGRmXv5nbvqjh3KK Sp2mTHUYNQYAXoRdPuk/9tPYbPoN6L91e3V5+Z3tW1+EXS7Py1U1ZHn8s9C8qxsAhC2c/yD4s6/7 fYI2thsyFADuHdgXvX0bv7LC0rt7n8D1ZCpVGiDraeKNNasyE+IJRNKkiEhlfX3ZhVDfkT6/dPHC nFk+GzZb9egp3bK9q2v+m6RP950Re1/VkFXnkQLAk9OnYnbtKH6frtLC0HvJMlNXtoxs1Hekqffu 3t68MefFcwKRaO7m3mv1OoqCQiWHs7ZNq08DM3R0/n6UUPtnVUnJ9q6u1r16d1u2QrpFLBRGbd74 5OzpisJC20G+PVetbcSRZsQ9vrF2deaTBAWmsuO48c7+E2XUaX0Npr4jLUpN2dLJqXbjiCPHzNhd 8UP62505brfwdDZysv1vsyGnpDAl6nDi2Wv39p764i1eGffE2AV+p7ZgZTUIe6avVktW489KHK2m R+8M/Xv7z8vhLu/ZE69u+DcxOPv3cfbvs9lpwq9Q4IN2zynLKVpvX8cPFHTbmHrMH4FtEtXM9Hbe Cp9/7pPvE+gBb1dLX5dll9xcGTblwQI1Uw1BJb8JMuM8tavz1K6b2y77sj0HjyrLLllviT93Qwgh hNBP9Ges7xIIDQoukUhS79638HRrLhlGqNkxdGw58vz8Dw0eywMhhNAPHWU6dhx57NQX06qn589G BgX23bjZwN4eJJ+F51dWXpo/V8PUrHaLSCAIHjzQ1JU9JfK2opqaWCSUbg+dPUO7ldXg/QfLc3OP jR6p1dLSyNGpVbfui5PTa/cN9h1g7OwCAGKxmEAgjDx2gqmnH3fsyMnxY+Y+fSmnqNht6QqvRUul gXllZVs6ObKcnAAg7cH9qE0b/E6cVtY3ODFu9M316zwXLAaAopTkw8OHeC9aOmT/QTKVSiB+4wY8 dR6pRCK5snjB+0ePmHqfrQ1PvHZDIhZLX6fejb28YJ6KQYv6jlQsFGYlJvReF6Rna/v07NmT/mMD njynyMvXN5Wt70hLMzM7jhpt0pldzS0/NGxI9M7tXWfPUVRV/bQYb21cX56X92msl/6Zy9DR+XzL vJLMjJFHT6gaGYuFwsYd6ftHD+2HjRh+6GhRSvL+fn30bdsZduhYX53W12DqO1Jufr6akXHtEjuJ QsGP529GIpGk3o238HT+lTOZdu+JWCjCyvrWKfiX5yTG/2fvrsOi2NoAgL/bwC4snSIhSClIiBIK ioSNLSZYmNcO7LoWdlzlWhgYWCi2oEhZhNioCIh0LiywbH5/DKIXYVU+C31/j48Pe/bMOXNiZs7s mXCy/JVXuJrDzX+W/of8UiGryDJyaYe9FH0Y6Tm2Gn1uyqfdsuxtCUNBRtVYHQDoTAZWFEIIIYR+ bz96fldQXX1t5boXV29IJBKLXl4eSxZQGYzCV6/39hrodzpEq62FSCAI6t7PakBfp0njASA97u61 lWtLM7OU9HS7r1qiZ29HpPP2QVLE2o15T59JxGJDZ0efg3ukZEqh02+sCUwMOUllMBwm+DlNHAcA kes3F7x4Wbdgypmw6O27p92+lhhy4v6hY/nPXpyeMpMmwwCAadHXid9i7h04fGdfMI9Trmtr3Wvd Sra2lrSS8nhRm3c8uXCpIjefqabqvWltKxdnAMh7+vzy4pX5L14yVVVcZ06x7N+XiJ90LDRqy06x UGg10JtC//DTz1dlilBzQSKTqDL1f+KM3X4x8dBNbgFHRkGu4yQvp6k9AeB24LnSzEIBj1/0Klcs EHZfO9LQpQ0ABPddY+hikR79tCKfw1SV77fLX7GlWmPZRf59quBZlk/IrNrt/WRs9Jbz0+4GYkMg hNDveZQhkevufK1zc9PG3mvX6Xd0+DT+1RXLLHr2enkzsi7k6cULDCbTa+ny2sEktfaY9S45qffa 9VQ6XallS8cJExOOHjZwcCSRyR/faFuc/oa42VeWze62YCER3qZ33/CA+TwOhy4nR6ZSyVTq+yHo KX0HR2U9fQB4cj7Mqv9ArTZtAcB15uzTUycT87uxu/+x9RnebtDgBkabWzY9Cb9QkZfLVFPzDtzc qrNLYyUlkUj6HRw8Fi4JHjLwP+Pkj2Yc7wUf6OA7hpg/brCkZCq15+q1RGTL/gPOzZ5RnpOtYtgK AN49TL4wf255bo6efUeGPItKpwNAYyWtKwtdTs6go0N5Xm7tmcn7ahTweInHQ0aHnKxbt8dh56qK iw2dnIU1tc855OTkPLkQNvPOAzklpY8L8rUldZo4mQjUtGijaWZe+Oqlnn2Hxtq0sQ7TWEm5hYWK LVp82hvRL6uqhHN+9rrijGzOu7wabpWsosLEa/uVWmqVZeVeXLjlXdJThjzTefKw9qO8ASAx5ML9 Q2H5z16fnrLi/Znj0S+ZxRcLRaETl4FEMmjPCgqN2mDikev3Frx443Nw7ft+dS16+5Fpt48CQHpc 0rWVu0ozc5T0tLuvmq5n3+g0JK+ce3ryipxHqbxy7laHIQDQfpS30yQfbGgCt7AsbPbOrMQXyvpa Ju7t68ITjl6P+ecMJ7uo3+a/rAa41IU/Ons7amsot7CMyqC17dup+4qxABA8ZKmhs2V63OOKwlKm Mrvf5mmKuupSMo3dfS4x5Aa3qExGXq7juN5O/n0BIHLDsYLUTJ/9Ae+b+3b0ztPTbu1oLJFLi/59 ffuhWCQmbr3VamM45N95AFBVUn556b43sY8oNKrVANcuc3woVAoA5D3LuLxkb/6LTKaqouv0QZb9 XZpWY8VvcnZ7zS7NyNVq26qupC9vJt7aeLw4PZdCoxh3tesbOJlCowLAlWX7FbRVi99kp15/QKKQ +26YYtzVpgmZ7nT7qyKvRJbNmhH/4WeflYaDe62ZkBhyg1dRyVJT6r9tOltbFQDKsgouLvr3XfJL hrys86R+7Ud6YT//Q35PKHiWGz7rZFlWCY9TTdxN6768j4W3dcyWG1kPMoYdG09E29puRfd1A0y8 2hzu/4++k9GbqNSqkkqxWNxzwyCDTrWXbSWH3IvfdbPkTSFNjuE0rWunme4AELstMvFQHLegQkZB tuMkV6dp+DQOhBBCCP18P3p+9+qyv7lFxX/FRkgkkmO+E6I27+gWMEfN2MhzacCpyTMn3bgQuXaT vIa648RxAFCW9e6Yn/+w4H8NHDuk3rgZMnL89LgIpqpKWda7w0NHeyxdMCx4j0QsLs/Jk55pRV4+ nSk379G9oldp+/oO0W7bxsCpY/tRw7Y6dK3Iy5fX1ACAh6fO2Q4bDAC2w4faDh+6wbLDwF1bPn4+ 8+Owi3f2BfuGHlHQ0oxYu/HUxL/GXTglvaS5j58OD/5X2UCvJD1TQVsLAGoquIeGjvZavtCyX5+i 128ODRnFVFVt1dkp/3nqxYXLx5w9ptPO8n7w0fxnL5qWKULNmo6NoXnv9soGGpl3Xhzstdqsp52y gQYApITGToldp9paOyPu+TGfTbMeb5dhywHAo9C48RErGSyZqPVnz07cPeby0sZSbu/nttVmZkVe qbymEgA8PBFjO7ILVjhCCP05yvNyS99m5j9/fmH+XAqN3n7kKMcJtY+jfHkzMvfxo15/r31+7Wpd /PT4eFUjo+AhAwtfvdIwM++9dp1SSz0AUDUyenzhfOdp06tLS59eCq8sLKyXUXzQbrsRo+rN5/HK ORHr11oPHlLv9lOxUHj3wL5+m2sfmlr4+pVFz97E32rGxhUF+dUcjiybnX4nvm1f751urjUV5Uau XbsvX0mXkwOAqyuW5T5+NPzgIWV9g5KMdAVtbekltejVm8i0wSoqev06897dgTv/IT5+tqTvkhLl lJUVW7YEACGff2LcGOcpUzuM9st+lHJggHf7EaOklJQgEYuzkhJfR0cN2lX/Ss2Hp0PVjIy12rat Hczn591Yv2bMqXN39394d2nmvTtqRsY31qxOjbghr6nhEbCYmN7+2pLW4VdWFqSm6li1k96mDXaY xkrKqyh/m/BgjbkJlcEwcffwWrKMIS+P2+Ov7NbG/XIqij4H11bkF29zGjrx6j6lllpikfjoyHlW A72GBa8re5uzr+9kJT1tIxd72+F9bIf32WDZZ+CuZV/4fGYSmSQSCE9NXEZh0AZsX0KmUhpLvP2o vlsdhlbkFclrqgLAw1NXbYf1AoCyrNxjfgHDgtcZOFqn3ogPGTlvetxxpqpSg9nJKLBGHA18cDjs cVjEmLM7sX3rubgoiMGSnZt8sLqMGzxkKTEVCgB2IzzsRnjs6f6fF74Ka/hnZ26feGWTprl+VUl5 eV5J3VePzkWPv7CewZKN2nLy7IxtY878Le2Up52xeQ8HZT3NzHvPDg5abObVQVlPs/1Iz61Okyry S+Q1lAHg4elbtj7dpCTS8+8JRa/fbXeZ+vGUJwCcnrZFuaXGrPt7BdU1J8dviNp0wm3+8JqKqkM+ y7yWjrHs17no9btDPsuZaoqtOlk1ocZeXL8/5vTf8prKV5bsrSupkq5Gj9XjdayMK4s5e3vPSzkT ZTO0duVvbw0dsH1Gn/WThTVNf1Lu1MjtqREJV5bu+0+oRPL0UvyYs39TaNSzM7bf2nzCe+NUsUh8 dPRqqwGuww4uLMvK3+cdoNRSE2/8/UOom2uNvToj807a8WF7Zzxc9iWL3N8X439rrrymQnLIvfPT jhFLWD3GowAAIABJREFUPTmbdH1p2IC9o/UcDKuKKyXi2geh6Ni2NO9jpWygmhmfdrDXdrNelsoG qljtCCGEEPq5yD8yM7FIlHTidJfZ0+hMOQaLaTd86JPwy8RXtsOHaJqbHh0x9smFS/23byQejpRy 5ryBU0diktXEvStTVSUtOpYIb2lvZz96uIyCgqyiooa56WfOokkkp4njyBSKumlrs+7uzy5dBQAF Lc3Wbq6Jx08BQHlefubdB1YD+0lJJPHYyQ5+IxVb6JApFIfxfm8fJJXn5UspafKJ091XLVE3bU1l MNRNW8soyANA6o2bLHU1qwHeJDJZrbWRjc+gB4ePAcCLaxGtXJxb2LQjkcn2viMYLGYTMkWoGcm6 /3JD60nEv/CZ+4lAA2dzYkJXz8GU3UKlJL22t+u2N1ZtrQ0A+k5mTHV2WlTtaxQtvDswWDIAYDu6 a0b8i6riisayU9BWbu3eLvFwFACU55Zk3nlhNcQZWwEhhH7bo0xCwgbrtsS/8AXzAICTkwMAgurq 6TF3Rh4Jiduz+/XtKACoLiu7tDig/7adZCq17uG9RPy3CQk9V6+dfT9Ru23b09NqnwE4YOvOjLt3 NtpZh/iNUjNuLf5oEWKpF9ev2Y/2/ThwXVuzNeYmuU8etxtY/wbcpxfDGfIKhs6diI+Cqqq6Zx3T ZGQBgF9ZCQDlOdkFqS/GngmbGnm79G1m9PattaPNk8e7r1ytbmJKZTDUTUxl5BWklLSOpN7Dqd+L 3xvUbtBgIpHPlrSmouL8/DkeC5cQdzZnP0zmV1V1GO1HIpNbtLOuK1FjJQWAuD3/rDI2ODxsiHmP XsStrh/WUCK5s+9fh3Hj60LOzZrZZeYcxRYt6rVRfuoLM6/ucxMfus2Zf9J/fFVJSRNKWufC/Lkm Hp7E/dONtWljHaaxktoMHTYz/n7Ak+fjzp0vfPXy8rLFuHn+4vKepRG3w8prqCi20Cx8nQkAWYlP KvKKnKcMI1PIygYtTD2dn4bfalr6VAb91KTlDAXWwJ1LyVSKlMQVtNRbuzkkHr8IAOV5hZl3U6wG egFAypnrBk42xHSyibsjU1UpLfoBNlwTSMSS1Gv3nSd5U+k0eXUlmyGfeT0ThUZT0FJ5cOhKcXqO nLKCpvmHHZdFT0cGSxYAbId7ZNx9WlVSLiUdA4c2ynqaAKDXwZyto1aSkQcACloqrd1sE49HAEB5 XnHmvWdWA776atSK/JLXUcluC0ZQ6TRZNqvz9IEPjlwFgNSIBJaaktUAFxKZpNZa12aoGxHeBG37 dlJsoUahUpynDKgrqZpxC10bEzKFLK+uZOBkSZSI0NLOlLgxmsqgUxn0b9uCHfx6EjcKGzq1KUzN AoCsxNSKvBLnyf3IFLKyvpapp/3Ti3HY1X/Pkd699A3GC4l/4TNONC0Ry0G28poKAGDQ2bgkvUhY IwSAhOB4x6ldjbqa0mTp7BZKii2V3/9YYUxM6Oo5tmK3UCpJL8JWQAghhNBP90Pv360sLBIJBIeG +hLTt2LRf14C1Pmvif90691l9l9MldrxU9m7nLTbcRssa2+iFfB43KJiIlzFQO/L86WzmHVX3Mtr qBe/ySD+tvcbeW7GPJfpk1NOnWvdrUtdvg3iZOfc2rg9Zkft5bF0ObmK/AIFTY3GSirk81UM9OuF l+fmfbyIvJbmq1vRAMAtKJRXr320LIlMZqqqNCFThJoRbWtDnyMza3dDsrWn+o9PxycfixZU80lk EjefU3epLHG3LkFOmcUt4NQLl1NmAQC3kCOn0ug9MfbjPc5NDnKZ451yIra1hzVTVQFbASGEftuj jJWVz74DtUcZGRkAIFOpNBkZlxmzSCSSsr6BWffu6XGxRi6u4QHzOviNVTM2rpcCmUqx9RlOhDuM 94/ZtUNQXU2TlVVr3dr3RO3DVCLWral3P+7d/XvNvHrIq/9nqLbg8XMhn/866laI78jRx0N1be3q vor/d8/Hs5h0JlPA470f91YTIcTKd542XVZREQDajxgVF7QbACqLCoV8voq+wSdr3nBJpddYVUlJ ytnTk69F1IVIKamwpibEb5SJm7vN0NqnvHILC5mqqnUvBmap1382ab2SAoDTxMmO/pPKc3OvLF8a Osl/5NFjdV+9jIwQVFebenYnPt4/FExl0K0HD6lfUgrFwMGxtVs3AGjt1k1eSzP70UNj165fW1LC 9TWrODnZo4+H1guv16aNdZjGSkoikVhqagCgrG/Qedr0sNkzcfP8xWmYGr6JTbQa5FWWlVeeW6hh 1goAOO/yayqrAq1qX6wj4gv0v+xu3U/dCz7Lr6zu/Neouu1FSuL2fv3PzVjjMn1Uyqlrrbs5MlUU AaDsXX7a7QcbLPu831fUcItKseGaoLqsQiQUsTRqfwRgqSlJj08ikyZcWB+7O2xvnwVaFgbdl49V N21Ze1aiUHt9tpySPABwC8vklBs913gcFpMcGing8UlkEregtO5KEXvf7udm7nD5a1DK6ajW3WyZ Kl99tsLJLabJ0GXZLOKjgqZKVWmFoLqmPLdYQevDbx3ymiqvopKbVmlMVfb731WU6kr6Lvll3J7z 3IISEplc/Can3aAPM9PEM5O/E3l1pfdNQxEJhQDAyS6sqawOtPZ7vzUJ9R3bYFf/TX9PaOlzdNz7 3xO+4t32dT8yAABLg/1+REEGALFQBAwq512JsmEDL356fDoxOeSugCcgkUncgvIGr/FCCCGEEPrB fuj8LlNNlUKjjTl7TM3YqN5XYqHowrwldiOG3jtwuG2/3qqtDAGAraNl4t51cND2epEVtDSyHz76 8nz5lVUigYB4E1JlcQnr/UyqobMDTVY2LTo25ex5zyUL/nv2RqqXCFtby2HCGPvRw7/stEeVQqOW Zr2TU/7PWSJbR7s898PVrOXZuWwdbaJmclIefzjVLOU0IVOEmhEKjcrSUPw4JOvB6/N/7fW/tVrN RAcAAk2n1H3FzS/7sNXklMq/X7Air+x9YAkAsNQVpeRo2NmCJkdPu/U4JTTOcyW+dQwhhH7vowyN pfafKUYl3ZYCHq+molxGgQ0AwpoapopqZVHRk/ALaTHRxB2xvPLyszOmtenj3XfDRuWWetyC2sdI CGtqSBRKvXdqSiSSFzeu2wwZWhdSw+UmHgsZfSK0gQE3nW7q4alhZp775End/G7GvbulWW8t+w2o i6bWunVR2mvi78LXr5mqqrJsNgAotdSryK9bGR5x2SJTRZVCpZW+y5JTVv5sST9bY/cPHTRwcCTe pFtPvZIK+fzjY/3UjIw9Fn94LQJLVbWyqEgiFhNTVtWlZQw5Zt23n5b0/XCbxNbWths+4sxfUz4O j/93TwffsWRK7YNS7wXvL8/NXdfWDAD4VVUA8Drm9rSb0Up6eo/CztUtJeTVUBkyTSvprc0b0+Pi Rp8Irfdg7XptKqXDSC/p+/MdITFhj35lbgETdruP2dVllKyiQr9ti9ja6gDA1lGXU2LPe3Sh4WVI X5G+qYez8+Rh//byVzNqaerVSXrihs62NFmZtOgHKWevey6Z/P6MUt3E3XFw0MqvyJVEwpb9lKyi PIVK4RaUEtOE1WUVn12Epa7ktczPfeHI2N3nDo9YMSeh9ilEFQUl789KiolojaWQlZR6fu4u/8sb 1YxbAECgzZgPze1kSZNlpEU/TDl323ORbxOaVVFbVcDjV5VWENPMnJwiOSV5miyDraNKrNj7lSxi 6zRx2rW6lFu7PyzmECUVCYSHhi7r9be/1UBXADg9dfMPa0FSAz/aqMopyc97GIzd+/cf6dEpLI0v ugaCTKWIBbX3lohFYm5BhfRdo4KWYllmcf0t90HG+WnH/KPmqploAkCgKT6NAyGEEEK/hB/6fGYy hWI7bPD1Ves52TlCPr80Myvn0RPiq8j1m2iyMr03rHaZOTXUf7qQzweAdgO9027HPr9yXVBdzSsv T4+7S9zTYNmvd3rsnaTjp2q4lbzyiqzEz1x8KhGLk46fAoCK/IIX1yLMe3rVfWXvOyJ217+8Mk4r l/88rFVBUyM7OQWIK/gAAMBupE/8nn05j56IBAJuQWF63F3pI0jL/n2vLFlVlPZGyOcXv8ngZOcA gIl716rSsuSTZ8RCUf7z1KQTp2yHDwEAM89uabdj3z5IEotEiSEnqzmcJmSKULNWXVJBlaWzNBQl EknS0aiP53Szk968ikgRi8TJx6JryqsMXWqvwn50Kq44LU9YI4jefF7fyYy4i1cK+7HusdvCeWWV rbpaYoUjhNAfRU5JycTd4+qqFQIeL//F8+dXLht3dZNTVp7zIHnKjVuTr9+cfP2mSqtW3Zet9Fi4 GACshwxNDj3x7mGySCCI2bndqLMLmUoFACGfLxaJKouKLsybU1NRbuvz4SK8xOMhaq1bf/z21oLU F7lPHouEArFI9DIyIv/Fc70OHeq+jQ/abTd8ZN0DmQHAst+AR+fO5D55XM3h3N662bJv7atDbIb6 RG3dxC0sqCotvXfwQGs3dwAgU6mW/ftfWbakKC1NyOcXp7/hZGc3VlLplSPk8+8fDu44dny9wE9L KhIKTvqPo7OY3QIW1VSU88o5wpoaANCxtqHJyt49uF8sEuU+fpwWHfVxUp+W9MW1q1WlpQDALSx8 cOSQgaNT3Vd5T59kP0y2HfahYv1Cz067FUO0kWX/AZb9BxA3Fht3ceMWFCQdPyYWCh+dOyOortKx tGpCSWN27XgSfn7Inr0gkfDKOcQzsRtsUykdprGSvoyMKMnMkIjFZVlZMTu3t+3TFwCyUx6e+Wuq WCSK2rIp5cwpbmFB6GT/8txc3E5/BW/vPVJsoTHh8t7RoVvNvGqfs61r24appnRzw75qTgW/ipf3 9FVZVu5HZ45q2cnPPj5zlLovYivpaQ/dt/rczLV5T19/NnF7336xu47xyipaudgTIe0GeqbdfvD8 SrSgmscr56bHJQl4NdIzVdBUK05/xyvnfuFK/iFIZJKJh33MrrMCHp9bWJZ0MlJ6/MoiTub95yKh iEKjqhpqiwQf3vD96Fx0cXqOkC+I3nla38GCmF5t+JSntIIqQ2epK0okkqQTEdyC/9x7bT+6e+w/ 53hlla2+4JWxLHUlEpn07uGrumZlqSuZuLePWHdEUF1TWVweve2U7TB3ADDp1r6qtCI59KZYKMp/ kZl0IsLWx71plfb0UjyvvBIAHhy+RpRUWCPgV/IUddUBIPvhq9dNvTP4m9C1NWGqKt4MPFbN4fKr eHlP08uyCrCr/+HUTDSyHqSXZhaLBKLYbRFCnkB6fOvhHeJ23syIfS3kCSryyvOfZgNAdUklVZbO 0lCQSCRJR+5y88qxYhFCCCH0K6D+4Py8Viy6tWn7fu+h3IJCdgttl+lTtC3bpEXHJYacnBx5iUQi dRzn+yry9vWVa3usXqao22JEyP7rq9af/WsOmULVsbYasncnAKgYGgw/si9y/abLS1aSKRTjri66 ttIekKVnb1eS8XaPZ19eeXmnqf7EC31rh26D+0esDXQY71d3iwDBc2nAhXmLY3YGsdRUp0VfA4A2 fXoKeTVnp88tSc+UVWS36dPTwKmjlEx7/r08cv2mQ0NGcwsK2TpafTetY+to05lyo08curRo+ZWl q1hqat0C5hh36QwAGuamPf9edmrSdBGfb9G7R13KX5spQs2XkZulcTerre1mUGXo1sM7W3h/2E5N e9qlhMaeHr+LpcEeemRG3WOZrYY4h00Jyn+WpWWl33/3RCIwdMyOgmdZFXmlJDLpVUSKZlu9gXtr 7wqyHtY5YuVJh8ndiecvIYQQ+qN4b9wSHjBvo107GQUFz8XLWrSzBoCPHztModJklZSIxyBrtWnb a836s9OncguL9Dp06Bu4iYiTHh8bOnECiUxp1anTmNNhDPnaH/HFItHdA/s8Av5zP0c1h3NpyaLS t5kkElnV0HDQzt0apmbEVyUZ6a9u3ez197qP4+va2HadO//IyOH8Sq6Jh6fb/AAivIPf2Mri4j3d PcUiYds+3nWP/+25ak3khnWHhg3mFhSwtXX6btzM1tFprKRSPDpzWlZRsVVnl48DGyxpdnJy6o3r APD0YjgRzcl/kueSZVQ63WffgQsL5t3atFHX1tZm6LC6dBosaWrEjQsL5vEruTIKbBN3D/eAhXVf xQXtsRowiLhxmUA835hA3BZMPC2ZJiMz8uix8ID5V1YuUzEw8Nl38LN3xzZY0sjA9WKhcLNDe+Kj tqXlxMvXG2xTEpncWIdprKTlebkXFwdUFhYy1dSs+g90nTELADjZ79LvxIkEgqykRH5VpXZbq/T4 uKqS4nqP+0Y/BZ0ll5XwZHWrbgAgo8DqPH2U8+RhZCplZMjGq8t3bnfyEVTz1Fob9F4/R1FX6/2Z 45QL8wJjdoaw1JSnRR/9klz0Olh1XzEtZPR8/yt7WWrKUhK3Htw9Ym2Qw/jBdcNXRV2tESEbr6/6 5+xfq8kUio61+ZC9qwAgbs+J5BOXeOWVVSVlO11HAsCkGweIBw8Yd+1o6Gy7xX4QTU7WdZav3Yg+ 2NCEXmv8w2btCGznq9hSo92gLg9DbxLh/7jPEIvEJRl5N9Yejtl1pk0fZ9cZg4U1/GsrDhSlZZPI ZGV9zSF75tWlYzXANWzWjvznmVptW/XfMr32rGTSxoLUtxV5JSQy6VVUsqa5/sCds4xcrI27WG91 mEiVoVsP6WrRy/Hj9bEe1CVi3RGHcX2+5GxFRl7Oa9mYY75/A4BxV9t+m6cBQP9t068s3b+5w3gK nWbp3bnLHB8AoDNlRh9ffmnx3itL97HUlboFjDTuYgMAAh4/qMccAODkFF1cGHRjzWFbH3eH8b2l ZGo33P3YmDXcQo68uhJRUgZL1nOZ34kJ6yViiX5HC6eJ3sQE8NfKuPv04sIgYqI6qOccEpncZ/2k lu3NEo5ev3vgYg23mltQurPrXwAw5szfjc2gk6mUkUeXXF1xcHunyYJqvlpr3d5rJxJzz+iPZexu bjWk/R6XDSAB6+EdjNzMpMe38rHnV/HDZ50szSiSYcs6z3DXsNAxcjMz7ma21WoFVZZmPayDhXft yEpQLQjqEggAnOzSi7NDbyy/YDvKwWFyl4y41xdnh9b25y4bSWRSn61DW3Y0xOZACCGE0LdFcnd3 b/LCEyZM8Pb2lhIhMjJyQytVV5bSL1t+Xnn5RmunKTcvK+npYm9A6DsJrj7nq6zdtGVvB57Le/J2 yKHp9dPsu8asl12H8R5fsb1zqjaaTZkSv15JH0/yEUKo+RxEKo76snpJi5BP8mX1w4pCCABAJfz/ 2tyq7vnSe0uPs4T1n9lBt8LhrowPV6BG1dyFfKEr26HBZaMqaxr76kfvWERzfRX6AkBwDslXsTMR WPQ6M3jwTL/T21UMW0jE4pzHL/f2nLD4TSSVTvtZ68kr52609p5y87CSnjb27g/NVxPuq9z26xbJ 5fiybYMLb/oqm3/jlRmy1Kx7xw6+Pb5Fc1dutB07JWKbkp4GtjKq39Po0b7MTgAQnJnuy7b73C5u m6+K1Y9btwKBL8MXAIIp8b7M+q+oDy6/6Stn08ARoeY1lLx2lW/gbvWoioeRJlvcMvZlMMP06Uqu pA5/dNMXFvkqdP5PSM5dX0Xb+qNlVbevPxTSfeW/ZT8J5l/3ZRr8PykskfXGjR0hhFDzFRcX5+Dg IPkcEokUFxfn5ibt2B0WFjZoeeBnc6T+HhVXWVwS5NXAIICpoux/NayxpSRi8c3ArUZdOjdtcrdp mSKEvpZEImnki69JRCy5ufa0UTcrnNxFCCGEEEKfKs8tpNAoLPXad1oXpqbLa6p97eRu8KDpJRnZ n4b7ntqmrK/zdWNgsfhm4H6jLh1xcvfXP135BmmIJTc3HjfqYl03uRux/uijs7c/jdlt/gjL/i7f qSjfNdPUGw8uLf7303ATd/ueq8djP0IIIYQQQuir/Cbzu0wV5VkPor9qkeur1yccOa7VxnzQnu0/ LFOE0E9xfdnxhIORWpb6gw5Mw9pACCGEEEKfMnCyadOn6253PyCRAEC9tf6IIxu+NhHfU9u+zfB1 9e6EI+e12hgP2rMCm+b3P1v5+1DCkWtabQwH7Z5TF9ht/ohu80f84DX5rpmauLc3cW+PzY0QQggh hNA3Qf1jS+6xeL7H4vnYAxD6xbnMbfiRm77nF37F9r7Cx2OFD1YmQgghhBBqDIlMdl80yX3RpF/j dHWSx+JJ2Ci/Pt+TK79Bcy8a7bFoNFYmQgghhBBC6MuRsQoQQgghhBBCCCGEEEIIIYQQQqhZwPld hBBCCCGEEEIIIYQQQgghhBBqHr7785ldWUpYywj94fTpslgJCCGEmngQoep9LoIO1hJC32ZzI2t/ 9ekeo2P9j2xRMygpyar2DxylNsuTC/ZXLyJDAwB9ugLWHmqu3V6sVvuHHPMLthHFH3vs0K/9Q6La wLc09UYOH0Ygz2r4K/l2AODKNIyC1q40QxD+2U3PYHxSpUpfO1pu5FAo/taDdiZuqgghhNCPRHJ3 d2/ywhMmTPD29pYSITIy0tPTE2sZIYQQQgghhBBCCCGEEEIIIfT7iYuLc3BwkHwOiUSKi4tzc3OT klRYWNig5YGfzfG737/rlroe2xUhhBBCCDVNBtNQn6EqLQKJp0+Xx4pCKIO3Hjid9YUeTU+BdFCf +UpKBFe5TktUFvzndK/8df1IwsWNLk/RA5LiL1FX+S30yWoAkEGpwB1I8+vq5Sx9iRbWA/pD+7/g mD6D/pk4NIm+vN5PWDdhuj61/u31GQX79akqDS9AH9NYUpEGPm6lobWHHpmMKEHsn9viVa/0Kd+l NTMqqfoU/W+ZILlSX7bpCbrSLZawBuI2jhBCCH056g/Iw1XeFCsaIYQQQgg1QbCY78pQlxaB/9aV pooVhVAwDwDAVaHpE6jBFeAq1+mrT/doHx6wGSXgAoAr3aHBmFGiHFea2S9RV1DhytIEgODqCldZ Tew8zayrl3NdFVhYD+gP7f/Fn/+RLZj33JXR8iesmzDdlWH0yf4WXOVdGjgiVNwGAFdmA+sZVfm2 9vhC143iZwGAK835z21xeOXK6PxdUq6Md5Wz+abjkBhXugVupAghhNAPQ8YqQAghhBBCCCGEEEII IYQQQgihZgHndxFCCCGEEEIIIYQQQgghhBBCqHnA+V2EEEIIIYQQQgghhBBCCCGEEGoefq353egd pzdY+601HxE2e+cPyC4u6PzmjhOW6fZLjUj4ODx0YmCgtd9SHW9+JQ+7CEIIIYTQbyM68N8NBp3W ancIm7T4R4w2tx3cbNZtGcsi9UrUf0abI2cFGnZeKmfG51ZhoyCEvlzZ25ylytZioQir4pvY7uL0 /OqVuo9p0bd3d3f/v3b7Qbs3O7Rf1lI7NeLGDy7LgYH9nl2++FWLcAsLlrbQ5JVzsCcgJEVmfMa6 FiuwHhBCCCH0q6H+4Pzu7A2/snx/3UeWmuK8h8HE3+V5xTcDj029tUPFUFtQVfMDVsbJv6+Tf9+t jhPrhQ/eM7c8t3ij3VjsHwghhBBCzcudnYevzFv7YbSprjIvI7Z2tJmTf3Pl9qmJ4SrG+oLK6h8x 2pzu5zTdb2sbz/qjzSOby7PzNhp3wfZCCP2Wqko4ZyctLsvKnRp/uhmttrallfuCRf/Xbt9/kpP/ pK1OHX/8yrvOnK1haoZ9D6FfxNUFF016mBt0NsSqQAghhNB3Qv3xWep1MB99fHntBxKpLrwsq4Ah L6faSgcA6EwZbBuEEEIIIdSU0aaT7ejw/Q2MNjOzGQos1dYGAEBnyWFFIYTQ95Cb8vz46Dkt7a0g K/dXX9ePjhEAIKuoaOTi2kyr3dDJuQnlx+6KUBP2FZ8lkUjSo9+Y9DDHmkMIIYTQ9/MT5ndJZBKV Qf84pODF2/CA3WXZRbzySuJuWveFIy16OcXsPJOV9HLYgQAi2lbHid1XjjPpZnd4+Ar9DhZvYh9V lZaLxeKeq8YbOLYl4iSH3owPOl+SkUuTk3Hy79tp6gAAiN19LjHkBreoTEZeruO43k7+fbHhEUII IYR+VyQymSrD+M9o89mr8L9WlGXl8DgVxN207itnWvT3itm4N+t+yrDQ2jeDbG3j2T0wwKS76+E+ 4/Wd7d5E3a0qLhOLRD03LTJw6VA72jxyLn57cMmbtzQ5Wafpfp3mjAeA2C37Ew+e4hYUyyiwOk4Z 5TTdD1sBoebo5Y3YW+t2F7/JotCoxu7OfbcsodBpACDg1URtCHoSdqMit4Cppuy9fVkr144AwMnO u7Z0a0ZcAo9ToWyg63f+X6aaMgDc23viTtAxHqdC186y18YAto4mAFSVcC7MXJV5J0nEFyi21O63 c4WWpSkA5Dx8fmn+uqLXmQCg2ab1iBPbabJfdLlz5p2kk37zBu9fr+9k22Cmb27fPzUhYM6TaxQa lVjbrTa9Zz26cmXhRiU97ZfXY1WN9VWN9R+dvmI3un+n6X4AELvjUOLhs9yCYhkF+Y4ThzlNGQkA tzfuLc3MEfB4Ra8zxQJh97/nGLrYS1kxoorEQuHVxZt/QKs9v3ol5cxpA0enuH93C3m89iNHd5k1 BwDKsrIuLg54l5zEYMk7T5rcfuRoIn7S8WNR2zaLhSKr/gMotA8/Tex0c63Iz5NlK86Iu1sXWFVa emHenMz7d0V8gaKubr/NW7XatM28f+/y0sXGXbqmx8dVlZbaDR/h5D9JyhqKhILzc2en3b4tqK5W 0Nb2WrrcyMWVV1G+0bbduLBwTXOL2mOQs4P7goUWvXp/mkLBy9TjY/2mx8TzKsrXWpj2WrOu/YhR NzcFkikU1xmzEkKOxOzaycnJ7rd5q1X/gcQiMbt2FKW9FvL5JW/eVHM4HceO6zhmHLEy11etfBR2 VlZR0WG8/4eSlpRcXrr4TVwMhUaz6j+wy5y5xW/eSMkUdxfoZxFUCa4tvPTi4jOJWGzRz9Lj7x4n s7WgAAAgAElEQVRUGWrhi4K9rrv8rk7Qaqcj4ouCOu2w8rFxmtEZANJvp11beKk0vUTJQLl7YB89 R30inbd3MyOWXc1LyZFIJIauRj4nR0nJlEKn3Fh6JfHgA6oM1WGqs9P0zgAQufJ6wdO8ugVTjidH b7w1LXFW4sH79/fezX+ce9rvOE2WBgDTkmZT6BRsO4QQQgh9W9RfYSXUTVuOPbc28/7z42PWzIjf 8yWL3D98xf/yRnl1peTQm+fn7CKWenIh9vrq4AE7ZunZm1WVlEvEEiKyTjtj8x4OynqamfeeHRy0 2Myrg7KeJrY9QgghhNAfQt3ceGzE0cz4xOODp854cu2LRpt7T/jHhMprqiUfOXd+ylJiqSenr1xf tHHAgQ16jrZVxaUSsbh2tGnb1ryvu7Jhy8y4xINeo816uykbtsRqR6jZUdLT6bF+gY61RWVRyV6P USmnLtkM9waAq4s25qa8GB6yRdmwZcmbtwo6mgAgFoqODv1Lp53FxFvHZBUV8p+/JiZ3H5+9difo mO+5IAVtjYhVO06NXTDuajAA3Nl9lEQizX12A0iknIdPVY31iUwvB2xo08/TYeIwAa8mN+X5F03u kkgZ8Umnxwf4HNms296ysUwNXexlFRWeX7rZxtsDAFJOXjJyc5LXUAUAfmW1f+TRdUZd9BxsRp/+ Z3/PMcT8ro61hXkvN2WDFpl3kg72GW/Wo4uyQQsASDl1aUpMqKqxfkZc4rHhM2alXJZhyze2dgra GgraGi+vx/ywhnsdHaXaqtWMmDskMrmmkgsAYpHo6OgRVgMHDTtwqCzr7b5+fZRa6hm5uOa/eH5x ccCY0+d0rNrdPxSc//xZXSJTI6NSI25cWbbk45Tv7A0ikUlzE1OARMp5lKLayogIz33yuKPf2G7z A7iFhf94uGm3tTRwdGps9ShUmpmnl9fSFbKKirH/7Dw/d9bs+0ky8gpW/QcmHD3Sa806AHib8IDH KTP19GowBTUjY25RIb+qKisxQdPc4l1yUvsRo/KePiEmre2Gj7QbPnJPD496Sz08FTrm9Dm9Dh2L 09/s7Opi6uGl2KJFwpEjr27fmhJxS0aBfW72jLrIp6dNUdbTm3UvUVBdfXLC2KjNm7rOmSclU4R+ lqvzw7mFlX89nCORSI4NPhS1NqLbCi81U3XPdT1P+R2fFD89cvk1eS0Fx+mdAKAss/TYkMPDQkcb dDZMvfI8ZEDw9EdzmGqssszSw733eazpOSx0lEQsKc/+zFuoK3LL6UzGvIzFRakF+9z2aLfTMXBp 1X5sh61tN1TklstrKQDAw2OJtqPbA4Ctn72tn/0G/VUDD/rg85kRQggh9P2Qf3yWWQ9ebGjnS/wL n7+7aYlYeneWV1cCAAPHtiWZeUK+AAASQq47Tuhr5NKOJstg66gp6qoTkQ0c2hATunodzNk6aiUZ edjwCCGEEEK/q6y7yRv0nYl/4dOWN3G0ObinvKYaABi4dCh581ZYwweAhIOhjn/5GnVzosnJsHW1 FPV0akebne2JCV09J1u2rlbJmyxsBYSaI7XWBrp2bckUsryGqkFne2JbFovEyccudF83T93MiMqg q5sZySiwACAr4REnK7fXxgAFLXWarEwLmzZEIolHznYYO0RRV4tMITtMGv72fkp5bgEAKOnrZCc/ fXYxUiwUtrBtWzePq6Sv8/zSzcy7yTQZRssO7T67klQG/V3CozMTFw0L2UpM7krJ1H7skITgM0Sc hycu2o7wJv7WMDeiMujymqo6Nhby2urcwpLavZmzHTGhq+dgw26hVZJRuzfTbW9JTEjrO9ky1VTS bt/77HpKJJIf1nAkEqnr3PlkKpVEJsvIKwBAVmJCRX6e86QpZApFWd/A1MPr6cVwAHhx7Wqrzi4t rG1IZLL9aF8GiyU9ZaWWetkpD59duSwWiVpY29BkZWt/SaFQrAYMBACWmpqph+ezyxelp2Pm1UNO SYlEIll69+fk5IgEAgCw9/VLOXeGX1UFAA9PhVoNGESh0RouIJmsaWZekPri7YMHtsOGZz98CAC5 T59oW1pJyVTb0kqvQ0cAUDEwlNfULEp7BQDPr12xGzaCpaZOZTAcJ0wkYlbk572+fcttfgCVTpdl szv/NePBkUNNyxSh70osEicdSeiy0I3OojPkGXZ+9k/OPiK+svW112yjdbT/wSdnHvXfN4REIgFA yvEkg86GxCSrSXczpjozLfIVEd7SQd9+fEcZtqyskpxGG63P7mScpncmU8jq5ppmfSyehT0GAAUd dmtP08TgBwBQnsPJjEu3GmaDbYQQQgihH+Yn3L+rbWXks29BbfayjC9f8OPzQ5aG0vvTKjIAiAUi oNM42UXKBg2MyR6HxSSHRgp4fBKZxC34cKcFQgghhBD6/WjbtPE5saMpo82PRoksTbX/jjaFwKBz snKVWzVwY+7j0EvJR88JqnkkMpmbXySR4GgToWbpXeLjuJ1HuPlFJDKpOO1tu6G9AaCysFhYw1cx 0K0XmfMuT0Fbo967h4jwWxuCYrYeJD7S5WQr8ooUtNRthnvLshXu7Am5NG+dw6QRzn/5EruXvluX 3j8QGjZtBZlC7rZkmlnPLp9dzzMTFwMAW0fjs5la+/SOXL2zOO1tVSmHx6lo7dGJiEDMI5JIZBqD TiKR6vZ+j89cTT52QcCrIZFJ3PyiumdifXy3rpwym1tQ/Es1nLyGBpnyn2efcnKyayorA21q579F fL6+gxMAcAsL5NVr641EJjNVVKWnbDPUR1aRfWfvv5cWBziM9ycmjAGALsckU2t/TpFTUipOfyMl EZFQELNzx5uYaAlIxEJR3eFGw9RM09z88flzVv0HPgm/MPZsmLRDm6VVwYsXWYkJvVavvR98sCwr i0QiMVVUpFdL3d9kMkUkEAIAt+BDDcir1V4Tz8nNpcnIyLLZxEcFTa2q0lJBdXUTMkXou6os4Ir4 okO99xPvwxWL/nMdSee5Xf7puK3Lom5MVSYRUpZVlnbz1Qb9VcRHAU/ILeQS4SqtvqIn0+UZVJna TV5eU774dRHxt72/4zn/UJf5XVOOJbf2MqvLFyGEEELoB/gJ87sUOpWlrvQlMck0qlggJP4Wi8Tc wrK6r0hA+jS+gqZyWVZBvcCspNTzc3f5X96oZtwCAAJtxmCrI4QQQgj9xih0GktD9YtHm4L3o00R t6Dow2iT1NBoU1ujLDO7/mjzfsr5KUv8Y06pmbYCgMBWLtgECDVHIr7gUL9JvQIDrIb0BIDTExYS 4UxVZQqNWvo2R05F8T87BC31irxCkUBIvN22DltH02HSCPsxgz7NwqxXV7NeXQtfph8fMYupqmQ7 sh8AUBl0x0kjHCeNeBURd2L0nMnRJ1Ra6UlZT2ENf/z1Q7HbDh0fOcv3/L/EBHNjmTLkmZYDuyeF hPErq9v59CZTpb0AMivh8fnpK/1vhqi1NgCAQPMPz/vl5n3YPZbnFsh/2T72J2JracspKc1Lflwv nKmqlvMope5jdVnpZ5My8+ph5tWj8NWr4+N8mSoqtj7DAaCGWyGoriZu5+Xk5rLU1aWkEB+05/m1 K74nTsuy2cXpb7Z1cqz7yn6U3939e2XZbFVDQw1TMymJ6FhZ5T1/xsnOVmnVSqddu8cXwrTbfu4+ 2oYOZCw1tYrCgnrFV9TREfB4VaWlckpKAMDJyZZTUqLJyjYlU4S+J6Y6i0KnjLnmr2Zaf6MTC8UX pp2zG9Ph3u74toPaqbZWAwB2C0WT7maDjwz/ZETHzk78iqet8Lk1Ir6IeIduZWElS6P2khdD11Y0 OVrazVcpJ5I91/T47AaIEEIIIfQNkX/llVMzbpGVlFr6Nl8kFMX+c1bI40uPbz2ka1zQ+Yw7T4U1 /IqC0vznGQBQXVpBlaGz1BUlEknSiQhuQSm2OkIIIYQQAgA101ZZ91NKM96JBMLYzfuF1TWfGW2O 6Be37WBGzAMhr6YirzD/SSoAVJeUUWVkWJpqEokk6dAZbl4hVixCzZGQz+dXVim21AKA7OSnr2/G 154zUymWg3pcWRhY9DpDWMMvTnvLeZcHALrtLZmqylcCNnALiwW8muzkZ/yqagCw8x0Qv+twzsPn Ir6AW1CcHvOASCcjLpG47VVBS11WUV7Er7245OX1GH5lFQCoGLYkUynE/Z3SySkpeq6cIavEPj9j JRHSWKYAYD9u8LPwyBeXo2xG9JWebHVJGVWWwVJXkUgkSSFh3PwPc7rZyU9fRcYTj6quKecadrb/ xVtT19aOqap2c+OGag6HX1WV9/RJWVYWAJh5eqVF336b8EAsEiUeD6nmfOalmxl373ALCwBAQVNT lq1Y12oSiSRm1w6RUJD39MmL61fNe/SSkkhVaSlTWYXBYgl4vPigPR9/Zd6zZ9m7d/cPBdv4DJO+ JtqW7dJiolVbtSKRSC2sbZ5cvKBt1ZSpVlOv7gkhR8rzcoU1NfH7/iUCWWrqJu4eEevWCKqrK4uL o7dvJaaxv1WmCH0rZArZdnT764suc7LKhDXC0vSSnOTaC+8iV1yjydF67+jnssAtdNQxYY0QANoN s0mLfPX8whNBlYDHqU6/nSaoFgCA5eB26bfTkg49qKmo4ZXzsu6/lZ6vRCxJOvwAACryKl5cembu 3fbDPnaCQ+zmKF5ZdSs3448XUdBWyE7IAgCxUAwAvHJe6KhjJW+Kn4c/vbbwEgBcmHo27eYrbFOE EEIINRn1V1454y42VgNc93SfDRKwHtzVyNVaenyrgV34VTXhAbtLM/Nl2EznKf01zPSNXKyNu1hv dZhIlaFbD+lq0av2UlkBjx/UYw4AcHKKLi4MurHmsK2Pu8P43hl3n15cGEScVAf1nEMik/usn9Sy vRn2FYQQQgih34yxRycrnz57nAaCRGI9sp9RN+fPjDaH9+VXVYdPX1GaniXDlneePV6jjYlRN2dj j05bzd2psjLWI/tZ9PeqHW1W84KcBwEA513uxRkrbyzeZOs3yGHqqIzYhIvTV4hFIgAI6jyYRCL1 2bmipQO+sA2hn4zBYnqunnXCd65ELNZ3tHWaOprHqSC+6rl+fuTfuw71n8QtKGbraPTdtozdQpNC p40M3XF1yeadjgMFldVqpoajTv1Dl5Nt4+0hrK45O2VpyZu3sooKbfp7GnRqDwBv76ecGh/Ar6yi ycpY9OlmO6o/kXjikXNnJi2RiMVyymz3ZdPVTAy/ZG1JZPLAvWv2eflFbznQeeaYxjIFAA1zY5a6 Kkgkqkb60tM06upo7Oa01aY3VYZhPayPRV/3uq9Me3ZJCb10esJClrrK0EObPn5c86+JTKWOPBJy deXy7Z0dBdXVasate6/doKirq2Fm3nPVmlNTJor4fItevQ0cnYj4CSFH7u7fV1PJ5RYU7OzqAgBj zoTJKSm9TXhwasokflUlTUbWomdP2+G1dwEqaGlR6PQtDvYSsaTLzNkGDo4AIODxgnp4AgAnJ/vi ogU31qy2HTbcYdwEh7HjQyf7r7c0l1VUcg9Y9Pzalbr1pFBptsOGxwXt9tl3UHqJVAwNSzMyLXr2 BgBdG9vwgPkeAYuJr/7xcBMLhSWZGTfW/h2zc0ebPn1dZ8xqLJ32I0eVpKf/4+HGYMk7T5r85MJ5 Irz/1h1Xli3Z3NGOQqdbevfrMmee9EwR+lm81ve+tebGfvc93PwKtq6iy7yu2tY6aTdfJR68P/ne DBKJ1HGK06vrqdcXXu6xqY+intKIsDHXF10+Oz6UTCHr2OkOCRkBACrGqsPP+EWuuHZ57gUymWzs aaJrL+0aCz1H/ZI3xXuctvM4vE6zXYkX+hKsh9tGLLvqMLUT8cj9Op5rel7462zMpiiWBmta0uya cl5GdBq3gFuUWpgZlyGRSNJj0rTaabfqaoxtihBCCKGmIbm7uzd54QkTJnh7e0uJEBkZuUH/oau8 KVY0QgghhBBqgmAx31fBXFoE/ltfpgFWFELBFXOB09lXbvD/kcIWXzVN6XGWqCz4+KNb+WtXGqvu Y5SAC8LFrnSHBpeNEuU09tWPrqt3Fb4KbQEguPqVL/v3/219r+dou9EDrIf1adritzfuzXvyckhw 4K/S1fO5vvI/s9Uy7987Ps5vwaNn3yS1iHVryvPz+m/Zjjsx9EX9v/hfX1XLz8ThPfdV7fQT1q3y ti/Ttn5gVoCvUv8GjggVt4E+xpXZsoGvKt9GGvi4lYa60nWj+FmuMhm/covwONUbjdZMuT9TyUD5 u9Qq56Cv3MjvknJJvK98/2+ZIC/Gl93z/0lhCWsgbuMIIYSar7i4OAcHB8nnkEikuLg4Nzc3KUmF hYUNWv758y8qVjpCCCGEEEIIIfSLSL16+9L89Z+Gm3i59Fw//2tTexYeWZaV23aA1/+zShKJpF5I sLd/SXoDb6/0DftX2aDF799In1RI05RkpCeEHPE9eZr4WFlcHNTT89NoTGUV/8vXcNNA6PupLKoM ct7RwNanyvSPndbonkAsubnqhpG7yXea3EUIIYQQkgLndxFCCCGEEEIIoV+FiZeLiZfL/5/Oi8tR 56YuY6oqDwkOpDLo33YlfcOCsKX+H5XFxTu6dCJTKG7zAzTNLYhAporKrLsJWDkI/XhMVeasFwu+ apHriy8n7Lun1U570OHhWIEIIYQQ+vFwfhchhBBCCCGEEPrdmPZwDXhz+/9Px2XOeKzMj+nZd1jw +Pn/mQhTReVbPeEZIfRTeKzu4bG6B9YDQgghhH4WMlYBQgghhBBCCCGEEEIIIYQQQgg1Czi/ixBC CCGEEEIIIYQQQgghhBBCzcN3fz6zq7wp1jJCCCGEEGoafdJnrkfUpzKxlhACAH2qFVB0/68UGDJf fbpHY9X/SHZoBnUlW3sirE+Rx57TDLs6thr6g/s/3fALduZqP2nbbCBffTnLhg8f8i5AbdnwV8yW AOBK133/f8Yf3eI0g+/Wl1S/9apq4RaKEEII/Ugkd3f3Ji88YcIEb29vKREiIyM9PT2xlhFCCCGE EEIIIYQQQgghhBBCv5+4uDgHBwfJ55BIpLi4ODc3NylJhYWFDVoe+Nkcv/v9u27lz7FdEUIIIYRQ 02SUbtEnS7unMIOuoM9sgxWFEABkiFT0SU2/0SdD8kKfwpUWIfeYPpntyuqwRGNq7ene4131I2lF N7o8XxNErF+iojjh+jQNAMhQddNn6GPPaWb9XMzRJ7OxHtAf2v8rj322/2eQXurTNZpDWRz0yQ3f whupMdytqPb44lplFMV5/Qfv8a7oyyh/l5QZKvr0Ft90VYX6tKYn6Cqjt4TtjNs4Qp9ySz3w/ycS aTIGaxKh3w/1B+ThSlPAikYIIYQQQk0QDOAqZy0tgjDNtZHn+yH0x20vosp6D0z+usX5IH1rCgZw ZXWof7rHNqr7m/gJ3pXR8COao/jprnJtf4mK4oS7yrvUlgh3IM2un/MfY6uhP3pcxOjwuW3kpSvN uTmUReQqo9fAwYKXWXt8YRhF1byud6D541q8FFzlO3yffelrV1mTb5lg5dMGGxQh9P9zlf+/HtUe VZGOdYjQb4mMVYAQQgghhBBCCCGEEEIIIYQQQs0Czu8ihBBCCCGEEEIIIYQQQgghhFDzgPO7CCGE EEIIIYQQQgghhBBCCCHUPPz+87uZ8ffXtWjbvNZ5ezuX5+FXsXcihBBCCP2CXl27u63t0DWanjtt R4hF4i9cKnxa4JW5274wMje/eKmsE6+M2xzr56tK2qxtt/J5Hh6NWwT6kcoyc5fKOomFIqyK77EV p0U+2O0w5v9JMG7b8c2mA5cxO6VejvvBZTngMfVZWNRXLdKsjzXoB20j7TY+D3/60Tbyarfj9t+g XPzK6p3u/mvaDtzTa9o3T/z2juMnJq7GzoMQQgih742KVdCgqwtWmvRwN+jsgFWBEEIIIdSM3Nl5 8srcD788stSV52WGE38/Dr0Rs+loSdo7JQOdKQ8OA0DJm+zIFXszYx/WVFTq2Jn33jZHxViXiMwt KLm+6J9XV+8IeDV9d81vO9i9Ls3Lc7Y6zxxmO6ZPTXklmUJuLHEpxEJR1JqDD49drSwstR7Zo9fW 2dLjZye9iFiy592DpyQyefL9Q4otNYnw/MevTwxbbNTNvueWWR/H/6qVkVJSADjSd3ZFXtHke4eI jw+PXondElKanqNkoO21/i+jbvY/oKTp0clX5+8oepmppK/Vc8tsg87WTUu8wZImHrhwfsr6ujhL S29RZehfW1IpHUksEt9c8W/MxqPzsy7JqbBxC0XoV6ZtY+K+auL/k4LTdB+n6T5bLQb/+JV3Xein 0abVT6/D9NtJ4dM3lmXm6tiY9t+3RMlAG/vV77WN6Liv9PoNCkJnyk69EZRy7uad/eewWRFCCCHU TP0Z87sk0ldFl0gk6dF3THq4N5cVRgghhBBCdfScrEZf3FpvWPXoxPXIlXv7BS3U7dgWJBIisKqE o2Nn1nPzTJqcTPi0wPOT1425sQsARHxBcI/pRm72U5OOyqkqfnyrnEQiKXub18LeAgAYCkwpiX8y wPvwJ/Hb9+jwLcpGLcQCofTRYPGrrCN9Znmtm+Zzci1Vhk4i136VcuzqjSV7NC2N6i36RSvznpSS AsD9f89VFXPqPoqFouzE5312ztOxM390/NrJYYvmZV6kyTL+r5J+pMGS1lRUnRgS0GfXPLO+rm/v PDrtu2JqwhEZRdbXJt5YSSvyi218e/XaUjs3TEzufnFJSdI7UlUJ58SQhWxdDcnnGgIh9Cucessq KXz2spVflqGr7U//5aGmvPLE0IU9Ns807+ty6+8DoSOX+sfuw17WzLcR+O82ImfUrTXWyhdsW/iz HkIIIYS+ux89vyuoqr62cPWLi9ckYrFFv54efy+myjAKX7za69rH72qoVru2Ir4gqFNPK5/+TjMm AkD67fhrC1eXpmcqGeh1D1yu51h7rvX2bkLEsnV5KU8lEomhq7PPSWnnDBQ67cbStYkHj1NlGA5T xzlN9weAyJWBBU9T6xZMOX42euPOaYk3Ew8eu7/3SP7jZ6f9ptJkZQBgWlIUhU4DgHt7Dt7ZtZ9X Vq5rb9Nr2xp2C2kXogqqeVFrtzw5E16Rk8dUV/P+J7CVW2cAyHv87PLsJflPU5nqqq7zp1sO7UfE Two+HrVum1gotPLpT6HR6tL5qkwRQgghhBCJTCZm6T52c/X+3tvm6Hey/jiwhZ15Cztz4m/T3p2u L9xF/P307C0GU9Zrfe0j+yi02jFzcI/pFXlFIr7gaL85FDrNrHdnz3VTG0scAN4lPLswZUN5doGe UzuGghyVQQcAzruCJ6ciZr44LafMJkaqRGSRQHh94a5HJ67LKis4TBtSl0jslhBbvz7tRnSvlzi7 pea4m7sf7DvP51Z9tqQAkH476VrATuKG1O4bZ+g5WkopKQCUpL2L2xLSden4uK3HiBAylVJ3o7Dl UI9z/mvK3xUQN6p+VUkB4O3dxxFLg/IevZKIxYaudj6haxsradGrt1QZukX/rgCg79zOsIvt49MR 7cd5S0n8q0rKzS9R0teu12GklDQp+GLU2oNiocjKx7Mu08Y6EkOeaTeur3lf15Tj13DDbBZeXr1z a9W+4rR3FBrV2Muh7675RCsLqmui1hx8ciayIqeQqa7svTuglVt7opNfC9iZEfOQx6lQNtTxu7qD qaYEAPd2n7mzK5RXVqHboU2vbXPYLdQBoKqEc2Hy+sy4FJFAqKin2e/fRVpWrQEgJzn10szNRS/f AoCmpdGIs4E0OZkvWdvMuJSTw5cMPrKC2N4/zfTNrYRTo5fPSQsjOjznXcFW80GzXp69Mnebkr72 y6vxqq31VFu3fHTyut3Yvp1mjwCA2C3HEg9c4BaUyCgwO04d7DTdBwBurwsuzcgVVNcUvXwrFgq7 b/jLsIvdr9Nqz8OjU0KuGrjYxm07LqyuaT/eu8visQBQlpl7cebmd/efMhSYzjOHtx/v/f7Uu4Gt GAB22o2syCmSVZKf8TS0LrDBVsuMf3R51hZjz47pt5OqSjh2Y//H3n3HQ/3/AQB/38CdWxxn7xFC Eio0lEhDe2rQ3kvf9v62956/hialQUtLiZCshFCEzLOP4/bd74+T+hYnvtWXej0fPb7fu/e9773f n/P5vD9jqLShmiISCIPn7sh68krA4VF11Dx2LDDp15XLYu8xHjr96cmG03QOWI11+3uWdHP3lZK3 2f5jVy1KDuCy2Nu1Bgw+uNRh+rCnm09j8TiXVVPizgRH7L3EymMOP7XGZnx/6Vci9lwse/dRyBNU ZOZxqmq6zx3dfd5oGb81deWs+0sPfHgWh5PH24zv32fd9PL3eTIybbSm7x/HUHXVpWXou276tqPu 5e/zGu5nAP67OZKadCXBsLdx5MFwIUfgMKN7nzVuCKGq3Mq7S4LyY/MUqAo9lvR2mN790xyJDdsR KhaKbcbbfvmHwRH7/TVF1URl4uKU5V/Mkbrb827kRmaL+CIlfeXhp8Zo2vzcw1YCDu/htv+lP4qW iCWWA3u6r56GV5B/vONsxceiscfWSOO8CXoadsh/4dP/iYTC4BUHs8LjBRweVYvhsXaGSS+7VmRa mPz+3vpjZR/yEUIaFkYTz/0tR1TIS0y/OGnN6pQb0jhBy/cTqeT+a2cghIQ8/pUZm7KjkqiaqoM2 zTVy7gzjEAAAAAA/3K9+/u6DFZtqipkLXz9fmBTOfJsRtn0/Qohhbtp/x/rAKQsEHO7jddsomupO i2YhhKpy866MndZ/+7pVhal91vpeHulTW1omDb/g6WU1aohvRoxv+su+65q5FVtNEVOeRFqekzg5 +NLzHQezn0chhBymTXz/+FlNEVMa5/WV63be4xBCdlO85kSFKKrQR507sjglcnFKpHSXLzkwOPro GZ97ActzEhkWHQInz222ptlhkRMCz60uSpt064K2gy1CiFddc36wl92UCSvz3oy/curR2m9Rb8EA ACAASURBVK1ZTyMQQszU9Lu+a8dcPL703SuqtiYzJU2aSEszBQAAAAAA36ouLK3MLmSmZu0zG3nQ elzUoYCvIlTmFEUfvtpr+WTp2+zwBFUzfb8BC3cbDrkwxLcyu1Aa7nP/4IKEy1gcdlLQ3sWp16SL u00lLuQJAsau7uI9eMXHuz2XTUy5HioNz33xmmFm8Hjt8V0GQ447Ts0KjZWGx50Ofv84Zl7chbkx 53MiXjeULTs8EYvHHbGftNd0ePC8nfxajjTcoEdnJX3Nr664baowVblFV8as7L9jwaqiB33WTrs8 YlltaaWMmopF4pvTt3jsWqhAITXapPmxbxVVaEoGmq2oaVVu0YXBi61Gufqm3/DNuNF33TQZNVXW 1+TV1H54FocQKkn9kBuZVJFVIDvxFtWUy2JH7r+yhdFvf8fRL/ZfkV1TZkrW3SV7x1zavPT9Taq2 GjM5U/ZAwsnhO411F4vgUanthrKB5sD9visLQubGXsgJT2xYmH+w4lB2WPyEwJ2rix9NurVH294C ISQWii6NWCZPIs6OOrOqIGTYydXSxd3kwCfRR6/53D+4PPcuw9wgcNJ6aSLRh65isNhl2bdXFoQM ObJC1VRPGn5/6QGrUa6rCkP+ygpy3TDjuxZ3MZicF68DJ28Yf3WbdHG30UyN+tgT6dS02/XPl026 8sDEvRtFQwUhxK+tmxVx+v2jaBJD2fvO/pdH6lc0te0sJgXvXcN8NMpv4+M1xyo+FNR/1/9hn9VT 5kSfHbRvScD4NW3tia2Zoa9qikoXp1xdlh0sXbMUi8SXRizTd7ZZnnvX+87+Z1vOZD55JXsWz4+7 OOL02q9SbqrXipLeqRjrzAg7Oe3Jscj9/tnPE2QUDyeHt/DsOS/+4qqiBzbj3IPnbEcIEWhkm/Ee cWeCpHE+vkzmVtaYD+7ZaAoMc312SQW/lpMXk6JhbZIf+xYhVPzmvXYXC4SQ/bShS94Galh/fTuH 15dCus4cPivyzKTgvQ9XH636WCzjt+b6lE0EGsn33c25sRfyY9+GbT0rO9NGlWXkNjQRniCvpK9Z kvYBNixtY468qymqXpy8fNmHtY4Len6aI+f0nQ2X56z1vj392ZbHmU/eIYSYqcV3fYPGXPRa+m4V VZvGTCn6Yo4sGXH663uPRx+OwGAxyz6sXVmwYciREaqmjJ9+XHHzyRpmxcKnpxeGnWFm5IQdvIwQ sh3jnvEkhltTWz/4b4Z2GeOOEMLh8RbujvMenViVfN1mWJ/gFQdal+n9jSesPHuvSgr8K+ay61+T G7mlxz+9e/bKceqw1Sk3es8fFzBrM7cannINAAAAgB/vl67vikWihItX+6xeIk8mKVDI9lO8Um7e lX5k5zNew8ri0ojJKTfujDh9QHonkyT/m4a9nKQPwTUb0I+kppoVGiEN13N06DpjMoFGJSorqVtZ NLfzi3FeNAuLw6l1NLMY4vE26D5CiKqt2aF/33g/f4RQdWFxbmSMjddIGYnE+/l3m+WjpKeDxeEc 50//+DKuurBYRk0TL14dsOdvtY5meIKCWkczApWCEMoICSWrM2zGj8BgsQyLDl28x8WevogQSr/z 0LhvLx0HWwwW23WmtwKF3IpMAQAAAAAAQijvZfIufU/pvzsLdiOEWPklCCFBHW9RcsCkoD2R+69I D/QjhPJepW5h9DvQcTRVW63hmldWfsnHl8mD9vsufX9Lq3OH61M2yciuqcQL4tP4tZxus0dgsFgd +44Nl7ux8pnMtx8sPHst+xDkun761QlrpfdATrsTbj91CFldBU+Qd1o0riH96nxmSeqHaY+Pzo+/ VJldGL7z/D+y/+eNf5sqTJL/Q8PeXaRPrjUb6ExSU5YuiDZV0xd7L9FNdCw8e0kk4m+rzKuuDZ63 033rXOllPS2taZL/Qz0nm64zhxOUyERlqvqnNYlGa6qoQht1buODlYd36Xs+23pWw8pEIhLJTrxF NR16bKVvxo3VRQ9HnlkXue/y60shMmqafjfC2NVBx6EjBovtOmu4AkXx86hrbCB96iOYlO0Gw9xA t6slFoelaKgYuthVZOUjhMQiceKFewP2LlazNMIT5NUsjQg0srTTWR+LBx/8i6rFkFMkNFzDHX/u TrfZI5T0NLA4rOOCsR9fJlcXliKElA21CuLT3gY/FwtFOg4dG9ZxlQ210m6H50a9kSMq6Dl2araQ eAW5/FcpN6b+7XV9p243K9mZdp05Iu50/Qri68shdt6e0tfqlsZ4gjxFQ1Xb3oKixWCXVErDDXvZ 0o20EUL6zjY0XfWG9V3dblaqZvoIIYOetiQ15axnsW2q4zAYTN8NM7F4HAaLre+dmJSawrIevhOw OCzdWMfcs2fqzaeyZ3Gjmuo1LA5r4+WBECKr0c0H93gbFCY7HYshvRXpNAwG02msOyu/RMQXIIS6 zhqRFPBIei7L60shNl4eX15P/I8KYrEaVsYlb7M/RifbTR1SEJ+GECpKeq9lZy4jU60u5vrONggh FRNdiqZqWUZuU781NUVlmY9jXDfNwivIEZUovVZ4x/4vqBWZ8ms5X657yREJfDYHNixtZY6sd8fi sRgshkAlIITyYj7WFFX38O2NxWHpxirmgy1TbyYjhNLvpBr3NdVx0MNgMV1nOipQmlnIVDagF8Tn vw1OEQvFOg56copyP/m4ojjh2qM+iyfIk4gKJKL9+AEp9yIQQqpGOpodjVLvhiOEakoqsqOSbEa4 1s++/k6KylQMBtNpWB9WYamouQc6NF5NPY20h5G5salyBHk9e8tm4+vYmBk62mAwmE7D+hJo5KwX iTAIAQAAAPDD/dL7M9eWlIn4gvOeE6TLt1+dyd5r2fxj3fv3WeNLUlWRhlTlFWQ9Dd9lUH98RMDl sqXX7+YVqBgbfn++8hQynlD/JylFQ608M1v6uussn1uzfHuvWJh05UYHD9eGfBs/cpdX8Gzrvog9 9Tdbkycp1hSXULU0mqqpkMdXMTb4Kry6oPDLr1C0NN4/eoYQYjNLKRpqDXtuJIZKKzIFAAAAAAAI Ia0u5uOvbqv/Y5eggBDC4nFyRPneq3wwGAzdWMdiaO/ssHjpQxZ1u1quLX3CrWK/OnXzf71nLkm7 Lk8mYvE4uylDGOYGCCHHheMi9lwS1HGbuqiuqcTZzHKSmjIGW38+JVmd3hDfsJdthwFOCKEOA5wo WqoF8Wmm7t3ZzHLpdXUIIcqnyNL4vVZMJipTEUIO04dGHvCXUfemClOVx8wKjd2l7/np72oeu7RS Gv/bmpZn5idcuDc78kyjWQi5/MujVph5OHXxHiwNaWlNq/KYKsY6jRa+0Zqae/Y096y/pu1/LrP0 e9jITvz7ayqnSJAjKkhXI/QcO9lOGvj+0cuGG0Q3VtMKiobqF3+0KzcUvtGBBJOx3cmPfRt5wJ9d XIbBYssz8zpPGIAQqi2pEPIE3w5aVl4xVZuBV5D7Jpz5bMvZiN2XPu3EEWqKy6lajC7eg4nKlOjD 1+4t3uu4cJx06REhNPTYylenbgbN3obF4fr9PcvCs1ez5bwx9W+EkPS2z7IztZ04IHTjyfLMvLqK am4VWzpl0KdbmmOwGDmCPAaDkYjrz+RIvvY48eJ9AYeHwWLZzIqGcOlDr6UU6TQ2s6JNdRxFU1Xa mF/2Do9dt9tgiPStiC8w6NVF9ixuVFO9Jk9WxOJxnxqEWp6ZLyMRkUAYsefih6dxEolEetMFiViC EFK3MtawNkm+9sRmfP+U66HTnhyT+dNmUZL6IS8mZfB+31cnb1TlFmEwGJKqksxm+XyIA4vDSpe1 Gv2tYRWUyBEViEoU6VuqFqOugiWo47Y0U3kyUZDDa3gr4HBhS9hm5gj1mzlSxWPzdhtu+TRHRAa9 jBFCbGYNRYP6aY5gSAxyc3PEgahMjD7y4t6SIMcFPaULxj/xuGJZpUggPD9xTf1xRfHn44q2Y9xf 3wy1Gz/gTfAz4x62FDU6QkgkFEYcu/bhReIXs0/cinyH7lz86sKdoOX7sFhcv+U+Fv2dvo0j+eKU uy+nCUWNzi6rgkEIAAAAgB/ul67vktRUcfJyUx8GMsxNv/pILBTeXrDSfuqEmOPnrEcPVe1gjBCi 6WiZDeg35uLxryJTtTQK4pO+P18+u1bEF0j3YGtLy8nq9bvBRi7OcorErKcRSQE3+2/7542YMF8n QtPRclwwo+uMyd9VU4YKTg5fmZuvqEL/RyK62tUFn29uU51fSNPVlrZMYcKbhnBORVUrMgUAAAAA AAghnLwcWf0f5+0pG2gKOHweq1a6RCHk8r86PE1QIjstGh+68RQrj8mwMKAbarGLyqQfCbl8DA7b 1DVVMhInq9FrSyolYrF04ZNTUaNAVkQIKRtqvwl43PB1IZcvXYQmq9FrPi2ZcCqqP6dvqF1TVP5V 5JYWhqajZjbAacylzV/Fb7SmcWeCqgtKDnQcgxASCQSCOu4O7YEzw0/RjXWEPIH/2FUMM3337fMa EmlpTalaDOl1YF8Xvrma1hSXF8SnDT7gKyPxFtX0m10SUcNSRKM1JakpFyakf/FHe/VXKXw1kGAy ti8ivuD8oEWDDyyVXpd53WfTp507ZZwcvjK3SFGF9s/dUkZNYZlIIPzy+ZTSQei4YGzXmcO/zcJi SG+LIb1L03P8x64iqSrZTfFECOEV5JwWjHVaMPb9w5cBXmvmvvST/bxSIU8w4/mpF3sv+49Z5fPg sHSBualMFaikTmPdE87f49fWdZ44oGFJslF5r1KD5+6Y9eKM9EyI3UZDGz5if5qbCKHqwtKGBcI2 i6ajrkinLc+9881BiWZm8Xf2Gq+6tuG8H1ZBKVmDLiOFqIP+abcjfEIOEpUo5Zl5B60/36Gh66wR L49cIypTVE311K2MZSSibWdenJzJymOqdNDTtrNIDnyiZWvWTNExmG/DGv2tUdJVF3B4dRUs6RPN WflMRTpNTpHQ0kzVLAxTb4U1bGmrcotUO+jDtqWtzhGaIl1xec66b+YIpTAh/4s5Uvcdc8TKYohV aXqJ/7gLJAbJzqfrzys2SVUZJ4efem0Xw0Tvq4+sPHuH/H2yqqAkOTis55z6+0hHnbqR9jDK58oO Io1cnl1w0GVa6/LFy8s5TR/hNH3E+7DYgNlb5t4/pmKkjcPjRMLPVwPXMMsVafUnSXCqahrCaytY lOZOJQEAAAAAaIVfen9mLA5n5z3+0ZqtrLwCIY9fmf2xMLF+UTN00y45RaLn4R29Vy66NnmukMdH CHX2GpkVGp52+4GgjsNlVWc/jxJwuAihTmOGZT+PTDgfwKthc6tr8l4lyM5XIhYnXAhACNUUl6Tf e9xx2MDPe1MzvV/sO8atYhm79vrnvrpmQVwiQkj86W81+2kTow6eLEx8I+IL2MxS6UN8m6wpHt9p 3IiQZRvK3mUJefzyzGxWXgFCyGxAv7qKysSL18RCITM1PeF8gN0UL4SQhWf/rKfhH1/GiUWieD9/ ThWrFZkCAAAAAIBGKdJpZoOcH6w6LODwmClZacHPTT0cEULZ4YlVuUUSiUTA4UXuv0zRYtBNdBBC tpMHJV68nx/3VsQXROy+YNKvq4xFkaYS17bvKKdIeHnsulgkLnqdkRUaI40vvVQ3we+uWCh6E/BI UMvV7mKOEDL37BV3Jri6sFTI5Ud9ehYmQqiL96CwbWfZzPK6ClbM8RsNl9+1qDCdvTyyQmPTbj8X 1HG5Vezs5wkCDq+pmvbbNHtxytW5r/zmvvIbsGuRSge9ua/8lPQ1RQLh1Qlr5MmK/TbP5rFquVVs IZffipp2GuOWHRafcP4ur6aOy2LnvUqVXVNBHVcikZS9++g/emUHD0fNzmYyEm9RTRFCb64+qi2r kojFeTEpr688sBrpihBqqqYWg3tmhcZ+fJksFonjz91pOHrb1EBqkcQL98J3XRALRdd9NhW9zsiJ SLw1axtM3l9JyBPw2RwlfU2EUEF8WubjmE87d7hO49xD/jpY9u6jkCcoz8xj5TERQrrdrEhqyiF/ HWCXVAg4vIKEdOmNdu2nD4s66F+YmCHiC9jM8oYns+ZEJLKZ5QghqhaDqESR3qEXIfQuJEp6D1sV Ex0sHvfVQ7Wbmun9t88j0qnBc3fU7zk2kSlCqOusEW+DwtLvRDRcid4UTjkLT1Aga6hIJJKE83fZ xZ/XdAvi094/eikWiRMv3udV1xq52Lfx3tTtZkVSpz/9+zSnqoZfyyl+874qt0jGLG5KU70mkUgi 9lwSCYTFb96n343oOKyPjETqyqtJqjQFCknA4UUd/McD4DsOc6n6WPzq5M0uPs30jlYX86yncaod 9DAYjI6DZcqNZ1p2Fq1omUZ/a8jqKmaDnJ+sPymo49aWVYXvPC9dxm5ppib9urGLypL8Hwo4vGdb z6qa6UvPFQBtco7ok9QoTzc/4lRx+LX84jeFVbmVCCELz45ZT99/fJkrFonj/V5xqjjNzZEPbGYN QoiqRSUqEUV8EUIo8UJc+K6nYqH4+hT/otcFOREfbs0O/EHHFbF24zwebTvDKiwR8gWVH4sKk99L PyJQSBbuTtGnb1bmFZu5da+ffZU1JDpNgawo4PKj/nej1fm+e/pKuoVXMdDG4nDS+xEq62mKhaL0 xy8lEsmHqNfZUZ8vRMlLTGem5yCEPkS+ritnGTl3hiEHAAAAgB8O/4vz89i54dm2fWfcRrKZJTRd 7d7LF2rZdsp6GhF/zn9uzCMMBtN93rT3j549Wr154N7NSvq6E4MuPlqz9eaMxVgcTtu+89jLJxFC KqZGE26cD9206/6yDVgs1rR/X92uXWRkqu/UteJD7gnngVwWq+fSudIH+krZThj1ZMMOx/nTsbh/ HLPrv23t7YUrI/YeI6szFiQ8QwhZjfQUcrg3Zyyp+JBDVKJZjRpi2FvWwbVBezeHbtp13tOLzSyh 6WgNPbaHpqstTyZ53/W/57s2ZNkGsoZav00rTd1cEELqVhaD9m4O9J4n4vEtRwxuSLmlmQIAAAAA gEYNO7HqzoI9e4yHEWik/tvnS5+UWZqeEzR7W21ppRxBQaerpfed/dLr8DRtOgw+9NfNaZvZzAr9 HjZDj61sReJ4BbnxV7ffnr/r2ZYzut2tuvjU3zFYjqgwKXjfnYW7Q1YcUjHWGX9tu/SaUYcZwyo+ 5B/r6q1AJfVYMiHleqg0frc5o2tLq044TRMLRdZj+jnOG92Kwijpa04M3vto9dGb07dgcThth45j L29pqqYEJXLDvViJKlScHJ6qrYYQ+hj9JuNeJEJI+hhLhJDzovH9d8xvaU1VTHUn3NwduvHU/b8O YHE4U/fuuhc2yahp+K4LUYevEpUoViP7um6cKTvxFtUUIZT7Iilk2SF+LYdupD1wz2JjVweEUEHc 20Zrqm5tMmifb+DkDSKewHJkH8Pe9fsgTQ2kFilOzqrMKRBy+dnhCVYj+3Iqq3PCE8RCkewLLsEP pEBR7L9zQcD4NRKx2KBHZ+cl47lV7Pqdu32+oZtOnR+8mM2soOmoDT2+iqarjpOXmxS098GKw0e6 TBTUcRnmBpPv7JcnEa1G9hVyeDdnbKnIyicqUaxG9ZMOlY8vUwK9N/JrOXJEguVwF7up9bcOjj93 58a0zRKxWFGF5rZ5znde+Y3BYkf5bTzdd3b47ou9lk1qKlOEkLqVMVmdjiQS1Q56stM0cetm6t79 gMVoPFHBdtJAyxGf1yzNPXsl+T+87rOJrEEf57/1y9s1t01YPG5S0J4HKw4fsh4n4HAZ5oaeh5cp 6Ws2NYvjzgS/PBbIq6ljMyuO2E1ECE19fFSRTmuq16jaajgFuf0WoyVicZ81U6XP/BZweCd7TEMI sfJL7i7e+3jdcbspno7zxzrOH31t0oadOgOJdKrb5tlpt8MbyomTw9tNGRJ50H/81e2ya6RiqluZ XSDtFN1ulncW7nbfMkf60bFu3mKhqOJDweN1JyL2XLQa5eqyakpT6TT1WzPi9LqQvw7uMxuJU5Dv NKZfn3XTZWfaKHkycdzV7bfn7wyes12zs9nYS1tgw9KG5wh2UtCUByvvHeq0W8ARMMzVPA+NUNJX VrfSHLR3aKD3FRFPaDmik2Hv+svK487GvDwayWPz2MyaI3b7EEJTH89WpCt+fJkb6OPPr+XLEeUs h1nZTemKECpOKarMrhByhdnhH6xG2nAq6nLCP4iFYiz+B1xk4rFu5rMDl8+M+otdWknTVus9f5yW df09Am3HuF/yXmfvNQD/6RYdjlOHXZu/faftGKISxW3F1LSH0dLwyP/dSLz2iFtTW1dRfcRtFkJo zv2jMn674wMe3FiyWyKWKCpT3FZOZZjqIYSINPLQHYvurT96feEOg27WTtNHNJygY+81IOzg5bIP eRIJGndyHYFKhiEHAAAAgB8O4+bm1uovz5w5c9iwYTIihIaG7nLUc5Gjttn6c1nVe0zs5716omyo B6MBAAAAAKCt8SvZ5EN2lBVBmOVDGwgNBQBCyI9X6yNv3fqv8+N8FGTdZtYvb4cP1R0htE59vjTE NfmoC82kIUIYKxNphrsoND5nw2qym/roVzdU0TYf+hiEkJ8C3ofU67cfGP9zmWU/bajtpFZuKp/v 8Ct+kzn2SltZq/PjJ/+bcf7v5Ua98R+zcmX+/R+S2pP1J6qLykb8by1swcB3jX/WDh+ie3Nz5KIP aWQ7qEuVyEexZyM/FtzcUPUJrmVHXRRMwniZLnUmf3SPVx72YQz4OdvSTB+a649MsDbVh+L8b1JY R+sBcxyAb7lmnHWhGP6bFMJqskPNpkJLAvCzRUZGOjo6SpqDwWAiIyNdXWX9CgcFBY3euLvZHPG/ R8PVlpWf7DHo23CSKn3WiyZ3uiRi8dPNe0zcXFq3uNu6TAEAAAAAAAB/ptqyqpPO0xrbg1CaFXkG 2gdIZdyLvOe779tws0HOg/b5tjS1t0FhVR+Lrce4/ZsiSSQS6Jd/tsiPSaYiKz/uzG2fkEPtaBPx Y8cnAG3lB7qcddJzQSOzT0Vp1p1D0D4AAAAAaIN+k/VdkqqKb/rLFn3l0dptcacvana2Gn3h2C/L FAAAAAAAAPDHIqkq+WbcgHYAspkNcjYb5Pzv00m/E3Fr5laSmvLYK1vwCnLQsG1KbVnV4c5eWBzO ddNMjU4m7WgT8aPGJwBt6wdaheYbdQHaAQAAAADtCP6Prbn7ltXuW1bDCAAAAAAAAAAA8Psx9+y5 qujBv0+n90ofaMwv6Tt1Wlnwb2/ZRVJV+lF3eAYAAAAAAAD8gbDQBAAAAAAAAAAAAAAAAAAAAAAA 0C7A+i4AAAAAAAAAAAAAAAAAAAAAALQPP/3+zC5yVGhlAAAAAADQOgYKls1EkNOEVgKgfjpgaf/u 6/LNRFA0/3p3j2by9VsFQTtoKIJF/QuxBIbNnzbOAWjf41/OvPk4eJ12UhdMo+EuBH2EkIuCSf1/ 6/7sHpc3/WnbUvIPThCvCjMUgJ/BhWL4n6cAAGibMG5ubq3+8syZM4cNGyYjQmhoaP/+/aGVAQAA AAAAAAAAAAAAAAAAAAC/n8jISEdHR0lzMBhMZGSkq6urjKSCgoJGb9zdbI4//fpd14pd0K8AAAAA AAAA8PvJQUwD3D+v12HqNhmZc89ArrpNFJufb6CgD93XXkcdn2tAsIR2AH/o+OfKGcg3c+eSHA7D QN6iHdSFcMJAgdjoR6G6h1wrkqSvXQgRYYKYP7fHi+sMcD/lguwcgWmzY6mFHapsQNFr9ddd5Mjr iBowxwFosDmXGVbFRgjlUK4ZEOT/ZWqhWkuhSQH4/eB/QR4u8ubQ0AAAAAAAAADwm/HjM13kPq8i hAnSEEIulMaXTv04yIXas00Uu8zfhdoDuq+9jrqyJy6UztAO4A8d/9xUF2qHZuJwKl1oyu2gLjzk omj7bXhYXaL0hYu8Uhi/CiHkItftz+1x9MyFbPtTUq5ku5B/5Mqxn7DWRY4MkxSAH8hFiYwQ8hMh F6LZv0knjJMBjQnAbwkLTQAAAAAAAAAAAAAAAAAAAAAAAO0CrO8CAAAAAAAAAAAAAAAAAAAAAED7 AOu7AAAAAAAAAAAAAAAAAAAAAADQPrSt9d3wvdd3mfhs150QNPfwL8gu8lDQPssZG2jDMh7Efhl+ zXv3blOf9ZSh/FouDBEAAAAAAAAAALLxa/lH+u7b1nHjiYGHmo2c+ypnh/Wmn12kp3se3V9/+w9p /6e7b95ff7nNFu/a7GO7bRev1/b5rw4yHOq1Mu1BQsPbrPDU4x4bvv/rZ0fteHsvDqb5H+hQH7e0 h48/j5yIF8cHDvmN65sTkXmw8+bNqr4PV92C3gcAAABAG4f/xflFH70dsvJMw1uymtLyrPPS19WF 5U83X54fe0TFREtQx/sFhXFeOMx54bADnWZ9FT7m/LLqgvI95lNhfAAAAAAAAADAb49bww2YcdEn YEarU5Anyc9/6pt0MzH6dEQbqZT1EBuxSPxVYMbjtMLk/D6+br9ZD1oP7S4Wib4z8oNNAWbunQ0d zX9Z8cacmFtdVLHH3reNNJdWJwO3VaO/mQWcgOmHfa4u/za+y5Kh6uY6v81oqatk31x4qqqgfP7T rbD1a9nIsbZyW7nsvy1D9JFnIStuNrwlq1GWZ2/7UYkb9DRZ9Hpd0Nwr0NcAAAAAaPvwvz5LfaeO 3sGfTlXGYBrCqz6WKFAVVU21EULyJAL0DQAAAAAAAACAXyAn+oNYKP6lWX6xL/yTMDqofxuYHZWl QFH4/XqQ0UHrO2NKJJLs6DQz985/1hD/53gjKpFMelt9MwvSvz0hQMrI2eK3aYmi5Fz/GYf17E1Q QTls+r5n6Pxz5CiZ9Or5n5dJ39nY+/a8X7YtBQAAAABom/6D9V0MFosnyH8ZUvI2987iE1X5pVxW rfRqWrdNky2HO0fsu5H3KsMrYLU02oFOswbsmm7m4XBh+EYDZ8sPYW/qKmrEIvGgL5YarAAAIABJ REFU3TMMe1lL4yReDo06HFzxoUhOkeC8cFhP35EIoRcHb8Wfe8QuqSLQFLvP8XReOAw6HgAAAAAA AAAAt5pzfX5AYXI+t5p7wHkXQshhUnfn2b0QQsVvi+6vC2ZmMEmqJJdFrp2G20q/knr3zbN9T2qY 1QxTtYF/D9XqpN2KfHFyuMfbQ+L9Y/EKeMfpPZxn9ZKGvzj+PP7KK3YZm0AhdJ/m3BB+zP2A26oB kSfDSzKK5RUVZgTPJamSm0q8KLkgcL5/dRHLaqjNsN2jpIF58bmPtoUUpRTg8LikG4kIoeH7Rut3 M0QIVeVV3l0blJ+Yp0BW6DGnt8Ok7gihvd2220/oFn/lVVdvx7z4j4XJ+SP2jzF0MpaIJU92PEi6 mciv5RGVFfv49us8yu4/7MGi5NzAeceriyqthnYbtqf+Llx5CVm3l/tZeHTJep5SW16j363D0N1T sHhc/OXnry4+Zb7Nuz7vhBxBHiG04Pk2nBweIRRz7kn06cfc6jrdLsaDt0+madERQmkPEpJuRBo6 WUSefCDk8h0m9e2zdFhTiSOEXhwPib8cxi6rJlCI3ae7O8/yaF2lEq+9iDr5oCKnRE5RwXmWR8/5 gxBCxW/z7q+7xEzPJ6lSXRYN6TTCUUZNEUIJ/uFhB4LFQrHNSCdpHaWOuK6tKa4k0kiLo3Z9mgV1 1+edKEzO4VZzDjgtRwg5TO7jPHsAQijuUljEsXusgorh+6bZjHRqSKTRwkQcuVeWVSTkCyuymZyq 2u7T3LpPc2tFTZtqxjc3o8MOBLNLq/EKeOuh3Qds8pKGZ0elPdx8tTK3VFmfMWCTl37XDjJyJKlS hu2dJhYIH/wd8Ids5dIePk66ecvQsXvkqTNCLtdhklefJYsQQlX5+XfXbsx//VqBTO4xe6bDxPr2 TAi4FnbwiFgktBk+DCcv93nkuA2oYZYQadTFEc8aAusqq26vXJ37KlbEFyjp6gzfu0vTsuPPrhEG i8ET5L4KrMqtuOt7LT82V4FK6LHY1WF6D4TQKZe9nb26dp1ZvyYdPM8fi8d6HhxbkVV61zewMDFP IhJr2ugMPealbKACP4gAAAAAaF/wbaEQah31pz3anhv91n/ctsVvTn7PV16dDpkVtpeioZx4OTR4 /hHpt1JuvHi09vzI00v0HTvWlVdLJBJpZO0uph2HONINNXKj3p4buMbCszvdUAP6HgAAAAAAAAD+ cAQqceKFKbEXXyYHJ029/vnZPbwa7nmv0x7rB3ca1rkss+S81xmSKtm4p2lefO6d1UHeV6ZrWGpm PEo773V64fO/SCqkluZbw6yWJyksT1xblllyevgJLWttQydjhJB2Z92OA63o+iq5Mdnnxpyy8LCk 69evOjzYfG/8qUmqJgwOi0OkEWUkrmmtvfD5Xw833+NUcxoCde30p92YfW3uFYYJ48v7M4tF4kve 52xGdfE6612VV3l6+DFlPbpJ7w4ivpBhwhh5aNyZEcfnPVmSn/gx7sorQyfjD5GZybeT5j/zJVAI FTnlWDz2v+1BTWv9heE7Hv4dwKmu+zKcmZZn5ekw4846AZd/vP+G5OAYm5FOdhN6203ovavzwlFH Z395f+bk4Jjo0499ri6naio/2XE9cM6x6cFrpR9lPk9VNdZc/GInBovlfXp6bqOJI4S0Oxt2HGhH 11fLjXl3bvQOC48udH21ltYo5XbMoy1XRx6epd+1Q11FjUQsQQjxajjnx+/2WD+u03DHssyi8+N3 kxhU456WTRWGmZ5/d83FqTdWatsYvTofykzLa0h/fuiWjCevQ9Zf+WIWKE686Bt78VlycMzU6yu/ LIz9RBf7iS4nBmz8MlBGYV4HRk69sUq/W4fybOaRPmvM+3dR0lFpUU2bakYhT3BzyenZIRs1OurW VdRUF1dJI1fllV2Zesjr3CJDR/OMJ68vex9YFLGDpEptKlOqJp2qSX8XmvRHbegywyNUjYwWhz/F YDG82lqEkFgkuuQz3WbkcK8zJ6vy8k+PGKOsp2vSqyczPePuuo1Tr13Rtun06sIlZlr655HzOCQj 9GnIxs1fphx9+iwGg10W+xJhUOGbZFUjw/+kgmKR+NLIEzZeDl7XZlbllJ/ut1/ZUNXE1dx2UvfX l15K13eFXEHqzcTJd+YhhMjqVIfpPUzdLBBCVyedfbrl/sjTk+AHEQAAAADty3+wJ5YXk7bL2Fv6 786iY61LpNOoXhQNZYSQYU/riuxiIU+AEIrze+S0YKiJq62cogJNl6GkV78fZdjTSrqgq+/UkabD qPhQBB0PAAAAAAAAAKApGaHpZAbFZoQtBothdFDvMs4+9mIMQijhalynYZ01rbQwGIx5/45qZuop t1uzUITBYJxn9cLisGpmGhYelm/vJ9fvvToaSRd09bsZ0rSVKnI+30LWdrSdqgkDISR7cbfFe+jx H2uY1T3m9MbisHQDFXN3y9S79YVRN9ek69Px8nh1cw2qBq22tAYhRNNSqqusTQiIrausoxuoKOko t9lOdJzRHyEkR5DX7WJc8q5ARsz4K8+7+bgq6ahgcVjHGe4f4zKriys/9RTqu2wEFo/DYDEEClF2 4oaO5tIFXf1uHWjaKhU5Ja0odtzl504zPUx6W8kR5WnaKkq6qgihjCdJZAbNZqQTBothdNDqMq5n 7MVnMgqT/jDBuJeljq0xBovp6u2qQP6Rz8CSURgtGwP9bh0QQiqG6hQNpbLMwpbWtKlmxMnhqZrK seeflmczFekUjY660shJN6MMnSykq/Vm/TqTVKlZ4anNVqHheoA/BAaD6fvXEiweh8FiCRQKQigv IbGGWdJj9kwsDkc30Dd375d6LwQhlP7oiXHPHjq2nTFYbNfJExXIzZy8oqynW5D05u2DB2KRSMe2 sxyR+Auqk/cye5fhaum/OwsDEEJ5Mdk1RaweS/phcVi6McN8cKfUm4kIIevRXYqTC8ozSxFC6feS KZo0HXt9hJA8WcHCsxOeIIcnyFkOt634UAq/egAAAABod/6D63e1bE3HX6k/IRRPbMGDfxrO5UQI kTXo0hdYHA4hJBaKkIIcK6+UbqT57ReTA8MTLz8VcHgYLJZdUvllOgAAAAAAAAAAwFeqC1lUjc+X AFI0aO+fZSCEqotYho7GDeFUDSqrsKoV6cuTFfAK9fvjFDVKeXZZ/d5r0OvEwHgBV4DBYNglNV+u QtG0lH5GTVmFVbxa3u4uW6RvRXyRwacK4uRwGCymvpwYJBZJEEKqxoxpN+a8OB72bN8Ty8HW/dcM JCoptsEeVKAQ5RXrDzhgcFixQCSrEQrKn+0Lijh6t753FBVqmFVUDWWEEEVdCYvDfmfiyUEvE6+9 EHD5GCyWXcJq3cEHVkE53fDrq36riyqomspfDEjl92HJMgrDLmFR1OsHDAaLIalQf+TsaLowFLXP oxSLxYqEopbWtKlmxGAxM2+ve3E85H9Dtmha6g3YOF7NXAchVFVQnhWesqvzQul3BVwBu7watmBf oairS4+efdH4hbxa9m677vUTXyAwcOyGEGKXllLUGJ9GDpak0sxdi7uMHU2k0aLPnLu3bqPj9KnS BeOfXR2tLnrj/adLX+OJcgghVn4lj83dbbTm83aslylCiEAlmnt2SvJ/1XfdoCT/WNvJ9fWtKa4O 2x5S8rYIg8XUlrIVqAQYJAAAAABod/6D9V2cPJ6s/l1n+GLxOLFQKH0tFonZpZ93mzGYRuJTtehV ucyvAvNiM4LnH50VvpdhpoMQ2t1hCvQ6AAAAAAAAAADU9B4mTVupuojV8La6sIqmrYwQUvpnOKuQ pWdv0IoM+bU8kUCEk8MhhGrLa8lq0ivqPgYvvzHr3gKGqRpCaLfd1p9fUUTTpCkqKy5PXPf9iWha aY0+6lVXWRe87Ma9dbdHHR7XFru0Rd2tRXec2b/r5L7/JvG8hKzgZedm3d/AMNVCCO3usrh1Jadq KFfllX0zIFWqCyu+GJAVNG0VGYUhMWiFSdkNbzlVtT+wbWUUpvGDNS2pqYxmJKvRPDaMc1s96sXx kAsT9/0Vtw8hRNNSMevXecyJubAZa1knamkqKikvT4j5euSoqha+Sf5i5LCaTcrCw93Cw700M9N/ xhwSnW43fuzPLjxOHkdWp/5zTCor0knLs7d9G9l2Yvc7i646zu+T9Sxj6NHx0sBbsy4p69N97i3A yePiz0XFn4+GIQEAAACAdgfblgvHMNPNe5VRmcsUCUQvDtwUcviy49tOcI08HJzzIkXI5dcUVzJT chBCnIoaPFGerK4kkUgSLj5hf7rJEgAAAAAAAAAAgBCialDLs8u41RyEkFgoRgiZ9bOoq6xLvBYn FoqZ6cUJAbF2Xg4IoS5eXd8EJRYk5YtF4rf3k0symJaDO7UiR4lYkhAQixCqKalJf/y240BrhBCn sg5PkCOrUSQSSUJALLuk5ifUlFaYXCAWiSUSifSySF07fZIq5emeRxwWh1/HL04trMqTtdfMTC8u yyyVSCQECoGmRRPJvC62rXa3ckHiByS9ExhCCCH7SX2iTjwofJMjEgjZJazsqLRWJMupZOMJ8mQ1 mkQiSQiIYJewWlc827E9Ik8+yIlOF/IENSVV0kfnmvWzqatkJ157IRaKmOn5CQERduN7y0jEor9t Vnjqx7hMsUgcf+U5h9X8+i5VU7n8QzG3uu7LlmlUSwvTopo21Yy1ZdW5r96JhCKcHF7VSEMkqL8Y oPNIp6zw1LSQeAGHz62uy45KE3D5sE1rlm6XLiSG6tO9+zksFr+urjj1bVV+PkLIwr1fVsSLj/EJ YpEo3v8qh9XMMM55GcMuLUUIUTU0iDSaSCBACCVeux5+5JhYKLq+cElRSmrOy5hbf634udXpZkhS oz7dfI9TVcev5Re/ya/KrT8FwbiPmVggCtseYuTSoWFVmFNRS9FSwsnjaopYsLgLAAAAgHYK35YL Z+rexWacy4mevkiCbCf2NelnKzu+jVcffh33zuLjlTlMAo3UY8lIdSsDE1dbU7cuB6xn4YnythNc LYc7SyMLOPyTvZcihFgFZXd9Tz5ef8HO281x3pCcyNS7S05Id2ZO9l6KwWKHHJqr190CxgoAAAAA AAAA/JZM+5gZ9TDZ77hTTlHeZbGr/YRu8iR5b//p99YGh2y4Q1aj9FvpYepihhDS7qQzdPeoW76B 1YVVjA7qky9PJTPICKHIk+GJV+O4Ndy6itojffchhOY8XCS9PLdR+l0NKnLLTww8xGVxe851MXQ0 QgiZ9O5g6tLhgNNOPEHOdoy95WDr1lUneNmNvPhcdmmNRCzJj/+orE+fcM5H+pHjjB6Bc6/ssP6b QCN4nZ6sYamFxWMnXZzy4O97h3rtFnAEDFM1z+0jlHSbvOdWdRHr/obb7FI2Tg6nY6s7ZMeI/7bv gpedy4vPlN7FNz8hS1mPMcGvmQtn+68be3vF+Yij98gM2oKwbQghK8+uQi7/5pLTFdlMIo1kNbSr oVOLDwKY9LYy7WN9wHE5niBnO7an5WAHaXjOy4y7qy/UH2QY9DcGixmy00fPwbTJIxujnPl1vDur LlTmlhBoij3mDVK30JUnEbz9l91beylk/WWyGq3fqlGmfWQND3UL3UFbJgbOPS7iCywHf65O3KWw l2cf89hcdgnrSN81CKGpN1YpKpMRQqZ9Ohn17Li/+zI5RQWXxUPsJ7oghI65rROLxBU5JY+3X484 es9qSDeXxUNaWpgW1bSpZhTyBA83BZRlFWGwWLqB2thPF+wq6apOvOT7aMvVm4v/h8XhtG2Nxp6c B9u0ZmHxuEnnzz7YvPWQSz8Bh8swNfHctllJR0fdwnzQ3xsC5y8S8fiWgwcaOtXf0DjuSsDLs368 2lp2SemRfh4IoamBAYrKSh/jEwIXLOHX1soRiZYDPey8xiGEitPSKz/mCXm87OgYq8GDOFVVOdEx YqEIi8f9tOpgJ92a/WDVrUM2mwUcPsNc0/PgWCV9OkIIg8V09ur6Yv+TUZ82gwghty1Dby8IiD7y jG7E6LHYNfLQU2n4Ne9zJalFNUUsDBbz/nGahrX2qHPeMFoAAAAA0DZh3NzcWv3lmTNnDhs2TEaE 0NDQXQ5JLvLm0NAAAAAAAAAA8Jvx4z/3IfRseBsmSENMXReKfuORS475qNi0iWKX+fswJkD3tddR V/YEug/8ueO/NNVHtZmrpf2YlT4Mp3ZQF952H+VGyhlWlxiqe8i1IslFXimMX+VCiPijezzvmQ/N 86ekXMn2oTv8yASFtT70jv8mhXVEDZjjADTY/OkxlH6isz7K1v8mqTBORqjWUmhSAH62yMhIR0dH SXMwGExkZKSrq6uMpIKCgkZv3N1sjnhodAAAAAAAAAAA4MeqLa89Oejwt+EkOmnW/QX/Pn2/sacq ciu+Dfe5OoOurwLt38b5jdlZkVvSSPddW0HXV4OaQvMCAAAAAAAgG6zvAgAAAAAAAAAAPxhJheT7 cuXPS9/n6kxo5PbL59oKqCk0LwAAAAAAAK2GhSYAAAAAAAAAAAAAAAAAAAAAAIB2AdZ3AQAAAAAA AAAAAAAAAAAAAACgfYD1XQAAAAAAAAAAAAAAAAAAAAAAaB9++vN3XeTNoZUBAAAAAAAA4PdjgGX8 Y+9PzgJRVJqMLK/UVoqtoAd9145HnYI+NAL4g8c/7TviqLaTXxCLRsNdFG0RQi7ySg3//aN7XFHt Z6Usj//RCVJhhgLwU2YrxvBfpuBCNINmBOC39NPXd9eRh0ArAwAAAAAAAMDvZx36ZndPsenImj3b TLFBux51APzB41/rO+Jot5e57CvrU3LDmRzz/+geV2w321LYOAPwg+eUvvqnyTUOWgMA0Kifvr7r yvaFVgYAAAAAAACA309OjbYBVuMfIbVRBvjGL7fKwRYaENTaRLFxPAOcOnRfex11JbEGXDloB/CH jn+OkwFBt5k44nIDErnd15SVYiBPQwjlEGgGSh2g69tBl6HXBvLcVn/dRc5ineIwaEYAGmyujQ7j 5/2gLSrOQKThQlZdpw4X8gLwW8H/gjxc8J2hoQEAAAAAAADgN+OHSl0I/7hZrl9tlIuideORuYUu Cp3aRLGFsS5yFtB97XbUxbrQHKEdwB86/jnIhabTTJzKchdyu78LvR8rxYVmjhDy4xW5KKhB17eD LuMh+G0F4Mdykdf9QX87FbqQVaE9Afj9YKEJAAAAAAAAAAAAAAAAAAAAAACgXYD1XQAAAAAAAAAA AAAAAAAAAAAAaB9gfRcAAAAAAAAAAAAAAAAAAAAAANqH33B99/3DNwetl2/TmHPEbrVYJP7Ob91Z 4Bey7PJ3RmYzWeuJ3tyquvbYPi2qKfhRDtmsTLsTLyNCTkT6wU4rNtNnPFwZ8O2nZ923vw2Kg2YE AAAAAACgbf2d33l+2p2Y9lLayIPB+yxmbSCPyAhpfufi+Y7AAK9dv3n39dme9jC54W1WRMbxgXv/ VQufCtvntHmDgW9GaOovrsvZMUfe3k9q0VfYpTXr9ZZwqzkwkcFXuNXsndae1cWlv2sF+bV1R7oP 26bneKL3mC/Dc17EHbQbvFnD7uHaPS2YfYN83t5+3B7b4enWI/dXbIcBDwAAALRT+F+cX/SRhyHL rjS8JavRlucekr5OvvYyYu+9iiymsiFjXuxWhFDFh5LQTTdyX2Twajja9kaeB71VTDXq90NKWI/W XHv/IEnAFQw9OsV6TPeGNO//danHkoF2U1141RwsDttU4jKIhaKwbcGvr0TWllbbTuo5+MBk2fEL ErKfrAvMj83CYLFzX21W0qt/XDkzOS/A67BJP+tB+yd9Gb9FhZFRU4TQxaF7aopZc2M2S9++vvTi xf77ldmlyoYMj51eJv2sfkFNs8PTH6zwL3tXqGzAGLR/smEv89Yl3mhN48+GBc871xBnfeVpPEHu t5yKBj3NF73ZGTTnbKOfuqweqm6l+8MzFfGFdxZdSL0Rg1eQc14yoIfvINgmAgAAAAAA8GNxq+sC xu/0ubfpX6bzYOU5s4EOhr2sWp2C86KhzouGHrCaA53SKC1rXbeVg/9NCs4zXZxnuhzoufXXF95l cX91M03oRPBDKFBIg7f7UtRUvgo/7j51zqOz/23Zoo9dDFm1s+EtWU1l+fvnLU1EnqQ4/2VQ0tW7 0ccufBlu0MN+UfzdoAXrWzb7VsxR79jhOyMf7zVmTvi1X9xoTWVqPXKAWCSCAQ8AAAC0U/hfn6W+ s5n33WX1bzAY6f/fBESH/n1j+Mnput1NkUQiDayrYGvbGw3aN1FOUeHOAr/guWenPl6NEBLxhX4D d5m4Ws1P2KaoShELP1+kK5FIqj6W63Q1QQgpUIkyEv/ap5IghO4sulCVW+Z9ZxndRF0saOwPnc9x Ufn74otD9nrsGDf+6kI8QQ6DrV9RTroS+XhdoEYnva+++l2F+URGTRFCr049rStnN7wVC0UF8dlD jkzRtjd64x911evw8tzDckT5f1VT1ExNeTXcgLGHhhz1sRhq/zH6/XWfE/PjthKUFFuaeFM1rWGy uvj0HvxpgbwdL+5i/tW3jVw6/oxCRey5W5KSt/jtnrqymnMeO9Q66nTwsIHNIgAAAAAAAD/w7/yc iBSx8N8eQJdIJNnhKWYDHX5p5TCYP6oziUqKJr3M2mnhjZxMf/FeKvidN2wYjOXgPl8Fclg1zLeZ baF4+k523rdONZT1v599vbp9Z0xOVTUzJf0XF09GpgxzYxjtAAAAQPv1H6zvYrCYb1fpnm655XnQ 26Cn+ZeBOvZGOvZG0tfmnl0erb4qfZ16M1aBpOCxc7z0LU4OJ33hN3BnTTFLxBdeGr4XJ4+38LTr v2NcU4kjhPLjPtyed666oFLfuYMClYhXwCOEWPkVKYEvl6TvVaSTEUI4+fomEglEj1YHvAmIJtLJ jgv6NyTyYv99uym9O0/s8VXiND3V6U/Xxp5+xmdzm60pQij7edrDVQHSS28H7Jmg79RBRk0RQhVZ zMj99/uuHxF5IEQagsXjGi4U7jTO8das09X5FdIrnltUU4TQx5fvn6y/XvwmVyKWGLlYjr+2sKma lr0vwhPkLEd0RQgZ9DAz6tMx+XqMw/Q+MhJvUU3ZTJayger3L+uy8isergrIiUjnsuroRmpTHqwk MagIodSbr55tDaoprGKYaw3cN1HL1qAsoyhozhkVE43MJ8lum8fEngrl1nCnPFiRFhxfEJ9dmV3C Lql2XuQRdfgh3UjNK3CxtAXiz4axS6oJVGL3+e7OiwYghCL23C17VyzkCSoymZyq2u5z3bvPc5MW JsHvedj222KhyGa805ct0CJxZ8Ii9t5l5VUMPzXdZryTNFBGpjHHn0QffcStqtPtZjz4oDdNhy4j 8eTAmH6bRpFUKSRViv20Pkn+UbC+CwAAAAAA/jR/K4+Z+XynRidDhFCS//PoI3dmR+7JjUq7v/S0 af8u2c+T6ypq7Ke6Oy8a+unv/CdhO66JhWKb8b1xcnKfdtCK7i75X2FilkQk1uxsOPTYPGUDdS6r 9rrP/sLELG51rfSqWYfp/Z0XD0MIVeWW3F1yKj/2vQKV2GPJcIfp/WWUMP7c41f/e8BMzrk+Zb/0 FN4FCYdx8nixUBS249rrS88EHL5hL6tB+2aQGDSEUF159f2/znx49gYnj7cZ37vP2vFf7kt+PyGX f2XM9uzwFKq2yqA90436dGqqpgihtDsxSVfCDHtbRx4MFnL4DjP691kzrqmUm2pekUAUPO9o1pPX gjoeVUfVY8cUk36dZRcy7WFy0s04Q0eTyFNhQq7AYZJTnyUeCKGq/Iq7a2/kv85VIBN6zO7rMLF+ Zyoh4GXYwUdikdhmuP2Xu2lH3HbVMFlEmuLiiDUNgXWVtbdXXst99UHEFyrp0ofv9dK01M6N/XB/ /U3TPhbZ0Zl1lbX2Xk7OM11klFAkFAUvv5oVniHg8Klayh7rhpr0MuPWcPc4bJh+c5FGRy1ptAO9 trqtGGQ5qJH6lrwr9p9xdtHz1dwa7nbr1YO3jnKY4PR03wMsDuuyyD3uSnTEsVBWYeXwPeNtRtjX 7zMeCy3LKhHyhRXZpRwWp/vUnt2n9JIW5tGW22+CE4hKio7Te3+uaUXt/Y03P7x4j5PH2Qy377PU o/xDqYxMC5Pz7q2/WZZVghDS6Kg18dyMRk4uB23ATqvBc5/4UTRUj7tNVTXRG318Y3ZkwvMD530C D744diX+8m12aSWBQuo+Y4zz7PoJG7R0R+azV9VFJX8l3KRqqkkD763el/n8lVgkPuA4FiGkadVh 7P82y8g3ZP1BqpZ6edbHjMeRGCxu6J7lpn27/9DjigpfBQo4vLCdx1NuPagpKiExVIYd+du4j6NI IAxeuCHraZSgjkPV0fTYusykr9MPbN44v8CI/WdY+UXDj221GVt/9X/E/tNl73OEPH5FVi6nqrr7 7IndZ09ACN37a2vm0yixSHyg8wCEkGYni7EX9iGEBBzuw7V70u8/lYgllkPd3f/2ldYuZOUOqrZG eWZuxoMwDBY79NBGU7eeCKEXB8/Fn7/OLiknUMnd50x0XuBTf0CsoPjh2j05kXFcVg3dUHfKnbMk Br2pTIuS3gZOW15dwLQaNWDY4b+lKTzesL8iJ3/s+frb1L+5djds98mFsXcQQlUfC+7+tTU/LlmB QuqxaKrD1DEwuQAAAID/HL4tFKK6sLIyu4SZmn97vh9OHucwo6/TQo8vI1TmlEYfftRruaf0bXZ4 mqqZlt+AnaXpherWup4HvZUNGQghn/srEEIbyVMmBS1Vs9SRnbiQJwwYe6jH0kHdZvcrSMg+67bN YXofhFDuiwyGmdbjtdcy7r+maCq7bxlt7GqFEIo7/ez94+R5cVsJNMVbs043lC07PN16dLcj9mt4 rDoT904DdnnJkxQQQgY9zBBCX52m3VRhqnLLrow56BW42LCXecb915dH7F+1tq7aAAAgAElEQVSU vJPEoDZVU7FIfHP6/zx2jcdgGn+Ccn5slqIKRcmA0YqaVuWWXRi8233bOK9riyQSSXV+hYyaKuur 8mo4H569NerTsSQ1Pzcyg6RKkZ14i2rKZdW9CYiO2HOPxKA4zOjbY8lAGQNJLBRdGrFPu4vh7KhN RCUS822+dHE3LybzzsIL3veWaXTSy7ibeH7QroVvdkrDx19dSDdSe7zu2pK0vUGzT6ffSUQIFSRk z43ZfH7QrncP3syL27qvg2/5+2IVUw1tO6OOQ+3pRmq5kRnn+u+w8LSjG6khhF5fejH18Sp9Z7Py TOYRu9XmnrZKeqrMlPy7Sy5OfbRK287o1clQZnJe62aH/TQX+2kuJ5w2fBXeaKbJgS+jjz7yub+c qk1/sv564KRj05+tbSpliVhS/r5Y9dM9zxnmmrKfEAwAAAAAAMAfpSjpQ/c5A/ttnMAuqTrWbYlW ZyPD3tbM1Ny7vqemPtyibWf66lQIMyVHGpmsruwwo7+pWxeE0NWJu59uCRh5ehGBRpp4a23s6YfJ gRFTH275vOciEl8asdXGq7dX4OqqHOZp19XKBuoyFjLtprjZTXHbZTBl1LklX96fOfJAcObj17Mi dhNopKeb/QO8dk17vBUhdH3KAbqhum/GKQGHd9VrV9i2ANcNE1rRAu8exvvc2zT+6srkqxEB43f6 Zpwi0EiN1lQaPzP0tWoH7cXJxzBYLI/NaUXz4uRwFoO7euyYQlQmv9h7K3ju0aXv/tdsOTPDM1SN 1BaHr8FgMbxaXn0L+/zPZqS915lpVXkVp0ccUtZTMellxkwvurvuxtRr87Vt9F5deMFMK2xIZP7j 5RmhqSEbg75MOfr0cwwGsyx2E8Kgwjd5qkaM+sKnFnSf0qvf8kHssppj/XdrWekYOpk0VTwcHmfh bu2xbihRSfHF8afBywOWvtxAoBBshtvHXY4avHUUQuhjfDaXxTF3t240BYaJOru0hl/Hz4vP0bDQ yk/MdZjgVJxaIF20tvdytPdyPDFo39f7jNdjpwbO1+9qVJ5deqTfTnN3ayVt5bhLUe+fp897tJxA Jd76y78h8vVFl+h6Kr4v1ws4/Kuz/ML2P+y7dICMTO9vuGXlaes4tZeAKyhKyYfF3TZLq5NZ8dtM BQpJIhEXvslACBWlvteyMUcIaXe26DiwN91AOzcm6dzIBRYePekG2gihYXtX8ms5W0zcvkxn0Dbf sszcQz0nLI6++p1ZP9/vN/LwuiG7lwt5/F9Q0werdxYlpU3wP0w30qv48JGqo4kQwsnhLQb29di6 jKhMe3HgTPD89UvfPvmBmdr7jLb3Gf3VQ3wRQq+vBE+976fvZFeelXuk+zDzQX2UdLUG7VlT9i77 kIPn4tch/yj5ql3ssvKFcXclEsmVcQvCdp7ot6F+o/p898mRJ7cPObhByOU1xNe2s+o4pB/dUDc3 Kv7c4CkWg13phrpioejS6LnaXSxnh10jKlOZb9+TGHSEUFOZatp0XBh39+HaPRxWdUOg7cThx3qM 5FazCVQyQuh1wJ0uE4bXb1HHzLMZ5+nlf6QqN/90/0nKBjo/dqUcAAAAAK2A/fVZ5r18v+v/7N13 WBRHGwDw93ovHBwd6VJEkCZSVOwoGruxiyX2Fo0tUWPsirFHjTEJttgr9opSrGBBxYag9H4Hx/Xy /bGIqHCWT2PJ+3t8kru9uam7w83Ozq79eOJf7LgYAJBmlwKARq6akLpkwMHJiSuOPz5zpyrw1fT5 4hErPafwbUyq17xKs0ufXX4UuWLA5EfLrRvZ7x28wUhydUWek/xEXakKGtmaRCbZBjg5tfB8Hr6k 4F62Ryf/KU9WtZrdbVe/tfKSCgBIi00OGBLOtRBQmbSQCS+mn8uzSwrv5gw9/ePY5IVlGYUXlxx+ KXnDW2Xm1o4kx+YexJNr3To04pjz08/eNVLShF+PilwsPDr5Gwz614usKlccGvN32wW9iGu037Wk t3Yk1Qup33h4S6aQzTLhWDS0M1JStimvx98jT0zfsdR+/PkFBy296hl0euORv1NJO68bMunB8h/z 1nX/c0Ti8mM3tyUY27WupkufFXdcNYhvbUJj06sXf6dsiffu3cTKx55EIrl38jP3tL2z5woAcM0F HDHfxFFs4WVHZVD51iJZoRQAzD1sSCSSiaO5TYAjiUTiWQqJ7Y7N3IkJXftQN4GdaemTwqrxkp+D fagbAJi6WPCshMUP8gDg/pEU51ZetoHOJDKp8YhWDB7zAw/Saks0+e8LQSNbCeuZkSnk4HFtn11+ VJ5bVlcMWpVGr9NTn4/DaSzGK2vNEUIIIYQQ+k+Plilkn77hAMA1F7pHNr538BIA3I+96tyykW1g fRKZ1Hh4ewav6qlAdC7To1MQlUmjMmkNugaXpucZG7lceVCRVxo2qSuZQhY5W7l3bHx3f9J75DBl y5mmk7tyxAIKndrip97ZVx8U3ntWkVf6+MyNVr/0ozJoLCG32dSe1/44+X41YBvg6ti8IYlE8u7d jGnCTT93y3hJSSRSy9l9yVQKiUxi8tnvUb0A4PFNE7aIRyKRvL9tKs0u1qm1b8wniQQtf2hPppJJ ZBKTxwSArJTMioLysJEtyRSyyMHMva3X3aM3AeD+qVTnpm62vvYkMqnxwDAGl2E8ZpN6pjm3nt07 cVuv09v62lfPYpIpZGKlLNeM597G697xW8bj8YhoyDbhkEgk785+0lyJTqMDgMaDwm4dSFbL1QBw c881n24BdS2zJpFJlh7WhQ/ynl3P8O8bnHMrCwDy7uVYe9sZGzN629k3dgIAU0cxz0JQ/LgAANJO 3gnoG8wV86gMash34UTIigLp4wv3W03tQKVTWQJ2s/Ftrm1LMp6oST3TtBO3n157QmPS6gU4Ynfx 2bL2cc+/l56dctemkQedw6osLsu/88jGxx0AHEN8iQld+yAfgY1F6dOcD5t0vcCGbm1DAYDKoFMZ H/IKgKwrN5e6Nif+xU6cCwB6nf7G9oPtl0w393SlMhnmnq7EDCUAeHRqxRYJSSSSd89IaU6+Tq35 N6rdt4F9iD8AmDrb8yzNix9m1BVSr9OnbD/QYtooOofN4HIConrcOfiix64X5OvWPhwAqExG9ZJl x7BAkaMdANiH+AtsrUozsgAg69otaVZux19n8a3NaSymrX/D98i2mauDVUP3uwdOAEBFflFG/FWf 3p0AIOvqzYq8wrAJQ8gUssipnnuHlncPnsSDCyGEEPrkPsH6XWs/xz67xlclz6QDAJlKprHozWd0 JpFIImcLj87+GXH3XFp7AYBdY+eZRb8rJfKrG8/+0Xzu92nL6FwmmUr2H9xc7G4NAMHjI+KXHdXI 1TR27T8W64pcViDlmPNJ5KoHdXAthM/DUxybedRv7wMA9dv78KxFOcmZrm0bygqkPMuqMDwLQY34 Kc2mdWKZcAAgcFiLxJUnjI1g68iMJKsk/eydpfZV1aJRqmVF5UT410ta8jg/ZUv8yMRfak1Cq9Rs 77HSLaKR36BmxJZ3Lakkq8TU2aK2zNdeUvdOfu6d/IjXf4TPsw+rbzzyty8pjU2nseg0FgBAvWBX 3wFNH51Kff1W2NWkWSV8GxFx9+maynNKiRllAt/aRJpVAs/vGl19w3ASCYjJaWI7ufpG4iSSXmcA gNTdl29sjdcoNCQySVYgNeirZu95VsKaJymIsbqsQMqzFFSPxomVxB9QrYlKs0rOzz8YH3206hwT h1GRL+Fbm9R+8DNpZCpFq6i6kFajUNG5TOwTEUIIIYTQf5lB/+IKWjqHSaZWzbexTXklj/MAQFZQ xrM0qfE7v+o3f0V+WdzCXYX3npHI5MpiKYNnbHZTmlWkkimiHYcQb3VqrUONVblvrzynhGdtWv3z niXiSbKK1HIVjUVnCbnPhz8ieWmFRq6isRnvGj9H/GLQwbM0IS57NVJSnpWITHnbi8hrrV6dRhe/ bN+T87cNBgNxN6zqYZexwZGF4JV0pTkSVaUy2r/qNkg6jc4h2BkAZEUVPHP+i+Yz5RmP2e/bIJaA fenPC0dn7Qse1pyYMAYAOptOplalyDbhlGQUGYlEp9XF/3b2ScJDg8Gg1+mrC2XhbmXpaZ16KMWn W8CdIzeH7h1n7ESKt13hg7ys5MyO87tf3ZwgyS4lAXBMucaqxZz/0phRqwMAWVF59XaeuKr40jwp jUljCaqakm8hkJdVahRqI4l2Xvrt1S2JB6fsJJPJradFerRriL3H58nGx/3ukTi9Vmvt7UahUrNv pOXfe9zih6EAkHrgzI1dxzRKFYlMkhWWvs2x9k4E1uYfqVDWvg36bFtV1fWxmABQWVisValNneq9 evRptPErNj2Ju2wwGPRa7Sud/MfDsxS/fMamzutUKguLdWrN5q7DieedE13Eizq0sXz9K6l7j93Y fvB5wxUTJZJm5/FtLP//eXTf/l1u7oz1H9Tj9p6jzuHBREGk2XkqWWV0/fDnf7M0Dk0D8eBCCCGE PrlPML9LoVO5NeZHAcDEQaxRqFVSBVPIBgCtUkPc47caU8gOmdD+7Jx90qwSsYeNyNFclichPtIq NSQKmUKv82FCdUXONedXFpYb9AZi4lNRKiMu3TVxFN/eean661qlmpjk45oLKgqkxEZFaeWL+B3F FTUyY/xJsXVlRmArcmvfqNe2Ma+Er7Wk1/88X55TutLzB+KnqkauXmwzZvjF2SJnC61Ku+PbVWI3 q7aLvq2O5F1Lyrc2yUl+Ukvm31TSinxJTnJGx5UDjET+TiV9JYxeq6Mbvbyab21SkSvRaXSvXPUs tDMtz3mxjFWaXVIv2PVd99usq+mHRv81ImEOMQkd7TThxWckUi2nQsz5uSkvrtCsuc98GLUlKrA1 DR4X0Xh4y7eLgGTmZlX8KF/sYQMAxQ/yxPWtsE9ECCGEEEL/NWQahbhcEgAq8l4MHFQViuppUWlO CXGlLMdcmJuSXuN3vox4cWD4GhN786hjcyl0avLfp5NjatwClPT673Yztog3NfPvdxwCvBaPnbg8 pwQCXAFAo1ArSiuEdmK2KV+jUMtLK9giHgBIs4vZIt57TO4CgKKsovp1ZXE5z0L4hpLWTaNQv3IL 31qrN2nVobTYK1HHfmEJuSWP81Z5j36/NhVYC9lCztSUua8O08x4ubdfPDpHIZG/MSqPiIYeEQ2L Hhfs+O4vjojr36cJAKhkquoSSfMkXHNjl/MmbYxLO5katWMUS8AuySha1Xxh9UeNB4Zd/usCS8Ay cxJbuBsbjtl42+Xfz5Xmlpk6iW186qUevmF88W6tOwwAcM14FUUVrxRfaGOiUWrkZZVsEw5RIrYJ h8aiG0mUSqeGDGseMqz5o/NpO0fGjD7+g6mTGDuTz5BNI4+Lq7eqK+Utpw6jMRm5t+5XlkhM6lll Jd899MPiESc2iV0dACDat8v7nYX4JCh0GtfC7KVDW2xKoVHLnuWyTV+6wD1pbUzakXNRhzexhPyS 9Ker/CL/pSzWVVevbeeYm1HotCFHY8RuTm8Tcda1W4fG/TwibhcRPtq96vwP38qiIq9Qp9FSaNT/ p+G8urU/Pn2JJCs3de+xpt8PrepRbSzZIuHURxfwgEIIIYQ+r5Hs55AJtojrFul7YsZOjUJdcCc7 7VCya4QPAGRcvC95WmwwGDQKdeKKYzxrE5GLJQD4Dmx6Y2tC9vUnOrU2PjrWpbVX9WW/bx+5TYAz jU2/vO60XqfPu5mZfrbqjtCubb1lBdKUmAt6re72zkuaSrWNnwMAuHfyu/7n+fLcMq1Sk7T2xX1I /AY1i1t4UFYglZfKrqw/Q6xYfdfMNOobmn72btrhZI1crZTIMy6kaRTqukra+peeE+8sHX113uir 89ov7Wta32r01XlCezOdRrer31o6l9V6Xk+VVKGUyLVKzXuU1LtXk4y4tJTNF1UVSqVUkXU13XhJ NXK1wWAofpi3o+eq+hHeVo0cjET+TiUFgNu7LlUWVxj0hqwrj2/+k+TVvbGR6rULcuGY84//sE1W KNUo1DkpGepKFQD4DW5+e+elnOQMvU5/7+D1wns5Dbq/85WGihIZlUnnWgoMBkPK5ouyfOkbzgJ0 9Es/e/fZ5Ud6nT757wsKSeW/cCgFDGuRtOp47o1MnVorK5BmXEgzHt6nT0h89JHK4oriB3nX/4xr +G0T7BMRQgghhNB/jdjN9s7eBIPeUPokP2XLi9lKg8EQ/+t+nUaXfzvj/pGrnl2CAcCjU+P0czef Xb6v1+mTY04rJFXzu4rSCp61iEKnVuSVvjLlybc2LXmcp5RWAgCxJtUuyI1jLjw3b4dCIlNXKvNv Z0ieFr4xn3xr05zrj6ojAYCAIW3jl+2ryC/TKjXn5v5j7eci9rDjWgjdOgSemb1NI1dVFpdfXLrX f3Cb96uZrKsPC+4+BYAn52/Li6ROLbyNl7QuBXcyF1j0jVu0u+bGWqtXXlrBMeMzeGyNQp206hAR Ulkuf9ec2/k5cMS8c78eV0jlark6/26OJLsUADzaeqXHP3iWnKHX6ZN3XFZI3xBz5uV0WVEFAPAt BSwBq/o6AIPBEL/urE6ry7+bc//UHc/23kYikZdVckQcBpepUWqSNsbV/Mizg7cku+zqlkS/3m8Y i1l726XHPzRzMieRSLa+9neO3Hzz/G5t3Ns1vL49qTxfqlVpk/6smq3hinlurRucWXJUo1BXlsgu rjnt37uJ8UQfnrtHDLdNHcVkClmv02FP8nniWZqp5YqyrHxzN0dbP8/7pxIs3JwAQFEmpTIZXHNT g8GQsuOorKDkjVFxxSISmZx9417NXuid3Nh59OKqLXqtbu+YX/JSH2Zeunng+0UfpJhkKsW7V8fj 0xcXP8rUqtQl6U+l2XkAIC+VcEyFDB5Xo1Alrdn8yZuDa2FGIpOzk1Or65BMIfsP6HZq9q/S7Dyt Sl2WmZ17856xc1OlUiqLybUwMxgMKVsPyPKrbh5g19iHIxYdn7ZIVliiUahybtxVyxV1JWoEk8/1 6Njq0m9byp7muLVv8TzyRhyx6bkFaxWScrVckZ96X/IsBw8uhBBC6JOjfib56LJhaOy4zcucJzIF 7HaLviWenFp0P/fgyE2VRRU0Js22sfOg2B+IdZlWPvYdVw/cP3SjrEBqH+bWed2Q94icyqD22TX+ 8NiY8/MP2DVx8YuqupsxjUUfcGhy7PjNx6ftMHW26LN7PHHT2sDvWpY+KVjXeBaDzwz7vsOdvVeI 8EGj2lQWVWwI+Vmv1TfsFRQ8pu17ZEZob9b/0ORTP+7aP2wjmUKxCXT6dvvYukrKFLKJ5b8AwDLl UmgUvo0IAJ5devTg6A0AuLv/KvFp6IT27Rb3fteSmrpa9tv//dk5+479sJ1MIbm29bHbMspISS8u jU1ac4Il5Hh1b9xqTg/jkb9TSQHgacKD41P+UVcqRU7mHZb1c25l7K5lFDp1wMHJJ6btWOv3k0au ErtbD4z9gc5h2Pg5dt4w5MCITeXZJWJ3m4GxP3DNBcqydztH4NLGy7Vtw5UeU6gsmu+Apg26vWGG 2KKhXeTy/nsGrteptA26Bzo29zAefveAdYX3sityJSQy6dHp25YN6/WIGQkA64Jm6bW60ieFp2ft iV92xKtHUPiMznVF4tW9sVah3v/dH6XpBSwhx6tHkPF0QydESJ4Wr/T8gUKnNRnTxqOTP/aJCCGE EELov6bjyhGHRv8237yPyMkqZHzn5L9PE9v5NqYUOm2F5wiD3tDix28dm3kBgIWXQ+Sv3+0ZtFyn 0jToFuLYvOq2tG3mDzw8bv2ltbEiJ8uw77smPp+bBADXtn5OLbxXeIykcRjhM3oFDGlLplIGHJx5 YnrMau8xGoVa7G7bafVIof0b7mXabuGgw+M3xP+6n2shHJeyBgCajOmokas2Np+mkascmjbovWMa cYfPbpvGH5/y13L34RQGzbtX0xYzewOARqH+PWwKAEizi49M3Hh65lb/wa2Dx3YykmLAkLZxC3cX P8wxGAy9d0xjCjjGS1oXMpVKYzPonJceB1Nr9QaP6bh74LIldoNYIm6buQPSYq8AgKpc/san+b6W InnA5uEn5h1aHb5Io1CLXS07LewhtBVZeFhHzu22Z+xWnUrboGMjxxAXIvz1fy5d/uuiqlIlKyxf 23oJAAzZM5ZtwnmWnLFn3FZ1pYrGojXo4OPft2oWlm8lpNCpK0LnG/SGFt+3cwx2AQCNUvN7x+UA IM0tOzJz3+lFR/z7NAke2jx4SLPdY7YsaTSLJWS3mR6ZdjL1xRiWSvHv0yRxY1yfTW84rWHqJC57 Wtwg0gcA7HztY3/c03ZGR+KjdRHReq2+9Gnx6SVH49ed9erkGz6hzvMSgQNCSjOL10VEM7jMsJEt 78TeJLZ3W9H3+JyDy0PmUehU785+LSZHGE80ecflfRO3G/QGtgmnzYyOYldL7Ek+Wyb21jqVhkQm mzrXkzzLc23ZBABcwoNcWzRZGdSLymL4ftuhQaeqmby8Ow/3jZ1H3Ks5pudEMpXS7uexri2CAIDJ 50bMGffPoOkA4NoquOuKGe+ak/x76WXPcrUqdUbSDa9OLRWS8sykFL1WZ2TNxtuLjP7x7LzVm7t8 JyssFthYdl47V2BrFTxqwO7BPyxxCmOZCNrMmZh29CwROHFNzI3tB5XSCnmpZG2TLgAw6uIeCp22 e/APhWmPK/IKSWTyozMJll5uPTYtMZLoutDuep2uNCPr9JwV8Ss2eXWLCJ860kh4Jp8bsXDqP73H AoBr22Zdf5sHABELp55fvP7PiEGywmKBrVXzH4ZbN/Ks89xUq1DX1qErfSKoLKZv384NurR9fkKM NmDvhhM/Ra9t0kUjl4vdnAfu/53OZtWV6KHxP2ddvSUrKDbo9dnXbps42PbbuZaIyrd/l209RgVE 9ay+2zOZShmwd8OJn5au9o/UyJVid+dOK2YL69lkJl53CA3AQwwhhBD6VEht2rR57y8PHz68Sxdj t3A5e/bs0tCT4dRGWNEIIYQQQggh9JWJKSuKYge9tKVkRxS/ae2BlSejBK0/i2xrr0Uxw42HeZqU tuPbxdOzNmMrfwz/T/XG5GyJYjT7lJm/9mTHd39Nvzn/g8R2ZsnR8gJpt+V9ca9Ab7X/55OiLILf 1DPfirLw/OJLmnMsShwEADGqvCiLMGz6L6DJVKeiOI7/Twyz2F2wGhGqNq/y0gc7PItyo1heADDL wg0rFqGPJzExMTg42PAmJBIpMTGxVatWRqI6ePBgzznRb0yRipWOviwPjt44Omnb69vdIhtFLh/w uf/Ybb+k9EktN16LOj5N5GT+NSWKEEIIIYTQF89g+FdHOseuHZ30Ry0jnQ6Bkcu/+5oS/STV+6Ez /2GiKc0svv7PpagdVY8ZriyRESuAX8Ex5Y44MgmPSPRZqSyR/B4xrLbdVTjixKavppgPjscdnbKw lk6yfXhk9I+4GyCEEELoE8L5XfSFcYv0dYv0/UIzH3V82n8kUYQQQgghhNC7jXQ6BLp1CPwvJIoA oLJEtqbVYjKZ3GpqB0tPa2Ijx5Q76dJsrBz0ReCYCidd2/v198ztw93ah2NzI4QQQugzhPO7CCGE EEIIIYTQS+xDPKZnb8F6wOqtJfOBTtNv/b83Z+aYcj/UHZ4RQgghhBBC/0FkrAKEEEIIIYQQQggh hBBCCCGEEPoi4PwuQgghhBBCCCGEEEIIIYQQQgh9GT76/G44tRHWMkIIIYQQQgh9fRzojNe21Ksz MM3ic8k2SYRt9wXvdWQxVgL67+7/zLcJw/8aSsqyel4cM2z3L6PJqBysBIQ+08OTIsBKQOir9NGf vzuLORBrGSGEEEIIIYS+PrNem2mYJQirMzD0/lyyjS33Re91Tl2wEtB/d/+3e5survHXUFLLUOyx v7AmgwZYCQh9yGOKE/zhosLqROjr9NHnd1sVRWAtI4QQQgghhNB/XGZRKwdNt88iJ/TpDkw6tghC 6OvsbCvpDhTvL74UZjkODFMAyNRRHchO2KxfQJMp4hxA9t5fD2c2niUchdWIULV5FSfjVI8/YITh DJdZvHZYsQh9Taj/QhrhjGZY0QghhBBCCCH0XxYDEC7kfhY5kUM4pwm2CELo6+xsK1PC+fW//D8Z OeE0DwCI0T0Kp9lis34BTaaAcGZjrAeEPqBwhgtWAkLICDJWAUIIIYQQQgghhBBCCCGEEEIIfRFw fhchhBBCCCGEEEIIIYQQQgghhL4MOL+LEEIIIYQQQgghhBBCCCGEEEJfhs9rfvfi8gtL6y9eZD// 4Nj9/0JyiWsSljdc9rPJzAcn7tfcvjtqZ7Tb4tmCn9SVatxFEEIIIYQQQgjVanXo/LTjt6vfpl+4 v75N9P81Sl1/bnnAnJ+tJjw4fecj5fmvrqvvHbn52Vbp7uF/R3vPnG0xXl2pwh0Moc+QrKhstm1H ZXnlW4aPnf7b8Z83fkEFfHTq0iqfngut26wN6KvX6d+2mOOXHJ+64m3rsKBkNqeJUlqBuxNCCCGE 3hv1X07v0rqk4zOOVr/lmnOnPppBvC7PLT83/8zYKxNMXUw1cs2/kJnQcWGh48JWNvr1le29YnqX 50qXeSzF/QMhhBBCCCGE0Fuy9qnX5qdO/9codVTL0FEtVwbN/XiZDJ8cYeFh/ZaBT/x8wK2dl2OI 679Wh702Di7PlSzznY27E0LodZfW7jw+bWX1W665aGrGMeJ16u5T8cu3lj7JNnGwHnN1OwCUPsk5 O+/3pwk3VOWVNgENOq2cYupajwgsKyw9NfO3RycTNUpV5zUzGvZqWx3nsSnLwyb29x/cWVVRSaaQ 64rcCL1WF7foz5s7jlcWlfn2j+y4Yorx8DkpaWdmr8u+dpdEoYy+vFVYz5LYXnDn8c5+M1xaBUUu /6Fm+HfKjJGSAsDWLhMr8ktGX96KuxZCCCH0xaH++0nahzgMOjC46lw7pyIAACAASURBVA3pxXbJ szIGn2HmagYAdA4d2wYhhBBCCCGE0GeNRKr5jiVku4S7f+ZZdgqr/5YhDQZDRtJjt3Ze2M4IoZod 30cN/kb2oY0GHV79Sid8e9fJs/M2dl0/065JQzAYiI3yUqmNn0fkskk0Nit2/JJDYxcNObkeAHRq TUzkOJfWjcde38E2E+q1upr9nuRZvm1jLwBg8DhGIjfy5yB24lLJ07xBh1aJXOz0Gq3xwCWPnm3t 8n3EonF9di6lMukkctVHt3YcPz17nWXDVy+veavMPGekpABw9Y/98tJy3KERQgihL9QnmN8lkUlU 5kvpFt4riJ10SJIlVUqVxGraNnPaNejiFb/iQta1rL7/9CeCrWz0a/vFkW4R7lu6xTiEOjyJS5eX KvR6feTSjo5NnYgwN7anJP2WUPqklMamhY4La/p9cwBIWBWfvPmarFDG5DObjAoJHReGDY8QQggh hBBCCADSjt++teeaY6hr4vpzWqUmcFBYiyntAUCSVXpkxp7s5EwGjxk2plXgoKqBZMo/l+J+PanX 6Xx6BFJolOp41jZfVJEvZQnZE6+8WHsqL6s8PHnn08vpOo1OaCfquqqfVUPbp1eeHPtpr2tLz4zE R/KyyoABIaGjWhrJoU6jOzR5R3rcfY1Cw7cWRvzS1SXcXVmuWOYza9iR7y0b2FQNmZvMa/Njxwbf +NYVz/WtSfFrTktzyrqu6ufTI5DYmJWcefiHnR7tvdPj7leWyOybOHf+tQ+ZSk7elnR1c2LB3Zy9 o7bQmDQAGJfwE1HeK39evPTHBaVUbufv2HFJT4GNSV3VWFfkAJDw29nkbUmyogomj9VkeHPjNYAQ ev8u7sTlW/vOOYZ4J248oFWqAgd0aDGpLwBIsgqOzNyQfeMBg8sOG9U9cEB7ANBptYemrEm/cEOj UPGtzSJmD3Np7ktsPzXvr9sHL7CEvODvOr8x0eybDw9PW1ueV2zfuAGDx6bSaR+wRCQyicp8dVnI uQV/dFo5xaHpSx2gbYCnbYAn8dq9Y7NTM9cQr+8eOMfgsiIWTSDeUmhVZyljIsdV5Bfr1Jpt3SZR 6FSPjs3bLRpfV+QAkH393uFxi8tzCu1DGzF4HCqDBgDS7II7e05/n3aALRIAAOV52XUa7amf1tze dZJlIgge17s6koSV2/yjvmnUL/KVyAV2lsPObLz25wG1TP7GkgJAxsXkkz+uKcvIMXG0ab/0e/sQ HyMlBYDS9OzEldtazhqeuHI7HiYIIYTQl4j6OWTC3NNi6InhTy893dF328Sbk9/mK1c3XR1xfhTP kndje8qhcQeIb93Zn3pq9onuf/S0D3aQl1Qa9FVXsdn423p+00DkKHqalPl3xz89OnqKHEXY9ggh hBBCCCGEAOBx3H0zF/OJl2eTyCSVTAkAep1+W7/ffXoG9t38neRZyaZOK03szVzC3QvSco9M3zvk 4HibRvWu/h1fcC+3OpKxF2Y8OH3n+Mz9NWO+tOE8iUyacns+kCD3VpaZizmxPS81u8nQZq1/7Cgr qljXcom1t51jaJ33QKbQKB4R3hG/dGUJ2Qlrzhz6fsfkG78w+SyfHoHXtyR2XNILAJ5dy1BK5O7t vY0UM2BASMCAkA1tX31CcMG9XK9vfL87Nkmj1KxvvTT1YLJPj0D//iH+/UOWev3UY/3AmvdnTj2Y cumPC1F7x/CthGcWHtkzImbYke/rqsa6IgcAG996npE+Igezp5fT/+62xqO9t8jBDHdFhD5KF3cx xczZZmL8RhKZrKqUV3Vxg37x6dGy71+zJFkFm7pOMaln6dLcl0KlerRrEjF7GEvITVi399CUVZOv xgDA9a0nHl1IGXNmLZPPOTB5lfHktGrNzmELwsb0CBrUMef2o7+6Tw/sH/FRC1ieW1SWkVtwN/3w uMUUOi1waLeQ8X1qBijLzL30285mU6KItxkXk83q28d0GFv0INPCy6XTyikmjjYAEHV0DQDM4YcM OLDc3NPZeORalWZnn2lhkwYGjeiek3L/r3YjA4d2BYCniTfF7g6nZ/324Hgiz8qs7bwxzi0bA8D1 Pw88On15zNXtTAHvwKj51XnLiE9p2KPN2sB+qnKZS5sm7ZdMpHNYAOAQ5gsAr6y4rSszkqd5//Sa 2ndPtGNTvwfHE7b3+GHCrd0csUldJdXr9PuH/xKxeAKJTMYDBCGEEPpCfYK/4llXni11XUT8i514 6P0i8e7pzbPkAYBjM6fSjFKtSgsA12OuhYwNdWnpSmPRBLZCYT0TIrBjmCMxoWsf4iCwFZRmlGDD I4QQQgghhBAikEjQclokmUomkUlMPgsAsq5nVhRIw8a2IlPIIkexe0TDu4dvAMD9E6nOzd1s/exJ ZFLjwU0ZXIbxmE3szXJuPLt39JZep7f1s6exqtackSlkn56NAYAr5rm387p35KbxeDw6eLNNOCQS ybt7gDS3TKfRAUDjIU1v7buulqsB4OauKz49X1pP/E6CR7QAABqTZufvUPgg30jI5G1JQUOaCm1F ZAo5eHj4s2sZ5XnSuqrRSOSOIa7EhK59E2eBjUlpZjHuhwh9tC6O1HLKADKVQiKTmDwOAGQl368o KA0b1Z1MIYscrNzbNrl7JKGqt4kIZpvwSCSSd5dwaW6xTqMFgLSTlwL6RnDFJlQGPWR4F+PJ5dx8 pJYrgwZ1JJFJto3qO4X5fNjiZF1OXerYgfgXO34JAEizCwBAI1dOuLVnwP4Viau2Pz57pSrw1Tvz LVqs9OrOtzF3CPMjNkqzC59dSY1c8cPkB4esG7ntHTrHSHJ1RZ6TfE9dqQwa0Z1EJtsGeDqFB1aH L7j3xKNT8ymPY1vNGr6r34/yEgkApMVeDBjchWthSmXSQ8a9mH4uzy4ovPdk6Kn1Y6//U5aRe3Fp zEvJv3wH5royc2vnCcfm/o5N/QDArX0Yx9wk/dxVIyVNWL5F5FzPo1Nzg16PBwhCCCH0hfoE63et fW36bOtblTzrHe7QUr0eFwC4Frzno2ISAOi1emCANFsicjJ9/Yupe2/f2J6iUWpIZJKsUFYzHoQQ QgghhBBC/3E8SwGZ8tLVz9KcUpVMGd1wJvFWp9E5hLgAgKywnGfBJzaSyCSOGc94zH59m7CE7Esb zx+dsSd4RAtiwhgA6BwGcZtiAGCLOCVPioxEotPo4tecfnLxgcEAeq0eAAx6PQDFwsPasoFN6oFk nx4Bdw7fGHpowvsVn8Fj0tn054Ui6zU6I4GlOWXnlx2PX32aeEtn0ysKpHwrQa3VaCTy1APJN3Ze eT5OL8dxOkIfsYuzMH21i8stVFUqov0GVHUyaq1DcEMA0Gm18Wv3Pom/aQADsXKUmP+TFZbxzKsW UfDEJsaTkxWVccyE1c+R5ZqbfNjiWPt59NmxmHhNZTEAgEyl0FiM5tOHkEgkkbOtxzfNM+Kuu7QK AgC7xl4zC84rpRVXN+77o8XQ7+8eoHNZZCrFP+obsZsDAASP6xP/6xaNXEljM2tNrq7IZQUlHHOT 6vWvXAvT6vCOTf3qR4QCQP2IUJ61OCflvmubJrKCEp6laXWL1Iif2mzKIJYJHwACh3ZJXP2PkbLX lRlJVn76uatLHTsQwTQKlaywlAj/eklL0rNSth4ZmRCDhwZCCCH0RfsE87sUOqV6dtY4MpWi11Rd R6bX6WWFsuqPSCTS6+H5VnzJ07JXNmZdyzo07sCIuNFiNzEARLsvwVZHCCGEEEIIIWSEwNqEbcKZ emfBK9s5Yl7uzazqtwqJ/I1ReXTw9ujgXfSoYEfUHxwzrn+/YABQVSg1CjWxnFeaK+Ga843EkLT+ XNrx1Kg9Y1hCdsmTolXB86o/ajy46eWNcSwBy8zJ3MLD+v0KW+v4uvqz12smeESLxlFh/0/kWcmZ hybtGHFqitjVAgCifWbhLofQv9rFWYnZJrypN7a92tv8fiDt5KWonQtYAm5JRu6qpsOJ7VyxSUVR 2fN+T2Y8cq6ZsLJYYtAbiCleRVkFo46p0/dDoVO5Fi+t7jBxsNYoVKpyGVPAAwCtUs0xe2lSmSng hYzvd/aX36XZ+WJ3R5GjtSy/6t5+WqWKRCFT6n5CcF2Rc81FlYVlBr2emOJVlJUzuCwAMHGwub3r ZPXXtSo18bRgrrmooqAqUUVZec34K6oz8zzwu2ZGYGvh1j6015ZX/2bVWtLrfx4ozylc2aA7AOjU Go1Cudiu3fC4P0XOtnhoIIQQQl+Qz/opC2I3cda1Z2VPy3QaXcKqeK1Sazy8bz+/xLWJmQkZWqW2 Ir+i4G4+AChK5VQWlWvBNRgMKVuTZfkV2OoIIYQQQgghhIywC3DkiHnnlhxTSORquTr/To4kqxQA PCK80y/cf3YtQ6/TJ2+/9Mb53cykx7LCcgDgWwpYArZOXTWqNRgM8avP6DS6/Ds590+kenY0dv9S eVklR8Rh8JgapSZp/bmaH3lG+kiyS6/+neDXL/hj1APfSpCT8hSgat0wAAQMDE1afy73VpZOo5MV lmckPnqPaBWllVQmjSvmGQyGlH8uywrKcZdD6F/t4vzdOWbCc8u2KaQytVyZf/eJJKsAAORlFRwR n8Fla5TqpN8PVId3j2hyffuJ8vwSrUqdtOmg8chtfOvTWIzLf8fqdfq81PT0izeI7Td2nbm4Zrde q9s7dlleanrm5TsHJq/8IMVhiwRuHcJOzFijUagK7qanHY5zbRcCABnxKZKneQaDQaNQJa7cxrMW i5ztAMB3QKcbW49kX7+nU2vil212aRVEplLeNXKbgAY0NuPy+j16nT7v5oP053eEdm0bLCsoTdl8 WK/V3d51UlOpsPH1AAD3Ts2v/3WwPLdIq1Qnrd1ZHb/fwE5xi/6UFZTIS6VXNuwhFv6+a2Ya9Wmf fvZq2uE4jVyplFZkXEzWKFR1lbT1L6Mm3t47+vLW0Ze3tl860dTVfvTlrUJ7qxtbj1yMjtFrdXsH /5x380Fm/I0DI+fjwYIQQgh9tqifc+Zc29T3+bbRhua/gQF8+/m5tHI1Ht6nj69aromddKgss4wp YIZNbGbRwNKllatr6/orfX6lsmi+ff0adPEiAmsUmt9brAMAaY70yOTY03NO+g8MDB4dkpmYeWTy IWLs+nuLdSQy6ZuVXeo1scd9BSGEEEIIIYT+I8hU8oB/Rp34+cDqkPkahVpc37LT0m+FdiILT+vI RT32jIjRqbUNvvF1DK0apV7fmnT5jwsqmVJWWL622SIAGHJoPNuE8+xaxp5Rm9WVKhqL3qCjj3// ECI831pIYVBXNP7FoDe0+KG9Y4grAGiUmt/bLgMAaU7ZkWl7Ts+L9e8fHDw8PPi78N0jYpZ4/sgS stv81Cnt+O3qfFJoFP9+IYnrz/WJGfbGQq1ruUSv1ZdmFp9eEBu/+oxXF9/wSRHGv9Lu5y6Hp+yK X3OGK+aNS/gJALw6+2qVmv3jt5VmFLOELK/OftWV8PZcWni4tvRcGTSXyqT5fhvU4JtGxPbMS+lH pu3W63QA8Hu7ZSQy+Ztl39Zr7IQ7JEIfuoujDNj6y4m5m1Y3G6FRqMSudp0WjRHaWQQP/Wb36KVL vPuyhLw2MwalnbxEhA8c0L40I29d23EMLjtsVPc7h+ONRE6l0/ps+unw9N/O/7rdzt/Dr3dbYnt+ WkbZs3ytSpNx6bZXpzCFRJZ5KVWv1RmZW317Xdb/FDth6TLXTkwBt93CcbYBngBQdD/z4KgFlUWl NCbDNtBr0OFVFBoVAKx86ndcOXX/sF9khaX2oT6df/vxPSKnMmh9diw5PH7J+QWb7IK8/AZ1IgLT WIwBB1fETlh6fNoqUxe7PjuX0LksAAgc1rX0Sda6JgMYfE7YxH539p0hwgeN6lVZLNkQFqXX6hr2 bBM8+tv3yIzQ3qr/gRWnZq7d/91cMpViE9Dg2+0L6yopU8Ajlv8CAEskoNCofBtzAMi/87gsI0er VGfEJ3t1b6UoK8+MT/lQDYQQQgihD47Upk2b9/7y8OHDu3TpYiTA2bNnl/qtCGc0w4pGCCGEEEII of+ymGxaFGfgZ5ET+dgo0085Sn165cmOqD+mpy36ILGdWRhbni/ttro/7mMIIQCIKUyJMunxxZeC fj6KGwYAMcpHUXhe8YtosvJtUUzP/yeGWcJRWI0IVZtXcfKDxzmL1w4rFqGPJzExMTg42PAmJBIp MTGxVatWRqI6ePBgzznRb0yRipWOEEIIIYQQQgj9qwwfJprSjKLrW5Ki9o0l3laWyIgVwK/gmHFH nPwBax0h9KFUlkh/j/y+lt5GJBhxbAXWD0IIIYTQx4bzuwghhBBCCCGE0BemskS2JmwBmUJu9WNH ywY2xEaOKXdS8hysHITQx8YxFUy6/BfWA0IIIYTQp4LzuwghhBBCCCGE0L/HPshp+v3/9+bMHFPu h7rDM0IIIYQQQgihLwsZqwAhhBBCCCGEEEIIIYQQQgghhL4IOL+LEEIIIYQQQgghhBBCCCGEEEJf ho8+vxvOaIa1jBBCCCGEEEL/cQ5Uh88lJxQ/bA6E0Ffb2dJtv4ZS6M2rXpDF2KZfRpNR+FgJCCGE 0L/poz9/dxb/R6xlhBBCCCGEEPqPm/XZnPidBTOwORBCX21na/5VlAIiq16wsEm/kCZjB2ElIPQh jyleO6wEhJBxH31+t9Wzn7CWEUIIIYQQQgh9JjILTznQLLAeEELoC+ixSXYOPLw14NcvnFNvlnko 1gNC1eY9LYiTyD7kUSbkzrLHH8AIfVWo/0Ia4eyGWNEIIYQQQgghhD4HMXAqXNgU6wEhhL6AHlua Gc6ph/WAEPoPChdysRIQQkaQsQoQQgghhBBCCCGEEEIIIYQQQuiLgPO7CCGEEEIIIYQQQgghhBBC CCH0ZcD5XYQQQgghhBBCCCGEEEIIIYQQ+jJ8hfO7j87eXBX0/UKXoWubTtHr9B8jCVmhZLa4j1Iq /xzKm3ogaV349A8ebWlmwaYOPy90GbrMZ0z+3acfKfOrgyenHbuOx+GnkpmUtqrJpHl2g07+vO2T ZyZx3dHlfuN/tuj74FTK111ShBBCCCH0dZMVVcx2mK4sV7zrF7NuPFvYcA5WIEIIvZ+Lq7YubfjN Irf2B79f9C8kl7h+5/KAnj9bNXtwOqnm9t3DZ0d7d55tEaauVGCjIIQQQugjof7L6V36/fjxmVuq 33LFgqn3NhCvU/cnxa8+XJqRb2JvPubi0jcNmKWn5v7z6PRNjVLdefl3DbuFVH907MfNYWM7+Q9o qapQkCnku7FXdg1ZWfO7Pj3Duq8bAwA3d15M+C22LLPQxME8Yu4AlxbeRAC9Vhe3bP/N3fGVxeW+ fZp1XDLEeGZybj45M39ndvJjEoU0+vwSoZ0Zsb3g3rOdg1e4tPCOXDy4Zvi3L2l5XumpuTsenk4h kcnu7fw7LRtKZdDqCmykpARFmWxt0ylenYPbLxj4xpLGrz5s4mA+9OgcjVxFYzHkpRWL3YbXjJxv Lfrh1m8AIM0u3j9uQ9a1hwIb08jFg4lq1Ko1cdH7b+6+qJTKbf2cv1n+ncjB4r3btFa1VmN0w9EV +WXE66bjv2kzqw8AHJ3+95U/T9X8bpeVw/36tTCSaK1tunfk2tv7EokAtv4uw0/Me78d5vPhEOIx 4fLygxM3vv1XTsze5tbOzzHU84NnJnR0ZOjoyJWBEz+HkmYk3I2d+pfkWZFNI6duv402sTfHvxYI IYQQQggZp6xQ7hy5LWr7sE+eE2muZP/kPVkpTwXWwshfvnFpVh9bB6Gvw6WNu4/PWl39lisWTb1z mHhdnld0bskfYy9uM3W208iV/0JmQkf1Dh3Ve2XQt69s77Vxbnlu4TLfbtheCCGEEPp4qP9+kvZN 3Aft/bHqDanq/7f3JpxdvKfr6pF2gfXBYDAeg06tjem+wCXce2xCNNuUp9e+WKRrMBgk2cW2Aa4A wOCxAMAzsvHs7BczyjFd5zs1bQAAeq0u52b6N78Os/F1ub03fteQlVPTNtCYdACInfqXJKto0J4Z IidLvUZXSw5IpOqXJel5W79dHPFL/z6bJ1EZNBK5akn0rd3xp+fvtGxQ75WvvlNJC+9nmzlbdliw 0mAwbOm5KPG3I80ndX0tL1WZqauk1WKn/sW3Nn1lS10llTwrcovwJ5FIdA4TANgiXs3Iz0fvq55G 3T9ug7i+db/tUx6fu7Vr6MqJV1dyzPjy4gqFRDbk4Cy+jemRqX8fnrwpat9PtdXkm9u0VrVWo8Fg qCwun5SymmsuBAAypaot2s8f2O6X/lVnHMrlqxp/7xDqaSTRutpUVijptnaUV5fgmtX+VjvM18Jg MGQk3nNr5/d1d4uqCsXOwSs6LIzy7Bh4Pnrf7u9Wjzg1H/9aIIQQQgiht1VjsPCfknn5yRuHcv+O /ZP3iF3M+/056PHFh7tGb594YQrHlIs7JkJfB/smPoN2r3i9v5Vk5TN4XDOXegBA57CwohBCCCH0 dfsE87skMun1Rajnlu7rFD3UIcTjle0ZCXdPztle9rTQxN68/YJB9kFuAHD38GUGhxkxt2rGjkKj EC9iui+oKJDo1NptfZZQaFSPDgHtfulfM7mcm09KnuQ37BYKAGQqpXpZrXf3sAPjfy/PKTF1tpLm lNw5cOn75NVsERcAKPSqKtJpdKfmbL+9L5Flwg0e2aE6hwlrY/0HtGzUu9krORfYmQ07Oufa5rNq meJtSirNKTk5Z3tmUppSWilytBh8YBbHjO/Swrt6VbFrq0aFD7KJ17Ii6cEJv2ddfyRysKiebKur pITU/UnyknKnpg20Sk11irWW9OSc7elxqSXpeXmpmZd/P86zEA49MgcAqiPXKNXJW88N2jODyElm 4r3ef02ksxmeHRtf3ngi7di1gIGt+NaiTtFDifANuwTvH7uuOicp28/H/bpfr9X79Ayj0KoSratN AeDGzgtJ646WZhTQ2IzQ0ZFNJ3SuqxrlpRUkMklga0Z6+XwKmUohU6sivLU73iHUg1hMXFeidbVp RaFU5Gjxyt5bVzXW1aZ1HRdzbQd2XDokees5Zbmcay7stnaUwMYUAPLvPj02Y3PB/SyOGT98Ulfv HmFE+HXh09vM6p247mhhWhadw/zu+FxFmezgxI2mTpaP4263mdn7WswZZYVi8IGZXLGgNCP/yLS/ c29lGPR6q4YOnVcON6n3zgtSk7eeuxpzpuDu070j1xJXQoxLXEahU/VaXdyvB27uuqBRqB1DPSMX DyaKGdN9gVNTr4yEuxWFEo4pv+vqEUI78Xv0GK93AkqpfGmDkaPOLhS72RJhVgV932pGL2Lq/cqm k5c2nlBKK+0CXDsuHUJU4zt5dO4W39rUp2cYALSc1nPh70NL0vNMna3wDwZCCCGE0Fcp7dTdW/tv OAY7Jf4Rr1VqAvs3aTGxNQBIssuOzD6UfTOLwWWEjWge2C8IAHRa3aFp+9PjH2oUGr61IGJmR5em rsT2UwuP3T54kyVkBw8Le2OiGqUmbtXZO0dvV+SXc8y4XZZ0d27qSoxK4lafvbrlkk6rd2/t0Xlx dzKVXFeiynLFimbRfX7vf2T2IXlJpaWn9cAtQ94j0fy0vGM/Hy54WMAx5YSPa+ndxRcA4tfHFacX adXa0swShVTRJCqkyeBQADDoDWeiT9w6cENdqWaZsFtMaN2ou5+yXLF3ws7c1BxlhXJl82gACOwX FDq82dNrmcfmHHYNd8u4lC4vkwf0DQr9rimRmeNzY/lWwpKMogdn0kgUcudF3VzD3QDg7tHU86vO VBSUi13MO8z5xrqhDQDE9NvkFOqckZReUVTBEXG7RvcQ2prUVUxZsSzz8pPe6/vR2XTPCK/LfyWm nbwX0Lcx7uoIfR1IZBKVQa+5pfD+k9ipyyTZBcpyGbGats1PIxt80yJ+9bas5Lt9N1fdq3ll0Lft 509waxOypfdkh2CfJxeT5WVSvU4fuXCiY6jf83NQx5I27CrNyKaxmaGj+jQd3x8AEn77J3nbYVlR GZPHaTK8V+io3tgKCCGEEPrkqJ9DJsrzSsueFhTce3Z48h8UGjUwqnXIqEgAkGQV/TPw175bf3AM 9XxwKmV7v6UTLq/gmPEzEu+ZuVjHdJtf9DDHwrNep+ihxN1TiRWicyz7DdgxzdzD7vWEktYdDRjU 6vXZ5eyUx2wRT1jPHACeXkoT17c+Pe+fB6du8CxN2s7q4xzeEACubz7z6PytMReXMAWcA+M3VH83 IzGtYdfgtc2mqsrlLi192s8fSGczAMAh2AMA9Frd25RUr9Vt67vUppHTyDMLWEJOQVr26xOB2cmP 6ret+rl5ZOpfDC5ryp11irLKmO4LKFSK8ZJW5Jednr9zyKHZlzcerw5TV0nbzekHADHdF3i0Dwga 1u71ary5K17sam3l7QgAxY9z2SIey6TqUmhxfevC+9mvhM9KfmTj60y8LkjLOjLt7yGHZtv4Ol/9 61TBvWfPq7H2Nr1z8NKpOf90Xz/GvombvKTCYDAYqUalVG7QG5Z6jtRptHb+ru0XDDRzsa6ZE71W d/mPE11XjzSeaF1tqiqX7xi4XKNUmzpbtZrRq37rRkaq8W3a9CUGuHv4ypBDsyl06v5x689H7+uy criqQrG5x8KIuQO8u4cWP8rZ3HMRRyxwbt6Q+MaJn7f3+ft7M1drhaSSJeQoymRZ1x/22TxJ5Ghx ev7O75NXHZyw8f7x6wEDW3HNhYFRbVxb+QDArqErzy3Z2/230e96nPoPaOk/oOVSz5E9NoyteX/m xN+OPD5/a8SpBUw++9ySPTsHrxga+zPx0e19Cd8dn8vgsuKW7ds/Zv2Qw7PfNdG6OgGPDoE39yS0 mdkbALKuP5KXVrh3CACA1ANJlzaeiNr3E99adGbBzj3frR527Jd3TbT4UU71nkNl0IT1xIX3s3F+ FyGEEELoK/Y4/qGZk3hi3BQSmaSqVAGAXqffNiTGp6tf3z8GVU/txQAAIABJREFUSrLKNvVYb1JP 5NLUlUKleLT1jJgZyRKyEjZcODR17+RLMwDg+vYrjy48HHNyIpPPOjBlzxtTPDHvSN6d3H5/DBI5 mJZmlvCtBcT2ytLKypLKSUnTleXKjZ1/S4295dPVt65EAUAhkV+OSRq6eyRLwFJIFe+RqEqm2tz/ z4iZkd6dGxWnF20esIljxnMOcwGAm/tShuwabt/YsSSjeG3bFe5tPYU2Jk+S0lMP3x57ehKTxyzN LCHTyADA5LP6/z342vYrqYdvDdn10pN98u7mNokKaT2lnaxYtq79Kmsva8fgquHhhTXnui/v9c3C blqVtmrwmPIsdtbBQVuHWnpaPTiTtnnAn+PPTeaIOABw++DN7w6MZnAYcavO7p+0e8juEXX+nn9S xDZhs4TsqlGqi3nhowLcyRH6ipm7Ow09vO7plds7Bs2YeGXX23zlaszBESf+4FmY3th57NCkJcS3 7hw6e2ruuu7rZtsHectLpQZ91Q0JbHw9PCObixxsnl6+9Xe3cR7tm4ocbLDaEUIIIfRpkf/9JLOu PVzqOZL4F/vDJgCQ5pQAgEahmnB5xYCd0xJ/O/L4/G0AuLUnwTGsATGT5NbWj2MmSI+7TYR/du1h 5OLBk2+utfZx3Dtq7dukK80puX8iufGQtq9sV1UoDk36o+3PfYnlm9KckoK0bI8OgVNS17Wa3nPX 0JXy0goASDt+PWBAS665kMqgEbOJhPKcksL7WUMPzR4bH132tPDiigMvxf7yHZjrKmlW8mNpdnHH 6CF8KxGNxbD1c34lk9e3nC3PLwsc1AoADHrDg5PJYWM7Uuk0noXQr0/zN5b0wPgNLaZ2F9qZGfSG msFqLalxBoPh0u/Hqlcwa+QqKuvFVZM0FkNd+dIzTvLvPL288XjrH6seRnL/+HXn8Ia2/i4kMqnx kLYMLqs6M7W26fWt50JGdXBp4U1jMQS2ZsQC0Lqq0dTJckrquil31k+8ulJYT7ytb7Re99LNwe4e vsLgs52aeRlPtK42HXNx6eRba6elbQga2nZn1PKS9Dwj1fjGNn1d0LB2xPJfp9AGRQ+yAeDBqRSu udCnZxiJTBK72fr1Db8Wc6Y6vG/vZmau1gDAEnKILVyxgGPGN7E3t/Cwo9JpfCsTWZEUAOgcpkeH ACqDRmXQGnQKKs3I/4BHdMo/cU3HfcMx41Po1BZTe2QnPypMyyI+atApiGhi/wGtMi+lvc0O9oq6 OgHfPs1v700g9udbu+Mbdg2h0mkAkLztfNDQtkI7MzKFHDyiw7NrD8vzSt81UbVcRXtpr6a/slcj hBBCCKGvDAlILSe3IVPJJDKJyWMCQFbKs4qC8rCRzcgUssjB1L2t592jt4nAHu0asE3YJBLJu3Mj aZ5Up9EBQNqpewF9GnPFPCqDGjKsqfHk9Dr9jT3J7ed0MnezoDKo5m4WRKKEVpPbUOlUrhnXoYlj 4cMCI4kSmo4MZwlYAED8910TfXA2jSvm+XT1JZFJYldzv16B17ZfJr5i7W1j39gRAEwdzXgW/OL0 IgAQWAvkksqU3dflZXKRg6nQxuQNJx0oZJ+ufgDANeO6t/G4d/xO9Uf1/Ou5tfYAACqDSmVQASBl z3Xvzo2sGliTSCT3Np7m9S3uxN6qGlx0aMjgMADAv0/jzKsZ8tLKulLUyNVUJq3G73maulKFOzlC X42sa3eWen1D/IudEv1+kXh3bc2zMAUAxzC/0swcrVoDANe3Hg4Z2dslvDGNxRTYWAjtqq7zdgzx JSZ07Zv4CGwsSjNzsBUQQggh9Ml9gvW71o2c+sRMqkqeSQcAMpVCY9KbT+5GIpFEjpYekYEZCXdd WnhLsovT41KXelatttQo1bLiciK8f/8W4vo2ABA8skP8qsMahYrGYhhP9/LG4x6RgTwLYc2NWpVm e/9otza+fn3DqwafVIpjqEf9Nr4AUL+NL89KlHPziWtLH1mhhGdRNXDlmb+IhEwlN5vYhVjAGjio VeK6o8ZGtnWUVJpdzLcWERNUr3twMiVu2f4hh2cTZVRIZDqNjvs8M1xzofGSXv3rNJVB8+3d/PXM 1FpS49X48PQNjULt3j6AeEvnMLUK9YuBtEJFPK+XUPa0cFu/pZ1XjKheTl2zGklkUvWS1rraVJpd LHKyfMtqBAAiQraI1+6X/gscBpdm5Ndcwpu0/mjw8PY146k10bratHoalZhnfZJwz9TZqq5qNN6m tapuMhKFrNNoAaA8t5RvJXoRwEr06Nyt6rev33mYmB4mkUnEkUUikQw6PQBUFEjilu0rTMsikcmV JeXEo6k/lPLcUt7zTFIZNJYJT5JTQrQ4U1BVY2wTLgDICqVsEe+dIq+rE3Bu3pB4GLB9kNudQ5cG 7JxOBJBmF5+P3hu/6lDV/slmVBRIatbh26BzmBpFUY29Wl1zr0YIIYQQQl8fngWfTHnp6mdprkRV qYoOXEC81Wl0Dk2cAECn1cWvi3uS8Njw/HZNxEWHsqIKnnnV6IYnfsOP3spimVatNbWv5UkiDA6D yWdVD1iIJOpKtGpc8Hzt7/slWp4n5Vu+uNUQz5L/6MKD5yPfF9vJFDIxqWzmJB66e2TChgvnV5xu EOndbkb76pWytf+6ZtPJ1Kq6ZQs5JZnFL3JuJXw9M45NnKrf8i340lwJ8ZrJZz4fXLABQFYsY4s4 daVY/VgiANAoNHQOA3dyhL4a1j7uff5eWHUWgkl/+y9Wr8cFAK5FVWdIJpMBQK/RAp0mzSkQOday MDf1wJkbO49plCoSmSQrLK3ZAyOEEEIIfSqfYH6XQqO+MiVpUs9co1SryhVMARsAtEoNx5QPAAIb U7e2vr02TXglBpG9uaygaoynVWpIFHL1Y1zropIpkredH7T3x5obtWrNjoG/il2t287p9yIz9ua3 9yW+CKNUE3c55ooFFYVViSoksprhK2pk5vWbP79NSflWoor8Mp1GV/O5s4TH52/HTvlzwK7pxCNj AYAl5FJoFFmhhJgOrJmZWkt65c+T5bmli92+AwDisuXHF1LHJUTXVVLjktYfCxratvrch7i+jbys QlEmI2ZDix7lEs9ABQBpdnFM9wVtZvbx6BBQ/XWOWJB780n12+rM19WmfCuR5FnRW1ZjTXqtzmAw 1JyWy7yUVvas0LtH6Bt3pLdpU71WR1w8Xlc1GmnTurzy2GAAENialueWvDjZkVPyHk+TBYAD49ab 1BNH7Z9JoVOTt55L3n7+/Q/gWjJpVp5bAn7OAKBRqhVlFcLnmawoKHt+mqYUarsW4Y3q6gRIZFKj Xk1v7UnQKFQcsbD6BuACG9PgkR0aD27z//RR5m62dw9fqWpQlUbyrIhYJ40QQgghhP47BFYCtpA9 9frMVwdEf8SnnboXtX0YS8AqyShe1WIZsZ1rxq0oqrpdjUIqNx45x5RLoVLKssten6EkkUm1jMLq SNQ4nUZHIpOqx251JSqwEZbnS18MOnKlAus3/G63amDdc00feZn80PR9R+fE9lj57fPc1zoYV2kU GhqLBgDSfCnX6OS30PqlzEjzJPUC7KsGF4UVzwcXUgCoGc8rJRW7mMslcoVETkw8F6UXeXXyxl0a oa8GhU7lmr/VZdxkGlWvrbr9u16nlxWVGTkDAwB8S7Ek69UbnmUl3z00afGIU5vErg4AEO3TBZsA IYQQQp8D8ueQCbaI69bO/8TP2zRKdUFaVtqxa66tfQGgUa+m6RdS045e0yhUSqk8I+GuRqkGAN++ 4Td2XshOSdeptfGrDrmENyRT3zCFlrztvNjNpnoSiBgB7hqyks5ltZ7ZR1WuUErlWpUGAFxbN5IV SlK2n9drdbf3JmjkKptGTgDg3iHw+paz5XmlWpUmacOLp9j69WsRt+x/7N13WJNXG8Dhk8EMWzYq 4EJcqCCKaI3i3nXvWbVu2zpbR61daltHraPVuveo2zpQWsQ9664iuJA9w0xIvj9CsVWJyucA/d1X r17JyckZz3sS83Dyvtmqik3OSFSdXLZffx7ni860lF95hb31vs9WquJS1Fk5Dy7czsnIFkJEHL2y ddhPHRcNt3YtkZWSkZWSoU/4vZr5hs7fqc7KUcWlnFsXYnim/bdPGRn23bAjM4cdmVmtU71qnerp f6i4oJkaEH35zoNzt3x7NfrXjCzLKasFf7tJnZl9fd+ZqAu3vVvWEkKkPkxc/v6XdQY392paUz9y /dfMvVv4hYdcunv6b22u9uyaI5nJedfUKuiY1ujWIGzhnshj1zTZ6rSYZP3v9RYUxqiLEfoWslIz Dn6xrrS/179P3Dy2cI9fnyCjf321s6BOn3pMMxLTru87k5OepclRn18fknw/vqyymoEwFnRMX4hX 05oZSarzG/7QanJjrt07t+6Ib+9GhXiJZSapLF3sZMbytOik/2tzVwgrF9sH58LFv35b2q9Po9D5 O9NikjXZ6sPfbHKtXsahYkn9Q39tDUu4Ha3JUf85d7tHXW9zO4sX7a6gNwEhRI3uyuv7Tl/ZefLf lyj369v42MI9URcjcnM0qtjkiKNXCjHHcg2rqWKSL24+qs7KOTJ7q315V/1J3gAAAHh3lKrprrC3 PPzDwcyUzJyMnOirUcn3k4QQGUkZCltzEwsTdZb62C+h+fUrNq18Zt3J1OhUTbbm2LKwZ+Thcmm1 9tX3fbEr/nacJkeTEBGff5bqUxXUqQE6re77ut+u6r3smZ16NfLOSMo4v+WsVqONuR59btNp327+ BlqOuR4dHx6n0+lMLU2tXW30Vx7KSxacrBIi47NSM4UQWk3eeXI6nS50UUiuJjf6atT1A1cqtahi oPGa3Wr9tePCg4v3tbnaq/sux/4dW7lV3tbsXzsuJETEa3I0fy484lG7jP4s3qfO1NxOUa5++eDv D6oz1dcPXo26dN+7aWWWNPAOcijvfu/MlaS7D3PVmqML1mqynvFnmRrdWoYtWh957IImOyctJiHm argQIjMxRW5qYuFQQqfTnVu3RxWTQGABAEBRIC8i42g/d8iuccu+qzbc1NK82ec99T9WalPKodf6 CQemr9s2YpFULnWrUbbrr2OEEC5VPVrPGrBt+EJVXLJ7nYrt5gw23Lg2V3vi59+bTu3+78IH52/d 2H9OCHFlZ95vCwUOa9Vsei8jU+PeGyfuGrds35TVJco4d1/5if4c0Fp9Gyfejl6onGhiaVZvRJvL 24/rn1X7g2bp8amLG3+m1eRWfb/uvy//+/wzlRnLe2+Y8PvU1QvqjVNnZDt4ufXZNMnY3OTPuTvS 41OXt5+R//TJkcuNFaatZw3YPmrx7MpDbUo7VO/63oUNfxqYqYXDo6t1mShMxT/XAS5opgaELdzt 06V+/mWK82Y0b8i2EYu+KTfIytWu88+j9I2f3/BHYmTMvs9W7ftslb5az7XjvJrWdKpUutW3/TYP /jE3W125XR3PenlpdkHH1Kdr/ZyM7F3jliVFxppam9cb1dapUumCwpibo9k1blliRLSxwrTMe1X0 q0UvMSL65uGLrWcO+PfIC+r0qcdUIpGc+OX3bSMWCYlwqeLRZ+NE/bWgCwpjQcf0hV4XxgrTvps/ 3TNpxb7PVlk42jSe3O2ZF9B+qiZTe+z8ZOnxJfvsPJzqjWidf8XpTYPmx16/lxadJJFKbh6+6FzZ vdPiEYabavZ5z51jl4X+uNPCwXpk2HdCiDqDW6gzc35uPkWdke1R17vb8o/zvwbr07n+9lGLY67d c6nm2WHBUAPNqrNyljT5TAiREpWwe8LygzPW+/ZqFDCkRUFvAkKIEmWcHSqUvLLjxL8XfJV2dTSZ OdtGLkq8HW1mo6jSPkC/xl5opsYK024rP975ydIdY3528fHoumw0/1QAAAC8a6Ryae8V/X//cvf8 ht+ps9QO5R3bfPm+TUnbgP6Bm0aum1lzhpmNeZPxza8dyPtCYa1etRPvJCxsOc/EwqTekAaXd180 3H6r6e2Cv9+/stcyVVyatatNu5kdDZw1W1CnhkiEscL4sesSP7VTY4Vx39UD90zbuW/6LgsHy8bj m5dvUMFAw6nRKXun71LFpcmM5SWrl2r71fv5D5VXepUJLDen/iwjc2PlyCC/Hv5CCCsXa5mxbE79 WTqtruGYxv++/PKT3KqVbDez42/jN6dGpTiUd+yzaoCFfd6XRH3a19g+fkvM9WiXKm4dvu9seKbt Z3Xa9smmb3ymW7lYd57f3dLRkiUNvIPKB9Xx6dxscZOBQuhqdG1ZrqG/4fo+XZrnZGTtGv9d0p0H ptaW9Ub2dKpUtlzD2uUb1Zlbu4vc1KRG15aV2zb85+8Y2UuafiCESHkQu3vC9wdnLPLt1SZgcJfI 4xd2T/hem5srhFjSbJBEKmn73fjS/lU5HAAA4OWSNGlS+AuZDh48uH17Q5clCQ4OnuX9p9KcDzHA O2dFx6+8W9aqPbApoQAAAEDR+qQa+X0/h07E4TW4czpy/ZDVE89N+X8PWc+l3s0q1+4TQEiBd+4d OyWyn3Mv4vAumOIYSBCAfDPuxLz8V5m7E4EFXp2wsLCAgADds0gkkrCwsKCgIANNbd++vfPns5/Z o5ygA68vLenwZWLkU/5t7rdtcv7vK79ZN/af2zNp+ZPlXs18W33T74Wb0+n+fS89IVV/ku5jFCWs hhz8qnjPFAAAAPiv9MT0JW0WPO3Tr2LIzhHvUCD+mxS8+XYAAAAAoPhjfxd4ffptm1zER+jVrKZX s5qvqHFFCauPz/34LswUAAAAUNgpPg6bQBwAAAAAAC8d+7sAXol+Wz8jCAAAAMC7zL2Wx8TzU19C crH2A4IJAAAAAPmkhAAAAAAAAAAAAAAAigX2dwEAAAAAAAAAAACgeHjl+7tK86pEGQAAAABQRHgo vAgCABSPd2xTd4IAAADwpFf++7tT7LsRZQAAAABAEUGWCgDF5h2bEAB4N9/93J0IAgDDXvn+blDM WqIMAAAAACgiIrUHPOQ2xAEAisE7dlJ1j9z3iMNbT2llMcWN3SzgkRlRO0LSrr/MV5llxSmu7Qhs cRF0LVx/I9i7LNFAQeSvoQ8ll1IBAAAAABQNKzKE0qQGcQCAYvCOLXRKKwviAOAdpLSsSBDe6QVg ZRGSqiIOMEBKCAAAAAAAAAAAAACgWGB/FwAAAAAAAAAAAACKB/Z3AQAAAAAAAAAAAKB4KJb7uznp mQvq9PnavcVi5QcvvfE/Zq/c0GcyKwMAAAAAUAiqmJSp1v2zUjIM1PmhytjwkKvECgBeqU1DB8+u 6TO1pHNOenp+YU56+oJGDb6u5LW4ZVNCBAAAiqliub9rrDAbcWJVq1kfcfwAAAAAAAAAPKnLop+H 7Pn9sUJjhWLE4T9affnVk/UzkpLW9Om5oFEDQgcAAIo4rs/8FBKJhCAAAAAAAAqXUhIDACh2Hl66 tLhlU1Mra0IBAACKPvlr7k+dmbV/ysLre47qdNrK7ZRNpw+Tmxof/HxxYmRU1xVf6Ov8telAyHer Rp1ak6vW7Bg1K/zIKXVGlpWbU/Ovhpdr5F+ITqMu3Ngzfm78zbtCCOcq5XptmmlkZnrv9JXVHT/5 9G7el/i2j5xpZm3R7MvhQghNds66HpMiQs9buTm0mjmmTANfFgoAAAAAvJWu7T53ccMxz/e8w378 XZOVU2tAw4aT2gshku/G7x675v6ZcBNLs3qjW9Qa0FAIkavO3TFqefjhK+qMbKuSds2/6lauURV9 +YEpG//afMLMVhEwvNnz966KSfm19UzfPu8FjmxeUKfLmn9dqV2tgKFN/slel8uN5a2/711QmxmJ qp2jVtw5/ndujsamtP37iwa6VHMvqHEhxP2zt3d/vFqbq7XzcLBys5NIRItve4TO2XPvdHiPdaP0 deZWn9Di2x5ezX2EECd/Dj6+6EBWSkapWmVb/9DH2s1OCPGF0+DW3/U+u/KPrNRMC0frDks+0Jer M3NCZu68/NuptIdJCgfr9gv6l21Y2cBgAMCw85s2Hvt5cWJkhJG5eeCQofWHjxRCHF208Oy6Nar4 OFNLyzoDBwUOGVqIlhX29u2/m6PVqH+ffoU4AwCAIu517+/+/ukCVVzSqDNrdTrduu6TQmataDx1 cI2eLRfW75+Vmm5qpRBCXNi4v2bPlkIImZHcu1W95l8NN7O1Ojp37Y6RMz+5srUQne6dOK9Kh0YB H3ZWZ2U/vPC3kZmp4fp/HzjRb8ec7mu/vrT54Iben318aYuptQVrBQAAAADeSrcOX7Yv7zzm/EyJ VJKtyhJCaHO1a7rM9elWt8f6Ucl34pc2+8rWw6FcoyoyI5l3yxrNv+pmZqs4OnfvjhHLP7n6vRDi zPKQm8GXhx+bYWpt/tvwZc/TqUQqSYtOXt5mVu3BQbUHBRno1H9QUMjMnfr9XXVmzpXfTg/YM8FA y8d/OiCRSsbdmCskIup8pH15FwONa7I1G3otaPFtj8rt/JLvxi+oM9m3z3sGGr+09eTxRQf67Rxv 5Wp76Iutm/sv+uDAZ0IIodNd2XFmwN6JMmP5tqFLj3y7o/2P/YUQv3+64eHFOz3Xj7Yr45h4O9aq pJ2BwbAUARh2eeeOA1990XH+T+7+tTMSE3Varb7crXr1Si1b2rl73Dl5YnmXjt7NW9i5e7xo41Yu LlYuLn8HHyLOAACg6Hut12fW5mrPrd3bcEI/Y4WZiYW5X982l7cfEULYly/tUrX8ld8OCyHSohMi Qs/7dM37vrN36/fM7awlEkm1zk1SHsTm5qgL0a+th+u1XX/eOfGXkalJ6TpVn1m/pK+3Z/2aEomk WpempjaW4SFnWCgAAAAA8LaSSCSNJneQyqUSqcTUykwIce9UeNrD5HqjW0hlUrsyjhVb1ryy/XRe ltrG19zOQiKRVOtcJ+VBYm6ORghxbfc5v74NLJys5aZGdUc0f55Oc1RZy9vMqjeyuX5z10Cnldr6 ZSan3zn2txDi+p7ztu72Lj7uBlNghwfnIq7uOqPVaEv6lTEyMzbQ+INzEZosdeV2fkIIm9L2ZZSV DA/77Mo/aw8KsilVQiqTBgxtcvfkrdSoJP1DtQcHyYzlQogy9b3jrj3Q/xHg/NrQFjN7OFZyk5sa OVZye2Z4AcCAM+vW1B38YbkGSiMzM2s3N5tSpfTlngF19Ru67rXrWLu5JUZGFroLnU5HnAEAQNH3 Ws/fTY9LzM1Rr+zwif4HbrW5ufkP1ejZ8sKG/b592/y15WBZpZ+lcwkhRK5aEzpnze2QMzpdXmWd tjCfsdrNm3Bq2W/bR3wrlUkbTx3i3ar+Uz69/fONPyGEwt42/7als70qNpGFAgAAAABvK0sXG6ns P99+TrmfkK3KnF1hjP5ubk6uR/2KQohcdW7onD23Q67qdDqtRpufpapiUyydbfJac3qu327cO35t VkpGiXLOz+xUZiTz69vg9PIQ97oVzq876tu3geGWa/aub2ZjfnzRwT1j1wQMb6bfRi2ocVVsipmd xb/SYcuntpmfjKfcTzjy7Y7QOXv0d43NTdJiUqxcbYUQls55E5fIpLnqXCFEemyqJltToozTY60V NBgAMCzlwQM7D88nyy9t/+385o3qrEyJRKqKjdXptMQKAAC83V7r/q7CwU5mbDRg948OXo9/17hK h6B9k35Mvhd9acuh+mN66guPLdhwbU9ovx1zzWwsE8Lvz/PtXshJmhjVHdal7rAuNw+e2NBnyrDQ X0uUKyUzkusTTr206HhzWyv97cyk1Pzy9PhkS6cSLBQAAAAAeHdYu9mZ21mMvznvsfJjC36/tvtc v53jzGwUCeEx82pO1JdbOFilxaT8k1GqnqeLpl90kZsYbejz0+DgybbuDgY6FUL49VfO95uUcCv6 7vGbnX/98JmNe7fx9W7jG3cjan3PHxUlLH37vldQ4xYOVumxKdpcrX6HOz0+zbi0iRBCKpdp/0mZ tblaVWxKfmQChjfzH/iUn8vVf5P7v38EsJIZyZLuxpuXsHie8AKAYVbOzsn37j5WeO/c2R3jPxmy Z79D+fJCiNm+1QkUAAB4673W6zNLZVLf3q0OTFuYcj9Gk61OioyKunBD/5CplcK7df3jP21KuvPQ q0U9fWFGYqqihI2JpUKdlX1swYZC9/v3/uM56ZlCiBJlS0rlMq0mVwhh6+Gqzc29vu+oTqe7/ee5 iNDzjz4XnrkSc/W2EOL2H2cz4pPKNPBloQAAAADAu6OUfzmFg/Xhr37LTE7PyciOvnQ3+W68ECIj UaUoYWliaabOzDn24+/59Su2rnlmRUhqVJImS31s4YHn6cLMzqJiqxqBI5qt7TovOy3TQKdCCCtX 23KNquz6aJVXy+pmNgrDLUcevaGKSdE/y8xGkavWGGjczbeMkcLkxOJD2lztg/ORt49c1Tfi4OV6 73R40p24XHXu0Xn7NFl5P5bkN0B57Mffoy5E5uZoVDEpEaHXDP0RQC6t1iVg38R18TejNdmahPCY lPsJhmcKAAbU6NItbMniyBPHNdnZabExMdeuCiEyk5LkpqYWjo46ne7chvWq2BgCBQAA3nry19xf 869GHpm5fFmLEarYBOuSTg3G9nGt7pX3Ea1nyzWdx/n1ays3MdKXBAztvGnAtJllW5vZWjWZNuTa nlB9ediCDefX7M1KVWUkpiyo00cIMfTPZTJjo4I6Pbtq19YPv9RpteZ21k0+/9ChoocQwszGst28 cXvGztkycLpHvRp1h3XR7/sKIfz6tQ2ZuTz+5l2dTnRb/ZWptQULBQAAAADeHVK5tPeWj37/bMN8 30nqjByHiq5t5vSxKW0fMLTppv6LZpYZZWaraPJ5p2t7zunr1xrQMPF27MJ6U00szeqNbnF566nn 7KjemJZxfz/cPGBxjw2jC+pUX9N/cNCKNrP67Rz3zDbvnrq1+YPFOapsI3Pjym399NdzLqhxuYm8 +5qRO8esPPzlNve6Fbzb1NQ3Ur5JVZ+udRc3mC50okb9579QAAAgAElEQVTPwHJBVfTlVd7312Sq tw1dmng71sxGUaWDv2d9bwODaTW7V/CMrSvbf6eKTbF2s2u3oL91yRKGZwoABfHp1DknI2PXpPFJ d+6YWlvXGzbCybtSuQbK8spGc+v6y03NanTpWrl1G33lyJMndk+aoM3VCCGWtG4ukUjbzpxdupZ/ 2JJF5zduyEpLzUhMXNCogRBi6P5DMiMjwgsAAIoRSZMmTQr95MGDB7dv395AheDg4FnV45Wm7gQa AAAAAFAUrMj4pZ+iYbEb9q3Dl3eOXvnRX7OevAzyS7RrzEq5qVGLb3uwTgAUiXfsaF0/RUvi8C6Y 4uZEEIB8M6J2vPxXmWs7AltcBF0LV1pZhKSqgr3LEo3iIiwsLCAgQPcsEokkLCwsKCjIQFPbt2/v /PnsZ/YofzsClx6fvKThoCfLFfY2Q478wsICAAAAALzeLDVtiXL607JUyyEh0160tZz07CNfbw8c 2Tx/c3dFm1mJEbFP1uy3a7ydpyPxBwAAAIC32Fuyv6uwt/n40mYOJwAAAACgaGSplh9f/u6lNLW0 2dex1x5Ubu/n/0Gj/MJ+u8YTZAAAAAB4N8kJAQAAAAAARdYH+z99bX21mduXgAMAAABAESclBAAA AAAAAAAAAABQLLC/CwAAAAAAAAAAAADFwyvf31WauhNlAAAAAEAR4SErQxAAoHi8Y8tdCAIA4F2j tLLI/z9QkFf++7tTrOsRZQAAAABAETFFkKUCQDF5x7YiBgDeyXc/13YE4Z1eAG5OBAHP9Mr3d4Oi vifKAAAAAIAiIlKq8pDbEwcAAIrKP83qLA+pc7BTT0KBd8QMVXhITmL+XaWx3RSLsv+pkLEgRH3y JfaoNKo9xXwEkS8uguLn5t8Oth9DQPBU8tfQh9LMi0ADAAAAAIqCFdlnlSbliAMAAEXln2b1ZYKA d43S2O4ZFYxqE6V3eoWYVBBChGT/TShQECkhAAAAAAAAAAAAAIBigf1dAAAAAAAAAAAAACge2N8F AAAAAAAAAAAAgOLhrdrfjQy7PK/WhzNcO+6f8iuHFgAAAABQfO0aM3/fhMUGKuSkZy6oPeTrUp0W vzeScAEAAADAu0P+mvs7vmjHvs+W5t+1cLAZf2P1y2rcI7DK6NOLt4+az3EFAAAAALzdjBVmI04u ubjx8PGffnud/WpztYe/XBn6w6YJtzeal7DiQAAAAADAayZ//V26B1Tuu+2Lf+5JOAYAAAAAADxO UhTz5YzE1A09Z1iXdNDpdBwiAAAAAHgj3sD+rkQqkZsYP1aYfDd29/jF98/eMLE0rzeyQ63+LYQQ PzcZW71bI/+BLfV1doz+USqXtfl+WOLth7vHL466eEuXq3WpVqbdvFG27k4cSwAAAABAIZxfe/DY gq2Jt6OMzE0DR3as/3FXIUT0pdt7xy+KuRqpcLBRju9erUsjIcT3lfr49W9xdsU+/8Ft7526GnX+ VofFn1g6220fMbdEWddbh881+bz/6aW7s9Iy+u+eaeFo+/eB00e+Wp1wO0pmJCvf1L/d/NEyY/m9 09d3jp7n3bpuePDZ9PgU97pV2v04RiqXCSHun72xc/T81Adx7nWrmFgq5MZGhZhORkLq3vGLbv9x QWYs9+naqOGnvWVG8oJmdOf4lb3jF5ZvUiviz4sZial+/VsGjuxooHETS3O/AS0rtQm8uPEwKwcA AAAA3ogi8fu72lztmm7T3QMqjb++uu+WL458u+7WkfNCiBo9G+dnjJrsnCs7wmr0bCyEsHCyrdW/ xdjLy8ddW2lkbnr427UcSAAAAABAIVze+seBKUubfTVoYuTmoaELqnZSCiGy0zJWtv/Ut1+LiRGb uq+ZcmDqsvAj54UQuTlqhwqlOi6dcGDK0kaf9lFO6HFmxT4hxL1TV5t+MdB/YOuDny/vv3e2S7Vy 1/ccF0LYuju1/G7YxMhNw44tigy9eHFjsL7TmMsRMrl8UPDc4SeW3Dt9/dLWP4QQmmz1hp5f1Ozd dEL4xvofd7287Y/CzWjLBzNNrRUfX1k17Nii+2duhHy71sCMhBAPL4aXKOM66NCcgb9/FzZ/S8Sf Fw00LjOSV+vcUKvVsnIAAAAA4E15A/u7905dn+XVW//fro9/EkLcO309LTqx3qiOUpnUroxLxZZ1 rmw/KoSo2qF+9OWIhPAoIcT1facsne1K1qwghDBWmHq3qiM3MZabGFduG5h4+yEHEgAAAABQCGdW 7qs7okO5Rr5GZibWJR1tSjsJIW78ftLCydanayOJVOJQsXTN3s1O/7pHX9+psqedh7PcxMipsoeV a4n0uGQhhIWjrcLBxtbT2amSh9zEyMq1hCo2WQjh4FW6VK2KUpnU0tnOs0H1xNtR+f0GjHhfCGFk ZlyqVsXYa3eEEA/O/Z2Tnl17UFuJVFLS16tMg+qFmE7aw4RbwWeDpvaTmxiZ2Vi8N7bb6WV7DM9I KpP6dAvSz6Jiy4CrO48+uxsuzgwAAAAAb84buD6za/Vy3Vd/mte9qbEQIuV+XLYqc3bFPvrCXLXG o15VIYSplaJiqzoXNx1pNKnnxY2H9SfvCiHSYhJDZm2IvXZHIpWmx6eYWJpzIAEAAAAAhZByL86u jOtjhakP4q1c7PPvWrrY3zx4Rn9bZiyXSKV5vzokkWhzc4UQ+gsgSyRSfZIrkUh0Wq0Q4v6Z62E/ blVFJ0qk0oTwB9W752W1Jpbmxuam+tsSmVSr1gghVDGJCgdriTTvZ3ctnGwLM52oeCMzYzMbC/1d K1f7jMRUdWa2gRkZK8z0V4cWQpjbWeq/Yw0AAAAAKLLewP6uzFhu4fifNNXazd7c1nL8jdVPVq7R o/GuTxYGfNg2PORiu3kj9YW/DZ9nW9qx3/avZMbys6v2n119kAMJAAAAACgEK9cSyXdjHiu0LumY GhWXfzf1QZx1KccXbTk3R7Oy7aTWP4zQnx27ZeDM/IckEsmT9S0cbdPjUnRanX6LNzMpzURh9qKd 2pR0VGfmZCSmmttZCSFS7seZ21npT00uaEbZaRnqzGwjMxMhRMqD+McSdgAAAABAUVMkfn+3VK2K Ckebw9+szUxW5WRkRV+6nXw3Vv9Q2QbVtWpNyOwNZRr45CeZmUlpli4lZMbytOhENncBAAAAAIVW o2eTsB+3Rh69pMnKSYtOjLkcIYTwauGfkZh2fu1BrSY35krkudX7ffs2f9GWNTnqnPQs/QWfH5z7 +1bwWcP13Xy9jMxNTizZoc3VPrx4Kzz4XCGmY+Fk69WizqHpK9SZ2enxKX9+t14/cgMz0ul0oT9s zFVrov8Kv77neKV29VgVAAAAAFCUyYvCIKRyWe9Nn/8+edl8/w/VGdkOXqXafD/MprSjEEIilVTv 1ujo/G2dfhmbX7/JtH47P15wfPFOOw/neqM6hC3Yri/fNHBW7LU7adGJEqnkZvBZ5yqenX4eyzEG AAAAABTEp3vjnPTsXR/9mBT50NTaot5HnZ2qeBorzPpu/3rPuIX7Jiy2cLJtPK1/+cZ+L9qyiYVZ s68Hbej9pU6r9QisGjiqY1ZKuqH83MSo+9opO8f8eOTrNaX8vWv2aWa4/bAft55fcyArNT0jIXVB 7SFCiKGhP8mM5R2WjN03YfEPlfvITIyqdVI2/LS3EMLAjKzc7GXGRnOq9dNpdQ0n9fKsX41VAQAA AABFmaRJkyaFfvLgwYPbt29voEJwcPCsqpeVZl4EGgAAAABQFKzIPttPUYc46N05fmV9j+kTIzYR CgDAG/unWXXZQ+oc7NSTUOAdMUMV/ljJFIuy/6mQseCldzrFfASRLy6C4ucqTSoIIUKy/w62H0NA ioWwsLCAgADds0gkkrCwsKCgIANNbd++vfPns5/Zo5ygAwAAAABQNB36YsVfGw8/Wd54Wr9qXRq9 nD50b6JTAAAAAEBhsb8LAAAAAEAR1Xhqv8ZT+70LnQIAAAAAnpOUEAAAAAAA8G5yD6g8MZKLMwMA AABAccL+LgAAAAAAAAAAAAAUD+zvAgAAAAAAAAAAAEDx8Mp/f1dp5kWUAQAAAABFhIfUliAAAFCE /mmWlVCauBMHANBTmlR47AbwpFe+vzvFtjVRBgAAAAAUEVMIAQAAReqfZktigHdszVuUfUYF8xFE 6d1+V2xJEPBMr3x/Nyi6P1EGAAAAABQRkXGdPeRuxAEAgCIl2NuHIOAtEBTfNf+20iRgiuWYJ+vM iL4eoop/9OnUNM3D0vzRa8G6wYzosBDV3Zc4KqVF6SnOgRydorJIUrZGqk54aLODS81/eoXL7z9a D1V++8/iydgeor5WtN69rSdxTN8I+WvoQ2nqT6ABAAAAAEXBCiGUVjbEAQCAoiMkNZkg4K2hNAl4 dh0L+0efTjVpSiOHvNeCOu6fCqWJ5Du9iqwDhRAhKWFPecjIuwi9exexzeZ3ipQQAAAAAAAAAAAA AECxwP4uAAAAAAAAAAAAABQP7O8CAAAAAAAAAAAAQPHwZvZ3D3+9e+/EzUU2KJsGLJtdcdJU22E5 6dlvZADz/adf23Mx/274kWuLlN88/9N/bT3n6s7zLG4AAAAAeN4s9bsf9k6dXnSz1KEjZtf0n1rS Iyc9/c1kqQ0aXfv9wKMs9c/QRS1av0CW2qnr1b37WGYAAAAA8FK8mf3dqh19fXvXfc7Kv0/eGnH0 79c5vC6/DhxyeELROUiu1Us3mdr+scKs1MwV7ec9tb5yfEv3uuVZ3AAAAADwvFlq2za+3bs+b5b6 xZcRx0+81ix10YIhe3YUoSy1WtUmEx/PmrPS0lZ06/n0LPWj0e61a7PMAAAAAOCleDP7uw5eLk6V 3Z6npk6ne82bu0WD5N93zGwV5Rp5P1YjMuymVqN96pPLvOelsLdgcQMAAADA82apFco7eVd83iz1 9W7uFo0k9b9Zqo1NuQb1H89Sj5/QajRPz1ID6ypK2LHMAAAAAOClkL/m/h5evLd50K+pD5KqdPRr P7+XvvDemYidY9Z5t/IJP3wtPUHlHlC23bxeUrn07MqwU8v/jLn8YMug5UZmxkKIkSemyIzlQoiT v4QcX3wkKyWzlJ9n6++7WbvZCiGu7bl4ceNJz/oVwhYEa7LUtfrXbzixVUGNCyGOzj94dlWYKjbV 1MqszocNA0c0Ltykzq87ceynQ4m344wUJoEjguqPaSaEiL58f++ETTHXHirsLZXjmlfr7G9gpkKI c6uPhczeq9Vofbr6y4xl+Y0vqPtlWnSKmY35mHN51wrLSsncMmh51MW7WSmZc2tOE0LU6l8/cGRj IcSZFUdD5x1IuZ/4/k99fLr45zfy1MGEzt0ffzNGk61JvB2XmZxRZ4iyzpCGhZhpQWH8a/OpkNn7 VLGpchOjqh18W3zTWV8eEfr3/qnbkiLjbT3sW3zT2b1OWV6HAAAAAN6Uh5cubx4xKvVhdJV2bdrP npmXpZ47v3PCJO/mzcL/+DM9IdG9dq12s76VyuVn160/tXptzNVrW0aMNjI1FUKMDDkkMzISQpxc vvL4suVZqamlatZo/fWX1q4uQohrvx+4uHWbZ92AsJ9/0WRl1erdq+HHYwpqXAhxdNGSs+s2qOLj TC0t6wwcEDhkUCGz1E1bjv28NDEy0sjcPHDIoPrDhwohoq9e2ztlWsyNvxX2JZSjR1Z7v72BmQoh zq3fGDJvvlaT69Phff0c87LUoGZpMTFm1tZjwv7Iy1JTU7eMGB116VJWatrcwAZCiFq9ewZ+OFgI cWbtutCfFqdERb3/w2yfDu8/ylKfNpjQnxbFh4drcnISb0dmpqTUGdivzoD+hZhpQWH867ftIXPn q+Li5SbGVdu2bTF9al6Weuz4/i+/Trpz19a9dIvPp7r71+J1AQAAAKAoe937uy4+pUadmrZ/yrbM lIx/l8dceVClfc1BB8eps9SL3vvm0rYzPl38ffsG+vYNnOU1sdMv/T3rVcivfGnbmeOLj/TbPtrK 1ebQjB2bByz7YP9Y/UO3Dl+zL+c05ux0iVSSrcoy0LgQwq2me6U21e08He4cv7W8zVzvVj52ng4v OqPL284emLat45L+7gFlMxJUOq1OCJGdlrWyw4/Nv+xYrVOt+JvRK9//UeFgVVZZsaDBxFyN2j1u 44DdH7nVdD+17I+YKw/y2x9xbPKN/Zf2TdqSX2JqbdZr07DTy0MvbT0zYPdH/x6MX796fv3qLW74 7b8LDQzmwvqTA/Z85B5QLiE8dkHdLyu29LEpZfdCMy0ojJos9bZhqz48MtG5SsmMBFXqw2R95eS7 Cet6Lu6x7kPPehVu7L+0ttvC0ac/VzhY8lIEAAAA8Ea4VK0y6o/D+2d8lZma+p8s9dr1Kq1bDdr5 mzora1HzVpd27vLp8L5vj+6+PbrPquHXacE8z4A6j7LUHbuOL1veb8NaKxfnQzNnbx424oPtW/Oy 1D9D7cuWGRMaIpFKs//59dynNi6EcKvuU6llczt39zsnTy3v0t27eVM7d/cXzlJ37j7w1dcd589z 9/fLSEzSabVCiOw01coevZpPnVytfbv4W+Ere/RW2NuXrV+voMHEXL++e/LUAVs2uvlUO7Vydcy1 64+y1OD9Nw4F75v2xaMs1cqq16rlp1evvbRj54AtG/+Tpfbs4dezx+KWbf6bpRY4mAubtw7YstG9 tn9CRMSCRk0rNm1qU9LthWZaUBg12dnbPhr74d5dzpW8MxITU6Nj8rLUe/fXDRzU49elngF1bhwK Xttv4Og/jyjsS/DSAAAAAFBkSYvOUAKGBQkhjEyNStXyiL320EDNs6vCan/QwKaUnVQmDRja6O6p 2/nbhxKJpNFnbaRyqUQqMbUyM9y4Z70K+g1d94By1iVtEyPiCzHsM6uO1h0eVK6Rt5GZsXVJO5vS JYQQN/ZfsnC08uniL5FKHLxcavaqe3p5qIHBXN97sWzDiiX9PCRSif/ABiYWpi8xsAYG41qjtHtA OSFEibKOls7W8X9Hv+hMCwqjzFhu5Wp7+tfQhPBY8xIWzlVK6itf3HTKs34F/W69V7OqCgfL8JBr vA4BAAAAFEEBgwYKIYxMTUvVrBF7w9AvB51dv6F2vz42Jd2kMlnABwPunjmbGh39T5YqGo37RCqX S6RSU0tLw417BtTRb+i61/a3dnNNjLxbmCx13fq6gweVa1DfyMzM2s3VplRJIcSN4GALBwefDu9L pFKHCuVrdutyevVaA4O5vv9g2ffql6xRXSKV+vftbWKheJlZasGDca1Wzb22vxCihKenpbNTfHj4 i860oDDKjIysXJxPr1qdEBFhbmfnXCnvV5AubvvNs26Afrfeq3GQwr5EeGgoix8AAABAUSYvIuMw sTQ1NjfOy35lUq0m10DllPtJR2buCZ17QH/X2Nw4LTrFysVGCGHpYi2VSZ+z8Utbz5xfd1ydqZZI JaqYVJ1OV4iRp9xPsvN0fKww9UGyfjx6li7WN4OvGBiMKibV0tk6r1AqebnnsxoYjKWTdX65VCbN fVbYn5xpQWGUSCWDD447Ov/gL82+c6lassXXnRy9XYUQyfcTw49cn+U1Uf9cdWaOKk7F6xAAAABA UWNiaWFsbv5P7iYr6Jdl89KlB1FHfpgb+tPCf7JU87TYWCtnZyGEpZOTVCZ7zsYvbd95fvNmdVa2 RCJRxcbpdNrCZKkPouw8Hj/rNzXqoX48ecmgs/PNI38YGIwqLs7S0fGfLFWqKGH/MrPUggdj6fQo 65RKZblq9YvOtKAwSqTSwTt/O7poyS/tOrpUrtTi8ymOXl5CiOQHUeF/Hp1Vwy8vS83KUsUnsP4B AAAAFGVFZX9XIpE8f2VrN9uAYY38B7z3/zR+70zEjlFrhhyZ6FDBWQgx23tS4UZu5WKTfPfx3M+6 lG1qVNKj3PVBknVJOwODUThaRp1/9L3szKT0lxhbA4MRkv93pgbCaOFo1fzLjk2mtjv646FVnRaM vfK1/th5Na/a5deBvPYAAAAAFGUSQ/nS4w9Zu7oEDBro36fX/9P4vXPnd4yfOGTPTofy5YQQs31r FzJLdXZKvnf/iTzaLfXhoys2pUZFWbu5GhiMwt4+6q9Lj7LU5OTnyb2fO6kvcDAvlqU+baYGwmjh 4NB86uQmkyYcXbRkVa9+Y08f1x87r8ZBXRYtYM0DAAAAKC6kRX+IVq42D87eEUJoNXnfXPbrV+/Y guCoC3dzczSq2NSI0L8L0WxmYrrczNjC0Uqn051bc0wVk1q44dXoUSdswaHIsJuaLHVaTIr+p3O9 mlXNSEw/v+6EVqONuRp1bs1x3z6BBhrxbukTfuTa3VO3tbnas6vCMpMznicsCeGxWSmZ/47MU73o YF5opgWFMT0u7c6J8Fx1rsxYbl/WMVedd2Zw9a61w49cu7b7gjozJyslMyL0b3WWmtchAAAAgGLE ysX5wfkLQoj88279evU4tuSXqL8u5arVqri4iGPHC5OlJiXJTU0tHB10Ot25DZtUsbGFzFK7dA5b 8kvkiZOa7Oy02Fj9T+d6NW6UkZR0ftMWrUYTc/36uQ2bfHt0M5SlNmsa/mfo3TNntbm5Z9dvyExJ eXZYnJ0SIiKzUlP/HZmnZ6kvOJgXmmlBYUyPT7hz6nSuRiMzMrIv45mrzsnLUjt2CP8z9Nrv+9WZ mVmpqRHHjquzsljkAAAAAIqy133+7o7Ra++duq2KTdVpdfdPR9h62PdcP9TwU5p90WHnx+tC5x2w cLAceXKqEKLK+76aLPW2YasSb8eZ2ZhX6eDrWb/Ci46kXKNK5YMqza0xVW5qVKNHQOX2NfXlkcdu 7f5kvTZXK4RY0mimRCppO7dH6dplC2rHp1vtnIycXR+vT7oTb2ptXm90U6fKbsYKk76/jdozfuO+ SZstnKwaT21XPqiSgcE4VXZrNavr5oG/5uZoKrermT+dMyuOnlhyJFuVrYpNXRAwQwgxYM/H5nYK IUT5xpXLNKg4p/oUI3Nj5biWfv3qCSEW1v9aq8lNjIg/OH176Jz9VTr4Kse1fNHBvNBMCwqjJlu9 f/LW+JsxEqnEztOh6/IP9OU2pUv02jz8wNTftg1dJZVL3Xw9uq74QAgjXooAAAAA3ogd4ybeO3tO FRen02rvnz1v61665/Klz8hSJ3+6c+KnoQsXWzjYjzxySAhRpU1rTVb2to/GJkZGmllbV2nb2rNu wAtnqQ3eK69sMLfue3JT0xpdOlVu3SovSz15avekydpcjRBiSet2Eom07cyvS9fyKzB369QhJyNj 16TPku7cNbW2qjdsqJN3RWOFou/61XsmT9s3bbqFo0PjiePLKxsYylK9K7aaMX3z8JG5OTmVW7fK n86ZtetOLFuRna5SxcYtaNRUCDFg60ZzW1shRPmGyjL1AucE1DcyN1eOGenXs4cQYmHTFlpNbuKd Owe/mRW6YFGVtq2VY0a96GBeaKYFhVGTnb3/iy/jw29LpFI7d/eui/Mupm1TqmSv1SsOfPXNtjEf S2Vyt+o+XZcs4nUBAAAAoCiTNGnSpNBPHjx4cPv27Q1UCA4OnuWzQWnqT6ABAAAAAEXBinvu/ewq EwcAAIqOkNTkYG8f4oC3QFB8V6XJo+/5TbEc82SdGdHX//PpVBPRz84977Wgjgu2bjAjOuylD2yK cyBHp6gskpStkaoTHtrs4FLzn17h8vtK60AhREhKWHCV3/6zeDK2F613b/W1YOtJHFMhRFhYWEBA gO5ZJBJJWFhYUFCQgaa2b9/e+fPZz+xRTtCfK/9vNy8xIu7J8n47Rtt5OjBTAAAAAMBrzd269ki8 c+cpudvGdXbu7swUAAAAAN5i7O8+l347RjNTAAAAAEBRyd02rmOmAAAAAPBukhICAAAAAAAAAAAA ACgW2N8FAAAAAAAAAAAAgOKB/V0AAAAAAAAAAAAAKB5e+f6u0tSfKAMAAAAAiggP83SCAABAkaK0 siEIeEsWs0nAC386NVY8erqRAzF8+xeJUUkPmZXSvEaBFawDH7tRhOfizQF9U+SvuoMpNkOJMgAA AACgiJjCH5ABAADwij5qWo55dh3niv+5Kyo+USGQSL7Ni8S89hTz2oYqlBpb8HPbE0DovfL93aC4 9UQZAAAAAFBERMo9PWTWxAEAgCIl2IqTwPAMQSnTn/7pLsfWQ1LplXatNHGaYlk1KP6jR52q7nnI nB9fxqUWBKk2PHqWvPQU07pPtjYjY0GI+uSjprLve0hK/quv2iLHPiTj0sscv3nVKfbdWEJFZSWn Bv3zvhf89ApxR/61HhynWFV+tHiS94Vk3Sxa797Oo15/pzPSj4fk3Au27fIuLyT5a+hDaVKaVywA AAAAoChYkSuURlbEAQCAoiNEnUoQ8DyURpWf8ukuJ0pp4vSaBmBSPa9T1T2lec3/LOOMc3l15KWf YyKPTt9ckX1fafL42ZxK86oc7rd6JStD1CEGV5pjgQ+Zli9C795FbLP5nSIlBAAAAAAAAAAAAABQ LLC/CwAAAAAAAAAAAADFA/u7AAAAAAAAAAAAAFA8vFX7u5FHL8zz7T7DOWj/5AUvvfGc9MwFdXp/ Xbr54gYDWTcAAAAAgFdq18iJ+8ZNM5SlqtIX+Db62qXS4sCWhAsAAAAA3h1vYH83K1W1ou3oV9Gy R73qo8+ur9q5yato3FhhNuLE6lazP3r+p8RcCZ9Xs9uesT+wzgAAAAAALzlLtVCMOHu41Q9fvs5O U6OitwwY+bVLpW/cqvw25GNNVjYHAgAAAABeszewvxt59II2N/etj+zFDftXdxpbomwpFhkAAAAA 4IVJJEVwULFXb9iXKzPm8tFRF/+I/utq2NzFHCgAAAAAeM3kr7OzrBTVlg+mR124kZWqmlu9qxCi 1oD2gaO6CyGiL9/aO35uzNXbCgdb5bi+1bo0FUL8MXtl0p0odWZ2/M27Wk1ui29GlmngV4h+k+8+ 3D12zv0zV0wsFfVG96g1oL0Q4uC0RYmRUV1XzlQYRFwAACAASURBVNDX+WvTgZDZK0edXiuEiAg9 t3/yT0mRUbYeri2+He0eUK0QnVqXcvpg/8LTv+7IUWWwzgAAAACgyDq/etOx+T8n3o40MjcPHD2k /tjhQojoS1f3fjIl5soNhaO9csLoat3eF0J871Xbb0DPs8vX+Q/pe+/k2ajzlzr8PMfS2XH7sHEl ynneOvRHky8mnf5lVVaaqv++jRaODn/vP3xkxncJ4ZEyI6PyzRu1WzBLZmx079S5nSMmeLdtHn7o j/T4BPfA2u1+miWVy4UQ989c2DliQuqDh+6B/iZWlnIT40JMJyMhce/YqbePhMmMjXy6d2g4eazM SF7QjO4cO7X3k6nlmzWM+ONYRmKS34CegaOHGGi8XOMG5Ro30N8u36xh7PWbrB8AAAAAeM1e6/6u qbVFr82zT/+6/dLWQwP2PPqJ3Oy09JXtP2r+1YhqnZvE/3135fsfKRztyir9hBAXNx4YHrbCvoJ7 5NEL67pP/PjyFlNrixfqVJurXdNlvE+35j3Wf5t8J2pps2G2Hq7lGvnX6NVqYb1+WakqUysLIcSF Dftr9mwphEi++3Bd90k9NnzrWa/Gjd+Pre06fvTZ9QoH2xedrEdgdSHEu3CmMgAAAAAUX5e37Dzw 2Vcdf53vXtc/IyFRp9UKIbJT01a27tH826nVuraPv3FrZZseCkf7so3q52bnOHiV6/jr/GWNOww/ fej+6fNnlq9rOGnMvZNnu2/4xc7T/eDUbz66enz70E+u7z7gN6CnrXuplj986ebrkx6X8Iuy7cX1 W2v27SaEiLl8rUqH1oNCdqozsxbVbX5p806f7h002Tkbun1Q75PhtYf0fXDur1+bdqw1sFchZrSl /0g7T/ePb5xUZ2Zu7DE45OsfgqaNL2hGQoiHFy/XGdq/8ecTVLFxC2s3da1e1bNB3efp6P6pcxVa NGYJAQAAAMBrJi0Kg7jx+zELRzufrs0kUqlDRY+avVqdXrZd/1Ap/8r2FdyFEB71qiscbcNDTr9o 4/dOXU57GF9vdA+pTGpXpmTFlvWubD8ihLAvX9qlavkrvx0WQqRFJ0SEnvPp1lwIcXHjAc/3anrW qyGE8GpeV+FgG37kdOHnptOxyAAAAACgyDqzfF3dUYPLNW5gZG5mXcrNxr2UEOLGvmALJwef7h0k UqmDd4WafbudXrpaX9+pckU7T3e5ibFT5YpWrs7psXFCCAtHe4WDva2nu1PlinITYytXF1VMnBDC oWL5Uv41pTKZpbOjpzIw8XZkfr8BIwcJIYzMTEv514y9dkMI8eDshZz0jNpD+kqk0pJ+1cso6xVi OmkPY24d+iNo+gS5ibGZjfV740ed/mW14RlJZTKfHh2FEBaODhVbNb26fe9zxe3XtakPYwq3Aw0A AAAA+H/Ii8IgUh/EWrk65N+1dHW4eeik/raptWV+ubmdtSo26UUbT7kfk63KmF2hnf5ubo7ao34N /e0avVpd2LDft2/bvzYfLKv0s3QuIYRIvhcTfvj0rPJt9XXUmdmquCQWCgAAAAC8lVLuPbAr6/FE lhpl5er8ryzV+eaBI/rbMmMjiVQqNzERQgiJRH/RJpmxsRBCIpXITU2FEBKJ0J8HfP/0+bB5S1TR sRKpJOFWRPWenfSNmFhZGivM9bclMplWrRFCqGLiFI72Emne97AtnB0LM50HD43MTM1srPV3rVyd MxKT1BmZBmZkrDDXXx1aCGFewjbhVsQze7mx92DI13MGHNhqZG7GEgIAAACA1+xN7O9KJI8VWJdy So2Ke5RI34+1Lumkv62KTnhUHhVn6WT3or1Zuzma21mPv7nzyYeqdGi0b+L85HvRl7YcrP9R3peO rUs6ejWv22XFFywOAAAAAHjrWbk6J9+590SW6pb64OG/stQo61JuL9pybo56Zevured8pT87dkv/ EY/S4qfVt3C0T4+N12m1+i3ezMQkk3/2gJ+fTSk3dWZWRmKSuZ2tECLlfpS5na3+1OSCZpSdplJn ZOp3alMePLRwesa+8q1Df+waNan3jjV2ZdxZPwAAAADw+r2B6zNbuTgkhN/PSlEJIbSaXCGEV/PA jMSU82v3ajW5MVfCz63Z7du3jb7yg3PXbh46qc3Vnl+7Nzs1vUwDvxftrpR/FYWD7eGvlmYmp+Vk ZEVfupl8Ny+nNbWy8G5d//hPG5PuPPRqkXflq+rdmoUfOX1t15/qzKysFFVE6Dl1ZjYLBQAAAADe SjV6dQmbtyQy9IQmKzstOjbm8jUhhFeLxhmJSedXb9JqNDFXrp9bucG3f48XbVmTnZ2jSrdxLymE eHD24q2Dfxiu7+ZXw8jc7MSi5drc3IcXLoUH/1mI6Vg4OXi1bHJo6rfqjMz0+IQ/Z8337d/d8Ix0 Ol3o9z/lqjXRf125vvtApfYtDbQf8cexrQNHd/z1R+uSrlkpqVkpqSwhAAAAAHjN3sD5u+Wb1CnT wHdOtc5G5mbKCf38+rU1Vpj1/W3OnnFz9k2cb+Fk13jqkPKNa+srV2xd/+LG/Vs+mG7hZNdtzZem 1hYGWt7Uf1rstdtpD+MlUunNQyedq5TrtHSaVC7rveW73z9bMN+3uzojy6GiZ5s5Y21Ku/yTybda 02msX7+2chMjfYlNaZdeW747MHXhtg+/lMplbr6Vuq6aIYQI+3HD+bV7slLSMxKTF9TpLYQY+uev MmMj1hAAAAAAFF8+PTvlZGTsGj0pKeKOqbV1vU+GOVXxNrZQ9N29fs/Hk/eNm2bh7Nh4+sTyTZQv 2rKJpUWzb6du6DFEp9V61KsdOObDrJQUQ/m5iXH3DUt3jpx45MvvS9X2rdm3m+H2w+YtOb9qY1Zq WkZC4gLfRkKIocf3y4yNOiydu2/ctB8q1pGZGFfr0r7h5LFCCAMzsnJzkRkbz6kUoNNqG376ked7 AQY6/XP2j+lx8cubd84vmRx7w9hCwUICAAAAgNfmDezvSmXSjkumPFbo6O3Zf/f8p1SWyjr9MvU5 W+6yfPpTy61cHQp6qKzSb1p8yGOFpWpVHrjvp8cKA0d2CxzZ7UUn2+zLESwyAAAAACiyJBKJ/+C+ /oP7PpGlVui/b9NjheMjz+tvfBp9TQhRvolSv0v68fUTQoiqndtV7dxOCNFkxqf6anVHDqo7ctDj Kad/Tf3T9dovnJ1/u2StGsNO7H/OkQeOHhI4esiT5WY21h1+mftk+VNnJITQZGU3mDCqwYRRz9Np 393rWTMAAAAA8GbJi/j4dDrdYyUr2oxOjHjwZM1+u+bZebq9zrGlxycvUX7wZLnC3mZIyFLWFgAA AADg/3To85l/bfjtyfLGn0+o1u39l5V4v4FOAQAAAACFJS92I+63a14RGYnC3ubjy1tYQwAAAACA V6Tx5xMafz7hXegUAAAAAPCcivT+boNxfTlCAAAAAAC8Iu51/Sfev0QcAAAAAKAYkRICAAAAAAAA AAAAACgW2N8FAAAAAAAAAAAAgOLhle/vKk1KE2UAAAAAQBHhIdERBAAAihSlkRVBwHOsk8pP/3Qn c3xNAzCp/qhTY9fHHzWvKYRQyl94Q8RDVpKD+46tZGX+/wtYaY7FZi6m5d9Y18al3vGFJGnSpEmh nzx48OD27dsbqBAcHNysWTNergAAAAAAAAAAAADePmFhYQEBAbpnkUgkYWFhQUFBBpravn17589n P7NH+aueUlDcTxxXAAAAAAAAAEBBgh2G598O+nvVK++uQp/CPTHo0rv45+7gqsOLwjCCrm57anmk 2WUP61d7gZZIUclD5hipWughM88rSVB5yJ9y3m2k2tXD2CXvtrysh4nN01pb42Fy69Fdrc5D/ujU ZKVxZZEUGZIS9hLHr7QOnFJqLO8zRURQYjchRGSGo4eu9tPXmyTMw+jRyolMKO2RWzPS7KCHTXxk 8k2PXLsiNZ3I7NMeJiWVlg2muE5+bZ3OSA0Lyb77+Do3KT3FKvDdWUjy19CH0qQcr1gAAAAAAAAA wJNCsm89VqK09HiF3aVF/j9PV1q/W3/uDkm5VXQGo7R6ypbqCvVlpXHlV9rvihyd0shhhRBKU/+8 EnFYaVn9KTUTY5WW7nm3M4XS7CnXHl+RKZQmAf+6e+zJ8SutA3lneIspjQNWZIQrzd2fvt4yw5Sm VR/dFSlKa7sVOUJpUn2FuKm0rF2k5rIi+7TSssEbiOE7/+OwUl5IAAAAAAAAAAAAAFAssL8LAAAA AAAAAAAAAMUD+7sAAAAAAAAAAAAAUDy8mf3dw1+t2jthUZENyqZ+X8/26jHVunlOeuabHcmqDp8d X/gbyxQAAAAAAAAAiouwX7b+ENh3mmeLG8En/12+afjXs2v1mOr+5v/yDAAo1t7M/m7VjkrfPs2f s/Lvn/0ccfSv1zm8Lis+HXJk/qtr/8a+E0e+WcPiAwAAAAAAAIC3T+Cgjh+HrbQt5fxYeZefPh2y 81X+5fnQiSNz+MszALz93sz+rkPF0k6VPZ+npk6niwj96y0L+ts3IwAAAAAAAADAmxVxnL88A8A7 Qf6a+3t48dbmgd+mPoiv0qlB+x8/0hfeO3195+h53q3rhh8+mx6f4l63Srv5Y6Ry2dmV+04t2xNz +faWD2YamRoLIUae+kVmLBdCnPx55/FF27NSVKVqebf+YYS1m4MQ4truYxc3BHu+5xP241ZNVk6t Aa0aTupVUONCiKPztpxduU8Vm2RqpagztH3gyI6Fm9T5tQeP/bQ18XaUkblp4MiO9T/qWlDj905d OzBt2cOL4TIj2cWNwUKI9xd+4l63ihAi5UHc/slLI8P+ykpJt/N06b9rpsLBRgiRfDfm56Axcdfv WJV0aP3dcM/6PqxaAAAAAAAAAHjj/j5y+sgPqxMio2RGsvIN/dt9O1pm9MJ/ctdqckPmr7uw5aA6 K8czoFqrL4YpStjoHzq/+eCxpVsTI6OMzE0DB3WsP6yrEOLoki1n1+9TxSWZWinqDGgfOKijEOLe uWsHvln28Eq4TC67+FuwEOL97z5x968ihIg4fnH/V0uT7j60Le3SYtqH7rUqc+AAoLh73fu7Lj7l Rp1Zun/yL5kpqn+Xx1yJqPL+e4MOzVVn5ix6b/ilrX/4dG3k27fF/9i777CmrjcO4O/NDgkJe29F VBRkKDLUIKK4cddVcVSrtVats3W1tdbRuqq2trbuUSdOnHXiBhXcFUFZsleAkPn7I/6oVUDFAer3 8/j0yT05ec+454Y+982912dQ+/mufXuumuwc5FFeOX7HyXO/REbsmSuxMTv67eptg38Ydnih/q17 f8eaudqNvfInw2KVyUuqCE5Etj71GnYJNHG2fnD2+upOkxp0CjBxtn7ZEV3fefLwjFU9fp/k6N+o JKdAp9XpyysMbt+swdCoH7cO/sG8nn3w1AFP/gnf0GuGrXe9T08sExqLM24m6ZO7RBS37fig3T9Y ujufWbJt9+eLx15djVULAAAAAAAAAAAAUOOM7S07fDvK1qNecU7+7+Fjr+065t273csGif5t+71T MSP2LhVIxH//tG7Lp7OHbvuRiK7vPXn4h1U9Fk9ybNqoJO+JM8+e9RqGBZo4Wj+4eH31R5MatA0w cbS2924wdNuPW0f/YF7HPnjcv2ee81MyNg37pt8fs5ybe9w5dmHjkJlfnFhVnj8GAIB3FKv2dMX/ s25ExBXy7JvWz7z1oIqaMWuj/D7pbGRvwWKz/Ed2e3jhZmFajv4thqHW0waxOGyGxQgkoqqDOwd5 6BO6jgGNpHYWuYlp1ej25TVRAaO7123twxXypXYWRg6W1QiefOl2QXJmp59GS2xMuUK+nY9b+Vse vVtbNXJhGKZRt5a5ienqMhVWLQAAAAAAAAAAAECNM6/rYO9Vn8VmGVqYOAc2yU2qzhnm2K2HW4zs LTI1YnM5weMGpMTezryTRESXN0cFDOtet6UPV8iX2lgY2f3/zHNzDxNHayJybNZIamOR+6CqRq/t +ts5wNO5uQcRuYX4icykCadjseMAAN51nFrSD76hAc9AoH/NsFlatbqKygUpWcfnbjy9aKt+k2cg KMrIkdiYEpGhtSmLzXrB4PHbT1zZeESlKGNYjDwzt/wHUC+lICXLxMXm2fKXCl6QkimxNePwuc++ pb/1NBHp7+yhVaupomoAAAAAAAAAAAAA8DalXLkd/fsOeWYuw2LlJKY26dGmGkEK07MMLU31rzl8 ntDYMD8ty8LNqSAty8SpojPPu09c2f7/M89ZzznznJ+amXA6dr5PX/2mSlEmz87HjgMAeNfVlvwu wzCVv/d0gdTW3P+zbs2GdnqV4MmXbu/+fPGIE0vN3RyIaEH9/tXrucTaNP9BxksFf7Y7EmuzovQc jUr97OMZGBaDZQoAAAAAAAAAAABQq2hU6rX9p3aaPdqzewgRbR8zr3pxpDYWhY+yidyISKVQluYV GdmYE5HE0jQ/5Zkzz1du756yeMTepeZ1HYhoQbPnnHmW2pi7hfj1Xv4V9hcAwPuEVfu7KLE2S718 h4i0ao2+xHdIh7M/70i7+o9GqZZn5CWevlaNsKW5hRwhT2xpotPpYtcfkj/KrV73vPqHRi/bkXQm Xq1QFj3KzbiR+NzgEhuztGv3tBqtTqfT/7rKvlkDkblR1ORf5Zl5qlJl6pW7yhIFVicAAAAAAAAA AABA7aRWqpQlCv1tk1Ov3b13KqZ6cXz7dTi94q+izFx1mfLvH9faeLia13MkIq9eodG/7Ug6H68u UxZl5mbcSiSi0rxCjoAnNjfR6XSxWw/JM/975tnSLO36f848N+keknA69tahs6rSMkWhPPHcNZVC WVlPUq/d3TF2vlajxc4FAKjl3vb1u7vHLE6+eEuekafTalMu3TZ2su6/ZVbVH2k3e9iesUtPL94q tjD+/OJvRNSoW0t1adnOkT/l3k8TGokbdW/l3MLzZXtSN8THtY3vYs8IjpDv1S/UPbyFvjwpOn7f l8v0ueSVwV8wLKbL4jEOzd0ri+PZt42ypGzv+J/zktIFUnHQ2F6W7s6VBdfzH9V925A5c517C6Si fptmWDWuw+ZxBm7/7uDXvy9rPkJVojB3c/x45/fl95QGAAAAAAAAAAAAgFqFLxK2m/bJlk9n63Ra p2aNA4f3UBQWE5FKoVzZ+XMiKkjL2jdt+ZG5f/p8FOY/tFvShfh90/5/5rnLFwyL6fLDGAdf9+ZD wlWKst+6jlUpFE5+Hh+tnK6/IaVnjzbKkrK9X/+c9zBdIBEHjexl2cC5bksf11a+i1tEcAR8r16h 7h3/e+Z5WPdto+fMbdJbIBH1+32GVcM6RnaWA9bOPjxn1c5xC1gctm0Ttz6/TKtsRAVpmYnn4zQq NYvNw/4FAKjN3nZ+t+vSsc8W2jet/1XyjvLN8J/HPfmucwvPL2L+eOojTfqFNukX+lRhg04BDToF vGBwFofd47dJz3bGKbDx6PMrX3xEDMM0G9ap2bD/3Cy6suB6EhvToQd/eqrQ2Mm678YZTxV+vPP7 Jz5l9m3BQSxZAAAAAAAAAAAAgNogYFj3gGHdnyrkCnijj1RwhtnJr3GF5Sw2q9XnfVt93vepcoZh mn3cqdnHz5x5Xlz5mWcr06Hbnz7zbO9Vf+i2H19kOA3bBzVsH4TdCgBQ+3EwBS9iTecpuYlpz5ZH 7J1n4myN+QEAAAAAAAAAAACAd8KavlNyH1R0unvzPBNHnO4GAHgHIL/7QiL2zsUkAAAAAAAAAAAA AMC7LmIzTncDALzbWJgCAAAAAAAAAAAAAAAAAIB3AvK7AAAAAAAAAAAAAAAAAADvBuR3AQAAAAAA AAAAAAAAAADeDW88vyvj18UsAwAAAAAAAAAAAECFnjqHLDN0erPNvUJ8mfSDO91de4Ysk9hVWO7E l7zppp1YREROPPd/S4QWFdfkCf59zdZVXIfL/88m2x5fAh/WMcXzr3q/O7Ed/rPJsSQiJ4EBETmx rWvbcJyQBKwhTGhoaLU/PHz48PDw8CoqHDt2rF27dphlAAAAAAAAAAAAAAAAAHj/REdH+/v7656H YZjo6OiQkJAqQkVGRvaateC5LXLe9JBCCrtgvwIAAAAAAAAAAABAhZLKSimvu5MmQCYxmm7rGCIf WXu7WiJ3Ytlgl9XM5GdbOXGsarIDvH+ceEYvUT8r04ljWtEqMnXi1f93U7DGyeh++aaM35JKQ07I U15jz2Viu+mWflhCtUTI9T7PWTlWxU6Ciq/uTUr3cSoJrl0HpkWOk4D3thstfeT0bOGjs05c8bHG kz6QhcR5C23IuEE4YgEAAAAAAAAAAADgWWvKjhCRTPJv5kzG8amlXaWTMr4HdlkNTX6mTOxQkx1Q /iMTuL5chyX1KigvyZFJTZ5Y/yTjt3yqjkxshz3+HpNJ/atcOUcr+w5cQyQzEteyAzNH9jK/e3g9 jZY+kgmtKpgcaf0PZxWxcCABAAAAAAAAAAAAAAAAALwTkN8FAAAAAAAAAAAAAAAAAHg3IL8LAAAA AAAAAAAAAAAAAPBuQH73sb2f74yauLeKCkq5cpnPwjnWs34NXIrpAgAAAAAAAAAAAKhB0UsOL6w/ ZaZo+J0DcU+Wbx2wcoHzhBnCT5TysndiIFc2nlrV9lvsUAAAeHHI774onpg3OmZ8x4VdMRUAAAAA AAAAAAAANSvwi7bjb881djJ7qrz3hhEjznz9dvpwbsXBGZIB5f/m1/3sPZhYRWHJmi4/YIEBANRm HEzBYwyDOQAAAAAAAAAAAACAF+cY4DYocsrjjffiHHPSmdtatRZ7FgCgNquB/O6V9ZfPLj2dez+H a8AL/KJliwkyInoUn37gy90ZNzJEFiLZ5BCPj7yI6Ce3H3yH+MWsvthshH/yhYdpV1K6/9bb0EoS OWq7aV2ze0fvhn4bdun384qissFRw8UW4ruHbh//7khOQg6by3INq991WQ82j5188eGe0TsbdHFP OHq3OLvYMdC56/IeLA6LiFIuJ+8ZvbMwtcAx0Jkv4XP41ZmNkpziAxP23D9+j83jePb1Cp4Wyuay KxvRg7NJB77c7dqufuLJhJLcYt8hfoFftMQqBAAAAAAAAAAAAKjQ3YPxx7/bk5OQyeayXcMad10+ kM176RO5WrX2xA/7rm44qypVOrd067ion8jcUP/WlfVnzy49nJuQyTXgB45t22JC+5eKzLBYHAH3 yZKtg5cZO5rfPXTVrJ6Nmat13NazvoODW4zrrFFpdn++KuHveFWJUmJnEjanf93WjZ+KdnZ51OXV xwfvnWpobawqVR6atun2/hidVufetVnb7/o+1dCTjsz8Kzcps8/az/WbcVujT8zfPebyfCJKPHXz 0LTNeUmZxk4W7ecNcPR309d5eOGfo99sfRT3QKfVusjc+24apygo2T50RdrVREVhyWLPL4mo6dDW gWM6EtGj+IcHJq3LuJkiMpfIJnX16B2oDxI1eb3EzjTn3qM7UbEMm9V16VDXUE8sWgCAN+1t53ev b792+OsDPf78yDHAuSSnWKfVEVFZoWJtp1Vhczt59GmSfSdzbec/RBbiOq1dNWVqczfzHn9+9Eeb Xz67NC7l0sPLqy8GT22TfOFB3y0DTZxNjsw4OO7m5MiR22/vu+E7xM/Y0aTDwq62PnbFWcW/y5Zf 2xzrPagpEWVcT2/UvfEnJz5Tlap+CVgSv+2aZ18vdZl6y0frg75s5TciIDU25c+2vzYd2rwaI9o+ eIuJs8n4O1NVpaq/+q0/MedoyMx2lY2IiNKvpTUfGdhmVjt5pnyF32KbJrbOrepgIQIAAAAAAAAA AAA8y9jJrMOivrY+TsVZRb+3+uHa5vPeg4JeNkj04kP3jlwfceZrgVT497e7t/T9ZejRSUR0fful w19t77F6qGOAa0mOXH+++tUp5YoRx7+d6zzSMcBtUOTkP8K+azGuM5vLbtDRJ2xOf6Gx6MyifbtH r/ry5hJ9fYbFENHZZVFXNp4aGjVNZC4hooNTN8izCsfELNDpaNNHC0/M29VmZu/KWvQa0HJF4FeK whKBxICIrm6O9h7QkojyH2Zt6ruo35bxzi0a3Dl4ZWPvn76I/VFkLsl/mLWu69y2s/v22zxOp9UW puYSkUBqMGD7hEt/HIvfcX7IgX/vcV1WVLo2fG7YnP4evQKy76atDZ8rMpfWCW6kf/fk/Mgev33a ZckQtUKF5QoA8Ha87efvXl59MWBMy7pt6nENuFJ7IyNHYyK6E3VbbGno2deLYTHmDSy9B/leWnVB X9/S3drE2YTD51i6W0lspMWZRUQkthCLzMXGzqaW7lYcPkdiI5FnyInIvL6FfTMHFptlaGXoLKuT ez+nvF3/z1sQEVfItW/mmHnrERGlxqQoi5V+IwIYFmPna+8iq1uN4RSlF947ejfkmzAOnyM0Erac FHLp9/NVj4jFZnn289aPon7Hhjcj47EKAQAAAAAAAAAAACpkXt/avpkLi80ytJI6y+rnJmRVI0js 2jMtJrQXmRuyeZzgaV1SLt7PvJFKRJf/PB3wRWjdNu5cA57U3sTI0fRlIydfuDu/7mf6f3vH/qkv tHS35wi4hlZGtt4uhtbG8swCfXmDzr4GJmKGYTx6BxSk5GiUan05V8g/t+Lgtb+iB+//Wp/c1Wq0 sRtOBU/uxhMJ+GKBb0Tw9V0XquiGmau1dWPHGzsvEFHRo/zE0zc9Pwoiomtbop1bNnRu0YCI3MK8 ROaShOPx+nIHf7dmw9oIpAZCY7FlI4cqgt85eEVsaeTZJ5BhMeb1bb0Htrr057Hydx386rm19yYi joBbxRXGAADwGr3t63cLkvNN6jz9N7IwtUBiIynfNLSR/nP4jv41m8dmWMzjOyczpNXoiEh//w2G xXAEHCJiGEan1RJRyqWH0UtOyx8VMiwm5152k/4++iB8iYAn4ulfM2xGq9ISkTyjSGQh0v8wiojE VobVGU5qAVfIFRoJ9ZsSG0lJbomqRFXFkFTk9AAAIABJREFUiHginv7u0ERkYGqQcy8bqxAAAAAA AAAAAACgQimXEqMXH5Y/ymdYrJx7GU36+1cjSGFqnqGNkf41R8AVmojzk3Mt3G0LknNM6li8Svds vFz6bhz7OLLwcXaz/Aw2l89lGEZ/WbBGpTm9cO/9E9d1Op3+Abfllwtn3HiYcvmeg189oZFIX1Kc WaBRqtd2m8cwDBFpNc9/IK7XgJZXt5zxiQiO23a2jqyRoZUREeWn5CT8HT+/7mf6OqpSpTyrUF9u WsfyhWcvV2JtXL5paG3yz5G48k2pnQlWKQDAW/a287sSG0n+g7ynCqX2RoWpBf/+tUjJl9obv2xk jVKzttOqTovC9VfHbh+8ufytCp9qL7YQF2cW67Q6fYq3NLeUL+K/bKNG9kaqUlVJbomBiQERFaTk G5gY6C9NrmxEZUVlqhIV14BLRAWpBWJLQ6xCAAAAAAAAAAAAgGdplOq1HRd2WtzPs58/EW2PWFW9 OFJ708LUPPJ1JiJVqao0V25kb0JEEhvj/AevdAUOm8cRW0pfpObZnw/c2nc5Yu9UoZEoJ+HREq8J 5W8ZmBp+cnTmuvB5h6ZtCpvTn4hEFlI2jzPkwDRzN5sX7EmjHs2jpmzIT86O33auxbhOjwdua+rW 3qv3ms+fqiyxNk6NvV9xIObpE+pSO9PCtNzyzcLUHKm9KRYnAEANetv3Z/Ya4Bu95FTS6ftqhbro UVHG9XQicmvfoCS35Mr6y1q1NuPGo9i1l3wGN33ZyOoytVKu1N/wOTUm5d6Ru1XXt/W15xpwz/8S rdVo06+mJhy7W43hiC0N3To0ODrjoKpEVZxdfGr+3z6Dm1U9Ip1Od/qn4xqV5lFc2u19NxuGN8Yq BAAAAAAAAAAAAHiWukytlJcZOZoRUWpM0r0jN6oXx3doy9MLoooeFagVqr+/ibTxdjJvaENEXgMD ohcfSTp9V61QFT0qyIhPIaIr66JPzT+gVWu3R6xKv/rwdY2lJFcuMjXkGwpVpcqzPx948i2+oZAn EvTdNO7m7kux604QEYvN8vlYdnj65oKUHHWZKi8pM+1qYtXxBRKDBp18zy2LynuQ5dbBW1/YpG9g wt/Xb+29rCpVKgpKEk/dVJUqicijV0DiqZux60+WyRWKwpLkS/fK40hsjHMSHikKSohIq9YQkVt7 r5Jc+ZWNp7RqTcaN5Nj1J30GBWNxAgDUoLd9/a5nf29liXLvF7vyEnMFUkHQlzLLRtY8MW/QvmH7 x++OmrhXbGXY5psw11C3l43MN+S3m9txS78NOq3OKcg5cGwrRUFpVSPnc/puGbjn813HZx+193Pw HvScjHL0klNX1l1WFCpKcoqX+SwkopHnvmDz2N1X9YmauHdh/R/YfI5H7ybB00KJqIoRSWylbB5n UcN5Oq0u+Ks2zi1dsAoBAAAAAAAAAAAAnsU3FLSb12tL3190Wp1TUL3AcW0V+SVEpCpVrQyaTUQF KXn7xm48Mn2Hz+AW/qPbJJ25u++Ljfq7H69s8T3DYrosG+jgX7f5ZyGqEuVvLeeoSpROLep9tGWk /r7Hnv39lcXKvWM25CVmCaQGQRPCLBvbPYpPyUvKUitUiafuNOrha93E4bWMxX9ku62Dl81zHik0 FofO6n1rX8xTFUTmkv5bv1zd8XuTOlZOgfXD5vQ/PnfnH+2+k2cWSO1MW03satPEueomvAa03NBz ge/g1hz+4ztFGzmYD9gx8fD0zTtH/MrisG196vRZP4aITOta9d864dh32w5MWs9is1zbeto3rav/ iGuop0sr90WNx3FFfNmkcN/BrXkiwaDIyfsnrouavEFsKW0zs7drGw8sTgCAGsSEhoZW+8PDhw8P Dw+vosKxY8fm+y+XcYMw0XoPziZt7rNuSvIMTAUAAAAAAAAAAAAAEa2RH6G87hGiDkQ03dYxRD5S xvGppV0tPBkhDMMuq5nJT82MMGpWkx1QHouQvMSdR9ckR0eYVPC46DWPciLMA/7dLFsYYWn3nxql Ia+989Mt/bCEaomQ631k0qqeI75GeDRCHF7JoqIIXufadWDyHkRILN52owW3I4RWTxcm7oww853u 0KVG5iE6Otrf31/3PAzDREdHh4RUdYxHRkb2mrXguS1ycCw96eisQ3Fbrjxb3mZWO4+PvF5PGzod 5hkAAAAAAAAAAAAAXsqdqNj9E9Y9W+7W3qvjj4MwPwAAHw7kd/+jzax2bWa1wzwAAAAAAAAAAAAA QK3i1t7brb035gEAAFiYgrfJMcBpSspMzAMAAAAAAAAAAAAAAAAAVAPyuwAAAAAAAAAAAAAAAAAA 7wbkdwEAAAAAAAAAAAAAAAAA3g1v/Pm7Mm4QZhkAAAAAAAAAAAAAKuTEciSOdfmmjONTe7vKNcf+ qrHJFwpqeqFavlx9A7OKy/n/KXcSGGDnflBkUv/nrByNZeWL0KbWHZjaGljATuwKvg2cRHYf1EJi QkNDq/3h4cOHh4eHV1Hh2LFj7dq1w+EKAAAAAAAAAAAAAAAAAO+f6Ohof39/3fMwDBMdHR0SElJF qMjIyF6zFjy3xTd+/W7IrS7YrwAAAAAAAAAAAABQoSRxkZNxfSJKKvF3YtkkZf3qxBZjWuDpdaJM ceLV5PV5SQVDnHi2L1Fflekk4FVQbhDtZJT376am2In977iStO7E2unEuf0aey7jyqYLp2MJ1RIh t1ZjEt4QmcR5uq3sAxks561MKG7RDAAAAAAAAAAAAAAVWKON0t+TeQ2RjG+5hkhm2AzTAk+vk5yU ml0YawpIZvQSvzxYk5UpkxpXUK4iGc/9383SizKe67+bCiIiGVeGPf4ek0mcMQnwiliYAgAAAAAA AAAAAAAAAACAdwLyuwAAAAAAAAAAAAAAAAAA7wbkdwEAAAAAAAAAAAAAAAAA3g3I79KfPVfePBBf I03vnbIzaube8k1FkWJek+8KHxVgpwAAAAAAAAAAAABUJjkmcU79CbU8+Lp+y879fvwNdfLk4oNb Pvn92XJlcdmy4Nlz6k/4NWwe1gnA+2fryG8WePecYResLC594sAvXdZ68JyGnX/tMOLFQ/3Zc+zN A6desLKiqHhek26Fj7KxC2oJ5HdJNq6No59LbegJX8zv9H24oYXkqfJf2i998SAZt9KXtFiwf1ok 9iwAAAAAAAAAAAC8BxSFpWt6L/0QRnrnSPzxn/a/SgSeiD/6+LSO3/fGsgF4L/X+ZeaI/b88c+AL R/+9uuPsMS8VSjZukKOfxwtW5osNOn0/1tDC5KnyX9oPf/uTUCON1jYcTIFLYJ0aa5th/rvFuHds /FSV0oLSjJvpLxjv2o7YIz8ctGpojd0KAAAAAAAAAAAA74ek8/9oNdoPYaSJ0Xf5hoIXrMz89/Qy AMBLcQn0evHKDMO4d2z1VGFpQVHGzYS33O0aabQWetv53VsHb1zbEescUCf6t1NqharpwObB40OJ KD85b9+0yJQryXwxP2hkq6YDm+vrF6TlH5p9IOncfUVhqYmj6eCtw0Vm4nX9/3ANdvMfFkREhekF PzadM+3OdzwRr7LgaXGp+6fvzk7IIiKrhtYD1g7mCrlEdHnjhdPLTxSk5Xdb2Nuz++N1/Fvn5U16 ejcb5K/f3D1xB4vD6vxDNyK6sPrsuT/OKAoV9t4OneaES22MqhhpZSNKuZq8Z/LOwvQCx2bOfEM+ h/d4F0RO3H7vxN3C9IIJl76SWEv1hfunRd47+Y9Wo10cOJ+IrBvZ9Fk5oIpGpXbGw3aNvLThvLK4 DIsbAAAAAAAAAAAA3mmKwtLtn61Oi3uoKFQsDphJRE0Htggc2YaI2Fz2iUVRF9ec1Ki09ds17rqg P4vD0qg0uyduSjh5S1WqlNgYh83sXrdVg7+Gr2rQ3tOjW9ODs3bERV6edPUHjUo9133ylBvz2Vx2 he1WGJyIzqw4GrMxWp5dKDAUNh8WHPhpiL5+3M5LJxZFybMKOXxO466+7b/tqS/PT875rdOCrLuP JDbGnb7v7RxYr7KRJsckHp4dmX49mc1hX9txkYi6LRro6Fe3ikbVZapNg1cmnr0rsTbuOLuXS5Bb FTOpKlUe+m7X7YNxOp3OvaNX2+nhHD6XiNLiHu7/emt2QiYRWbnbDlg3kivkYeEBvE1Xth48+9u2 3KRUroEgcETvFp/1I6Izv2yJ2bRfnp0rMBQ3H9ojcMTrvCj/8sZ9p5dvKkjL7LZwsmf30MffQrE3 90z+qUFYUMLJy8U5+Y5+Hl3nT2Bx2EQUOXHBvROXCtOzJlzaKrE219ffP23JvZOXtRrt4sD+RGTd yLXPylmVtfjgYvyBGT+7BjdLPHu1JK/At3/n8hFVNtIVbYeFTv0keuXWzDuJPAPhJ7uXi8yMXqrR 91sNXL9779RdszrmY09PYlhMWXEZEWk12g2DVnv29O7356D85LxV3VYYO5jUbVVPq9ZuGLTG1tPu 06jPhVKDjDuPRGbilw1ORAdm7mnUxcN/aJBKoUqPT9Und4nIt7+fb3+/Xzv8584eXn18r269rM/v qsvUN/bFfbx5GBHF77527o8zEVs+kVhLj847uG3UpmGRoyrrRmUjUivVW4atD/qsld+ggNS4lD97 /Np0wOO8b/iCnspi5Wy36U/G6Tg7PPte1lLZj2OjJ73I3Dr5OetbxxciAAAAAAAAAAAAvOsEEuGA 9aMurTsdvztmyI6xT75VnCMvzi4af2m2oqD0t47z43df9uzRjM1lN2jnETazu9DI4MzyI7u/3Pjl 5dk2ng6PbqR6dGuaHJMoNjMsSM0tySs2d7WqLLlbWXAism3i2LBDExMnswcX7q3uuaRBmKeJk5m6 TLVz7LpPD06xamhbkisvfFRQHidu16VBf42xbGBzZsWR3RM3jj37TWUt2vs4D901buunf5q7WgZ/ 2fHJtypslIjuHrsR8deYvn8Oj991ecuw38df/E4gEVYW/+CsHfLsojGnZ+h0uk2DV55YGNVmahci OjB9W6OuPv7DglUKVXp8MpK7AG/Z9T3HD3+/ssfSrx2bNS7JLdBptf8/8Os37NDSxNHmwYW41b3H NQgLMnG0eV2N+vbv5Nu/07MP6824db9RJ9kne5arFGW/hA2P3/O3PvsbvmCisrh0tluHJyt3nP1F 9r2HS2WDxkZvfJFG06//03xwtzaTh8mz8la0HWbT2NU5wKvqkR787pe+v31rVtehtKBIKDWsRqPv sRp4/i7DMK0ntmVxWAyLERgKiCg55mFRRmHQyFYsNsvEybR+W/cb++KJKDn2YUFKXqc54RIrKVfI tWtiX43gRGTsYHIr6saDi0lcAdehqVPVERp39Xx0Mz0nMZuIbh++aWgl0bcbs/miX0SAkZ0xi83y H9bi4eUHT/6dfkplI0q9mqIsUfoNCmBYjF0Te5egum9kinX4SgQAAAAAAAAAAID3XMjkzhweR2xu 6OTvmnnn8UPuGrT3NDAWMQzj0c23IC1Po1Lbejpm3EpVl6kURQqXFvVTYpMe3Uix8XSoRnDnAFd9 btXRr67U1jj3QRYRsbkcibXxpbWnchIzDUzEVg1ty4N4dG9q1dCWYZhGnX1yk7LVSnU1hllho0Rk 5+XkHFiPYRiP7k0FUoOEU7cri6DVaGO3nA8e34En4vPFAt/+gdf3xurfMnY0uxV17cHFBK6A69DU BYsK4C27vGlfwPBedVv5coV8qa2Fkb3V4wPfv4k+zeno5yG1tcxNSns7/fH/pBcRcQV8e++GmXeS XmNkFpvl2aMtEYnNjeu3Dbh54NRzR+rVK8ysrgMR6ZO78KQauH7X0FLCYv8nr1yQll9WXLbAe7Z+ U6PUOPnX0ZdLrKXldzCukE6rqzo4EXVd0OPi2nORE7ax2Kw2k8MahLlXEVBgKKgf5n5tR2zrCW2v 7Yj16u37uJOp+ccXHj29/Lh+k2fAK8osklhJKwxS2YjkWUUiMxHDevxcBLEFViQAAAAAAAAAAADA S+OLBeWXq7I4bK1aQ0Qaleb0ssP3T9/W6UhfotPqbDwcMu+kp157aFnfxs7LKeVKklatta0yv1th cCKKj7x85a/zKoWKYTHyzEL92WmGxQzfO+HML0d/7/yTtbtd+296WNR/fPGZ1MZY/0J/rbBWpSHe S5+Tr7BRIhKZ/nt62dBCIs8qrCxCcXaRRqVe23eZ/om9Ws2/J9W7/tj/4ppTkeM3sNisNlO7NAjz xNICeJsKUjNNnGwrOvCPXdl2UKVQMgwjz8zV6d7GfVv5hgY8g8dXTjJsllatfo3BeQZC/d2eicjA WJqTmPLckUptLLBCKsOpDZ2QWksNjA0mXZn+VLnESlKUUahRa9ic/9wog81la1SP/6AWZhQ+f5A8 TsAnLQI+afHP8Ttbhq8fdWisqYtZFfW9evnsnbrLf1hQwul/ui7o8f9lJPX/pEWzj5u/yojEZuLi 7GKdVqdP8ZbmlfIN+M+JxWCVAgAAAAAAAAAAwAeMqeAkaflVNE86u/LYrYPXIraOEUoNchIzlwR+ Q0QCiZAj4D64cM+hmYudt9Ol9adZbJZ334CqGqwoeHJM4u4JG0dETTZ3tSKiBV5flb8ltpCEzewe +lWXMyuOruu/fELM9/+Pw3rFgVbRaGl+cfnr4hy5oYW0srAiM0M2lzNkx1h9kCdxeJyA4a0Dhrf+ 5+8bWz5ZNerIVFMXJFQA3h6JlVl+8qOnD/zYm7sn/Thi/6/mro5EtMCn51v6rn3ZjBRTaX2NSs2w WE9ekFkmL1GVlnGFfCIqSM8SW5hUc6QM0mZENXJ/5mfZ+ziKzAz//vFwaUGpskT56EZafnLe/8vF UTP2yLPkKoUqNS5FWaIkInNXiztHbymLlYoixZkVJ54b/+6x28piJRGZOps9+WOrytRp4apVa08s OuYSVFds/vg3UL4Dmp9deSotLlWj0sizihLPJlRjRLZe9lwh9/zqaK1Gmx6fmnDq7nM7L7YwZFhM ytVkItKq8WBdAAAAAAAAAAAA+LBIrIxy7mcqCkvpeedIS/KKRSZivligUqjO/nqsvNymsf2NfVcc fF2M7EyKs4sK0/PN61m9bDdK84o5Ap7YQqLT6WK3nJNnPr70qDi76MHFBI1Kw+ZyzFwsyq9Nqs5I rY3S4pK1Gq1Op9Nfp1tZo0SUHJuYcSuNiO6fuVOSK3dp4VZZWBab5dPP//DsXQWpuWqlOu9Bdlrc Q/1bd49eVxaXEZGpiwWLw3ruyXMAeL28eodFr9yadP6aukxZlJmTces+EZXmFXIEfLGFiU6ni90S Jc/MrZ2dF1uYMCwm5eptInry20On1f7UrM+6fhOerKzT6U4v36RRqx/duHf78JmGHVpWb6SVNfqh qRXX77I4rIHrBx/8dv/SlgtUpSpzV4vOP3Q3sjdmc9kD1w85+O2+ZSELVSVK83oWH28YyjPgBY1s teOLvxb4zOYbCtpMbpdw+p+q48dsvrjji790Wp2BsUHo1Pbm9Sz15SvaLtaqtbkPco78EHV62fFG XTxlY0OIiGExTXp6n1lxsufyvuVBGnX2UCtUO8dtzU3KFkqFjbp4OgfUedkRcXicvqsG7pmy6/hP R+19HLw/aqqvn349bceYLTqdjojWfPQ7i81qN6Ojq8yNiASGgrCZnTYNXkNErq3rd/upF77vAAAA AAAAAAAA4MPh2rqhSwu3RX4zuAY82bj2vgOCKqvpPyx466d/zGs0WWhsEDq1662D1/Tltk0c7xyJ t2poR0QmTuYlOfJnH/P3XHVlDV2DGy5uPpMj4Hr1ae7e2Utfri5THfpmZ3ZCBsMwJk5mfVYOrfZI /Ye33vbpn3PdJwmkBv3+HG7lbldZo0TkOyDoxKID2QkZOh19tOoT/Q2lo389duWvc4rC0pLc4mXB s4lo5OEpbC4nbFaP4z8d+KPbInlmodTWpNUX7Ww8HIgoZtPZHWPW6bRaAxNR6Ffh5vWssd4A3ibP nm2VJYq9UxflPUgTSMVBo/paNnCp26qpq6zZ4oD+HAHPq3eYe6dW+spJF+L2TV2k1WiIaGWnkQzD dJn3pUPTRtErt175K0pRVFySW7Cs9WAiGnnodza30gzgirbDtGpN7oO0Iz/8fnrZpkZdgmVjP66s cvr1f3aMmfP/BNaXLDa73YyRrrJmRCQwFIXN/GzT4K+IyLV1824/TXr8GYbhiYQ8scGTcSTW5mwe d5F/P51WGzwuwtm/CRFVNtIqVNroB4YJDQ2t9oeHDx8eHh5eRYVjx47Nd1gukwThEAUAAAAAAAAA AACAZ63RRkWY9yeiNYW8CKHXmpRvIoxaY1rg6XWSszPCtHtNdiClUYSF20vUz7ofYWlZQblqX4SF zb+bpRcjhMH/bip4xNoZIbR6vZ2fLpyOJVRLhNxaLZM4f2ijfnAxfvOw6VPiIt90Q9NtZTUywOjo aH9/f93zMAwTHR0dEhJSRajIyMhesxY8t0UOjqVqK84pXtnx52fLRSaiEQc+f58aBQAAAAAAAAAA AHifFOfIV7af92y5yFQ8Imry+9QoAHyQX3H5Kzt+WsG3jYnRiAO/1kyfdDrsl9cI+d3qE5mKxp+f 8iE0CgAAAAAAAAAAAPA+EZmKx1/87kNoFAA+yK84o/Hnt2Ae3mMsTAEAAAAAAAAAAAAAAAAAvAmO zRpPid+NeXiNkN8FAAAAAAAAAAAAAAAAAHg3IL8LAAAAAAAAAAAAAAAAAPBueOPP35VJgjDLAAAA AAAAAAAAAFAhJ77j4xdcLRE5Cd0xJ1DBOuHZ1XAHhAUvubBFlZQL/7PJtvjvppZYAuzu95hM4oxJ gFf3xvO7020nYZYBAAAAAAAAAAAAoELTy18IiIimGzbGnEAF68R6VE134GUXtmUl5S4Vrv8nNkOx u9/nlWwrwyTAq3vj+d2QWwmYZQAAAAAAAAAAAACoUJJBupORhoiSHq13YoswIQDwnpGJvaZbRehf hyStwoS8qXkWuUw3b/2BDJbzNiZUIsaqAgAAAAAAAAAAAIBnrVGTjGtORGuIZGIvTAgAvN9kIhdM ArwiFqYAAAAAAAAAAAAAAAAAAOCdgPwuAAAAAAAAAAAAAAAAAMC7AfldAAAAAAAAAAAAAAAAAIB3 A/K7FVMUFc5r0qjwUXqNtL60VeCtg1HlmwmnTv7SPhQ7BQAAAAAAAAAAAOBJeyetjZqxqbb1Sllc tkw2bY7bZ7+2++b9HikAvI0vuomLoqYt17/e+sl3Cxr3nmERoiwufcGP/z1vzYGvl794c3+Gj7+5 7xSmvZZ72/ndc6t+m2FnVf5vvlfj2jkvfLFhp+/nGlpY1obO2Hh4hk75+qlCRVHhmo96YQUDAAAA AAAAAAAA1Co8EX/0idkd5wzAVADA69X79+kjDi1/qY80Dg/26d/+xevLvhzo6O/xVOHBmb8kRl/D /NcenLffpKOf36BNWx9vMEztnBeGYdw7dqrB5p/cEhoZ1W0le6pK0rlzWrUaKxgAAAAAAAAAAAA+ XLX1DDNGCgCv8fh/lQ+buzm+VH2XFl5Pleh0usToa25tA7Anao8ayO8yDIvD5z9VGDVzusTGJuf+ /TtHDjNsVtf5P7kGtyaixLPRh2Z/k/fggbGjY/tZ3zk289PXf3j50tG5cx7duKHTaV2CWvRdtZqI vnVxGL73gJV7IyK6tnP7uVW/fXrgcBXB0+Li9k//KjvhHhFZNXQfsHYDVygkosiJ4++dOF6Ynj7h 0hWJtTURKQoL5nt5jIw6Yl6vnr4DS1oEhEyc3KhLV1Vp6aHZ39w+dEin1bp37NR22oxnR/ek/OTk fdOmplyJ5YsNg0aOajpwkL48dvOmE0sWatUaz+492Fxeef1lIbKijEdCqdHY6PP6EkVhwfbRo9Li 4xSFhYsDmxNR04EfB346CqsZAAAAAAAAAAAA3hvfOAzr9MPHV7eekWcXOfq5dpwzgCvgEVHKlft7 Jq4tTM919HPjGwo4fA4Rnf55f3JsQr/VY/SfXew/uf23/UydLSLHrzZ1sbx38nroVz0vrT2uKCod vH2y2FxSWfD85Ox9X21IiU3gGwqDRrVv+nGwPmDUjE0SG5OchIw7R64yLKbrjxGurT1edkQlufID 0zfeP32TzeV49vQPntCNzWUT0ZkVUTEbT8qzCgWGwuafhAZ+GqavX+FIAeBDkBJ7e8+ERYVpWY7N G/MNDTh8bjWCpMf9s+3T7wvTshp1Cw5fNEFfmBxzc8+Xixp0CEw4HlOck+/YvHHXhV+yOGwiurxu 3+mftxSkZnZbOsmzZxt9/Zj1+y+u3ZtxI2H7yO+5Aj4RfX5mNZuHr6MaVouev3tyyWK3NqETY6+N PXPeOSCQiPKTkzcNjWg3fdbUG3eCx0/cGPFxcXa2vnxdvz6NunQdf+HS+POXW385sRrBiejAzGmN unSdev32hMtXQyZO1id3iSh8wcIxJ848+XGBRNogrP3VHdser/7YmJLcnPph7Yno4DczizIyx5w8 M+ZUdMad2ycW/VRFN7QazYZBAxz9mk+6Ej9o05bjC3+8d/IEEWXcvrVv2tTev/z25cUYibVNxq2b 5R8ZfexE98U/P9WZAes2Bo+fYOflPTb6/Njo80juAgAAAAAAAAAAwHtGp9U9uHh3SOTUz09+X5CW e/rnA0SkVqq3DFnm3bfF5PilLT7vcH33xaqDJMfcazutV7NBrY/M2T545xTrRo63D8VWFlyr0W4Y uNjRr96kuCWDNk84/mPkvZPXy0OdXLTXLdRz4tVFY8/Ncw5sUI0Rbf9spcBQOP7yT6P+/jYl9v6J n3bry22bOA/cOP7ruyt6rhhxZPa23KTMaowUAN4baqVqy+CZ3v3CJt/c0WJM3+uRJ6oXx9rDdczZ NU0jOj9VnnHzPpvD+STq589OrUqOuRUfeVxf7vtxp3GXNli513myss/AjiOP/mpgIu35y9djL64f e3E9kru1QQ3kd5MvX57v1Vj/b+9bRaDIAAAgAElEQVSUSeXlDr6+bqFtiYjD5+svgb22c7tzQKCz fwARubUJFZmZJZw+qS93aOrX7OMIgUQqNDKybNDwuY0+G5yIjB0cb0UdeHDxAlcgcGjarOoIXr37 xO3aodNqieja9m2Nu3bj8HhajSb2r83B48bzRCK+WOzbb8D1fXur/J+Jy0UZj4JGfsZis02cnOu3 Dbuxby8R3T50sE7LVnZe3gyL1WxQBF8sxtIEAAAAAAAAAACAD5xXnyCGYVgclnefFjf3Xyai1KuJ ypIyv8EhDIux83JxafGck8Nic6nITGLsYG5Z347D40isjeVZhZUFT45JKHqUH/RZexabZeJsUb+d 9429l8pDOTSt69a2CRFx+NxqXEtX9Cj/3onrIVN7cHgcoVTU8ovOl9Y9zqk4B9Q3cbIgIke/elJb 09wHmdUYKQC8N1Kv3FGWKPyGhDMsxs67vktL79fehP+nPYmIK+Db+zTIvJ2EOX/n1ECO3cbTs++q Px83LxCUl0ttbJ+qmZ+amnDq5HyvxvpNlUIh11+/m5pq6uxUdSv6RGwVwYmo64KfLq5dHTlhPIvN ajP5qwZhVT1fuk6LVjqdLvHcWcdmftf37h64YTMRFWdnaVSqtf0/YhiGiLQaTdW9KkhLLSsuXuD9 +MYdGqXSyT+QiORZmYYWlvpChsUSmZphaQIAAAAAAAAAAMAHTig1ePzCRCTPKiAieWaByEzCsB4/ jVJsIa3wgzqtTv9CfwNkhsVwBFwiYhjSabSVBS9IySkrLl3gOVZfrlFqnALql8eU2pi8ylgK0nO5 Ap5QKtJvSqyNS/LkqlIlV8iL33Xhyl9nVAolw2LkmQX6zr/gSAHg/SPPzBWZGT1x+Bu/3vh8QwOe weP0HMNmadVqzPk7pwbyu2wuV2xu8SI1pTY2bm1Ce//y21PlEiur1GtXn63P4nI1/1+FRRkZzx88 jxfwyYiAT0b8c/zvLcOHjjp01NSlTmWVGRarSY9e13ZuV5WWiszNbT2bEJHIzJzN5Q7Ztsvc1fWF RmRtY2BsPOlK/FPlIjPztLhr5Zul+XnPj8UwWL4AAAAAAAAAAADwHivKyLdydyCiwrQ8fYJTbC4p zi7UaXX6zEdpXjFfxCciFpetVT2+/Ear0erztS8bXGprYmAsnhS35E2MxcjWVKVQluTJDYzFRFSQ mmtgLOYKeckxCbsnrB5xcIa5qw0RLfAap69f2UgB4L0nNjcuzs5/4vAv4ouErzE+U40EE3JStQyr NneuSY9eCadO3jp4QFVaqigsSDwbrVIoiMgjvFti9JnYLZvL5HJFUWFybIy+vnld1+t7duu02twH SbFbNj83/t1jR5XFxURk6uzM4nC06udcfevV56PbB6Nu7Nvr3fujx9PHZvv07X/4+28LUlPVSmXe wwdpcXFVRLD38RWZmf/94/zSggJlScmjG9fzk5OJqEG7sIRTJx9evqTVaGI2bywteP7/fEisrHMS ExWFBUSE31YAAAAAAAAAAADA++fc70cUhaUlufILq4+5d/QlIlsvF64B7/wfR7UabXr8g4T/Px/X 3NUmOSYh72GWRqU5szxKrVBVI7i9T12RufTv+btKC4qVJWWPbjzMT85+XWMRW0jd2jY5OmeHqlRZ nFN0aslen/4tiag0T84RcMUWUp1OF7v5tDzj8cnhykYKAO89W+/6XCH//KpdWo02Pe6fhBOXa7xL Emuz1Cu3iei5qTR4O2r1M5CN7O0HrN90+Ptvd44dw2KzbZt491n5OxGZutTpv3bDsflzD8ycxmKx XVu3tvf2IaJOc+bunvjlbLc6Jk7OAcNHxGzeWHX8mM0bd3wxWqfVGRgbh0792rxePSJKvx6/Y8xo nU5LRGs+6slic9rNmOkqa01Eps4u5vXcbuzb0/braeVBwmZ+c3zhj3/06CrPzJTa2rUaM9bGw6Oy FlkczsD1Gw9+O2tpywBVaam5a73OP8w3sre3bNCw43dztn32qUapdO/U2TkgUF//8sb15/9YVVYs l2dmLmvdioiG7Ig0MDYmItfg1i5BLRb5N+MaGMjGjvftPxCrGQAAAAAAAAAAAN4n9dp4/tbxu+Ls wgbtvYNGdyAiDo/T94/P90xae/zHSHvfut79WuprurZu7Nkz4Nd235COvPoE1pU1qkZwFoc1cOO4 g7O2LA2cqipVmtez6TzvYyP7l36aXvSvB69sOaMoLCnJlS+TTSOikUdmsbmc7kuHRU3fvLDpBDaP 49GtefDEbkRUV9bYNbjxYr/JHCHXq0+Qe+em+iCVjRQA3nscHrfvmm/2TFh8fMFae9+G3v076MuT zsXtm7RE/6jQle1GMQyry0/jHJpV+nW3e/xPyZduyjNzdTpdyuVbxk7W/dfPrqLdFcHDtWpNblLa kdmrTi/Z3ChcJvvyce6p3cwReyYuOv3zZrG58ednVmMf1TgmNDS02h8ePnx4eHh4FRWOHTs236Gu TCLGRAMAAAAAAAAAAADAs9ao/4kwNyGiNckLI6RB5eWz7IaOOvathZvtm2j0jQYHAHjKdKsI/YuQ pFUykQsm5E3Ns3nrGmk3Ojra399f9zwMw0RHR4eEhFQRKjIystesBc9tkYOd/drdOXJ4//Svni13 C23b8bs5mB8AAAAAAAAAAACAF6KrvcGPzt0Rt+Pcs+Vtpvbw6O6PXQcAVSvOyV8ZOurZcpGZ0YjD K148zpoeE3IT054tj9j5o4mTDeb5fYX87uvnFtrWLbQt5gEAAAAAAAAAAADgfdVmSo82U3pgHgCg ekSmRuNjN716nIgdP2IyP0DI7wIAAAAAAAAAAABArTMr5Y93NDgAAMAbxcIUAAAAAAAAAAAAAAAA AAC8E5DfBQAAAAAAAAAAAAAAAAB4N7zx/K5MIsYsAwAAAAAAAAAAAECFnPi8xy8M3DAbAPB+k4lc MAnw6t7483en21pilgEAAAAAAAAAAACgQtPp8Tnk6QYNMRsA8J5/45m3xiTAq3vj+d2QhB2YZQAA AAAAAAAAAAAAAPjAJRWscOJJMA9vgkwaON1+wgcyWM7bmFCxHVYVAAAAAAAAAAAAAAAAfMjWFJBM Goh5gFfEwhQAAAAAAAAAAAAAAAAAALwTkN8FAAAAAAAAAAAAAAAAAHg3IL8LAAAAAAAAAAAAAAAA APBu4NT+LioK5UsCeo08sk5ibY4dBgAAAAAAAAAAAAAAAPB2bB214cHFxKLMwmm3ZvNE/FcPuHfq Dg6f235Wl6qraVSaHV9svh/9D8NitZkY5tPPD/ui3DuQ3+UbijrNnWhoaYq9BQAAAAAAAAAAAAAA APDW9F4xoDC94Ee/2W+53Rv749Jvpo0/+xWbz9GqtdgRT3oH7s/MMIx7p9YMC7eSBgAAAAAAAAAA AAAAgPdQaX5JzOYLH8RQGeZFauUl51q6WfFEfDaHzRVwsUKe9Fav3720dmfq1Vt5D1LlWbmBI/ud XbnFxMm239oFRHRmxYaYDbvlWbkCQ3HzT/oEjuyn/0jk+Dn3jp8vTM+ccGWPxNpCX7iu71in5k3u n75ckleg1Wg7fj/eOdAH+xIAAAAAAAAAAAAAAADeLfLsorO/nbqxP85vcCARJcc+WD9w1Vc3vtO/ Gzlpm1AibDet0+kVx7MTMtVKTW5iVmlBafMhQc0HBxGRorB0UdDcvr8N2jd9V0lOsZW7zcfrhxGR qlR16Pt9tw/f0Gl17h0bt/2qE4fPIaK0+JT9MyKzE7KIyKqh9YDVQ7lCLhE9upl2YObujDuPRKZi 2ZgQj27elXVYUVg63+fbkQfGmrta6kuWtJoXMiGsUWfPyhpNuZq8Z+r2wvQCx2bOfLGAw6sqQRm3 K/b86jO5D3LUZerFLeYS0eAtn0ptjbBUyr3t+zOnXrs16tj6tb3H3D129rMTGxf6hOckPDSt42Db pGHDDsEmTrYPzl9d3WNUg/atTJxsiSh84VfK4tLZdYKfinNxzc4RB/80tDS78tf+3V/OGXt+B/Yl AAAAAAAAAAAAAAAAvCsK0vLP/Hoi4fTdpgP9Rx+doM+zVuHq9pgh20Y6NnPOScxe1ubH+m3djWyN iag0v+T8mjNDt48SSoWlBaX6yge/3SPPkY85PlGno03DVp9YfKTN5PZEdGDm7kadPf2HtFApVOnX U/WNlskVa/v/Hja9s0e4V3ZC5tr+v4vMDesEuVbYDYFE2KBdo6s7YkKndCCi5NgHJbnF9du5V9ao WqneMnxt0Mhgv0EBqXEpf/Za0bS/fxXD9Ojm7dHN++TSo+k30z769WOsk2e97ZseW7i5MAxj7Ghj 26QhwzCGlqbyrFwicg7w1id0HZs3kdpa5SalVB3Ho1tbQ0szInIO9MlNSlUrVdiXAAAAAAAAAAAA AAAA8E7QaXXL2y5Mv546fM8Y/yEtnpvcJSIbDzvHZs5EZOpsZmgpyb6XWf5Wi5HBQqmQiPT/1Wq0 sVsvBX8RyhPx+WK+b1+/6/vj9DWNHUxvHbz+4FIiV8B18HXSF945ektsYejZ3ZthMeault59ml7a cK6Knnj18o2LvKLT6ojo2o6Yxl2acHicyhpNvZasLFH6DQpgWIxdE3uXQFfs/Vf0tq/fZXO5RMRi sTh8HhERw2i1WiKK33X4yl/7VaVlDIuRZ+boF0QVxJam+hcsNouItCo18XDrbQAAAAAAAAAAAAAA AHgHMCzmi5OTz6069Uv7xV49ffwiAoVGBs9WezJlZmghKX/NYrM0am35ptTmP7cvLs6Wa1SatQN+ ZxiGiPTJOL2u83teXHc2cuI2FotpM7l9g3aNiKgwvUBiJf23ISvpPyfuVNH5Oi3q6XS6xPMJjk2d r++7NnDdsCoalWcViczEDOvxY3fFFobY+6+IUxs6kRxzffeXP4w4tNrc1YmIFjTp9PxF/2LPXgYA AAAAAAAAAAAAAACohUSmojaT2weNlF1YE/1Lh8XevZvKxoayuWyNWlNepyij0KA87/vCyTGRmZjN ZQ/ZNtK8rsVTb3F4nIBhLQOGtfzn+O0tn64bFTXO1MVcamtUmF5QXqcwLb/q590yLKZJd59rO2NV pSqRmaGtp30VjYrNDIuz5TqtTp/iLc0v4RvwsfdfBas2dKI0r4Aj4IstTHU6XezmvfKMHOwYAAAA AAAAAAAAAAAAeO8JJMJWY9qMPjrB1MWciIwdTLVq7e0jN3Q63f2z9xLP3qtGTBab5fNRs8Pf7ytI zVcr1XkPc9LiHz8a9e7ft5TFZURk6mzGYrO1Gi0RuYU0KMkrvrLtslatzbidHvvXJZ+P/Kpuwqt3 09uHrt/Yd827d9OqG7VtYs8Vcs+vOaPVaNOvpyaculuNESmKFFs/25D7IOfWoeuHvt9HRHum7Phg 10ytuH63rqy5a+vmi5t15wj5Xn06uXdurS9Pj7+7Y/QsnVZLRGt6fs7isNvNHOPaujkOdQAAAAAA AAAAAAAAAHhv8Ax4jbs0ISKhVNh1Xs/90yO3f77JqblLwLCW+hTsywqb0eX4osN/9FwhzyqS2hq1 +jzEprEdEcVsvrhj7BadVmdgbBA6tYO5qyUR8UT8QRuH75+xK2rWbrGFYZvJ7V1lbkSUdOH+vq93 6juwsvNShsV0mdtT/9ReU2czc1fLG/vj2n7VsepGOTxO398G7flqx/GFR+x9HL37NKvGcMqKFEnn 7suzi7ITsh5cTNTfHfqDXS1MaGhotT88fPjw8PDwKiocO3Zsfl25TGyHwxIAAAAAAAAAAAAAAAA+ ZGtSv4owb495eEOm20+okXajo6P9/f11z8MwTHR0dEhISBWhIiMje81a8NwWWdjZAAAAAAAAAAAA AAAAAADvBOR3AQAAAAAAAAAAAAAAAADeDcjvAgAAAAAAAAAAAAAAAAC8G5DfBQAAAAAAAAAAAAAA AAB4NyC/CwAAAAAAAAAAAAAAAADwbnjj+V3Z/9q787CqqsX/4+sMcA6jyCwgoIAIIigpIk7hHCKY U2WaU5raz273SS3re7/Vre81TW2we59rlmYOpamIQ5lCGaKCigOKiSPILKPIJMM5vz92nQj1cBRE sPfr8Y991ll7rbXX2Zun5/m01jZ3YZYBAAAAAAAAAADwF+du0p1JQNMpH3YH/3DowywDAAAAAAAA AADgL47UDM3ioee7dXV1zDIAAAAAAAAAAACAh0qhUPwVLpP37wIAAAAAAAAAAABA20C+CwAAAAAA AAAAAABtA/kuAAAAAAAAAAAAALQN5LsAAAAAAAAAAAAA0DY8VvmuSqVKSUlp4U7j4uJ8fX0tLCwW LVr0wI2kpaUplcra2toHOHfLli2BgYGG1Bw8ePCOHTta529XVlbm7+9va2sbFBTEYwkAAAAAAAAA AADc1SPLd0eNGtVoKvnKK68o/2zt2rW1tbVKpfL555+X6mzatEmpVG7ZsuXBhrFnz55//vOfTbmQ gQMHnj9//rnnnmv9P/Y//vGPAQMGNKWFmzdvDh8+3PD6Cxcu/OWXXwypaW5unpyc/Mknn/BMAgAA AAAAAAAAAPfyaPLd//73v4WFhY1WW7lyZdnvsrKyLCwsBg0aJIRwdHRMSkqS6iQmJrq4uOhOkclk 9zWSgwcPtvWf0PBLDg0NtbOza0pfcXFxhi8y1mq1j8H0AgAAAAAAAAAAAK3HI8h3L1++vGLFivnz 5zdaU6lUqn+3cePGQYMGeXh4CCFkMpmJiUl+fr4QIjEx0d/fX3fKzp07PTw8HBwcZs2aVVlZKYR4 ++23x40bp6uwadMmqX5CQsKTTz75xRdfrFq1ytvb29vbOz4+Xqpz8ODBoKAgOzu7oKCgw4cPP9hl pqWlRUREODo6dunSZfXq1bry5cuX+/j4WFtbd+rUaeXKlXeeGB8f7+LiEhcXJ33897//3bVrV0dH x8jIyIyMDKkwLy8vIiLC3t4+ODj44sWLjQ5mzZo1Xbp0UavVmzZt0hUuXbp05syZkydP7tOnj7e3 96pVq/S0UFJSMnr06Dlz5hw7dkyarhUrVkhfJScnh4aG2tvb+/n5bd68WSr84osvgoKCkpOTp0yZ ItWvrq4WQtTU1MyYMaNjx442NjYBAQEHDhzgIQQAAAAAAAAAAAAM1NL5bl1d3fTp05cvX25paWn4 WbW1tZ999tkrr7wifayqqurbt++xY8eqqqpu3rxZf01qYmJicnLyhQsXzp49u2zZMiHErFmzfvzx x+zsbKnChg0bpk+fLoQIDg4+ePBgWFjY/PnzU1NTU1NT+/fvL4RIS0sbO3bshx9+mJ+f//bbb0dG Rt64ceMBLjMiIqJ///5ZWVnff//9P//5T12Q2bt37z179hQVFW3YsGHx4sVXrlzRnSWTyQ4dOvT8 889v27Zt4MCBQogtW7asWrXqxx9/zMrK8vX1nTRpklRz/vz5FhYWGRkZUVFRW7dubXQ8s2bNunjx Yv0gXPL111/PmTMnMTFxz549r7/+enp6+r1asLKy2r179//+7/8GBQVJ0/Xaa68JIUpLS0eOHPni iy/m5uZu3bp18eLFsbGxQogXX3zx+PHjtra2GzZskOobGxsLIYyMjCIiIk6fPl1QUDBp0qTZs2fz EAIAAAAAAAAAAAAGaul8d9myZV5eXpGRkRqNxvCztm3bZmlpOXjwYOmjRqOR8t1Tp0716tVLq9Xq ar788stmZmbt27efN2/e9u3bhRAuLi5PPfXU2rVrhRBZWVnx8fGTJ0/W09emTZuefPJJaSPoUaNG 2dvbx8TE3O9lJiQk5OTkLFy4UKFQeHp6RkREbNu2TfpKtwq5f//+rq6uV69elcpVKlViYuLUqVOj oqKCg4Olwi+//HLu3Llubm4KheKVV145evRoVlaWRqPZvXv3ggULVCpVhw4dpk6d+sA/xxNPPCGl 2l5eXk5OTqmpqffbwt69ex0cHJ5//nm5XO7r6zt9+vT6i5XvasyYMTY2NjKZ7LnnnsvIyJDW9QIA AAAAAAAAAABtmuwe5PLmzGSVLXlJycnJ69evT0xMvN8TP/roI93iXUlwcPCmTZusrKz69u2rexev EMLe3l466NChg27d7bx582bOnPnmm29u3LgxLCxM/ztoMzIyYmJinJ2dpY+VlZUPsH73+vXrt27d 0r0YuLq6WgqMhRDffvvt+vXrKysr5XJ5bm5u/ZxbSmrrv044IyPjvffekxYiCyHMzMxyc3NVKlVN TY2jo6NUqDt4AB06dNAdKxSKmpqa+20hMzNTN1dCCCcnp3379umpX1NTs3Tp0tjYWK1WK73K976S fgAAAAAAAAAAAKD1yMvLO3LkiO6jbmHqnQfNpUXz3c8//zwzM7NLly5CiOrq6oqKCgcHh8OHD3t6 euo569ChQ2lpabqtiSVeXl7p6ekJCQmLFy+un+8WFRVJB/n5+Q4ODtJxaGioqalpTEzM5s2bly5d Wr8dmUzWoDsXF5dRo0Z98803TblS6f2yWVlZDcoTExNfeumlhIQEHx8fIYSrq6vuq9u3b8fHxy9f vnzcuHExMTEqlUoazN/+9rc5c+bUb0Sj0RgZGeXl5UnprO6SH8Cdl3+/9V1dXTMzM3UfMzMz61/U nfVXrlwZHR29f//+9u3bX7p0SZoHAAAAAAAAAAAAoC1q165dSEiIVquVclzt3Ujlhw8fbpYeW3R/ 5vfff//ChQtJSUlJSUkrVqzw9vZOSkpyd3fXVfjmm2927tzZ4KyVK1fOmjXLxMSkQbm3t3dcXFz3 7t3rF65bt06j0dTU1Kxbt27cuHG68jlz5nz44YclJSXDhg2rX9/Z2fnkyZN1dXVarVZaSDp58uSY mJidO3dWVFSUlJQcPHiwsrLyfq80ODjY3t7+nXfeKS4uLi8vP3PmTFpamhCisLDQxMTE0dFRq9Wu W7cuJyen/lk2NjZLly61trZ+6aWXpJLZs2d/9NFHJ0+erK6uzs3NPXjwoBBCLpeHh4cvW7assrIy Ly/vq6++arFf0NnZ+fLlyyUlJUIIafXtqFGjioqK1q9fX1tbe+7cuXXr1s2cOVNX38nJ6dixY7rK QoiioiJbW1tLS8vKysqPPvqIZx4AAAAAAAAAAACPB+09NO92ti2a71pZWbn8zsbGRqlUuri4KJV/ rCF+7bXXzp49W/+Uy5cv//jjjw0WsEqCg4P9/PwUCoWuxNTUdODAgf369evWrZu7u/vChQt1X73w wgvHjx+fNm1a/fpCiL/97W/FxcUODg5eXl5S1+7u7nv27Pn444+dnZ29vLyWLVumyybvatKkSf7+ /lFRUevXr/f3958yZYoQQqlU7tmz5+LFi76+vk5OTi+99JK0ynb48OEjRozo0qWLm5vb1atXx48f 3/D3kMs3btx4+vTpDz74QAgxYcKEt956a/r06dbW1r179969e7dU7bPPPpP2fw4LC5N61C8wMNDf 3//8+fNvvfWWv7//+++//2C/4MiRIwcPHuzl5eXu7r5u3TohhLm5+b59+zZs2ODg4PDMM8+8//77 I0aM0NVftmzZunXr7O3te/bsKZXMnz+/vLzc0dGxR48egwcP1q2xXrlypb+//1tvvXX+/Hl/f39/ f3/eywsAAAAAAAAAAAA0IGuwnvW+zJ49e8yYMXoqxMbGDh061MDWsrKy3NzcUlJSvL29m/06S0pK 3NzcTp061blzZ351AAAAAAAAAAAA4DHTYJ1ny4iNjQ0NDdU2RiaTHT58eMiQIXqa2rlz54R3Pmy0 R2XrmfGEhITBgwc/jHBXo9G8++67I0aMINwFAAAAAAAAAAAA0Oyio6Ojo6OFENILd6WD8PDw8PDw 5u1I3nquedy4cfv372/2ZhcvXmxnZ5ecnLxq1SpuLAAAAAAAAAAAAADNLjIyMjIysn7J6NGjR48e 3ewdyR/7qVyyZElhYWFsbKzuVa8AAAAAAAAAAAAA0LwiIiIiIiKk44cU7opWtT8zAAAAAAAAAAAA ALRdERER0v7M4eHhuo2amxf5LgAAAAAAAAAAAAA0DynifUjhrvgr7M8MAAAAAAAAAAAAAI+Hh75+ V6FQMMsAAAAAAAAAAAAA0HSs3wUAAAAAAAAAAACAtoH37wIAAAAAAAAAAABAU8lksnuVN+PreB96 vhsbG2tItcrKyvbt2/OrAwAAAAAAAACAv6aCggJTU1PmAXjk5HJ5WVmZubm5IZUVCkVcXFxLDu+h 57uhoaGGVDty5Ejfvn25XQAAAAAAAAAAwF/TwYMHfXx8mAegNbhy5UpISIghNePi4nr06GFIzcTE xGYZ20PPdw1fa9yMq5IBAAAAAAAAAAAA4IG12uzy0eS70dHRkZGRbWWOAAAAAAAAAAAAAPyl1M8u 7xpuPirKFr54IcSuXbuio6MjIiJ0JbpXDRPxAgAAAAAAAACAvyBdVgKg9dBll9HR0UKI+vnmI3xy W2L9bv3UdteuXbt27RJ3RLna33GjAAAAAAAAAAAAAHiE7swuo6OjtVrtnRFvy2vRfFcX7oq7LdUl 3wUAAAAAAAAAAADQGtTPLqWDVhLxtvT63frlBtYEAAAAAAAAAAAAgJZkeMrZwlo03w0PD9dqtbt3 7xbszwwAAAAAAAAAAACgVbprdjl69Ggp7ny0Y2vp9bu6iJf1uwAAAAAAAAAAAABapwb7M7eScFc8 kv2ZpSsn3wUAAAAAAAAAAADQOjXYpbiVhLviUb1/987rZ39mAAAAAAAAAAAAAK1Bg+yy9YS7ogXy XWHAS4ZlMpmBNQEAAAAAAAAAAB4/MplMq9XW1dUxFUDrYXjK2ZJaYv1uoxcmTY0hNQEAAAAAAAAA AB4/0kpBjUbDVACt56k0MOVsYQ893z18+HCz1wQAAAAAAAAAAHj8/Prrr0wC0EoYnl0mJia25MAe br47ZMgQfnsAAAAAAAAAAAAAaBZypgAAAAAAAAAAAAAA2gTyXQAAAAAAAAAAAABoG8h3AQAAAAAA AAAAAKBtIN8FAAAAAAAAANhWU9YAABqISURBVAAAgLaBfBcAAAAAAAAAAAAA2gbyXQAAAAAAAAAA AABoG8h3AQAAAAAAAAAAAKBtIN8FAAAAAAAAAAAAgLaBfFcIIQYNGvT55583vZ2AgIAtW7bcWZ6S ktKrVy87O7sFCxa08kvQr7a21sjIKDU1lXsGAAAAAAAAAAAAaHnkuy3hvffeGzFiRH5+/vLly5ul waqqKiMjoytXruhKXn311f79+z/sC1EoFJ988omDgwO/KQAAAAAAAAAAANDyHk2+q9Fo8vLymt5O TU1Nm5jla9eu+fr6PtQunn766QfuIicnx8CaMpls3rx5VlZWPDkAAAAAAAAAAABAy2vpfDcpKWnB ggWdOnVas2aNECItLc3IyKiqqkr6dsuWLQEBAdJxnz593nzzzbCwsICAgICAgLi4OKl80aJFEyZM mDJlSo8ePRYuXKjVaj///HN/f38bG5ugoKCff/5Zqnbw4MGgoCA7Ozt7e/uBAwdqNBohRH5+/tSp U11cXFxcXKZPn15YWFh/bHV1de7u7jt27NCVzJo1a/r06UKIe/VSU1OzYMECJycnV1fXJUuW3PWS e/fufe7cuddff93b2zs+Pn7mzJlvvvmm7ttu3bpt375dCLF3715PT88lS5YEBwd36dJl1qxZuvT6 2rVrEydOdHFxsbW1HTRoUElJyfDhw4UQw4cP9/b2XrZsmfjz/szbtm3r2bOntbV1YGCg7nL0tB8W Fta3b99PP/200aC3/v7MixYteuaZZ2bMmPHEE0906dLls88+43ECAAAAAAAAAAAAHqoWyndTU1Pf ffddHx+fiRMnKhSKqKio//mf/2n0rOjo6HXr1p05c+b111+fOnWqVquVynfv3j179uzTp09//PHH q1ev/vDDDzds2JCfn//222+PGzcuPT1dCDFjxoy5c+fm5+dnZ2d/8MEHMplMCDF58uTS0tKzZ88m JycXFBRMmTKlfncKhWLy5Mnr16+XPlZUVGzfvn3q1KlCiHv18sEHH+zfvz8hIeHSpUs3bty4ePHi nVdx/Pjxrl27Ll26NDU1Vf8Wyunp6WZmZgkJCWfOnDlx4sTXX38thCgrKxs2bJizs3NKSkpubu4H H3ygVCr3798vhNi/f39qauqiRYvqNxIfHz9t2rQlS5bcuHHj/fffnzJlytGjR/W0L4RISEh44403 EhMTu3XrNnz48LVr1xYXFxvys+7du3fu3LlJSUn79u178803eS8vAAAAAAAAAAAA8FA99Hw3Kiqq d+/eQ4cOLSoq+vLLLy9fvrx06dLAwEBDzp05c6b0qtfRo0dnZmZmZ2dL5YMGDRowYIB0vGrVqn/8 4x8BAQFyuXzUqFEDBw6MiooSQhgbG1+4cCEjI0OpVIaEhMhksuvXr//0008rV65s3769tbX1ihUr Dhw4kJGRUb/HadOm7d+/X1rGun37dhsbm0GDBunpZf369W+88Yarq6tKpfrXv/5lZGTUlLkyNzef P3++EMLExGTo0KHHjh0TQuzevbu2tnb58uXt2rVTKpV9+/Y1NzfX08hXX301YcKEkSNHKpXKsLCw p59+eu3atXraF0KoVKrIyMhNmzZlZmbOnDlz7969Hh4eY8eOTUtL0z/gIUOG9O7dWwjRuXPnrl27 JiUl8UQBAAAAAAAAAAAAD89Dz3ezs7OvXLni4+MTEBDQtWtXaR2tgWxtbaUDExMTIURZWZn00dnZ WVcnLS3t3Xff7fa706dPS7su79ixIzMzs3fv3l27dpV2MM7MzJTJZO7u7tKJnTt3lgrr9+jp6RkU FLRp0yYhxPr166dNmyYN+F69ZGdne3p66gbZoUOHpsyVjY2Nbn5MTEyk601PT+/cubNCoTCwkczM TOnSdJepu8a7tl+fqampv79/QECAjY3NuXPnbt26ZeAPdK8GAQAAAAAAAAAAADQj5cPu4OWXX5aW hG7ZsmXBggX9+vWbMGFCZGRku3bthBDSUtSqqiq1Wi2EaPBC3HupHxK7urq+8847zzzzTIM6vr6+ mzZt0mq1iYmJ4eHh3bt379atm1arTU9PlyLea9euCSFcXFwanDht2rSVK1eOHz8+Pj5et/L1Xr04 OTnl5uZKx3V1dQUFBY0O3szMTPe+YSFEUVGR/vpubm7Xrl3TaDRy+R9hfP3jBlxcXOqvu7127dqd 13iny5cvb926devWrcXFxePHj9+8ebO0MBcAAAAAAAAAAABA69ES799Vq9Xjxo3bunVrWlraxIkT t27d6ubmtnr1aiGEra2tm5vbnj17hBBFRUVr1qy538bnz5//9ttvJyUlaTSaysrKuLi4q1ev1tbW btiwobi4WCaTOTg4KJVKpVLp6uoaGhq6cOHCkpKS4uLihQsXDh06tGPHjg0aHD9+fEZGxvz580ND Q11dXfX0IoR44YUXPv30UymvXb16dWlpaaMD7tWr108//VRZWSmE+PLLLxuNhEePHi2TyRYtWlRa WlpbW5uQkFBWVmZsbGxtbX3X991OnTr1u+++i4mJqaur27dvX1RU1PTp0/V3ER4e3q9fv+vXr3/8 8cfXrl1bsWIF4S4AAAAAAAAAAADQCilbsjNLS8spU6ZMmTKloKAgLy9PKly7du0rr7zy2Wef2dnZ jRo1avfu3ffV5ty5c9Vq9Ysvvnj9+nWVStWrV6/ly5cLIbZs2bJo0aKamhorK6tXX3112LBhQoiN Gze+9tprfn5+Wq126NChUs0GLCwsxo4du2HDho0bNzbayxtvvFFcXBwUFOTs7NynTx8fH59GB/zc c8/Fx8f37NnTxcUlJCTEy8tLf31zc/MDBw4sXLjQ29u7pqame/fu0qt///Wvf82bN6+8vHzevHnv vvuurv6AAQPWrFnz2muvZWRkuLq6rlu3LiQkRH8XixcvDgoKauLLgwEAAAAAAAAAAAA8bDIp+Hww s2fPHjNmDJMIAAAAAAAAAAAAAE2xc+fOCe982Gg1OTMFAAAAAAAAAAAAAG0C+S4AAAAAAAAAAAAA tA3kuwAAAAAAAAAAAADQNpDvAgAAAAAAAAAAAEDbQL4LAAAAAAAAAAAAAG0D+S4AAAAAAAAAAAAA tA3kuwAAAAAAAAAAAADQNpDvAgAAAAAAAAAAAEDbQL4LAAAAAAAAAAAAAG0D+S4AAAAAAAAAAAAA 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 --=-=-= Content-Type: application/zstd Content-Disposition: attachment; filename=heaptrack.emacs.52042.zst Content-Transfer-Encoding: base64 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 PQpad8tcMgEONMAD1FEYenxsKja1ro5C6TAVeAAmgCphvaEUrngUSHcLa1/FiaPAOW5MIAGF/bkS R4nNVXHiKGSOKnWgAR5ABxAcYO6JEypOlG+upjavkqyX3lG4HFR8A4IIJqhAAEmbhVhS5urdHQX8 /ShUjnC+gQ3gCiLAB+gAggORF6xPyvzRUdKiHmHNqtJRaCw1y0hmUe8oLJLZG+Uo6ImRkzQSc1Hv KCCO8GC2JOaqHh2FkcRqIDpwFA5Jn6k8gYOBAzX3ARdcv83Nu81NmJZUSyml4BYhHnAB+YJSSila tGiKokWLEi2laFnCbOQaFihRInKJIIUQQrIGMVJeXq0TowG9Jnx3d3d3J07c6d3d3d3dibtxN+7u 7u7ufnnZncrLq8rLYlU1U2vYsCJYsBCCBa0w4TuuYcOqho1hXS1Gt5ZYomZmZmZmd7NB0zlyVjbK RpgoUapYQpQKHcpBkJQc5Kq01EqQ95W5eVcoi3KhI/OnRZAiTlV3XgKK0W3MtStUn0mIpQnhux1D zbIKhSj0q2pYkKurObpJSWtBrq5mru6S0tBChA5SJdUiVNWHdDqdyej0YEQPQ6fT6XQ6nU6n0+l0 Op1Op9PpdDqdTqfT6XQ6nU6n0+l0Op2IktKSTk96ONHpyLNKD0Sn0+l0Op1Op9PpdDqdTqfT6XQ6 nU6n0+l0IkSIECFChAgRMqbTAy85OtPpYYiIiIiIiIiIiIiIiB6ITkZGRkZG9EB0Op1Op5PRb1x0 YnpYehgiIiIiIiIiIqIHotPpdDqdTqcTPRAREREREVETERGdzkSYHirpQZcehk6n0+l0Op1Op9Pp dDqdTqfTqbu7u7u7u7ubmZd5zvOA8/l8Pp/P5/P5fD6fz+fz+Xw+n8/n8/l8Pp/P5/P5fD6fz+eo OZ/PkeQ88HOeD5OZiYg4n8/n8/l8Pp/P5/P5fD6fz+fz+Xw+f/F8Pi8nNiXmgebz+Xw+n8/n8/l8 Pp/P5/P5fD6fz+fz+Xw+/7yYbT5vngeeh5nP5/P5fD6fz+fz+Xw+n8/n8/l8Pp/P5/P5nOefN89D P+h+Hub///9vXk0s5IaVmAeaz+fz+Xwujudh5oF3Pg/EPA9G88qmMN3dFKi7u7u7m5mZmZmZmZl5 d3e3uymMsU1huru7u7u7u7u7u7u7u7s7Ozu5u7kpnLARm8JgY2NjY2NjY2OXLl26KVB3d3d3d5cm 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 CCGEEEIIIYQQQgghhBBCCCFMmDAhHkhcXFxcXJgwYaJEiRIlSpQoUeLi/2Cqi1886IqHEUIIIYQQ QgghhBBCCCGEEM2rKR5IXFxcXFxcXFx8xEd8xEd8xEec+K+Dv0L8D/uH+f////////////////// ////////////////////X/vPv/76a/NqYiH3/////4H+//////////8f6P//////G/+/8R/m//// ///m/QP9/////////////3/7b/n//Iei/7eHaV5N/P////////+/ef9A////p/8feJvpr0TdMuT/ ////////Tw9Ep9PpdDqdTqfT6fRD3IWvV8nn8kCDmWBhlSCCCG5Gon400QmhVx44HLZY0aOU0EQS UkccBQsZm9Cbz+fz+Xw+n8/n8/l8Pp/P5/P5fD6fz+fz+Xw+n8/n8/l8Pp/P5/P5fD6fz+fz+Xw+ n8/n8/l8Pp/P5/P5fD6fz+fz+Xw+n8/n8/l8Pp/P5/P5fD6fz+fz+Xw+n8/n8/l8Pp/P5/P5fD6f z+fz+Xw+n8/n8/l8Pp/P5/P5fD6fz+fz+Xw+n8/n8/l8Pp/P5/P5fD6fz+fz+Xw+n8/n8/l8Pp/P 5/P5fD6fz+fz+Xw+n8/n8/l8Pp/P5/P5fD6fz+fz+Xw+n8/n8/l8Pp/P5/P5fD6fz+fz+Xw+n8/n 8w89GCFrROgdEhGhN7Q9lnGI0CtqKjJN6JVtAAB8gAKYwASVZEgobnkQRsKDEuZFQicwAQSCAwaK kcLdCUxggfJARnbGlocxwjXBBR4waCCBQjC2bJeeiqHCp2JoizbrYHk4yUHKATw0PR0q/7U8oBGh i/JAitC4CWCDK3KrJ8SQGKL5ugAOHGAEAbASKoQY0ocqgQEQ9dTT35ANtsuRmZalXGRmZmZep5DI 4zeJISxZD411Kseh8kDIw1Y9aNXDmDGCOSIPy8MUIZFXHlqQwkP8QEaQDUAppMvs84YKMlCyx8we u1jrS5FTHhkThJycDGClPJwgeAqBBRjwBJCC4GAI1CNVSjmV8tKqgvSoD5WH8lJOyu+kFOYo5ysP KvSLOcooCzCYoAISs6inHyoXwkhLXBsOdfcyMzMzMy/yauJq0TGGSnlgvLEIJJCgbXd0qNzKrTzo yfH0AQcg4AcYUIDJIPEBAyuWOHrkRg2V9RjCaKg84JuF2KrygGTYWguulPJQTso4bQBBBGVBeem3 Yhk9naFyzMxYxpIbQyVIDPUQoTchhCTeFXJD/1j//zXJFFL4TaTUmyQiImqmISIiIiIiIiIiIiIi IuJqKYlFjFGtJLvLw3zKw0/ODFsbWCA4oJOiJLvLH8R9PqJ1iPKQ1D1Lsh9IadJkmmTr6GlrN3l3 d1dRM3MRMxcuZmZmZi767pJv7u427u6yoOYVqqp6qqrUJ0/ygImkNLGgIDesvIig5iVERCIn1Eh+ JEfCKhTDA13yUIiMUAYQQKAOkAEFEjQX8kB6LDFtXqLuh8JdyF/IC3khL+QBi51NEduHQaTomRJa oml9WCpvlxz55S07gBOA4EhA0yVF5ESItPP6hDQrliMPPWRolmRezus+8iMPeCcfdGiag4EDCiSg gAJmsPiAihOZq6qaOlQLIVpZeaeIqkVmprqqIqBq6mg3Ya7dXVWiHJmYJUsEzHymCEgNcANjSVWZ lCIgdguBzPvdBySkgQZUT5mYJUVAck0eRkXAHCICAxhAw8SCTR7KkL0gSB7IkPDAkG4I34vgscMC 0kTOARtA7GqAtQEc/Aty5A8nDzvqQUeO6m7yMB4EP+Co0sTIAxk3RhGrUeShLKAY1TfyMJpe5IFG kYcZ9dBr1S3KMfOSV8l+IPsaRV79cLVSCi6NI01OFDl56CQiFiyEjap7F6v+f9wX5MTqeLANa0He Rv3Q5MKKPAirB7Kqhxb1Ie70mvzk///wchvModcPpB9qSHiQw4EFyIMYonTkzdNxTR4GeTDmNCJE aYP2TshD3k/k4QY5+ZCHIn/QNMQhdr3bBhVIQIEDElBMCxBiQ7k35IFqEDIiq+7bmZLkQx7E6YF7 Sm7fS0kHv1IlH1CeYPvd92Pfr93d3Z2Y3dz0IIytlCM3+n7n+/kectj5zne+B2Lhwf0++n7fe6hv 97/3vf87kNCm6db9Plrver/eLwZqPdzogYz0HsZI9KXpCr0H0idmaAW4AQML3MP1bknSexitqVkS ggocuAfrqy4JQQUOFFmenrL7gZSokp1Vsu2raXl5D92iyq+7e6y2eJak7F4xOg3vaIXYeHaklFQ7 I6S7mXR3H7d80PseyPUDjivdqzxbt4CBwk9R6kgRcmSQe0BWJH0PhLQ4JqNX9+i7ezCu4kEjSPWR u7t7EDyMTsbDeUaQuwfixBSkVpCxTOa8o/t3D6PDuUNadN8DuQcVdezAAUagDvCBnNO7biyj5bgo EvKSG1nuVozTuu5BdXeYxIbQXvWD2NGzlxB3N5oeaK/W4252yKBxD63Cyjipl9QpsdUgBBQgBRgw BRU8QO7EcTfuAfWI6pBrgBFMcA9F23rI8QT4gAOiKI6IftAjpTeix11v7sGUD3luOBh2D6WryGN2 D0K1meco4AcNeAIOsAMGDhxwBQ5cj+JIFSXJOSHI6CLJsXvoLDn3wJlEdW4w2MWue9gkFJrC6ojo e8jsqiP3gHl2pGTejwy8UgrJIj8imtw4QdY9kutHuvthAlrSjGHvnqq8Id24B5EYsx6oNIveiy1l AwAQADMZNAxGcSBKgiSIsWPyFAARiKwuNmK2liUhZBAAAABDAAAAAAAAAAAwAQBXNMfWJ3UZ8jz+ isskPY6dj8W/9sQ2mDjTjD773QxwVK0icoZ00TFKBbKbdZ+/XC+N12hH1bMHVf2JukS3WHu1Xp8p FLwJ7maNKmW0+W6cOoNDwN5ysK9ZAFz2Buj/0H8umJwheMuguReRiQn57Im1iClzJntRRSiixI3o wltMccZ2tAYsHgd2OCsjV/FjBxW55Y9c/bDJXFy7J5InzXLTL/aoyA272NUPe6Li0mxm/dKcijyx i5v+sEcqbthmrj7NE8mTZrnpF3tU5IZd7OqHPVFxaTazfmlORZ7YxU1/2CMVN2wzV5/mieRJs9z0 iz0qcsMudvXDnqi4NJtZvzSnIk/s4qY/7JGKG7aZq0/zRPKkWW76xR4VuWEXu/phT1Rcms2sX5pT kSd2cdMf9kjFDdvM1ad5InnSLDf9Yo+K3LCLXf2wJyouzWbWL82pyBO7uOkPe6Tihm3m6tM8kTxp lpt+sUdFbtjFrn7YExWXZjPrl+ZU5Ild3PSHPVJxwzZz9WmeSJ40y02/2KMiN+xiVz/siYpLs5n1 S3Mq8sTaK+Y19Ve6TyuBxwepb0y1L17waKG5zEgSIJRveGNEhxWsOShQqy3vuAMOr3fUfY4AgRXi jd4eT4Wh9fMvC6yVjzZceK8rN/Fc1HkeW88tcG+5ve5f1np9DDINGLMtNbT+63zYViRLDtPtSgw3 QWTtYs/uZcVxoTXJLSNrA/nwkEPY7+RzmY6wEHU4dn1nta7hFHLkFNEzwl3u+/uf7Z2dsd252akX EuoodG5J+0hPlZeg6gMh2KnuB2mjBh+ByoCuAT/0xcs5C/B4oTWsHoAkGKPv3EPiRbDg4CGzJYK6 Vmnz5pu5ylXiBqwM08Us19wA5QCHz/G2dIZCH4Z/oLSQZkRAj64RVw7FcBrb4NMIBOqyKLitN5DS PV0e0zobSPZuOiNuB6d8rgl2yL+4n2U65BtP8oTmGLN+YFBzsfvP+KWD57psU6MfcRPH3WhRuybO fLKtjyU9OiF9ZSgDh2OCdrVlgbmnfZ1qPbI/3iQkaBLCaZiO0QfZtVW8wnvhLfdBJV3p+8HlgZ2X w2npTfpOdVCuIkW534c2vitbBpirVpALg44n+zYJQVwXE/tjkDxikIg8VDAqdTrS5KMCzRk4yCsq G7ku4zkIyNHGkQBlLWa9SHHTg8aNkFYURdI/ZMYlDPQjy3sTkdT7QZGthwTu652XowjABD6NKMdD uzepB0DvVxErJhwyYrmII/i4nj5Z3q5ydqJGckPPqr4/CqcDcGhcA44lrLCv0yP0tLP7r+C2tdYl MLHyvEVHQbxb0ZCmXPJK0R7m+CsgVI9QHve995CsSAR//M6W+22tIxlGmS3I/CxDgMaKAfhTJFJT 0oJF/nVAUxKDZwdCBrHRM2WBnUeAEolkpO+kJSi75i33bmhaJ+u6RKDO2HNXBj8GmL7h/wjA23y0 9N8gRjbdPga7//NB3DJyCWFWjWMZnk3KxjnKhKfy/4TtJIY/Inf9GnasSuffTokhDS62CbqKRLgU 8RXbwwXzXGJq36i/P7RK6cg6F3+cgjx8vPbYCJ156rK/2USe3E2WCPVTZO5i/zx6LDELPIynocQ/ Yigx30jl+t7uLDxFilU82WGqYvkCQMxf6+KWSiy7DPHo71+R7s2XIr8YbKTfN9TeBEPCLCFRb84l oOAo3c1cuzoHv5EuXYxa9eK0PBqAHv5ld8FVpP8prmpp5Sjbw29QIQ/s95shjI0sDFzFMMcNYfK4 JVGC01c4VOgPRWaXzXkD6ay3ea5eYdD0XwRWD+qHOExzsXPmYliwZJv5JlOeaORLgrGeaalJ+7uD D754XiJn52sLd4ylbAI9oJANAcC/BGQ1IcT88FIcBfJolBldCOm8nKB3NSizbgCPV9fSNWK+iCGI JDnQ6Tl1hj2fJcXEQYuqwFywU0quzHTa32y+XCTMkJu7B+nZ3e773HsbCQbbgpAAFrxB57jRN5DR 5EmBZZ1SgIxJGMB58SptLOFUMuMv04qkSSGDr2IiXI+yDxEfBkotvHei3QtcEhG6fUWFPZ56zbwE jUTdmhs9Mx38h2tgfLbN2sc/yOCOgRZLedRb0KX0sgTxFCLatJdYfFX5XGFyYFygMWUD2ZxZtIXc lFQVWQFvSirjITnJScvwhQJG1/lg1D1MkGDuWineaA0rRhCpwZQ8B0nURL93bcIU2FZt5RiogLED 8XgLLBjT7tqVTcQTK/cljAHLBABWbe4HKIm1porKvGOdfK8mj1z04vV7gEdlDE6u3g72aIHhaZFt uMm4rIoiMPYqAVZjyvY+iLAVbGtPm22Kc6enkA722vXWVDew/E6571KmhnXw3hLEe79LGluPLnLz 2DpsHL0ThMi9kdPukdD8ud8W7EFL5e85xEkbQjPB/5hu1wIarLkcQn35CcdJ3Da24d+q1vmS3w2e xmncrnLl5QnzPPZ8fIQOR8gG6jPxDtb1QuA7h+QhUkP03O47HdbCGa6NC9/GOj2xnLRVzgM3xP1/ NvHnhwvLy6WWT7RWfE4L3sMNeRYwItLCNWcqTbu7qi7NeSZk7ohdyRASi5sslUugkC1MVPX/MRBu vpfAKF4goJZvDOJChW5CSuPYKPyyYtpokh5IX52Yugp8Nux9QJSkAbMbLF3BrxOK/fSUlqUDf/S/ 9tSweFVss3/J1b63bYHknxbt8GEcg5327VLePCQftTcXIaHUNb/1SIevVdflcoSQboz7fB/5vxEJ cFY53b8PycCmrlFAbH72uYgBX0Cn/LS1wvICeskRPNGxrfGxxH3V/tSxSm0w4wAQnf4DamHvFMYg 6EAyqT/TF9C0y1BDCjcHuZJmTOxvjtpj+tjCiWzqOyFRNrNyiKdwbm7AR5gKqQiweOCw/3yh+HUf jWM0OAiZ7OTZJJwWCtopEgzI2S3LuDAgrQbDNMvdJyfUMvWsHi0mwgmum+ATznrIAR1tRyXBpls4 yI4kfZ74Axq/aKAo87yf++ayuyhwiFjFgAGrfiZPANTe81M24irSAIMDDyDu2gHE/00fRhfFTQ38 jnhLeUTng56zM731yBws8nA1NGWMEdvn2WkdemoFrVew7Y6eH/avdFirM18Hx44fqbySsFcAOrXw 3Sf5U180FSnsVu1RD8S01dPW/w+fJ1+OQo/wmgJHeA5wHUpKMSh8HHLtDVaMXxIcTdT6grTXZPq3 uEZTii/Ul3ypbqBzW5RLmCfc2wrhcmgkBZ13L7CbYI3A3xIuzpCEyPbuUwDLX6ZXoElXySeC/hcf WZnJogo/kOzmSi3EWvk7t0SxIL13ta52+QqPnsPxrLOWc5LiFaFgd3kbjmZSzv6dL7Aj2LY1Z0yo neiEteBF2WXRoMKjQrtIPrG+39d4YKS/wdRV4NelqojDXUd+TjCeW6sCP/QM/D78MMvEeMU3rJ3e jB6059RV9EDErVextAWmVxtuzj9sFK8gHUyM4mPKeCyoq6a5SLIFMrzrOCpNgzhKqLRNNHk0oLDq UO83oufCSJSNPX47658o1/OKbH8wEJOpEl084q2KcDcV0RvIUbYL9xrIAF/x88JtDItJ3LsEH2J5 y2KTFn9X+SkUbSRvsnZwC91zTaerRPwOCtnWWf0b8YhM1tK5bZNdYfKv04lHGGzq/SIFekXLZeEQ tQfQ/lhfzIpHjVNTrXLhezA2em7ILYgHhRw4qUHuE+5JwXSYZz4AwzXDS1YE2oL1XfdsgbnycRHe 46e9Jnby98WAegMt9C5Alk+CgJQOss0fib9I710ukNawFavvI4E6ZGUSBbt9QZMmLByvdeCKY9v1 Jv+Ku0rL3nGGAf4F1UOjoR8ChHtQd9PbAfFOJ6VFbPJTaAc4KnYSEBw60PMxXgKQMNZlJvCJ7eup JDSz9e6ccC9aczpNjgTCOwRc/YdLT5mf7VS//IP+rLfrOMnVGgEiR2dRurgxV8/rXlfP3crV2vtW TqKX1NlSJdgerrrKG1hYlcof4f+CToyK37eQ1QRZ17rMWaBjRXyILn5LoMQ6zBQEZmHvdFRjnKU+ TkF1fYnzRz1eDPiHDr3PMq7N+mqRau+Nk8qud40DL14s8yUdCYjJ9EXFZPr15JZwL6lFTCKgj0n4 i2RSr5EymZ65TF0TThIcoi6mlx0TwgbZKHXxQsl8nVA9jjwqY8flMzNehm8I8AL+tQsa0gsNKags ocuEosB9tcc/4kXg4sKjMUhMHpJIRwcdKqtlpHsplhVNbzRAPnyPSs0EuLMftHOzgUW3enWnCfvl /8LB2Xz5X//ugFKun/92i3ykSJ71G194OVxlP+Z1/aFvvYe//1XvMkF03PpYMkPG7IKiha3HPAjd HDv+uIx/UV0Io71/c5toc/odpTwmbXQPeqeHgcaUFhQGg4qUCo9t3QuvJ78mL7150QBX4QHlVCik DTx2r+t9cJgfZbcCoAb/NIv/S1SiN5AV544qb38dDc0iW2vLdT/fkNmXWK65oB3Cv3w6wKLN/cY2 Rx0TRXj8GPMurHHOFM5evu9WC8jtpWh5IoG5LvPUV1g0fzWoeLcNsRUQC/K/SRrJ+akh12Z/AK54 fgYNWxa/VYyASBuaDdc/uh1hSNybLalzOSJfM+t88q06gTZqpPMxW5RkxnaajVrE/13JpgNX793w wMm3zQ0ax/IPXh1S06+/eoWfV59e+qppkP/s+vy72P5e0h+i+oYAqk/VoKeEDN9pBT0cZvP6hHFe otplurN4NIHPoopbXAhvVTz5tKSyO9npC2isWSRFPPdGY8QKILbN9O/Ovuoox6eCLfM9As9CtRsy JrExZsQE/LughAhgRkf5RAL9wQVaEai5Cc11aNSa82coJRZblwgUe0bHT8ZATDxnIjk6In/xmixR VGL3E51ejvxmBrJ8sWAdYpMqLyWqBE69B62T8bWjJPRLO7JDFG6gAaiGio+80aa8JRNWHApfkxf7 7+U2m4pnjTls7OVnmECEbU4S4VAxCdweBkIikgSodBKeiae6eGGKuwloTEWvlavvcwR3TeC3jo+Q 6nYmBV06keCyyBDF6QCEh+hn1BRxpVB2UIgpqq8khI9+hmCAoaCGkpj2slSdlzCW86WdaFtYVZDY UECuMlnImN9sNwNNKApLK5sY+/+uM7N+5KaTTktDWPNijR6kosUA9vQfO6HTPGdOt5h2T2boYIWx o4GQWcz5LTjW0hOv1o4Ywm5l6xEcq1UMsdt5+UKl/VdV0zhqm3EvOb6Q9iS33HE1pieUmQOFKAgK rasddN7x1SMXLuQ/V1DOnYnz6jAsb+Ndp5OzU4wYeh+YaMOtSAMdJVaC7nBqhMYJIdIDqLmrM/8O RsAj6WWgc+91v4JEQgIoB4nqH4BwK3ZhNty2QK1pW+EQOjYVQhz7SEzudXOFYOnmcOfMzNhWjtqz bn+JLdJYNAYxay9dgc+lnQr6q4TsM0Ygl2Q6/Buaj1hFNPwHuYn2oeDcCV31fWlGPb7+0xflootl JQP53KYdnZ8I7a9v/7knTwPXRoY4g7sL9b+ZKfGQpc1AwIliEFp0UT8iRc0ex6uRXiZx6tBVTLIJ LLUp/66Qq6mrbqFeTmpfL5r1mxqfgf+bdWbRSTJRJRY8OG9YXna1xP7r4jlBWgAujj/f/k33rdmZ HqIXiJ1yPaU/I/cD476vDVxpkMpVdwiPGGEFoMYzAJUbSp4pSj+AvSz8DW+cXTOGArvdTH1WBMir sm1nXpM6fi1sTb4PSA91Zc+Dxh/tOG3Q+8lzk5QAuNQGL2KwW9q0cdHDuEDR4PbaJCm6RFNGewr8 1iF2l1Ri1fI20uKNyd6/CGEpaMoqYK81MuT1p9iPnQIm/EY8YtGv28LLTT5m8xzO9xk1Er5Qi2Mr ehQum6SThF675fxj5yaAGhtr6Uh9XntznbNdG5j6XXugdCjThtwQTotJ3bg3i002zlU0DAhZpcIF W+AXLZ0A9CHioOw8abctfxccW7Hu+DB5HQzqef2XONFYOmMrK+VNl4JmXJdkXbJ7PknSAMjPiylH sElTR0HMynnFk5j76Ik7fsC76U18GgE0R40f98rOqZJoHGgr+20cx4iKdXhmEB0+LaiOKwcRT0Pe EnRC4Q3wVhQZPHdy/jIrERxMmkXOk3Oe33kC70Kthb3eAF5w+Q2TjMJDwfHif0d2NxXA6KFgaAgr 9GMyLOP/sFpjBmFTBdAnvOzPZ+axynbWVooUUytl6bbJ2amlZGbVUvxBY8c02I6GpQuotVUAg5ve 4gdz/qcPMOsxJI9AvzT9Oq3/rZSmVyKY/YRcnmyhTIm4AEnq5G6QD0TVfOdi/Gdu5UHPCT5T79bZ 2+LnONHQSy8PCAkbH6l0bUeYeq/68EfGEKNum9E0HKA76d4Wq7iqjvWwQOW/q5k5IE1aw6DV9gZc zdwLCoNChiKNPehl8LuFvKdiR8Pw3DGl+t/G9y/9sEZZ60flkhAnm/9NkdFxpatlvHetR+wHWhKM z3eBMxCgLktJIvchD5aqqq10U7oTuN6NXKVEjHY77wDbKIkXm8Kkp+5/PWMuXNHmsWL9fDxRi2ph aYAiDA1w3BgdSj7krrwVT1zQ2dnz4nxYVI6JcLK8hTk3Y4rBhEXirD9UQ7rYnH/au7Boe7FRwC4J U+whMja9BJchIYGz2BB0whnV1oI/EpI4JdOdHssKX7kdhIwl1pJN6tXkanegOQsYjEEoTgvGb9SJ olCYYsKyjOYlOaMj3Jm0w3zxEVjIexnR6eWuHP+fJnz09I+qFDNPcKVAcgR3edoEzAazhKrb65IR RzRkBeVui8mXUU8lHESbgS+aN+djrjGvZ9gG5gmNgmrxa44HtaMk8UC/ZQpPyztt7XATYLQd/Jh2 Z09shOiC29pTY2bn1THid7qZUgy/0W0j6fw/UUnEc02yF9l6zEfs/IlfrjxPoBcgxy4u2YEhZkY0 HCN0v8bhGf3u4AWJ6L/NQf4TBdNpjEtGL4yyJYz4LsDrl1K8IZldXNOE7nsVypYaE9Wwb1N2dzQr ErKrhRQoGWZFbq+2ukmRhHgcxhyRgS2R1okR7p7otG+DAioGGPse9TXAjUdjnxuht+VgIsCDmwwq tdUnHkQhuLnJe/fRQidIGawPVfbVwGhRbxOe/smzwP5SIRlrevuefzjo9RGzTpisTVzhJESCIt72 AqKMCS4T6eC0jN7/ouV1oCJBvWc0xJUD7qnsyGvqtoxJhUFJgDF6Qx1nVXrkkjVtBEgRm/N3fgcZ WUPvyWBVD0dwAS0YcDwkhrR6OFXWFJi3/5DZxGZYjcKEr7iJsqsRKK2CrM/SwzJs0OCoTAFUm0qm 7udN9MpYTKr2pNLiYNTBP/HTPj0dZiO9Ssh2shRdvcFjI4rQMBuSODZJVnyZiVq0pq2OI0h4M7tX ns33oPtUMn7IWHQTpqAGepyT4DonmYDrI5F2g0LpwxVN2l5P+jZnJZp15mqZ9ZkN8H8pEDBjoofl FKEJ4q/+Qi9NU+lJDkFZoDhld6FL0PrnFIt6JbL+zCpLdqN+E3AsLQEg+2qdMto7qqiI96tMjR83 tSCRlxHNrVHq3qGYBm1jKufO3gJuOEhwnvhizwYMIYEm/DhWh6lnIfEXFh15gHWPZI3/q42uQOEA DaA/4vEKuZq7SXdu86PP8fUdQkcM5R5dmy8Z2+1cGBvMYIGW6bEuxgcIbPjTOM4Gn5bYYqYlYoNB vuRS9drwVMfpXXRAhTAvy2hx6oTQ5ZW5X95qi6WTnLhz3mTXLsmqejtLL4Wrlg/9enqgEtq2DVFJ w4WsC6kbJUzSU2sZdW/UlMsOuu2WS2Y9wMrTYJk9OTkqCGrTLawlkeiZfbRqeZYjaBFqafKBQ55j DIm2znYzDbcRAeuX1fB8ld1nx387cXRqL4kMDiX4aPjcEBbXzGxmxoOlWwjVS7RUruzzjNn/Lv35 8XUHqTZ8mcRAmNGVV/BJjmUQRy9WrY17OYBnliOTZ17jjC9nCGoH1H3VotlQF9F9ndC04yL4ik9X wUp8TrXQ+46XHXUTs31d28mr35cHjZlqPCFwV1IHXWoyMhjBdiHBbgNXrjZo5mrZl+CQdCVFwhxw RHxzcRh/QWNNefMBS/6AneIlC9LGpCJrA7QLg/GNRDhj5Dzn/rI5SWOdrgZErDTMhZfU37bN3cQW iSx9uAt/tf0LFQYXbc4m0W1tHKNSlwl/nCsifv8f9QXCNWCmyWD8YtY7Ni7yTfvEQB1RqyFwLt/T VttGIXmzXWLGiMa7JUxcrgIxOlyogYhpqzXpJNfRhbTGZmEX+8qJ5bNwq7I/VCHGHHJLM8a50sWw XzYYyD0+IypdWTPpf0cT2LgnL8bOSCWzrv97Ctml9eRNbEmwzV2F+DHMUcIiSSTmjYgHNAn8i+Od RJaQxgsSZqeGRJfjDAs2ZpM+QER3/HRWuqbScV2ErW4uXjrBecRJS4wipfUnPJfd4lFAx6SDb58z CGLX1XgnSGO9RwqjEmmLnbRrR5OJLHYI9PD0hNAwNLyj06lkn80CfQYGaJ35a+lGx6IH945HQppr aELfYQ7nhMRcE25wutNSqR6zKXSnZdrsWH5/zWHgbz7SdFJxxodnXkFKvT4i19mAcj8IAQXb4GN7 cGSNkd/zzv+I0Cye/xh3Ij+/r8GoYfcKwh1DD3Lqhm5aokGC7rcL6msvWnNyMv1KVfQaYHSRswI1 iGWmX7xiiF+Y3x3Ux520eCctjJPggwFR8duhvpJDPIoyek5Mvo6XMiRMk1kmJD09My7te8yiZcSl ammn7bO3p8DV2p7BiQdFCTpNE3dpiRIv84mIrpTNCwjYL1FpTO19cX4GgO0XyaxLc45RN4gxClkJ t6hqLdt4qT1gBMd8tKpOnsKPnOHWpfC8bGYt3vNGkaSRlMFsn88biYlmRxTFkVdGvIqZQ4D43iOe cQv0VQPhihf37bUBfbtIFj3WC8089B62PlyKluAte1gkLkbmFuzbkiOzAkafibSnWXl3FSWggkcC Xg5LsUFGtCoyXs2q+tE/zfG/+9GoRWJe1rAs0IN0R6OwAvmobRR0jiz6EC8gaDi4E80uysgM3oUc hvuBJsUrauPuX1UsvihI+cWvORaJfW2zCrV4iYAaEsmq8fdTipTey93/5nsTtnQiJ2AgMbHKDKu+ THMXfrA0iC13KH9dno82zI+hYxWNNn7nAJddPA5D3GQtvGFCLBrnVPYraTKEKC93cKqFdKUPBhOM znQT2Bw+NjlXs5EAeYyRnI18J0xsuYevsJf1ThqAkM89hI8MAeXrY8AifLcdtMl0PfMX47XF8P0F NlMRUXBnRk1ypAsSeWDxJ5D1pFIftlg0NYNALgngTJpZEgi9ehWXU5/W0whHPMKC0557XEqsRBQX 3KjS+33jvKfbSHGKIn5eCt5KbIxiqKhLlYshi78/9FByN32pzp+l47wO38+fcZe2zP1xFnOlN4E3 KCEwKG4AnKsJQd+RaDVcdmHKAAtBv4EJFTbBEFtfXr1QkbOAf/Ph5pATdhUl6BPBKVbwEmMh7B8L /4gBuky8LDZmwNHYeyXZPHa37QHkNFMCI746o9xAw80FJ7bF5PIONk8uIRuSgX5/kQUbN5MW4nBk NQdjJ2mJA9su4p8tZvU21UkdfzQ2llZ9h3E7JXtlNn2hMvakPWNY8foYdVoeaWzLufhcSp46eFdd CefWLlV1Mq2kemGEG4GMfr3idKg5nad5aqNi3MWKgH5uWtXyi1yFt68cskMhNTHS/1CbuxG/kCBb /McB+Vr2Yqlein5EUPI7q39QL8BwIXymB7hWbBbH9MwMxebsTCEtBLSUKwO1I/KgQ9Xt/ptwex+U BHj0DzhvZANjsl7dSMAJNFiw0mskUwCZijuqRbrHuEis8aRJnoqdnxaDVWf+rodLIeMenZDxv2vY cSI9yeV4h+2ZjxXJDIQ6/vkFEeH2Elj2ih+mEFvH+g3eoIIZcGUVasG4vdkvYft10eqOppxeZC8k JcQPUHOKB+O9UnEB6r8gnUf6LC+I40NWBsTw2e/irjUDjP3c2K3X46hSHB+z4BCgrPcdfwLIIH/H NOtjTPCQv1L4sqHYRUV6WZ1YRkV6cyKwi4o8eT4mWg4JWgfGf9mIN1aw7IQkn9kB6egBz7F0Qj+E RsPnU2ANsOcJ8YPgPnbGlvbvf62FWUKB1pcTsH+VP7uTueWVRW0xoFF/S9Nf5AL9KFwcHJwtbhE0 cO9pedUB8xGPJs6WbXQTXDT/5hY4n2GJUyevpZtBtpCNaZgA+9NZjmQ9i9GAmMV14X9SvuFYgPxd K7MzZ0XPIzdYCYJIIz7JRDetyw+xnwcR5qE83fuIo3Rj2MjYxUqoexDORxgQvct3HuDQA+Yd2tvJ pXkY/0ectMtTBxvzxNwfJwBvHlnf/83T4OI7aTz/xv9T+jPcRAMk/5P/5Amzq1nRdyiuXPrhkucu 1LDwE0JbyAbRBf/vAYYDOLGK5/jJYHkTXrpYZsCRDLQb+JoB7QS+ZqCMiK8daCPgJBfbCTzJqOBj tG4qRkiIg8rZSBtiapwlvdqqlKX1Z2Fd+lyvdWpam18Ls2tkLz0IxJq+dNSZl21sqjR4XaWp6Fsa dniyje2c2dWGG6HcFHqMZn88uETz4G2DvszzZ2iYTKTJD39Rk5SqYU9gD2/BVI6DijDlAE/YqwY/ S5zaCNZ41aBfdECaY7ff1UgAqGq7GjLXfZS1GmQgSEU1hHioK+g3uVC6FG/yQlFYR8GR4KVADkp0 oEIhs1VR6jaReadnvI6xnKRAyS7HF80GnNVo5+ob0ncYKni7AZNL5kGahwwjylPOSJpGkk5P9hJc hmsKwkgezWGS6K91DQ3tUYPrnGevawMdoLldYnXPU6ZBUZPJNsDwi+wFMAYk3sild8ArHsHcBMQW GvKiHD/PmmbSG8d0KeX+AwOQWbQmbtsE70S6HyMs4JsUp0Ccm+v8pBXIUSLf//nTEL9emb3v0oOZ hvkmQDWx0ZfaEGrACGuO67ctJNxhFW9IOCG1sKRXVNyol16pr9dT9J5ADGzvMCX5aNXLNRGdQDlG nipIH6gIda9gRqtY/tWsdpl5S+Zc6DI0DsHBJXfjqmLlHwJc4z9W+zUWoaRaj1YvLrC/7vUiLIIL 1TYVX4xxPd7tebA4u7aDGRkMqFN7EOM2Bormms7OXXki3J+NgcJJhV4n4Q1R4h3tD0Mjjw5frtJ7 l3J+56Wmh2wJWzE4hEmV6Ni1j2f+Ca4OYZ88SwHBehXHKAcq+fqp2HZ3aYiV7wroMfEIBcXjGKqe Hotwl3TsmlsdZ98dQaQs4cECYaytCrsx81DemkA09P/aB9nYzYuS8dN47hd0PN/2eH4+YFhW9ZAC PLfmSLXBbusg43ye2zNeHFN2HrLzqVzQfToobP01JrI3pY7Lsi6F83+MvcnZIoQb6xZBQRUBpuYz ExInXm7hw+ki+FGHnPIs5yYF5ZQQqe3+b9zusEbjnO63nwnOcRVJ/x4R6ndMaHf0F2AQhMYdQOaG Vt8h4Sv1db+3WvOhiZ93G+aOkSTEF7oXoY7UVMFLdyV2RIrP3IuPG9uYFHIZrHN/TcGHtG8YHJzg o9BdxVwtu8/8NmmYtnOANSpYIq6QaaRKNsepwc+KZZK5T3vbWEOxm8/mzs47Hr2zxsorVDulx5UI KvjAXqjH3nX459qgQEyyk5Joc8xIZYj0gXURWD8RNxtyASxGpILq6wrhlXuvNrFcMxZbp7+VwLJE VK3K/tHjBF0Gtolc+xodjOQATIWWZ1koHPWhAApeg7fsiqn3gp5rRV0hDH+y4/Q2HHUzSwLultfk jcpFcix+1DfbsWtiVeerBAoSUXL8D88cyK0weFWM10hLjvxOB4WMC13OzyV+nX1HfhG9dHHXYlAd bXP/SttPqKTQ8SnPUY50G7cyy286OuCMQLIZ1yt700kgWnMkif5G7Vxrz+ROHzS4b5Jcf3cIF/mQ EGjPPgwH9+gwkJOLSggFLNvTvNeQ7YmIrOcSUb1LBmSZ9tEMXcItiSn2+iyO/gUPrgH9MAjZtDb7 w8GbdwFV0MN3aRcqcLDkdBE9HOOFDJCwfNDE3FXUBrDATe4FCOE2QAabC2nOcoCNQWFzTbkJMpII AAP0iJR9n936OzuELBjokrm/JjFKURxvStlwikWo1ed9HRtH8PmOoTmtDaa+to3lJng1QyXHeiaz OpGJ3XCsjOSi1R2UaqgcMKG9isL28VYOSMaxiDLhHxwJgwitW3K4azkWF84WZ3RNQn1lNeMSJPRz qDKLduwiTAxS0ZDkmdarbGKy+cbnHSUeyYjrK7WJjQgjKJV/0gJ3HrGbYTKejjyki5Vxz6JFyTmS Our/L9vBB7zF+KTaxGr+rtG2Dp5u/FVXkgpSLmO893NRUmP0q7GP4eDqnsquFEmmgRaDhDdXwK40 lXl5sB90esjjEunJMQzIXQQRpytQPvQeMZyQ0D1sZWbYfOHtG8vQ9Doo6XU/fBv9dDjapSTUQeQ7 8Bevdi2gIGsF8B8K1cDEJcFFKOdL8e063vP6xo7V43MTqijEH6H1t9UGjJn+QnV3sIWJi58eP218 9GF58uSGT88nTnz68Gy3bXt+/o4liA/HiWHZQAO9h83Z6lKY9iGOTHKjVKK4UJc831OLV0HPZ7+9 LB1HhzLQ0/jb8Fpvo8fkE3O06jFJqSx16ZYhQ1ulqg4ZtEWq6pAhKbKabhumuGtMw00E9KW8ny8B ehW8s0lcGfmh2yuDVJ2vT71cAZ6Z8gqbun6YRrYkYFSwnmXhUGtoh/1Ot1Y8cXR7NLLxRjZfgCE2 6dIWqSJDxkhvw53utMdFdV7fSEE9cYrDD2nzDcpwt71c3+DEfkhh6yS3DfMVctixeGp85vW0Es7I MjZLxcAvg+xhinYpKpcMTZUqsnTpFCmqS2rDrTprRSO09sry860ZZHqq8tPGlIYf/oYCzmWTaVjL DKY3JzUypdH1qQXsTWsTNy1ZOCcyMqr2C1YV7kp3CxjDhqTUqjpkSYoUkUuX7ryNgNX6B8qsa6j3 W5LDAoEz/0mmGHxIpXEnV9RGCXtjtYG8vEUgcpZhC4BoyZe+FxV7O2qnYGUBrvaHxhVuhFqPmMOW pEgRuXSNvk15eJt+eptpbdFGOv4hgYxaHFz0LNRavU5M+yn14dfr2h9fFJJhR4LIQK2oAd05fqNI 5+TXSXYgRHatKkOHpEiRunRJqhSRIZPuyo2iwEysLlFPIsHNSAWRz4mNtg6wyPvOfZWwqWvnHZjG /yGNEJi4XHqr2+I66KEwnT4fEnK09DkDFZm+RDWPHNpVhliaolVlyJCUWlWHLEmRIlvWDTRgo0kh aPYdd9x6H02oOifd2rUVBluRGJlVul5VGhI966dbf6+nGAO/6bnQbU21VfrLa/cvD5e1ze6CzuLJ uVGAGsw9YHe5tFLCZXB3SLkshVaRpUtSpIhcujRFi2yZmoBqOsL/s9KJMiY9BdOPkFtVcZgxbhPw +0ZgvtLRiX7KFZGdvvJ75eXI15Uv358+fftyfvTQlWvvx5+vnPZ6/PnKlblwNXoukIK2ctyXKohh cWGdO3Sv9OFrmK35m49avU5ss2oYu/iDtZouk7rZxWFsN92dAYJCPMh0ZYbm6LgjcRvBuGnFQjSw NsxMoBk3NlrfFk0lyD4H650AddwdkNwuoJfGfZCcC7BfSYLRL9uYZC3LyLip3UFRCgoAfhAIW1Gc ZvCCziaM8HHaEEkefpIwwVa7YL7gSTY/yCFdbr240nVa/TAKmRvw/mCuCupiPKODoTTR9Fxu9FjX HQVj0cG0br0hXcEZXCnhzToxuGsbgRa8LEW1m5ScVIBpRsHfJPdV87Q+k5++n3H9zsHzrHgbd9fo u2t/LhcTwlVCO8ZSoNZItKnmOiarFQIkwW1vFsiKIbMKCAT6cj26VN4MsBa2r43yAQnXVbxYF8hh xhxjfDi34B8EBHXqGq2C4J8lLhdBQpwPrUhCQgvIWpxWsS5ZqQQ/5GGMD/xDK59CA++z2aKY0lKH sqexa0cAl7ujx9DVA4TY3JqUdABnKrCX3eWr+7PULoCrBr152Z4MyvanEbhL2aRIlgSvSQ7K8oA9 NhcYzLUf/hgaFBWx6xaTj9kuMiY+c88VcfE2Epdc3yBG7zPoq3Mx64Whkhp3dw2rSx0Sd8blpxSb IiWrVpWhQ1KkSF1au+dqDlNu5AdpXyBb/nDKMdZNYeKu995yf4KgJiOJLMZbCW20t0TqhAJ6Xoac 3GDJn1lEsQoJ7EkqCYju25107bvXo89fvr0e+cad88GPBq3N9y9ke2pppA5ZkzHwqxi03LARhjav 8d7MZbtMyURBfpeoSDhwB+yVARACjKMQnI0r6jlw82M2hy1tLUVk6ZJWrdK5BWnYj+LX0l/2YL7K P2wIN4u3Y9SkDr+83hKGp4l6ZN3U74eS6+fRJg1ISqF7BrDef74KGXlGcB7F/tjSkNt6v3zcUvlO xlTFYLRAhkw/t4Y3BdTJ5mqjuyUBNPG9HbQvWEibYiuvG2uzLsmks9BPixXDEv2isROlTaqT0osO LwxyyOaUMGa/CZnHIgosRSK0S83V2Uu8aaKq1hvvBgZHgD2MTmPtCzbEluXWo3YmAPbhPrpUvhiw Frb6Uteu9qEFNmSa39EZjwWKKiUFsyi94objCfutVTzQ+oNJDhmA1k2/ikHKZfJawuxy1GnhrWi2 iDU1NwegG4tTZ5NEmk6Up5gPKF+RsGYRDLire7tRrrqSAvb/KAVs6NTYxQPDTrPuntVl4i9ufsmC gQfvEtC2YNy8LMiDZAKSIcIa4FF02XnxSw3N1bSq59Sr5MudEVGPLC4xWo/yevxoP9zRU117AluA qtyrt4xTHUXqew6uB3AyR9FDc1sDoNvDZvnjcsT5dqi90GBtmA9MvS9GKAv3o6zkSG2E36zuEFP2 FC264WcUZcoYVBdQZ5it4Y44TBbQN+wQD49ZIFzOW4vajxbIkOnn1vCmgDrZXG10tySAJr63g/YF C2lWckxM5vaRoSYkh7Ja9UfK12+4//KtzdVjAvI5wbEcsp/oJyYghBu0gwElCx2Z4ExBDtp5oZeY NeuOOeg6EFXmdhXGq3YmAPbhPrpUvhiwFrYfm/JRQIH2dCd3A3lvFZhhVyOB3ysBYLlkQyAMeyKD eA2GYOLvh0alHG/DCTED5yXt5jYsJvAyaCKCNbs7jmqdwa8ofgeFi6SQLEgb1q1H7YkA7MP94G6V 3cGbjqZMHcFlCrJ7B6hS4p0z4knvHY1eCSRiGRyRPOGWPfu1iZzHZs0yT+chOFwZGlurdDjMbUlE UaAdbC823RsyAJPvy1HrwoYoW90oGPNc0wHk6CrcHuyvR6JAW5C3cVInc48CJ4r8nh0dPscILtYo py/f4Mpz7wSCDPDAthmw5g4azCxszIRA/HnHOFnEopHtY9McTxm/Rsp65C0Uja4+WBVc8MwT3l+6 T9nH7PiienraDeYaJXoTawHEEaho3b456i7KdmlaLoKTGdwPUD0WvN3X8KBPWeqBtU7Xyc1AymGt WsRivR+L8r+5+XqFdCG1ftECE4Bq44SSJn2ER5QDCX/wA71tmxBbcQmjy6PTwl+52IJiiy4PWzX+ X60MTPW4/87K36hBhHC/fgIjkaX1borX3PJDof8F2bDFLzhwUzQVw6D8KLIGydT8YoBZ2X5s1ZbA B+iiB6yp1112cGt8UwIieRzlV7xCbtGWFgia8/pHja87Ja9hwaBdG5FmRnMFInLWzpDeF8Bh2QLv Ck3TccLE5suLE3WCYkqr3XSpjHlbwbjBqKZxb3/atmTJJzUPEO51WGqxmCrwDVINq6y4ewwxvFWq 6pBBW6SqDhmyoel+uYa48yJXDKuueHIMZCFTcDtuTAh3LkX3gabPDWGtOH2TnNg6OlM7qu8wG6b3 rjwDULz4cNkq2n7cp9+0XGSrlrcVYj7UQrPxFkWiKT+IAKR1mbWrp0R5yfYi7gLOA4YFCcZA2zwl F2qecmEkFFj/WjZBm9G+ccendUHJO5BZqx3qXByGOuZxKwkOOdn9NHtQArk/5Q/Q61Rj9qc02nvO jyCfHykQ0C8nMFGQlLSxvqpMPb6BynMBX+Z7ypTRT1KafK5IeYRyK1Apx6payk97DhKeukCeJ8UU d+sHDdP+QqRgAGScwkwN044HCQ6vSAGC7nVtXDDDkU+NlMmMNF6bFr/Hs6fqFdfHHQ9IMfMilqoq EZc987En5G6OOmLjEYVjHsXB8MPeGkka4zoL8ghW+HNJB+QIdBD3tpt4ktv14oGsk/pxt8qORqQ4 /GjVreAAC5lHxI7vzXQRHg7rHuhIOjlO20xR1gIYuyk4Hn0ZM/t+bgHBjSUVMlCHWoiVl1NUbslA 1jE2SHosjgURTQfTi48iqbKxu5NFRK/UNz07IHC+hKbyqpzW7WhB5mp75jmDY2AJMt1Greb/nJPo RFYRc9ADqiyWcXawCjgXUWO+UW1h3eOnVqq3990h7fVM9fC7D8CmTBpry9vD0sP1YoF+Ut4Y+eRC 5XJvVGpo9JwUmJdJOY17WCIN1C/7a8nXpfb1zAg2pP4mZF9WMatLGKZsZD6lfis8d6MN0qAbnh3f SAIUnRXTDdoV7QHnPvMNSsxT1YePFk6EMy9AYMT6NnTXTJNADAuU2qB15HAQel8jKiTsoCAPyHOG EQgAqvbVPk8iaDUW3Pi739hbJ+8/WhA9qEdup31q7qGS0sSmtK28Ejx0JuYtQXt5AyyABypnapZY 3hOf2nPqrftlChCAWGzyWJzjjEvK/uLyU0YirvfEp5amNh1lqzEoNohUlzBgh8oK8YfKH+J6aBSl wT6HOyqem5k+8rIOyeuR2r36UAtGF+niLgPRhfOsWPeam2CZHVmBdy0iGFL1qqwAG0iksqT+xTW1 TISk4DCVcbICe8n87lCtRpzaOdDsQytZAXLcgyGrOqqsgHBVQ3YLzCT+Z4jfX7wN9vnqKJ6VPC6o 8qc35f4Nf4zq1PF4NkjwUx+6B69aBwfcohwq6v/Q2qw51Chpu0mKfvJLqz4s63ebInJPaE/RwCPt keeWoNW7IKmbtAqVUhJsVTPtohLxrtZB6JJCz8ZOLZQ0sb8kmvkg6h9Q8iySem2mMaJ8E/sB61XV LP+4J1Ru7/ppF6lMmG+2zlmxd3n0c+nLinwkf9fzcQ5qtqPxE1K0EM6dwVdf1M6LL6ykpqOWUQDW 8jiPx1FYs7w1URhhD5ZLcpNPsDJ/LawaP5jpdntN8OQClGqVP4R/5EztYwwsWJEL0YVEsoonkp8L WA3Z25TfGPKl2+K/HVVyWfLqdY5Uk5h420kqDHjC7Vj7ilTWvaEw3I7zUxhZYR3Yxgq8S/7TOhO3 Xc0eylhamzmohGdw4kCSH/QE0gh5JCmuH+Q8jo8jCtp9ndP1aFPJsvGwHhVbnWCGwH9gizGMhbTC BavldUGIY9KHLqcZVDvPQHrDQ9plonWLnTw3IRw4oWr233esSQcmNzvlb+8kIj8tdhCi/ahtBa7q Ea7ElrAHNB+e8eg5YcEkX0cpAqzEFL9EeKYTFqIpq329JKlMx2DdHBGBKASseL7gcfw8pPf+2L6H d5U56Y6Z1BHrfiA0zHfJsJt/jXUSt6CB0JbdMNV67o4UrC/aA2SfxfkRPM8F1wTFtQm8LhyJfYe5 pBl9BmauTwHGk463QdQpd7RgKIVZxICRZXJpWh2dBHlVQBpzoXXoHpX6NCIDYJIbkJB4pW8sEY6X SW5d/L+FzCjMFINmYM4ro/UHsMmeCJ6Ug/zvrPx5oD+oH1uVMIfKcWlsCIZv65kTeo1bHKLtOQCk uR9WFOgeahdvGxEedYCZC7BjAeM5Md8jm8SXNYNW7zsC6OTk69p5jR822QQo1H+RBdk9x9UF5e3P +rQtMFlsBEEwqKmDp7Y4h0QiCz7NZXIIdzwcb3mVf1KRsYPLtsnShG0RQbpV1uco+yUZglEJAqu4 9nRp302o/yVPGOdbzXmyMAsQlc0zfUQHUqP1NnTOSUlqlUXDIggnr18YPiUgkdbBXiAZf/I6Cewo AU5BYfYjMMzUwRWi7gk20tQJbQXDwBATAqSRRuWKO0bgbw8tEd2k44XcNGXR2uAunJnspLLwoDpm TXKSXKVFPyPlpXKuxjEG7t8P7/LsI5NJ050sZdMvnVxQRYu5kAib6nQGi49Mrh75PcPM/Xt3Se8/ pYYHTCpxtQwJGpip27W8Iz88Y1BiHfCb+qkUZyAG3Gsql9m7qEYkyYji6aaEnP1Prk/IpuTEB6BS IF9MfeJ1G8mho6gzO3EyOyBThuDU8ivGckosOaXfR2bONDDj7E/lv4LBrm6BdYtptpTN0Q1DEmde XXv/Pp2wZT6hB7rSJr2tzk3nynHAmVLox8jMwnMrD9awUYg8cga8OfGRmtiaB+8fdGoHGKW1/Whm rK+RAGndbKDf4cLe05ygjH9TKyusWzAROt2eVVVwh99DyPnx0x87u0uOMo1wOTZZPLdjOH2vHVQa 5PGCxw8GQr8N+XDQfNT2i60q6ah36weFI19U5WmKOzS7+NOXjFjqZZO+wpJVjmm/8ndYzWHOQK/A JmqTBEn3zd6U2KrelMCoy1BDPmLz+ksbtLQwl/L6G/MnbK5GRO/7NG392xrfgOYP2MHz1aZH1iam QxM5kjvhHw0JzKxzTmP83LAEI2eBnTwMPiMGXhr+mqd18F0ToBGHnr2gCp2TLZ/BAoR5sGNRzNSA 0LzNPY58nI7j7DBj2eAEW9koLThYYNZBsCV0jbFUoWJWIBgMXs852a1i54e4iGYknSw+9MqRRTct KsaYnbNJJ3PTDwAPDxap1LSKVC+n9piCrlz/LvRXzCroTyerzPt/s8J/wtZQ1eP98YBkpgnxORGQ fU36PJFd4AamX52NMLGPf3jes6J58HkpA1BFqmlsfaAmhUW1K9c7Ro9JoKIxVQrNeJYiO9sPx8Tl 4sPW/9earu5oEpuazzLY2XPpvAAgpqQW1qpXbZ3MlL8LBOTU2FyMAztkosZDihxl0KlDu9bgu0C9 UgVkmVWGz4JyObKsGnYOsKN1Yq0YsnVytVxIv4sxPegs/LRT3oLhnesK7VbwUL0cgvHpAHpLyoj8 i9LSsVNzBQXCn0rAeHOpCy8HL5A59wLgLHu8MJ7G3BvaBt8lCpcRYzCcZeLlAPDuu4EOrqmL1y4k RAAgwAMeVjwW2CryNtHmMKCcmSX2h6UuPG3pzNldnR7Z6riND5D8rq6M/Damumwlgi78+irykuwO O973P6s/Di5PwvDV8SOIcoR8tWhGsuZYqfb5IoIEM3yWNfpHx7l4M+QOH+pZ0zbgoWSpnCGaXaMm xd2ewiNWTVxUnkX3Ac1454k4JcybGCAHGbt9bHe4G4kNmaxVLp4seAieOboBj7EC2UWof+NspKiP 1jsZUMlkVsVjJDVuZoszM1i6rY3r5chJcoUJKNcvkpOQ5QpGOaBmjrIR3lreI9mEhr65Ho58IDrm 2M+NAnFoQ/twVPIJ5tIPlsSKD6mK6a5IpbP6Ew4ylgdSXkkZaMgrMsSAJ84ghqYZzjZZnk4Ij1LF Y7Cb6qg9n+RWfVugQtmCSzK+Pl7G/rd2RwVSamWdCR9G1lOdG4oBDzL0UhfO0FPWIfC3LDPnG+im xjhq1pp8FSdG3HNI4tQZxLGzJsf8eq+vTznmsGwoj0nV6TTPeFTYnhsEZSmWDkqGlufGHPabdKw+ ZrQiR0SLisD5Sj/7wADKtKoVqzqOLLiiqlxNTR/Cxg3BNeaV8bM2c+LVqP/PUbAfWHI2JxmSm75y 5MMvkZg2RZY2axQ+E+pRu23GGWzZ5ZvJzxDT0eQNXTdAGZr2nm3MFAkc2npVgcMvpXg+4R3IP3YK 5RvpKHsZ3SAWrE0kRhTkC0UeizMptp7UMdlmJFjyfvBP4NQWFM47vmmZcjaSyr3qpzz4MSOetDVS uJNaR2d8Htvwx0PMWirOYVHFNxf/4JXpgn81b0mOIg3rpzbfbeMekVSkWhlpeZ40ph0KCUcFDk0p W2KlEZQvyNWzyGJ3VLH+5BNncrnjdm+YJE3U49dE6M+F7HbVrgDZthUAx/ZAUMmKEcBeuuZp8ohc C39/iXXszNDZnh0KWGTPZsCDQz5aiZ1ilGN9pgMjkpfdpGqcMCM6ohOy20+0UAxdNUIuI//lGv4u mzRB4C8oG3CqTMe/sUwZ+RfQ8X0OTkV8ere0tH684QqZanv0Vi2hI4fGk01XUMqOIXvE8NCHwPSF E7/+Q5oA+hEsplxu54KPBehKqr3PNr/xYel+Mh+JfyfV6HT6RKgVQj8OZVwQZH1ct/tVe/mFkYJ7 csqsPmv05sU9fWqd6WpqI+9jxunJnzf6bJbpSNcJ6klX7zeutPJkBzumjp0VFnQxlsWcvIQ1NJfA Orb4ew1W6oLvUkNf6E1U6mtCnTV4yZeZjYzSDmhVarIDlGqsII9hmTuW6HHzuLS6lB6Z/F6snsT8 tVZPinByIraoLDpqb1D0eZVrkx0Lg0zqTPQTfgV6U7IFCNL9fobj+u7reV565A1aHOjR0p++fvE+ yCi9dL4nPYRz0NgMIahzkGJyeChJ9zmLp0GgpxRoc/jVy0zqWEf8sdXtdz0ixublMUqxyFIyGKSI 81XQZEE16Ic6Asfg0r4jeeaBLeVF2do4MqGz/oOnq5NINgcJF84TowBmH6btI1RkW9rROmX5X2MV IdqdNaiK02Yn+vSKVEkHpOdKmgxLUaQos9h675pG+QRTITzN4RG0UTnuHLJ8IxFZI+gC0ffqs+uB zo/SlwRhteNJvy2OKZr3et9PnDnyB1aW+4qew/8+pWyeTIz8EDaIgTsjQprVqR5RdxBq1PCr6DeP YOKHSNQF+FF+OSUpG7QpU+Hz0ldZ8KAMNNm/p/JEXHguXZTxpmLI8bBONjLbj77UL/zYYf5CBcr2 LlBn0c8/xFGXVPTrseNv/mT2NoKx+5+yLZrGoe4uPk0QyRre6B8/u4XVtp6ScDwllc3+TgUnO7Qt y4Usqy8XUDZzdSSUsqtQXNn3kItyPEd9FbmTeLtulANKR6ks2kihQKSYsWUIURl5Nky+XE4cM++z bIgaDnp6lXjBPdSmTY2vNqDjjyNlzRKbsfUg8Na+ccUZ3BbAEFu6pFWLiKVDWrWIDBmyVavIkpq8 dQkUXnGpLAzyA+54EODjQTRtY7DaB4cpCIUWjMdo8Sk7pGaGw8+4j9V8u9TofNQz2LW35eI+K08B B23mJCbNUPYK6alDU5bu1sNNUYc5gKp9wUvjSw2/OSkMRGsUKn6Rq2AuiHRmGVubTpzq13GQi9Th Nl6B9Bm8Po1nh9PJs9qBKsoro1cRp6KE06P1xhtRbCFO9SFLUqSIXLo0RYvIkCFbtYosGZImDDcj bYUG1nAJ64NWQN+LmbPSCgjyjmWxI06Tm/4yb6MIiCUGlTAty3FeLEEXP/DW2WVQdwy53JfH1DXv MZth4AhFw691zbLcsD1cy9UTSejlbrQNf9WZKB4Wv5onOU5IkSA7GnFY9fxLFYXOfB6o2I251grN tNC7vzWzbjZYeGPJFPBGlD8M2S5F6JKhrVJEhkyj4WbyugVREiDiZnXbCeq2ieo2BHUrBHULoMjR R6V6pNJpGTSexSO6Cv/GiNqLZ0QhY1/B2fInthHcmv9jNRb9gT0zheVQ3NTPuEUOrFb8ndQcQgxL qVV1yJIUKSKXLk3RYkJuRoE1kTcX5PB5OS6n93bDGuipm4IJhz8sOWC8QMu1Il7MATiLF5zegJ20 vWcEh4VqMuAwpkupKkVlyZJUrVqGDG0VJbKIgLGtcfVxDmCbToFPOZ0GX28DvtcZkFvExqIfWGYm lUyL95geDBHst+LDTxP4aJ3WvySkt6s5/NqZ7DkbR+PkK9e8Hj++duX9+aMr316fnXrPzmH46VYI PIbrMjR65ekEqrOZRszbBn9eOmk0RMeasdiRYi/RRYPgMp53qcAcSrNlzSIWDye9K8z6B67w8mwa 48ZtBjzG4CtDl6ZIEZl0aYtUkTZvqwp/GxE/XFNOBHQ+azHUfYxD8zOu7ygW+zwZWBrF3uLtp5t4 m5ZedcfhzNKMoXMLTnv4+DZdU+Pft3g10RjeYyDZ4mHs1kzwD9F9qZfa33qh8VkrASd1i68Jd5af mUYQFdoUIuwiB94bfgd1iyGWtWgRmrALBLF0LV1Hwnlt5nu+zYb3Nk1HTRehbmveb1NJlS+JqVH3 NkPOwrNYPPKvbZpfCAvTI3cEpw58WJCbAxgZvWPoyx5UV2XIRKODipnUhrJNoeVAT2ueqWPUVS64 N3zNyqNKMM24YyBdC60QSxiyhh26aLW7UUlH/G0jysx5esTrxK3Yc55eO2QsoL7/Y0Hq8GHMkysP oAqymcXHXTSBXo4ZaUl948ULk2ezCV5ny6p7ct2LBciiH71V+Er1ABTUlDoEMtMGwtZnLF3zfqvb qzosbnvInxsq6WD74hRr09A0sOeQIcBXQh+lxIOQaDkvFH9IWQXo3SNkBsA+9TGhl1k5jxMgtC+n jx99+fJbMwcznzqqRHRWKVtd1APCzG0lBWDOLs1tvuCw+1YUkP6Yc+r6mFMSa/8HN9PqFktyOg1L bvPsVRZTzQ0RojGn3jPmLC9jTtR006CmWqRaabl0p8dtgRV6Zw4W1gHuJNkvMkMac6L/wP3I0H+d EGNO0XKQIXRAiTlX6LUhH3NSOmzJnbF2ziQlDy9HuJCqQ1aWLEnVquXshT5EgW7qk5YHHItbg6Kn L6JKUBjqsbX3ttTnkLVbxOBeHmISPh8mehcYZJwh+Qt2UvaQRAInekG0mf82K/5+nrPjx1NsyZAW KSqbLmnRKr2FQrGkMf11jmGaCAWXFnh3jTrIRHGioKZXhJuGdHPjF/XJrmUYgFWgB6uvaOp9GNpQ dPzdImjvNpLC3JTlmhB1a1ve5DwaNIbsPNYxdQjS5YJrx/pw20ic+atdNbdz2nDjCe7ZslBvg9tw GNxygGfwMp0brL1RBxO3hSH3YCoVd6Kofi59edEH3OQRbuYZbvgKN3yFm5EtliWDHS1mhZvpnV5L XyukxFCpvKV6FwuiSOT6XBzpg12k4aZYRcVr2ua1cL6NcgQ+ogDhlEHsQMh2qapDBm2RqjpkSIqs qkuGpkgRmXRpiwqDm1aH3oyo9IMy390tou+meaK33RFuBSOaHyGqZItY3a95oo2yJlrFt13nhgcz H70qmTpvEIueLhngox2IUc+HHNxYnaon1R5GRVha8YDZ9NBbD5fB3SHlshRaZYtusRUBHVmaUtNU Y1vkZ3VdG8XUSO4cQAhlUlqkqGy6pEWrytAhG94KI5qZ4AQ7HNKRyjowk6CuyaTcptwCwahc7abx dPqnK41yRDLH28B/2rFqCMQG5HI5yG3xpUbNnlYhHbtcoWhGYoAIDxHxSiRcSskjgyhhmZY3/gBV oT8q3ogAtyV3UgBV2U7dCG3zxFHV3izq3PpwM+NjY4d+TJ0L64Zbp3V4Gj+OIu0w6X0jOavkSINx HYH8h0dmBnvEnpYnXGKyJXPjwkRJjp+eFadretoMSN3R+xcngvPCpHOK1MCEjAINOKA70CGjYPM1 Vh4xG56vkmF9I3Dat3fa9BQf0NJIoMd7y4f6cE3V3JdIrzqnCEmAiuGBONWD0HmWPUGcibZ2kSK6 dCE42x60n7/d/IBltgXP+xDqHtvhF9KrVNFIbyQQ8+UGwu4KkfwgQbSsyKvLWxANjESgPQYx45aI PSMOIp9LCNFYbeC5ObGuJkQG3uEspoWu7A/UQW0IqKhe6BCQYxDMAYaYHItEQCwNe2ZXfylJR7ND oXFuFNTzaBRUB8QropEJ1pa88Gc8n2yMayiWpKUR5Z9uhF0cj6B0twrq+IRh4cCh1EK1Ier1tIwx m+5aBBUoDonZVZJY2NX24ASaaS8uQQADC4gyLMNjQUWDv89jXN16UHEcaF8XBS25zwghjlE9aCtL Paj8jBu0j573h0nMNveIiovGspVBi0tYgstA8qBNFz6A0d4t0WOERTKWIrM91heEBx7H+Ftk7CeD uj9kHOkQpyIEyBC8TI2ZnTswhBn/fhnkWbaUkXsN0h9vMrl/kh4lk0VBgR0nN8qktyGY3KuQfhUM i0veqI17uZvR/6wi7gWKfvEw/0CSwizCjRjomQ4S5SVNYhFut6HncgW3VAO6L583G/CWzkRj3GW/ XQjR7DNYKGPUT0YbYGfEbSxtaHYvRvZSdOM7zggFRl1h527Q6YymmxsOrrqkM3YGs6NFuoFYuwYa zz9K8NpEwCmZjDrI+bi38bNQkFHVxNizW16zb1c+OL9An4FmAKIdU2UV8PUwBPtljkZwmomH4uF5 8FzOPILArk/qa5L6DddBCTEtQtIanDESIcvyTmgpX1idgXXWEPNJz0zDy/dMecVTmf3a3DlFoce1 PkbUKrzau++P1CxCB8P6E8z/sRadYmKfl5fBl+WJUEphK0xLrbXfxJ6nKDGyUlTRgAmTgQeojMAN dMigu710/o6Mg0cA7eK29tWNGiwCEBraC5NhmNKF+XJXNL/2zbRpuah2PXKGQ61QAAiAod4JPh4T ON6Y8jA/GOx8BwZpemcajjxYuBYKgbTYQ2/UYABG71oBX3UDgVa72MGA9LvsmmPs5jIiJVeYsRMJ DmK4YSIVD7P7Ptb10jGvXxfO0Nj6RZ3DiGyz+yYZZPfI1JGO87AKK2v3Onwbz0lvbkcS0H82B1v5 CEJKNg3oH4eHZl6E1oYohCpsEWSiRjDLsnvPYyn8cBKQKQSSKWLWKkXfVECQR0RwQo+HMmuxn62L 9DJZU60fGEKYaUpdKazRAiU6CCMoBxoM/dAgkG6g0e2/pQ3KFmPkR6oGpnPd6F+x8si0C1l/j5p1 aIqlEdL9/7sWodO26inXx0CfYsMgKq7yf/O/79nFXWO4YzmrrvSbbkP027D9BsUkNf7cjQSOzAWe NliGyZKqP76DViCf15F69HoxzKFVocs1UtI7EKoTLFP7Vcl+Vw7EnzrtBGFyJjL4iXALp4XS2wSP Ed093U4Az5VvH3/gkSaKbbW2xJ0ldfUDHpEnyn/06vBDHHMCd07TIRxYoMQMp3NaRAV9G7wksodn +geqG6dLwK/a3CKKTjzGF3ChpqGIte6NjVgX1lwsa5OjIri/PdN0vr8VoVfaUHBzKvZpMmZ29tTb q/HaaLJ20EkiL3vWhqMwQj5plqW1bgyIFvOTR8LeI9vE9yWRPtHo3ey9wUH6TwGZTThW3FFtqPB+ IK0OuPSOOuziPNAsojmowiu3DJPbyXt9j4ZXJbf5nWTM5Gh1p02qvQqo3qqfJyMN26sxL70YPD+Y XgM8kkxO4q8iJhwBO+mG6/THcmNdL1X5Oq1wKx2jUZWqvTxNL805/7lpqioVBOFqQEyusZJT6h5Q A5DqLiqSOpgsMxOPPwL3T1IoDuaYKB9rupbstOBb6nSjYOuN4vUJA6aU8O2WQjtCEX/XUuAE87MR Tu7KFdEIRt6N6dZl5jtIQzIzwZ+blxZr5j80xzpEWBRQyDCM/cm6Ru42yHuXTtnNtoH3OXnBr677 2Dham+3xAtCu/h2mQvmkAS9VDNj2T8Kl2e4olDpP8ncXhbNjdA1mD/QkA02eDkp5RDQMnCGViqNh V/s8I4QTdn0uQk6IQOPgQxLuH30h58sA+X/7ZLtxzxtPKdEXv2d+O0g/9N/kJLid4N4fn5LF25EG XC9tmPzza3QD1cImk9SWUjYIbAUCuStIeoSE3RinfU/WT5XimPF7V01ttCyXZg9K5DjHDuuU9zBl aHM7+qfo1fwNUW8ttS78+bCJ+jy9zsolVsheL1m12YMRXtkBUZMUMcb88CBTVustn8K5pMrAc0Iy Gx9gzjAQ2zqJRN6BIojdVCTa8rIC8yBFAI/RPtkblM59VTkP9baK7Uit8BUgUqROQBGBsxGgTvhP HnhMgLvdA+1N2vjmcu5TJLnbyGWxzOa1UqIZiIsrsSsLYtVU48nSSSpFVViFgMog1F7eBu7oFuwk 3xYR2lPGfDxPbC/JnADDWHm8zweR8XfKwRN900WvfyX0DPO6ixAsCyIhH1FZxTAhXtnJsLkNjSM8 QO9tdGbfcVJCEt714nZriTeYsIlMRKks5d6L5MtFMBNgWL8aivewMNmnQ0oIkJ09TGT+ePhMo6SC Gf54eIN2ftl2dw0ajekUz71jJpHxxB4OjuWCw6HIyAZwLpeD6L9WR8DaZ9y8uGJRhoZ5OwBDBArq K8QsccCDyYG1lXP2JjEAe32+ZIlo3MaG7ll7Q2s0pleuB5aMqoA0I+zRmU+WKTnNNwlBoB8fyiYY ToOrva8y+j8g2J0v8nVfMiAy7h22xGZu2Gwji9BGKBUv29+/9q1NcN+aJC1ZPKTuykuBeYkKXbAJ TVz9M1bOH0mdHhYBBKB0uPaqZ0Fu0JI1Dtm6nCsph9oMpR7XPQhIah/ZmvzA/4eS6zupr+sGhF85 rJlWJf6Aji23318RaPzmfDSQE+4BYvl1LcDQTaP2KmZZceYwwADtIFX1cxMGOXHC1AUKgkgC6GOB 3Qu5nglH66twxR25iB9cQipOrcy8MXHfxiP/3YcVhiNO0Lnfga4xs07VoXILag+xyABXlyAWZL5x OBxoBj21Yj0DyAtugmAgz7DxbyOsbH1QXiLO0FeNFAmzLx7YpRLpDKRAwiiZVxIzya4/ZFlbOh6S IinExiLJAPQehaHIw/HsxH29mpKIC3zS8cKLYd41C2K77M0DV1uKZ5YM/ZMvkvppj6GcqGMMudg/ zyLsQ5gohd+exKXVHA7dBIlXgfzXwfnZN6NX8ncP3BqGHdRw1ZpyF/iLg7ppcQrNQNevccv1L3S5 n8yTurxs10uL0INBKR+3MJ+u3tRAM9GT1Lbr/gi/eb+5YRImz8I8lJqy6m6iIm5sYnBqyBDdgfL2 niJGUEbcHFs7lCE+dI3lozfhG8lE2GtLA26smh/4wBjj62Qt3kq4TH04XfevY70MHRe+PYtm4jtr rp2QIFI7Nlt7RSpujl9dvX7Ou9vP35rMx6gnNdBMBueJ8bvHC/RImO9JMJ5wSdj36eR1T0NBJnZ6 NBHwNfUeWEP+q6WUxqrYTCrv91nBqSGfQT0pQ2cjWn2/11By2SG9bquEH+J+P/0i8xNa736/FNUW K298kG7Q12SZC8p91+FP4ldNmM5zT481IfPRy5AbxgnQ6/MUz2idJBBEXwZ7oQ/o/CV2lin5fUOJ e6/4qCiJ81EE8P0Dk+/rObLXnr2ufEZvhB5urEXavQ7yRK/nqTYuO0ENN/fX23bAdX0JWZGP3oRv JEVh700j6sbsPzB/RgmIwv9+eEiLEmu4OIEuj7fr1Jv8PucQoF7Y6iDUq6BsjaIGZWlDGMdM52/x 5Wouct8nV61XVJHsWrDr5MTnlzcobB7CTS5Wi/Igo4WuydwiIJIrFC12OXVY/hu6Kz820IHe2wL5 jF6oOryhopF69Xy9y24S1MiifAJzcRfziCZ2GUf+pumqbEvdmz4nVQmuoaXfr+uVq8BjpNTGGjLV q8DoFWR6zPLc31pxit3Qo3oW432zdmoQ19SYZe7fynGIv/fmCF1rrw7ipsct65hfa7WvV32EXvSy P4+kElvO/Usbzvjx3jGpa82WQd6U2GXcX9rhHDfvj1eja5rfy44JPADkz1P7ZWSG3lU+Rr3UwGcm mtHu9Grt+fTnnqHCju1lNVQU0ogAF4Ur0zR/L7nUEiW9xb9TCV3trvCE1k2v9yR06ZJb7ENCgInM TFQf8B3OgK7f8cvVXHD8ftNujewJhb8pBemYv9KLi6M5rzxTJvTVfmB7HssWMqs2pojqyOf/Cp1J /AHV+p+tfPZPWnfKH1BS+5pUk0QoQFr8sAnZTTdB87VyGQNRSdBgVyHo2cgBzoIHWejskyTcoMhp r5UhH1D9VGezEb3iKVo9wXS02Qn/qxPyJRITIIOASrdCcOXEN8Te6QUhbIPmYYPtI+7NqeZqr6hX eIyMNYtagD32uYhN1TO2nw1nq2aoH2fx5vCgxzth7xMRKhCGqenNkyytu7zTr6dM+ZltS0+RqW19 83+nj+Ipx6+xv+zVf7vzQvbeh+pjqdf0KGTXEjh70QU6Nqn1CcHhgEasB4A1u/6NBVZYIB+jXmog MxOtMiH0J2Ha2cZ3elFiIFeT5wwDD6vRmYBT1wXGpS++WoiqLkAHqlP25vlapupIRUg1zx0jzSMv XUzYJfS9zOF2I1/vvS983ciy7GUaw4pe1mDU/GsY0J1N8zG9pr7eqJReb6H/DnA7xkrUgnhu9H9H /z3N+dck7+sGun5m5FCyPEKR8tkrsRulEaCX/ZnzMK7eOT89GTHr4ZjvbJ357H34xmmll30D9NfR 85vIjldcOaPF5GnKqFa0h3R2QmK2jT3tM7jRoXaYakb1TE+WgLxdvx/itFU8/gzAcTlgMIZxsn7I cDFkqR9jyzvX74qA6pFlWF9hsqL2gYyLoLKEtvupGWP/+2j18jjjq00seco7xvU7bpmai53zTxU3 gRB0TZXmjIny+aNeu3rISMGw1EHq8hwWxVemH/xhQphcc1ktAyxSPkz9FMhnPVplAB0+gH5Kt+QL LBEFvS7lwNi1FBZGJ2FkB4eXSOd+eXpztlFDLobn7Qb4ZE4+2dG9osYKGBaiJkKEmmXmw3qb6dyN FVMvVz/SM3RpA3oLX2cjEHGLMn+HHQUW1a0i2Z1OJnFdht8JlCKEkMhnmwAoIgBQhILbBuQF1Aa7 qmZ3VSGo7lZlVlUh7hKZCYEoBCGlptlbJRDtjrlKiBDMEENQrRIiM4QqIUIgpJQQ7hBVQyDKzDT7 q7oR70qpUi2lKnOXqCoEI+Suu8rMzExVCEJUxyjFrIqMsTvGLrPqGEHclkJESAiZIewiZoaAmPkT mZmpIiIKcXf3aylEZpTZ3X0nRCmZmZmlu0gIzJndqmYhIJbSnd2qZmaZmZlCVCFmmnVxGRmDmMcS 1SIhShHijhAhQsgkVaWEgChECEilDFIX4Y5LbXgNS0EAgpqaZh/yq1SJltqI3uQdVVelNsdSyPiK eaCmNoUD4aA2p4ODalVmldoUIkQRYoOoisBU97VRpcJGBxvzQG2CWuKoMcZQE+HlPkqtyYZQE0J0 1ygh1GZLq4SaUBusUYpkKSvaldhUgwQRUVFV2eHV0KBW1rykqSqoTQga2mqoDVGrGjZUw6aZBqEM 4YphU60Yukp3akhDbWwKDUKsJvRsLm2edZaCykZtiqhN0OpWvsVcptpRKeYB1TXNhqCwGShsBAoz DazKI7DarJJj0ApMUJSIgcEBAdQmMQsZWfCAHZgNahFlDho0mIC26GBaNMnYLABGyoYoGWLYDB1d dhQ5+MhSoYLkjqLS0tKQvKWlSgiDPoDZ4AEHFkTAYAE7IAFDsOABJD0lYpfKAmBzJfOgxsZ48AAh kMAoe5SkMlVypCSp4W1ICSm5/cpVUYJTlFhlImmkKDOtx5qVwWNBEDds3LhRIs1OywIr2mQS1mGk 9AFUlmCBcgVejQKpOjmT06YkmQdip2mPFPHJXTNtRhLVAAE4ba13d3d3d3d3d3dXV1X10tLSVFVV tVU1mzMzeTMzVzMzNTMTExERsSDiQMQugleTBCxkjBPhSildaWOdNtUhySAhqdImR9oQj7SRNpek 60aOAwCEkTZP8nHDGmQEE4wDAIwkc2O7u7u7u7u7u7vHGON2CCF+KoQQdimEEHUohBB0RYQQmoQQ Ao8QQlgRQggawt3l3d3l3V3e3SXV5TM1sbzJEOFmlWlTSR5MUAEIGqilDSXSZlpO2GQQAQMIiqUN IzksE9AHDDDgYEGDTbM0S0sbRCMo8kiRVmmpVmVVVWVl1ShQvcRiac2pZZOITQorqyqr9YRKcaSK QkX1Y6EkNjhszkoOxYxgggUZGAdoR7hKd3d3MqJNQTJH+AL8gC7YCJgabQgSSp2ggQQOLNhA8yCi 4KqWQkPjQmVMyGCiQ6nQpgsDEpHNOAzNluzZHNaeciwgARF4wA7AkKS0jSGZGmFD+4EDBg9Y4SJV X0MrQnasTRcyrXNRyj0CBhAscICBBhtBEDgKiyJ2jBYnWGyhTUlDGy5MSmIRHStMRQrtQSwyhQMS hLRRlCTaYCFMBTnTAQkesINS9KJoQBtSCC3JUcLxhSra0B1tRGEqoVwJr9gJUkE4E218IJFSUY0s mYk2l5mZidlWFJlUAaKhISIOKrQSA08QqZDCpIIg2hBChYQKS5dSSilcinUzYSpoQ8i4QsRW5NVc QUihIkiKIEGCBAmSIkiQIEEjhEkVUKGhDR426vNaFEhIGUxKVTaJR2VDkFgNpCIqG1q0KYSQHZQW iGAAAkcKUiRQihZoaEtqWIYmBPERhaFNIIRsIQq0OXLFhThS0eaEUKAMaGPk9rJxEMOrgAFtCAmZ B1wjhNWigGACDpAA3+DRSKRUTKTiglSgjQ4yV9Jk8EAG0CYH4QsHIsAHyhIseOABBr0goA0OgmIl aJALJOCNYIKyK1RQUVlZQDs0GwJtiEAjPARVQRsxCKUCKkNBJdomDKIrdJDWUkp+qChSNgLa2CCN jGMBNjXI6OwSZBwMDMAbYOCABKANjecKZTCBBbwBBg4gwECLIhoMDW17e3l5eXmxEFYdwvK2BMma N1gRRZRQQgklFM1wKioUKFCgQIGBCjtQXUEAApUhaTS0YUEEl3ywDDCwQALMFTqUCtHmKgLuHhUh YadQcZVdrNigIA91xSKQ7oqMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyM jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyM jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyM jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIqC uCugKkju9aGDqgglQ1iRuA6qEsS/dj2qYu9ic/0HZhwOIAQmjNZSdKCuUQpthWWQYd0iPFxUk+hV XurPEwvpITRcUfgMIlUhPISzqA8khIgok6hblRCibiFOtXkMDCGEe1VVdyndiJwphBCEsI0xhhBC 3IVQyl0I3YQQEgJ3eHh4phCllBLCGEKMwcy7d4RUZSISmQlBSAghdHcJn/LCpfvcFz7i7pDYqUQp 73YPltwGAKDIRgHQpLh6q0ap2mSuKq1VUSVEKSmnS1fEL5JmXcUs4b+R8obw4X34dPicP5cf3Q/9 ////////4VMhhBBCCCGEEEIIIYQQwqf+////VnL/ffg+dL/f7+7u7u7u7u7u7u7u7u7u/v//8573 VFL3533wPnS/393d3d3d3d3d3d3d3d3d3e/3+/1+v9/vd827u7wP3e/3+/1+v9/v9/vdp+7u7u7u 7u7u7u7u7u7uPvX/n1Ty34fvc/5cfnQ/9P///9+n7u7u7u7u7u7u7u7u6E5H193d3d3d3Z2a/f7r Q/6h////////////////////P/+P/v////////////////8/9f///////0/9SurX/GcvBIW71f// //////////+/ef+P6idvP9rPi+Uf/ufyH91/6P8/9f//////////////b2ZmVhTtR/uQ3d68ioUM EW5VVVVVVVVVVZvtU3a73W5/2v8f7bcPmh2xym4v+1wdzczMzMzMzMzMzMzMzMzMzMzMzMzMzMzM zMwwidntQ2ZmZmZmZmZmZmZmZp+y2+12u91ut9vtdrvdbrfb7Xa73W632+12u91uNzSzD6/VJ5iV fXTLPsRln/r//////////+/u7u7u7u7uZq4XKQz84U/9uD7G9aF6vV6v1+v1er1er9fr9Xq9Xq/X 6/V6vV6v1+v1er1ex6rX60P1sqSJhYz6VL1er9fr9Xq9Xq/X6/V6vV6v1+v1er1er9fr9Xr9/18X dVH/LxTrVfXZ+lBVVVVVVVU1r+an/v//////ln94/3/O9dGtD1VVVVV9ql6v1+v1er1er9fr9Xq9 Xq/X6/V6nU6n0+n0a6mi00swfYhOp9PpdDqdTqfT6XQ6nU6n0+l0Op1Op9PpdDqdTqfT6ZnPpBd9 mD5Ep9PpdDqdTqfT6XQ6nU6n0+l0Op1Op9M/Bn180D8K/W/6IH2ITqfT6XQ6nU6n0+l0Ov3///// f6XT6cP0OdPnkj669CF6837q////////////n92PGjU+rJ9NMlB8iv70pA+Z6LbptqHu7u7u7u7u 7u7u7u7u7u62bdu27S7aalY2obq7m7u7u7u7m1fNzMyslC5mbSOKNGnSpLu7u7u7u7u7u7u7uzt0 k7Zhm+LQoW2ou7u7u7u7u7u7u7u7u9va2qxJW9vwWtucbS5tdJt4NbGQIcK9ra2tra2trampqamb m5ubm5ubm7uMuYyZmZmZmZmZmZmZmZmZ2WaVlZWViXJycnKyDTEzMzMzMzMzMzMzM3LhwoULFy5c uHBhwqSKjRDmKhtkZkIIIWOMMcYYY4wxxhhCCCGEEEIIIYQQITSHEC6wTQe2ITY2NjY2NjY2NjY2 NjY2NjY2NjY2NjY2NjY+2+htlutsVWxsw2vGNoNtzsk2xMzcvJpoNsXMXFxcXFxMTExMTExMTNzd u1U2ZG1od3d3d3eXl5eXl5eXl5d3d3d313ZLr/KOsTa4NrS2tra2tra2tra2tra2tra2tra2tra2 uYZruLi4uIZruLiGi7hmtTa7NrS7u7u7u7u7u7u7xMji2libsja0tra2trZmZmZmZndrw2sjyobM zMzMzMzMbFRTd9dsbTCJEVuutSlra2vDlmtrRy3X1hbV2tpwrQ2u9TbvYF1bW1tBy2tTtba2VGtr w2pqVGpqamocRJbBHZgQs+7MwDdTYZ05hLgj6iYi6q7K7M4kCmGMUv1/QgjJVBvS3VxYXVpaxWoz mJmPubiYmY+rV01Nq2xQTU13lUttVE1Nq9SGT1ltUE1NTU/ZJtXUWrnURqipqWlyqg3JTM1UG1Yb 1e4m6kbVUkqFsEtkFoWZWQgzs90xVO+6r8p8d0cIIZmqY4TwMe5C6C4lhDtERKJuIiKG6v9M5l1C MvU3C4GQ7t0xhOgQzsZQZWZWvUtCukMgRJW5OwRmZuZS7naZu+/+QTtiVXbXS1EtZYzMUghhzjtV QnZLGbukummIL4QM/pEP2YcDXt5OTk5O0hILy4qT7ZOP+MfY//X5ya3Iv7zEtjax/ikcCIfPkc95 cDBiraxFTj7JWi9y1SbXIt9yLJWJWVWkinx6lHqNgg6DXEVkmwgRJUKEZJGTz0AyQsk/y4hYEjmR T5HX+ITx0fVuJe/xHm8UH6LhMzR8hIbu7itm5ivmZV62waOZmUcz7+7ubuVY7EHM6jvGaB2qqnql mqppNTozc3RmZmZmZvarxsdtfKgJIYiIrIiIm82riomFZBkiHL5KKaWcEELqY5xtkPrJ+D/GRxBS iYWMIXgMoStWCBVCCCFSCCGEeOkRlHN82HiFEUYYoT4+Qri9BvPeuNoMlnd3d3d3YXzCCyFHwOBz L+R6BG2uso/2+IgiNT6VhIxPIxkfRjI+Pj6I9vnLSBpjn8QMiYiolUiJiIjIlKhGwcc6jA8ZHx+f ejE6j+UiszE+N9PWwaWqSrSGmp1d2pYOrfIhkVjF6kOIqFIwMUXVeI3X+EgWRV8qY4xPW/kt5Cjj w1ZCA9UAI6DBAyDQgAMNMALWwlAzMzMzy1tz82piIUIUYkZWrWSFicguA5eKhBxmSUmD5WOLWwTN KsenVPkQ20wdw8xqfKh24I2Pjs/At6A+CTm0S3yClSMhIUAFkDCKmfiUcMICIRFymBULIQeHkMPE u4wwYQg5DI+c9OLlIABKWS5EDKGsI4QcLT4k7pOJQwgAOQRi1FpQbAk5FrkBDxhEcICkgAQWkAvh PGyFWghJTuSw38uJHFavQk7cx6qQExLwBSRgByQFJFCCCGGRG5AUGCTMTJyIDwUtZuZN3u2Rt/wA twIQ4LWj0pfbRMhB9qiwiZCAB1yApMAnqZiRMPgBP8CbgQ9S6UHMFZjgAVfAgQMJeEEEC2h8pBUx jIYQaoEc34upAoAQqxSibMWKj/4rPsOat9gQWkRVVcXV6lcl42wMM3Eq4TbEAxNwgMEEWIIUH0Hl hoMJtAGVYS0Gaz3FUzzF83pkEvE5FT4S+sDBAggwYFRK1axeT3EUR3EUxx+LigpSVkfxoziKo7iV OFEhDaPKrMSHrD7EqogX8SJexIu4eGmmTqGDXyYuXsSJ+BiriRwIpxBtVuLi4uLi4uLiZOucQpiw GuJzQ3yID/EhPsSFZrD60H4KIeJDCBn2CsbiYoiLmwkhhPgcIeJzQsRH75KwprD6aH+wiSYEGFgQ xKc0GRUOJgABBpg0PYQQRLCyRIjPiT+EfwJpMsSzOmIpmliIKHHxGxasrj534hf/65/QpGlkYAFH 0GDBtY1wgpD6nH3eiEN8rAnqUQ4Tn2qy56Ok3q5AOSbgCRjg4EEEfIEBSGCB+LROFRS9AAmIDzMZ GxTQBg4eIIFxAIBkMviBzAYOiI+Ws8OiETDICCZYoIEHHsAHDR4webKKPasqJn4TNxwKFLCJN554 iYuLi5fCIrGQQUb3FazAwCRaVR8hgiYijgcYAYOVoEEDDWWclXjzXhhKEMcDhqABO7DgATvwIi5I nMRJ/CQ+Zdg8MBUXnzFMfMQw8QnDBBkeUpYgDvEhJvOgDBWfXtJcGDhoUIEFDyBLsCAD44DZRu87 vMM7/P2xYsvi7FODzAMF1uFDRIf/QxBjC58jFj42wqcGIb1CuxsseMAOmCQLjYDBAiZilGRwgVIm CzcO53AOZ2LhFS7SKjw8fJwRNz/DNrznwYZv+IbvRyyZmjy9oBs+YYmeCHo2sPAgzRvqVtdwDddw Kw3X8CFUg8qu8KKVXfhYqPpWEx5FGcLH7OFTu2r2cNpLIyWIhp3VzK7AzGwIPnIvOERRimYupGI0 nyhaqiHqfkNsF2EbIhSSvO8xxghjjDH0xhhju7u7RwEAvrdRr2ZGolbhU8rMrII9P6LqE8g4Mgpl hxGGVZamqqriUsPKyszMqgau4MDcq5uLu2FXU1GLqqrqtZEM5BAu1C2EcJxYhgIFVZmZmZmZmZlY VVVVNaqqqqqWUwtWiVJVZcupVVVVdVW1nFpwkCB+1aKWi0BBxIUJ0VdQupglblxVuKoqbv2+yokM 8eOsW0OEcnc3qyqj8AkVQkgeuKIyfMgKKrPwudrDSyAFhKz+I3xK+MkePpzisynmQYUPVlBCCbfw CeHNPZDMLLy560OEDrFd4UMVrh2OHf7Z8SktPqTHNcXAQoQYInT4PDw8nCz8OnxYbfUBdRNoKHjd 0ZgHWPhqUvW6G86bzaJniqdRV0dGAEQIQN3UTZG6aW4xD+rqODRvi3lwqT2ysV9XNzt6tFAAFL+u q467OfBqlhZ1dd1tHeoUR2J1XV1W3c3r6raurVlZrGYidiGFhyB1Q2Q3414n6gI2X92QnXEp+H/m UkL4/z9Tu0MgRQjiEHd3u6q7zCGIuzvEUlTHIGSMqsxMQkIIzKWMgViKBjEGIVX/HfPaX0omIddf APRIS4a7EEIgi6RZV4li4ut1dXV1lLc6Xk2rm7a6y6ErKNxN1U1VVVVVVVVVVVVVVVVVVVXR0dHR 0dHR0dHR0dHR0dHR0dHR0b2O6Ybo6OiaVxMLoZuio6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj o6Ojo6Ojo6Ojo6OjQzokGpKOLulG6ejo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo 6Ojo6Ojo6Ojo6Ojo6OjyTnd3uukbal6lm6Kjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj o6Ojo6Ojo6Ojo6O72b27ERqMbu9ON0xHN5ety7SaSEdHR0dHRzdFR0dHR0dHR0dHR0dH193d3d3d 3d3NzMzMzNx/95ImFjLEp97c3d3dn+ru7u7u7u7u7u7u7u7u7u6uV//vD3V3d3d3d3d3d3d3d3d3 d3d3d3d3d3d3z6+6uz/cH+ru7u7u7u7u7u7u7u7u7u7uT/3/////k2B/eM/YH9Kf8+fyo/uh//// vz/V3d3d3d3MzMzMzMzMzMzMzMzMzMzMnASX96+P8oeYmZmZmT/FzMzMzMzMzMmf+v///////wsh M78+yx9iZiZ8woQ/9f///////////8CBA5LAvPzRwKF5mZmZmbl5NbGQIQJ/ipmZmZn/qfOH96/i z/lz+dH90PlTzMzMzMzMvLu7u7u7u7u7u7u7u7u7u7tb+939fq5290PN+6nd3d3d3d3d3d3d3d3d 3d3d3d3d/XH/l10sW/6yZT+1u7u7u7u7u7u7u7u7u7u7u2U/vNf9hA/930/t7u7u7u7u7u7u7u5+ and3d3cXa19Lpbb2n9L92H7OuR/d/dDu7u7u7u52d3d3d3d3dzMzMzMzMzMz7+7u7u7uvpReVV/6 D31KVVVVVTUzMzMzMzMzExERERERERGxlFJKKaWUUgop5Xr9LCEEqein9Hq9Xq/X6/V6vV6v1+v1 er3qp/R6vV6vV/2UqmJQ/emHVFVVVbV5NbEQveqnVFVVVVW16If3L/2c9XOpH139kKqqqqqqZmZm ZmZmZmZmZmbm8/nh/FBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZtpLlT8/+KH///////8/n/lQ5JXP zQ9/6P//////////fD5JZeWHNxPz0/k55+dy80OZmZmZmZmZmZmZmYmIiIh4PB7xE3rxQ4iIiIiI iIiIiIiIiIj4YTziEY91PP74EfhR7E/9//////////+P43HgwPGBx48VfkgIIYQQQgRERERERERE xCJ4PJ7U54wfXURERERERERERETET/3HD2+XglTKy8vLy8vLy8vLy8vLy8vLy8vLy8vLl2jRouVT 5UOllObVxEKGCHer8qlSSik/lmM5lmPBUkrZUkp5KaWUepV/sHyolFJKKaWUUkoppZRSSimllCLK RY1SPrylkPr0Q3koD6F8KoQQQgghhLu7u7u7u7u7//////+Pt1I+o3zO5XNZPrrlQ6WUUkoppZTy qVJKKaWUUkq9vD7kQ///fzoFIScfexm75MMnH1RVHar6WVXVocqfoqo5kjf1c3mRSfJTMjNfJx/O /AUy+RBCPkTwg4iIQiBiaHJyclH49alSChGllFIIIeRkNfF43MPzJdzP/50Z4h0z+RBy8t5xsfub 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 xsj2LctM6KuL9K5pHb4UuZnrHVsTr8WCp5TIxJs/aVsCnIzExzbDPzCOLNpnUppibBV9k6jtrZ3S FEkufFpSyqFQxndRZ1G+WlqMkkV3z5BSkNVJkX8bZQTL4UWxusrrGhPsUNT9/gFgM++TMQoJoQg8 MWY+0beg0Bz2cETUVX0+EUsSRjxrUkbygdrDf3mPK23OntKWAyv9TCAlBorc5ByEHsQOxNyGOMIf 4ixGDnIOQg9iB2JuQxzhD3EWIwc5B6EHsQMxtyGO8Ic4i5GDnIPQg9iBmNsQR/hDnMXIQc5B6EHs QMxtiCP8Ic5i5CDnIPQgdiDmNsQR/hBnMXKQcxB6EDsQcxviCH+Isxg5yDkIPYgdiLkNcYQ/xFmM HOQchB7EDsTchjjCH+IsRg5yDkIPYgdibkMc4Q9xFiMHOQehB7EDMbchjvCHOIuRg5yD0IPYgZjb EEf4Q5zFyEHOQehB7EDMbYgj/CHOYuQgTxfyIj8eXcZ6EMEf5Vb/PIc5YQ2/9WpWRUp040UNmGKY AdG3l3J5cz2gnW+peRepLZzVYtFsDYy/P9w7xTrrJAPM+FSWIH2wBpLQqQ57vWfVsAxzHEMijWGo ldrz+yNWznUUnwqETJYNSOIfQANjGGdYC1Ymb0cgvJwDegBvYSBQC0iYAABQcz9Nt8UmIiK70QIo rSQp8U1ywF9CUE1gLIQFMAbQBXgQQoR48ApwHMdxHMfxhJchIiIiIiIiIiIiIiIiIiIiQYIIERHH K8CEjsHLEBERERERERERERERERERERFxTMRxxCvAccTLEBERERERERERERERERERERERERHxMmRX DcdxHMdxHMdxHMdxHMdxHMdxHMdxHMdxHMdxHMdxHMdxBIgCXuggjlcI8Dp0XS5zruD///////// ///f+jm9gsv+////////////NCG7zugYgUjsvaz33l72//////8Hix8sXsH//////72sbdvL/q+D yt3kepG7w6CX/f////////+XE/S0l6FeqNehXpde5vQK2rb9P6WU/v///3L+c77IV/D///////// /////////////2//X+gr+P9P6P//////sv////+PWHyv9BX8/////////////////////z85279d tSv4////sv///8//wq9D1+Uy5wr+/////////7/Q+cvQXeGu4L7v+77v+77v+77v+77vG6Fzzt/n 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 RGZoBUETQ61iUUQRhrbOZetEZksYCizWGhTNqQkQU4AoEBERxcDcgCFiCWdzGUshiIiIiGhoBxlA RERERERERERERDREDAQiIiIiIiIi4kFERERERDxEw4BFRETE3msoCofkFEVETMEHFSMwGVpoEdEQ ipHY7a4NbWhDERmn4iBiaF1oKLahTQbKOcg6UFKKjFHEeuihhyY6Z6BPe6ttWynRMcmOwVYPpQut u0N3zp1J5koiqa2T2BqpJVJoCqGGiEKaGkJDaM2phaGhoSahU4IpIVVgoiULDQ1SaF0IQutKEFqI sQahQWgg0EAJDQ1CC5EhZhqTUkqlCPHnhIBCpN3dmWEpbVsKYmYI4S6E9pzWrA0Cs1KMOYeQfzNC zgyhDQKzuxCubILgLgjMzhkjCP6cTMS7EMxKaGiotUwZZueUQkYoQMeQIUOkNSG2SIusZWZmZmZm ZmZmZmZmZmZmZmZmZmZmVqvVau0oVqxWEZS2jBBCCCGEEDLGGGOMMcYYY4whhBBCCCGEEEIIkZmZ mZmZaX2zWltEayG0VmBmZmZmltAxhQyR2C9Yy6xWq9VqtVqtVqvVarVarVar9axn7Vl71iJibaFT hC0RrBdjTgnIEIn9Wta2bdu2bdu2bdu2bdu2bdu2DVomaAVBBwratm3btm3btm3btm3btm3boG3Q OkErCBo0aNCgQYMGbdu2bdu2bdu2bdu2bds0srWWCVpB0KBBgwYNGjRo0LZt27Zt27Zt27ZtFcte 0DMwaGssaB0KWpegZU7QCoIGDRo0oWMKGSKxX7CWtW3btm3btm1b57SCyzZo0IFBgxY6QdMppXQF KaWUUkoppZRSSimllFJKKaWUUkoppZRSSj9MMild9v////9f9v////+P9OlPVy2dkkgpJXRMIUMk 9nRZOp1Op9PpdDqdTqfT6XQ6nU6n0+l0emA6pdMV7Ar+////////////HyFZutBJaUvpMucK0GX/ ////////////A9EIIXQddAUIodFoNBqNRqPRaDQajUaj0Wg0Go1Go9FoNBqNRqMRQiN0BQghhBBC CCGEEEIIIYQQQgihR6PRRdAVIIQQQggldEwh6DKEEEIIIYQQQujRT0YXuoL//////////3+BLnT+ Iteh63KZcwWX/f/////////nE6G3C6FzBeecz+fz+Xw+n//////LKZ9zpXMF55xzzjnnnHPOOeec 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 d3dHQ5ttttlmo7DZNvuu2xEN/b9OaBvatj0gFW4PijnLHqzAQOwqkIasmH1vt9vtdrvdbrfb7Xa7 3W632+12u91ut9vtdrvdbrfb7Xa73W632+3///////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// ////////////////////S5AX/kfE+g4j4+JLX3XR5yA5HEXCQgqsWqbRGjEYKJfrAm3Xy+WimujB VJVZHRGxkEy2bXL5Ntp2cZkyZVzQDsX2gMTYgxRoh0vDLIhI2aEdojjyRGA4EUTAEkTAQFAMDBgu 4hUlu8mqkBoiEyzjHkHCkCGikCEojOv1BOYppZRSYCZkWXgwpWxPpW2Xy0WyqjyYqqoS5cEI50EI NwRndg1JNX1ZKNM+8qICiacJMVSHyBNIIeTe7NBnYh1hHUmWXa4CBWow04CBzKoZMdKDIIQIpYln ri0PJpRDOZTI1KUkIqLLpVWyB4RgBQPSHgyCQeuEioqKisrsUiY1yQNB8ErYGhER2wMQAEAA8mAH 2gUcaZE4sCIyM5N0lKnfFDBTyMxhIBMzMRERn4iIiIiIa7mCKCTRiZB0MjIjIzOzf8qUSQpJHuTA wcXDIg9woI6Ognk5Q4eII2OThtgRi5u5inmKVxyHODDzT1U0BoiWTCYPbOBAB2pjECBIUECxBx9o OuF2i4o8qIGlyJAGmgwfPuRkiwaSxZ1YyiSOkhxElQSCVGQyEQkyeZyoF/BATDKI6EEJ+0KobzKZ bLuUQQSOIlmxUCEPzgMrhYrtQUDKmZmZOTw8TCQPysCrnYIEO0ASoDiYeAUMFMAgTkTAJVz1NUtJ RHLDjugNcgWuL1oKmAEcNIhMg8aRiGiQB8b5ExEP0YMR5IEhmUwmQYLWhLiIggyZXCN6bXvttb22 1wMy8MiCBXbAHoyB89sTw8oB8QNx7UGusLEYamLh2ctLLjp06NCho3i4aph4Zre3t7e3d3t7exsu dpZGcifzpWsgT4QlEczEVEzbRMVvHlpi4hVMvDTEdGGmYl53jfk77/s60mwQYmMQEYKIw11U/WYi JiZmwcS8gcxn+NUqlgc0mLpGHnhwhbHUpA4sq6pwRd17WVo1Qy7zLoeIeRAVQUoOWRx6IjKgCCJk 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 gpZShhBhz/pBdZcgOZdixgxSpaamdvKkpRHFs/ezUlFlFCrvZBqRcxqNcxrVOY2yMo2u0sgqjUxl Gh37nmsDDljgK3KNEgDfzLSTYcdhI0gC+PbnxDaN0k4OpBGOvQnlCRxwKh7Kq4wKWTX6waeR2YtD SZDAAbefQKfZ09LSnmlU7CnQNwCxq6mschtliynLzH40xFVGxo6dC/cJdsrqA1jAAMe8+VqT2rQV Fx9k0RDv2DyAgF65WDxjmMnILTHKnAxXEK8Qcxo5ixwZziIkpCFGM1whDUmnkY0zYYhFQ7LKKO3k WMgfQECBBay5cthnVZaSetCQrDJiNH3QkDJNM9M0sh1GZofRMCdWBkqNYGkaCaMi4DnB5Ch70JA8 AIE8ZyYsFhjVoghpCJYdOwkEgYAzjV6O52hIAgekAQ7cAAIJqO3UHQ1JsAM4wE8dtEp8DEGQYAEs L8a+8nPTAwkgQLAHFLBys6YIHHAADCywCBxwaAEjXaPcuhFuGd2W0djKTEM029ciVGbuyMq9rLq8 L55JS7ususy0S0ustMystLQ0NOXlw2lUjNA2Ljh3d+Sfz6eZeHd3d+Rxd3d3d0cuIS+cnZ2dnZ2d nZ2dnZ3dkY05c+bMmTNnzJkzZ86cOXPmzJkzZ86cOXPlypUrV66UK1euXLly5cjlyhUtV65cuXKl FEKOHDly5MiRI3m4R44cOaKEEHLIkSNHjhy5cePGjRs3bowjj3FkPKNTAcTExMTExMTExMTExMTE hBATExMTYuLh4eHh4eHh4eHh4eHh4eHhYfLwGB4eHh4eJg+Xy1XlcrlcLpPL5XK5XC6Xy+RyVVUJ CwsLCwsLCwsLCwsLCwsLC1tYWFhYWDg4ODg4ODg4ODg4ODg4ODg4ODiYHBwcHEwODj569JxzzjlK Pueco+SjR88555xzjq7u6urq6urq6ip5d3V3d3d3lby6urp6/X+9kq/X6/V6vf56vV6v/69Xq61W q9VqtVqtVqvVarVarWSr1Wq1Wq2qqnq9WlVVlayqqqqqqmRVVbKqqqqqqqpqampqampqampqampq ampqampqampqaqampqKioqKiklFRyaioqKioiIqKioqKqKhkVFTUU/Lp/X56enp3enp6enp6enp6 enp6enp6emZmampqampqamqmZFNTU1NTU7KpqampqalRo0aNGjVq1KhRo0aNGjVq1KhRo0aNGjVq 9JQtW15cimrRLJpFsSgpWrRo0aJFixYtSi5atGjRUogSJUqUKFGiRIkSJUqUKFGiRIkSJUqUKFFy IEqUKHno0KFDP5Q8dGgpY+jQoUOHDh06dKiShw4dYuCVME44W1paWlpaWqWlpaV4yk5VKWaq0Z0a lZ6aqZmaqZ3NVKNQKJ9qZIiampoZZZqpmZqpGe2ZmZmRuVSjKmkkyt3N8K+H2L5cjoqiRpZl7hl+ PaeEGvkY5TAqd7uqETkHK3DAAgdKUaNxL0XgAQUMJEgDCSxwQAEBGNX9lLGi2DAcJfCwRgIOGKAY Y8dcAGoU7kTFihCInZVzrjqlRoEynFKCUFpaWlpao7S0lCxKS4UKFSqULFSoUKFChQoVKlSoUKFk oULJQoVQoUKFBg0aNGjQoEGDBg1KDho0aNCgQYMGDRo0aNCgQYOSzznnJPmcc845J8nnnJPkk+fk yTrnnLO7u7tJ3t3c3Nzc3NzcJG9ubm5u7u7/2/r///8k////P8l3Op1OB6eT7HQ6nU6n006n0+l0 2ul0atDUJGtqampqaqpqapI1NbVoUaJDkyw0qGZmZmZmZmZmZmZmZiY5MzMzMzMzk1yZmZmZiUk+ +2OSMTExMTExETExMTExMTExMTExL8mXl5eXl5d5eXl5eUm+vLy8vLwkX5IvLy8vLy0tLS0tLcmW lpaWlpaWZsxYMUuztLS0tLQkmzRp0iTZpEmySZMmTSqaJCZNmjRp0qRJY9KkSZMmTZosWbJkyVKy ZMmSJcklS5YsSS5ZsmTJkiVLliSXLIUQkuRI2kiSJEkykCpSVUwVKyNpZVhYWFXWcrWRd7DKOXy+ qmrzz7xzUOBhPn94fvhzMJ+Hh3mYz+f3Vs3T44JVZ0iVGlLHdaxVr9c5762oeGXEVVamEGP1MmYK ixQytq6UvXKSJAOghNadNbfi1MRDbpgwWJTUMFUEqVIrKiBJCEmSJEmSHDlyJNkjR44cSR45cuTI kSNHjhw5cuTIkSNHjqysrKqqrKysrKwMlZVkU6WySpHKysqqqkqRIkWKFClSpEiRZJEiRYoUKVKI FClSpEiRAWjbtm3bNrmM8xlvV5US3FmmuRujjPSF5NSgT26yagosyigcpBQXjBQxzjAqE1ZGZNQa oS8IgGATcGAH4HuIsR6Vh1Vnw2wcKVYEsTHGGOOYMUZVlZ1aM1vbo0ZXa2a1Vmu1VmPUIPEfWKQZ xoyq3UXrqSdZM7M1k7lGJXONSOYaVYrMNSM8MxKYRgHT6FyGDRvWyJzRVVjz8/TUKBoYCcsXjFFG REsa5RFFRxmFvJkpWfJGSNnexn5vVPac/TfVbK/CFkF/yrjRIfn/v91/99/9d//d//////+/u7u7 u7u7u7u7u7tr/n+8jJvwsW3btm3btm3btm3btm3bwb/eyPUbvWxs5OogIiLiqNsty6jb7Xa7Id4h 2h3i3d3d3d3d3SEiIiIiIiIiIiIiImbeqPg1iBEckAoYMHgj4kGMRzwlGGV4V4QpwShGwx9GJXej 8uuXvxsJ/1QPKGBgEyBAAQPU3Sj4RRDACfbc6KjrCOIDEFBgAXuj1V8VIFcBN7r+BnGCLYATga7d yPriQRAkQMAmYGATgMCBBRbBjVSfgRByDhhAYBOwCFg/sBDfjFCvFc7nO+No+f9bIaO8/P/L//94 u91upOKMUtyNUNyJ+28/46gZ7Sk3qi02qszM5FYGBR91E+f2MH6jCzeycCNSpYy63ey2+zE+HoSe vVuYQcYYNX7KqNvHjYzeqA0wIBFAsAk4cHsZFb2KEJbYGTtjBm83QsPbjYjeVFixCBQwYGCYmRnt IMRjHHErcRM3cRM3E3U7aHG73W5mrsLLmZxikXEj3Oj2Rj43GuNutPiHh/+32Wx0HmqPSqvVo06R POecc4yEnjxJ3qZy2CiYU/T54+O10cmXsbV5vTbaVLOiF8AzjQh6A8eAya6tnSVHpYdt71kT1eaj bDZbms2HbYHkbD7Cj23bDmOUbdu2stnEGLbtVFQ8qqpqo8uTc9l8hNl8lM1mM3mzqVFpS1va0pY2 wlNGJf9gtBHJcVmjbDbbsDkioiZeFbN5jbLZSJzDSQMLKLCAXSCENDY10GgblWAMhiTNZrN58Wbz BewCBnYBBKnA2ei4VnzWRmPcRjV+Jg/bNja2OZS4ldkomM3YjM3EsFEZOMSwh41IsdkcclUQMYqL jQzaRornVgXJIfaqY9hmozFq2MjGc4oV99ZEHC8wEnbd+KjjMnt/VBEWo4zEGp36Oeecc84555yj 4gwx1CikVY13eDUyPCde1gZPZhFwAAMHEjCAq0YFb4Ii4MABCVgEChg4kMBAAZyqRoSY8FUHBodE McSoLfw4LndCjLLd39ehY+jtale7mo76DrWheLf6hm2ZYpSQUWZHWQtUVQtUVVXVTlGtPaWqQo3E qqmpqampqampERmqpqZ2VNOBdYlqRq8bqpHAu1jVKOApwVUZgAAC6QMSINgEqNG501UZoPfRkCCB 9e+FDloAtMDJe8kNBUCQBjCgpk7P3RA+RmKcsSUSnAMIsAAxM4wIwPTOqOvl2T6fz+Tz+Xw+W5zP ZrNt27ZtZqxYMWLDTDazbdu2bTRozti2MdnY2NiYbGxsbGxcXFxcXFxcXFxcXFxcXFxcXFxcissR xcXF5GLit+31er1er9fr9Xpt2/bu7i55d3dXVVV1dXV1dXV1dXV1dXVzc3Nzc3Nzd3eXvLu7S87N zc3Nzc3d3SXj4u7uLi4uLi4uLi4uLi4u7u3t7e3t7e3t7e3t7u7u7pJ3bW1tbW1tbW1tbXd3d21t bc12d3d3d3fJS16zZs2a3d3d3d3d3V1y2bJlS9myZcuWLVu2bNmyZcuWLVu2bFmyYX/r7u4uWbJk d3d3d3d3d8PYseSxY8ljx+7uknd3d3d3s5ZcW0vera2tra2tra2tra2trSqxYsWSd3d3yWLFihUr VqzY3d3d3d3d3SXvVtjd3d3d3d3dXXLYc/7/J/////8//3/O7u7Jf/3/T96T////T/7//z/5//// P/n///u+75P/4vu+7/s++b///////3p96sn6////////k79PPNur2mF3ZMFvBuJe9T/X+mxvPbOq /s7szuzO7M4sT74zG3lyjDrnGOHAg+fcOacUQkohpBRCSiGkFELGOWecY6dOGTrUHHMG5phjR0cd O7WlXsLq2MljFE4RI0edcqwcO0bG85yT55xjdHJsKp6945lljTPy7K2JZ8UQrP///////+f/H4/H 4/F4PJ78/8fj8Yknn/zz+/1+v9/v9////zv5J//2/X+y/Xa73X672X+72s3J////J9/c/Dc3Nzc3 Nzcn/+bl5eXlpZxc/peXl5eXl5eXl/9/efnJJycnJyc3Ofn/f3JycvJ/cvLx8fFjZMeI3DEy6TQq +efAceP/+f+/ctQIYpyjZuOM1+v1ev3/Of///6/XyfX66+Li4uLk/I018aXcsYOjxiijO8eOkRql EZ7z//8vLi6MKOI/+SeLi4uLh4eHk39yeHj4////yeHh4eHh4eTw43NcRmGcY2dt7awQObKQocOs CDEwd87uObvn7J6ze86gYFAwKBgUDAoGBYOCQcGgYFAwKBjU2d0tGBQMCgYFg4JBwaBgUDAoGBQM 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 yrmXcg== --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 16:15:57 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 21:15:58 +0000 Received: from localhost ([127.0.0.1]:51418 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khJBh-0006Y5-AJ for submit@debbugs.gnu.org; Mon, 23 Nov 2020 16:15:57 -0500 Received: from mail-oln040092069074.outbound.protection.outlook.com ([40.92.69.74]:49865 helo=EUR02-VE1-obe.outbound.protection.outlook.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khJBb-0006Xn-GT for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 16:15:51 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Sq2Q1ZPjHsvw9QJ9DQjgokBy53kfLxig6MHYbCTuLvz0yTyYdvYnTHjQrjM3tvN1duHuIxbVS0oCjVALxiO2yzMQeIsORoRb48BZ7j/pb33RtEPC1HSJhQwaCSXhQtTsy+ZUUPIt0Pf0aVrxIQoEFTgzuXcYgTrbTdSH6eZbmcKS2ZdFRR5f7tJ+2OzmgVFXvi6E0+8XxQxDLjCWXsEmpxcooJnGBC8Dd2aUnzOS/6YHYNCwyIcshhqJp5bygnOPJyf8GmTYZhod0zgS/NArzHhxV3CItGd4IHmzok0FKAeT66gmQedlL03LnFZvwM7I0AvHzsr4qBCO6EDIzBaGpw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MOhw+4jV+dNpC0yTdUiEUzEWxpuAx7gF+hoEKv37RUo=; b=HQlq604cOAPtmeNDaNRsKAhtqvCIC4jmu7UaLNZuAZgNX++kD9wfiZpGPY7JRY7p46ckOjRRoRiLeoSBGLkQKAFShxn0H7DFv6Dkf9wANxwnh5tikovT/YsKfTHXjo7/eDQCBSI3Xc0dMT+iHK+4s/SxrnYDkjW6kiU3J9kbU4X8ZxJw8hTBio33U9KEoAk7qPPQycVqr4cSU+wfEa50U66QHJCF5FFbhDPcT8xjSvhSEbR6Bow80RwMCP6nmMqE4kFCKglI+WmAGtgK7fuwd/RKxOx7tMlgpZDc0lH3WuXJs/XJFLTFLywECAojQLExv9HZf2AQCdLH9jMMwE8xZg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=live.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MOhw+4jV+dNpC0yTdUiEUzEWxpuAx7gF+hoEKv37RUo=; b=XFthKC4sipLJL6z1o1cuXt3RXXY+w/O2/4BRDWuwUCqLg8ibt/MHi6nBXCgDAzScJftDS3voUAFSFZTWFCbc6QhyWYoFhoqxMb+UO2mDdzcUQIjlVfX0XNnf/C3CyAD6kJSMERk4BFKWMeDMEmVpnUv42iRp8CqMqez131EOOuHqZRd4/bnfC6WkG3xwPSCCODK6yJoa1c07GP3GxILig4UQQReNjdY1ZOCJHcrgqwknVNyQyAAnUZ5SFfCzoCBDucEujr3nEW1c8MqteDyc96IYeoHW/M6SjhjGWerkYS3RB1zGqITUr2HOQsAkDjHKBdpAGCjbBfoALNxQO45/Tg== Received: from AM5EUR02FT021.eop-EUR02.prod.protection.outlook.com (2a01:111:e400:7e1c::47) by AM5EUR02HT235.eop-EUR02.prod.protection.outlook.com (2a01:111:e400:7e1c::469) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20; Mon, 23 Nov 2020 21:15:40 +0000 Received: from AM0PR06MB6577.eurprd06.prod.outlook.com (2a01:111:e400:7e1c::52) by AM5EUR02FT021.mail.protection.outlook.com (2a01:111:e400:7e1c::93) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20 via Frontend Transport; Mon, 23 Nov 2020 21:15:40 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:F15E6291E8AE1BD2E739E5E267C2FF55736F27459BF9D57490DD7D2606C87877; UpperCasedChecksum:43BF52C0A850A200A60C817B0AAAF2AD8E66743174967FF26595E5BC71A67FDE; SizeAsReceived:8216; Count:46 Received: from AM0PR06MB6577.eurprd06.prod.outlook.com ([fe80::9487:8c7d:da00:4993]) by AM0PR06MB6577.eurprd06.prod.outlook.com ([fe80::9487:8c7d:da00:4993%7]) with mapi id 15.20.3589.030; Mon, 23 Nov 2020 21:15:40 +0000 From: Arthur Miller To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <83tutgufuf.fsf@gnu.org> <83lfervpvd.fsf@gnu.org> <83blfnvnho.fsf@gnu.org> Date: Mon, 23 Nov 2020 22:15:39 +0100 In-Reply-To: <83blfnvnho.fsf@gnu.org> (Eli Zaretskii's message of "Mon, 23 Nov 2020 22:15:15 +0200") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Content-Type: text/plain X-TMN: [ccxkwgM8KS9ml1DOzjLZKK7I/Y3RxuML] X-ClientProxiedBy: AM6PR10CA0021.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:209:89::34) To AM0PR06MB6577.eurprd06.prod.outlook.com (2603:10a6:208:19a::23) X-Microsoft-Original-Message-ID: <87360z6ah0.fsf@live.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from pascal.homepc (90.230.29.56) by AM6PR10CA0021.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:209:89::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20 via Frontend Transport; Mon, 23 Nov 2020 21:15:39 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 46 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: cfba0ff7-9d2b-4c1a-8575-08d88ff4ee06 X-MS-TrafficTypeDiagnostic: AM5EUR02HT235: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: G14KTigsg6/UZHQGW2VfRgQGQvtUIzkAHWSzuane+my+eqGrOwFMQDFGHpqVezkZuT6BCD/q5rIKoV4LA0ATjI1OkUe0Pql/paofVIpE6EJiw/haAs0+vFfG1GgQV+YEccFtWVm7jWlVUsDtCOd7VF35aKEt6G73kjOdeq5jzN33pUPKJAGUbAzwcgRgyDRu50pkY0igUPJeLg4tuYkQ4KzJexf+313YoUuX2SfV6tNnoeJjAyxsPCmIbc1+BPTF X-MS-Exchange-AntiSpam-MessageData: rackv8rqO84dm+8Hs3uNiDQnft25ySFAr/K19wVpLi3HkIYiAoteP9rQ/oyjgrMxZLU845NkIWw7f0IBwEiGHWMKQtqNgRDyfi/S/mpD426BbOPMZ5jBE0+eVVyPL+KnaYVn3Klci2eg3UYq7YaHCA== X-OriginatorOrg: live.com X-MS-Exchange-CrossTenant-Network-Message-Id: cfba0ff7-9d2b-4c1a-8575-08d88ff4ee06 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Nov 2020 21:15:40.7534 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: AM5EUR02FT021.eop-EUR02.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5EUR02HT235 X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com, akrl@sdf.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Eli Zaretskii writes: >> From: Arthur Miller >> Cc: Eli Zaretskii , fweimer@redhat.com, >> 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, >> michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com >> Date: Mon, 23 Nov 2020 20:59:21 +0100 >> >> How hard/possible is to use this tool in Emacs: >> >> https://gperftools.github.io/gperftools/heapprofile.html > > AFAIU, this cannot be used with glibc's malloc, it needs libtcmalloc > instead. Oh yes I understand, there is not a chance it would help to run emacs on tcmalloc instead of standard malloc? If there is by a chance a leak somewhere in Emacs? ... god forbid of course :-) From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 16:22:41 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 21:22:41 +0000 Received: from localhost ([127.0.0.1]:51435 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khJIG-0006id-Nk for submit@debbugs.gnu.org; Mon, 23 Nov 2020 16:22:40 -0500 Received: from mail-oln040092068079.outbound.protection.outlook.com ([40.92.68.79]:16295 helo=EUR02-HE1-obe.outbound.protection.outlook.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khJIF-0006iQ-CW for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 16:22:40 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MpMdEGlTd0AyYdxcvzNX8I6nuawgS9bVX2I6ZuljiZAUiZ3XLFwwisKRH2Nld/UgPcpK4n3awuPXasW8FqiP5779oit+MUtZnneJ3KoO+7yc+kYFMB8yWgkY5TAENdnaX95IVFWnWqidrBFR9aU1CodQeIrIGYBD14FxNQmAWB1B18qCyQhPTh9vEzFhKG/bj5vOnTv65cd6H05tA99Jeb/upmfM7d2JIzlTjXiRX/h71TI0RMXP573hD5Z9qrp5hkarEPiYJKSkLLkRSNObxq4wMrcz0SIy8ltcA8EBvg0qCU3Wk0XyxOp55wgW/v7R/OdMz1gkbkUtt/TcIqGL/w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Y/8D/XkBN653oOcY6tzgErDFEXW5xNDLwNLKhjeEO+k=; b=Ps00L8KVG/b81TPs3GAOxzzw3ELNVTsMKLVyAyy5uhVNgmnJn8egOou/6YD867HNhKe05Fwgw2gTHrMo5ymjUVbcxRVudHVUmez4M3s6sRIWUUK7h+ZTa5IKQi6uj5o7VOmgCr0rAzoA/NQoose0OVYEqxj1CRn1Mj5ZIFhtPn87pNZ0AICHRK/MLYhoMQubapwvkSg7GMuhXfihHg1a5JS6fxQJuJ277MlFAWDOeE8QD2UpNADQXvYrTVJn7XF9TQ0z4iedgtt61SVI/7GMXvyTZIFGF4vw2IHWbIuHhU/kheJESNkqV3+7tHHTU5uej1Gd3+woaSdbzI1k6T/u5Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=live.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Y/8D/XkBN653oOcY6tzgErDFEXW5xNDLwNLKhjeEO+k=; b=aFN9rZNV5B+prC1jSwDr8RdWEZ6bRxVH1386kk00Y5e7Kyv2puJhtgXz6KqB31wTXFMPokooNugQLOjFfGZgZn2+M457c909bN95frYoHtaHrXdXw1So6eIfxyvDxjDnxbhoVvDF/lOC6yhhUgX6PwdP5NimF4oRaonXhNQqY9b3wCRmXxr2UOnKkaXuVWXLjswbiuKrrYJZxl19I5h9/AAAGgG60NKPS2Y8XwcFwmbW1QtZDsHV3aIxZX/xC5ecULsfOtLR1uZk0278h6clvbEcrYUsnhvtJk5Tty9+9HO+iCQki9rnDVzK9vtid/yg9w/XGs15gwxB5AQ2IduAMA== Received: from AM5EUR02FT028.eop-EUR02.prod.protection.outlook.com (2a01:111:e400:7e1c::4a) by AM5EUR02HT124.eop-EUR02.prod.protection.outlook.com (2a01:111:e400:7e1c::479) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20; Mon, 23 Nov 2020 21:22:29 +0000 Received: from AM0PR06MB6577.eurprd06.prod.outlook.com (2a01:111:e400:7e1c::4d) by AM5EUR02FT028.mail.protection.outlook.com (2a01:111:e400:7e1c::115) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20 via Frontend Transport; Mon, 23 Nov 2020 21:22:29 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:A6E0D024D537EB1BC3DAEFA34E9CF000CFD546B467263915C30A2A4FF75FFA66; UpperCasedChecksum:58CA8172D413CE92C5AC9CF114C5EA6A807CDF8E4C53BB93A08C8F803D8ED3CC; SizeAsReceived:8045; Count:46 Received: from AM0PR06MB6577.eurprd06.prod.outlook.com ([fe80::9487:8c7d:da00:4993]) by AM0PR06MB6577.eurprd06.prod.outlook.com ([fe80::9487:8c7d:da00:4993%7]) with mapi id 15.20.3589.030; Mon, 23 Nov 2020 21:22:29 +0000 From: Arthur Miller To: Jean Louis Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <83zh3czbvz.fsf@gnu.org> <83k0udw3jb.fsf@gnu.org> <83v9dwufx4.fsf@gnu.org> <83mtz7vq8j.fsf@gnu.org> Date: Mon, 23 Nov 2020 22:22:28 +0100 In-Reply-To: (Jean Louis's message of "Mon, 23 Nov 2020 23:31:46 +0300") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Content-Type: text/plain X-TMN: [Sv/PL3hsVlHAcDWLjuNaIdPAH2ZGF/sV] X-ClientProxiedBy: AM6PR08CA0013.eurprd08.prod.outlook.com (2603:10a6:20b:b2::25) To AM0PR06MB6577.eurprd06.prod.outlook.com (2603:10a6:208:19a::23) X-Microsoft-Original-Message-ID: <87y2ir4vl7.fsf@live.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from pascal.homepc (90.230.29.56) by AM6PR08CA0013.eurprd08.prod.outlook.com (2603:10a6:20b:b2::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20 via Frontend Transport; Mon, 23 Nov 2020 21:22:29 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 46 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: e940c82a-4f83-42f0-74be-08d88ff5e1da X-MS-TrafficTypeDiagnostic: AM5EUR02HT124: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: sr+5x2C9bLlewiOuXYeL9Aoqp6i+9FqXYHszPUJ467/mEeblbgvb6su47X3o0mNCwUroP8krk6047qSr8vAM73D8svKgg4FaqBen0BLkDAErjK5g0WCa3fqBQBrzqv84twf3cXzlpogFwJLVKZrH8NBntnQFk8UGT4la2okISHhJe/cbe2qyBn1b67mdnjRiAnpz5hEb5IbsQsQfiyAUEw== X-MS-Exchange-AntiSpam-MessageData: SUX79TYpRy3GFmwustwwdeEVKF9g+ilAi0uXHw46fJVQAZ9xfrzbzV2WkZt1V4VngQPenRSTkpYwY1pMJQ9SQT8ajWx9ePN9j5N33+CppOJ7zfeAQbVfMD3F/f3vFZQWXsQd1wtooCXwH2B9FXCLtg== X-OriginatorOrg: live.com X-MS-Exchange-CrossTenant-Network-Message-Id: e940c82a-4f83-42f0-74be-08d88ff5e1da X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Nov 2020 21:22:29.4702 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: AM5EUR02FT028.eop-EUR02.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5EUR02HT124 X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com, Eli Zaretskii X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Jean Louis writes: > * Arthur Miller [2020-11-23 23:22]: >> The only thing that changed regularly was of course system updates: kernel, >> gcc & co etc. So it maybe is as mentioned earlier in this thread by >> either you or somebody else is that glibc changed and that maybe >> triggers something in Emacs based on how Emacs use it. I don't know I am >> not expert in this. Isn't Valgrind good for this kind of problems? Can I >> run emacs as a systemd service in Valgrind? > > I did not change anything like glibc or kernel in Hyperbola > GNU/Linux-libre Didn't you update your system since last summer? From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 16:31:11 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 21:31:11 +0000 Received: from localhost ([127.0.0.1]:51462 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khJQT-0006xA-Tt for submit@debbugs.gnu.org; Mon, 23 Nov 2020 16:31:11 -0500 Received: from mail.trevorbentley.com ([37.187.5.80]:45042) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khJQQ-0006wf-P5 for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 16:31:08 -0500 Received: from localhost (c188-150-0-48.bredband.comhem.se [188.150.0.48]) by mail.trevorbentley.com (Postfix) with ESMTPSA id E2B5E60A2C; Mon, 23 Nov 2020 22:30:59 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mail.trevorbentley.com; s=mail; t=1606167060; bh=qUsodgiu6PCj9uR7U5c2SyVbu+oHCW0GJ1YxcHJgxoQ=; h=From:To:Cc:Cc:Subject:In-Reply-To:References:Date:From; b=HStsXoMQAOAu+PBEahOvH+qU6swAa+lMcagYp/nzEm5Zj9Hs/WQYbsH1G+uKQ0W+6 xREsQANsp7lh25C9KQjDIUHT6IglL0EVDq45p+ZB7Cs4/rvmuq5oERUsNSaNO3BtUV TPiBxAZbim2KE+agL8iUkZV91zLOcbJ1w1HfZhCs= From: Trevor Bentley To: Eli Zaretskii , Jean Louis Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time In-Reply-To: <83blfovzxz.fsf@gnu.org> References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> Date: Mon, 23 Nov 2020 22:30:57 +0100 Message-ID: <87o8jnu5f2.fsf@mail.trevorbentley.com> MIME-Version: 1.0 Content-Type: text/plain; format=flowed X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, carlos@redhat.com, X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Ah geez, there's a dozen threads now. I'll just start from here. I haven't setup the memory trace lib yet, but I've been running an instance of emacs and printing as much as I can about its memory usage, including (malloc-info). I reduced MALLOC_ARENA_MAX to 2. This instance sat around at ~300MB for a day, then spiked to 1000MB. I ran a bunch of memory-related functions, and it stopped growing. I believe (garbage-collect) halted the growth. It ran for another 3 days at ~1100MB until another sudden spike up to 2300MB. As usual, this is a graphical instance running emacs-slack with tons of network traffic and images and the such. In the mean time, while that instance was running, a second graphical instance suddenly spiked to 4100MB. The other instance is interesting, as it's not doing anything special at all. It has a few elisp files open, and reports only 700KB of buffers and 42.2MB in elisp data. A third graphical instance has been idling during this time. I've never done a single thing with it beyond start it. That one is still at 83MB. Below is a large memory report from the emacs-slack instance: ---------------- BEGIN LOG ---------------- ;;-------------------------------------- ;; one day of runtime ;; growing 1MB every few seconds RSS 1100MB ;; -------------------------------------- ;; -------------------------------------- (getenv ;; "MALLOC_ARENA_MAX") "2" buffers ~= 60MB (let ((size 0)) (dolist (buffer (buffer-list) size) (setq size (+ size (buffer-size buffer))))) 60300462 ;; sums to ~100MB if I'm reading it right? (garbage-collect) ((conses 16 1143686 1675416) (symbols 48 32466 160) (strings 32 241966 542675) (string-bytes 1 5872840) (vectors 16 116994) (vector-slots 8 8396419 357942) (floats 8 1705 7024) (intervals 56 27139 10678) (buffers 992 53)) ;; /proc/$PID/smaps heap 56395d707000-56399b330000 rw-p 00000000 00:00 0 [heap] Size: 1011876 kB KernelPageSize: 4 kB MMUPageSize: 4 kB Rss: 1010948 kB Pss: 1010948 kB Shared_Clean: 0 kB Shared_Dirty: 0 kB Private_Clean: 0 kB Private_Dirty: 1010948 kB Referenced: 1007016 kB Anonymous: 1010948 kB LazyFree: 0 kB AnonHugePages: 0 kB ShmemPmdMapped: 0 kB FilePmdMapped: 0 kB Shared_Hugetlb: 0 kB Private_Hugetlb: 0 kB Swap: 0 kB SwapPss: 0 kB Locked: 0 kB THPeligible: 0 ProtectionKey: 0 ;; malloc-info ;;-------------------------------------- ;;-------------------------------------- ;; ~3 hours later. ;; growth slowed after the previous (garbage-collect) ;; RSS 1140MB ;;-------------------------------------- ;;-------------------------------------- (memory-limit) ;; virtual memory, not RSS 1429620 (message "%f" gc-cons-threshold) "800000.000000" (message "%f" gc-cons-percentage) "0.100000" (emacs-uptime) "1 day, 4 hours, 50 minutes, 30 seconds" (message "%f" gcs-done) "708.000000" (message "%f" gc-elapsed) "201.724018" (message "%s" memory-full) "nil" (memory-use-counts) (224118465 575286 217714299 65607 946347937 563190 26430775) (memory-usage) ((conses 16 1199504 2511807) (symbols 48 32742 159) (strings 32 246671 575263) (string-bytes 1 5992063) (vectors 16 118364) (vector-slots 8 8412872 474129) (floats 8 1771 10028) (intervals 56 29873 12035) (buffers 992 60)) => 18.3MB (+ 38.3MB dead) in conses 1.50MB (+ 7.45kB dead) in symbols 7.53MB (+ 17.6MB dead) in strings 5.71MB in string-bytes 1.81MB in vectors 64.2MB (+ 3.62MB dead) in vector-slots 13.8kB (+ 78.3kB dead) in floats 1.60MB (+ 658kB dead) in intervals 58.1kB in buffers Total in lisp objects: 161MB (live 101MB, dead 60.2MB) Buffer ralloc memory usage: 60 buffers 64.4MB total ( 956kB in gaps) Size Gap Name 47795241 745530 *censored* 4681196 29261 *censored* 4543324 25017 *censored* 4478601 28398 *censored* 862373 622 *censored* 859981 4898 *censored* 859617 3696 *censored* 859355 4131 *censored* 859131 4009 *censored* 471538 6609 *censored* 60099 6451 *censored* 20589 1312 *censored* 19452 2129 *censored* 17776 1746 *censored* 16877 217 *censored* 16484 1447 *censored* 13488 56 *censored* 13212 1810 *censored* 12747 2081 *censored* 12640 2098 *censored* 12478 900 *censored* 12130 453 *censored* 10745 10186 *censored* 10703 2082 *censored* 9965 474 *censored* 9828 1075 *censored* 8000 226 *censored* 5117 1396 *censored* 4282 1891 *censored* 2546 1544 *censored* 1630 675 *censored* 1479 591 *censored* 1228 918 *censored* 883 1280 *censored* 679 1574 *censored* 678 5483 *censored* 513 27194 *censored* 299 1731 *censored* 232 3839 *censored* 131 1985 *censored* 97 1935 *censored* 92 1979 *censored* 72 1999 *censored* 69 1999 *censored* 69 4009 *censored* 67 1999 *censored* 64 1985 *censored* 62 6034 *censored* 62 1999 *censored* 61 1960 *censored* 28 4030 *censored* 27 1999 *censored* 0 2026 *censored* 0 20 *censored* 0 2065 *censored* 0 2072 *censored* 0 20 *censored* 0 20 *censored* 0 2059 *censored* 0 2037 *censored* ;;-------------------------------------- ;; 3 days later ;; RSS ;;--------------------------------------was steady at 1150MB ;; ;;--------------------------------------leaped to 2.3GB very ;;--------------------------------------suddenly ;; ;; RSS 2311M ;;--------------------------------------;; ~182MB (let ((size 0)) (dolist (buffer (buffer-list) size) (setq size (+ size (buffer-size buffer))))) 182903045 ;; sums to ~142MB if I'm reading it right? (garbage-collect) ((conses 16 2081486 2630206) (symbols 48 61019 79) (strings 32 353371 288980) (string-bytes 1 13294206) (vectors 16 144742) (vector-slots 8 9503757 592939) (floats 8 2373 8320) (intervals 56 46660 10912) (buffers 992 82)) (reduce '+ (cl-loop for thing in (garbage-collect) collect (* (nth 1 thing) (nth 2 thing)))) 142115406 ;; /proc/$PID/smaps heap 56395d707000-5639e0d43000 rw-p 00000000 00:00 0 [heap] Size: 2152688 kB KernelPageSize: 4 kB MMUPageSize: 4 kB Rss: 2152036 kB Pss: 2152036 kB Shared_Clean: 0 kB Shared_Dirty: 0 kB Private_Clean: 0 kB Private_Dirty: 2152036 kB Referenced: 2146588 kB Anonymous: 2152036 kB LazyFree: 0 kB AnonHugePages: 0 kB ShmemPmdMapped: 0 kB FilePmdMapped: 0 kB Shared_Hugetlb: 0 kB Private_Hugetlb: 0 kB Swap: 0 kB SwapPss: 0 kB Locked: 0 kB THPeligible: 0 ProtectionKey: 0 ;; malloc-info (malloc-info) (memory-limit) ;; virtual memory, not RSS 2630768 (message "%f" gc-cons-threshold) "800000.000000" (message "%f" gc-cons-percentage) "0.100000" (emacs-uptime) "4 days, 4 hours, 5 minutes, 3 seconds" (message "%f" gcs-done) "2140.000000" (message "%f" gc-elapsed) "760.624580" (message "%s" memory-full) "nil" ;; I belive this is cumulative, not current? (memory-use-counts) (989044259 2763760 754240919 143568 2633617972 2535567 76512576) (reduce '+ (memory-use-counts)) 4509544031 (memory-usage) ((conses 16 2081326 3094498) (symbols 48 61019 79) (strings 32 353291 494869) (string-bytes 1 13286757) (vectors 16 144725) (vector-slots 8 9503378 623467) (floats 8 2373 8320) (intervals 56 46640 11652) (buffers 992 82)) => 31.8MB (+ 47.2MB dead) in conses 2.79MB (+ 3.70kB dead) in symbols 10.8MB (+ 15.1MB dead) in strings 12.7MB in string-bytes 2.21MB in vectors 72.5MB (+ 4.76MB dead) in vector-slots 18.5kB (+ 65.0kB dead) in floats 2.49MB (+ 637kB dead) in intervals 79.4kB in buffers Total in lisp objects: 203MB (live 135MB, dead 67.8MB) Buffer ralloc memory usage: 82 buffers 176MB total (2.04MB in gaps) Size Gap Name 91928037 1241610 *censored* 27233492 123915 *censored* 16165441 173855 *censored* 15789683 66347 *censored* 15688792 205051 *censored* 3040510 1437 *censored* 3030476 17503 *censored* 3027663 15314 *censored* 3027493 16032 *censored* 3026818 15601 *censored* 211934 5198 *censored* 87685 23923 *censored* 57762 2629 *censored* 52780 677 *censored* 35991 2269 *censored* 25403 1824 *censored* 18008 1514 *censored* 16930 64 *censored* 16877 217 *censored* 16484 1447 *censored* 14232 14654 *censored* 14192 605 *censored* 13715 1130 *censored* 13575 1689 *censored* 13343 1377 *censored* 13198 1540 *censored* 13178 1598 *censored* 12747 2081 *censored* 10883 1902 *censored* 10271 632 *censored* 6402 44449 *censored* 5127 1386 *censored* 5005 1156 *censored* 4282 1891 *censored* 3840 2313 *censored* 3409 16717 *censored* 3409 16717 *censored* 2872 1186 *censored* 2541 1511 *censored* 2067 2011 *censored* 1630 675 *censored* 1626 444 *censored* 1490 679 *censored* 1413 26294 *censored* 1159 4937 *censored* 962 1063 *censored* 678 1574 *censored* 562 2297 *censored* 324 2008 *censored* 324 2008 *censored* 151 1967 *censored* 137 1887 *censored* 133 1983 *censored* 97 1935 *censored* 78 3998 *censored* 72 1999 *censored* 71 3985 *censored* 69 1999 *censored* 67 1999 *censored* 64 1985 *censored* 62 1999 *censored* 61 6035 *censored* 49 2008 *censored* 33 2038 *censored* 31 4040 *censored* 27 1999 *censored* 25 1999 *censored* 25 1999 *censored* 25 1999 *censored* 22 1999 *censored* 20 0 *censored* 16 2021 *censored* 16 4 *censored* 0 2026 *censored* 0 20 *censored* 0 5026 *censored* 0 2072 *censored* 0 20 *censored* 0 20 *censored* 0 2059 *censored* 0 20 *censored* 0 20 *censored* ---------------- END LOG ---------------- -Trevor From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 17:11:13 2020 Received: (at 43389) by debbugs.gnu.org; 23 Nov 2020 22:11:13 +0000 Received: from localhost ([127.0.0.1]:51488 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khK3F-0007t1-6r for submit@debbugs.gnu.org; Mon, 23 Nov 2020 17:11:13 -0500 Received: from mail.trevorbentley.com ([37.187.5.80]:45273) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khK3B-0007sk-Mp for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 17:11:11 -0500 Received: from localhost (c188-150-0-48.bredband.comhem.se [188.150.0.48]) by mail.trevorbentley.com (Postfix) with ESMTPSA id DA08C600D1; Mon, 23 Nov 2020 23:11:03 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mail.trevorbentley.com; s=mail; t=1606169464; bh=AlwW4QImHxqk5xfolAbBhQStPj8fLSRD1qi8XVQPeik=; h=From:To:Cc:Cc:Subject:In-Reply-To:References:Date:From; b=JZREy/DREjOCcPJAwcaRf86AAtbogKkxvZsDQbVkNZwIgQH2UgmgsB2+jWvNyvT9/ KLREvgH4pgKlvBFVc51sqd9VZDsP9SIa3kdMbrY91rHBCPMEt0PEiSKLMxG2uQTYiU Foo+3g5YaAH6UZDPWFMMNjLBjBCjr+ooNvkS+y+s= From: Trevor Bentley To: Eli Zaretskii , Jean Louis Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time In-Reply-To: <87o8jnu5f2.fsf@mail.trevorbentley.com> References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> Date: Mon, 23 Nov 2020 23:11:03 +0100 Message-ID: <87im9vu3k8.fsf@mail.trevorbentley.com> MIME-Version: 1.0 Content-Type: text/plain; format=flowed X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, carlos@redhat.com, X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Trevor Bentley writes: > Below is a large memory report from the emacs-slack instance: Formatting was butchered. Try this: https://trevorbentley.com/emacs_malloc_info.log -Trevor From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 21:07:49 2020 Received: (at 43389) by debbugs.gnu.org; 24 Nov 2020 02:07:49 +0000 Received: from localhost ([127.0.0.1]:51844 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khNkD-0007JW-Ac for submit@debbugs.gnu.org; Mon, 23 Nov 2020 21:07:49 -0500 Received: from mail-am7eur06olkn2028.outbound.protection.outlook.com ([40.92.16.28]:15297 helo=EUR06-AM7-obe.outbound.protection.outlook.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khNkB-0007JJ-44 for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 21:07:47 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PAN0Ch3OCKvRhvTPaRX3yimFRx0vy5wJUPEL3VFY6+TplvCDDsCilVx9oqlnnDDKl2NzHeknp+a/78rAHqoPzv57Hveq6rxJDnGiYDek3xhCz4rEcAZZ6HDIpF1gVXyyDsEwy1ckJy22at/8QnW3yuupwm+CTjVkoic+RTgJU/9vInLI7o7VtWGiECtTY9djRy85r7YIKdOqCWxKgUfQV2i4YecItRU2RaoZvwR6JPJJoqlKqsJHU3XJAWzwV5uvOmoDt31iEC5CSMsGBaoN2muOZtJY27QR8qRhYD3LNBVE/4Ntp67agK7wjv5mRIF6UxbPzExKNF8Z+w39sKbI7g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Ux3bx6Hv4wJoR24dtJGa//jlTdUOTfPhHY3fyOuJ+ak=; b=aTqyEOs3So3Kzx18OJ7FX7c+e3FEz7c3N8NTruxr6MOxzuTuToSUNTaauZnfAMxKHbMVHbWqNFXrFQm6Ad14RRT1WzXHrrO15DkL+Wh4x3KrPLmU/afGyyyqOr8JH6M9zM/7Ul4dDXNyhtNo9NsDF70GaWWprD1ED1Deqiz7atTDXTTURxcecSb2JheS7t4YuprerGj7ei6AOUU0NiHHypE/O6+i5eAeCLOVp4E66W/xWX3tM2ZCkS248H/VuTRJlOqXF2OHXEF8hM5cRBUzKiYNLv4FIKtAEzcBOuz6Eif4vDWwF73lMMlk6b53KHvGlS7VziMEgvVKbGd6DPPl9A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=live.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Ux3bx6Hv4wJoR24dtJGa//jlTdUOTfPhHY3fyOuJ+ak=; b=XGqlT0wzD1wj2TU/EHYGTtCSJS78D1A7kE7WJjygKjf1AGAaPtVrc9xTBowY1L3hCi5fxEuh2QlysyBgMnk2TB0exbOeJp9UUlOr6epcQBV/VDFdfO27Qx4GbO47npXpEwLt2UbU/fHFhtYD93Dr6Y4+yApc0Sp7jpgbUGpsr+KpKMMYARADu/JWTKFQdvRaVsnRNZhpNeLjCwVahsoRb8Nt7YlypaxwF7DUYHV94nq4U/NFy/pvIXQrdLw476l0TfIkXTC1++fDEenKW6nnpRykPMA9ylbFBzUMyogVr320VtCfkTBj9NNpi4MDXGl119SwnTbAOtZi6fcedHkipA== Received: from AM7EUR06FT022.eop-eur06.prod.protection.outlook.com (2a01:111:e400:fc36::4b) by AM7EUR06HT203.eop-eur06.prod.protection.outlook.com (2a01:111:e400:fc36::109) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20; Tue, 24 Nov 2020 02:07:40 +0000 Received: from AM0PR06MB6577.eurprd06.prod.outlook.com (2a01:111:e400:fc36::4a) by AM7EUR06FT022.mail.protection.outlook.com (2a01:111:e400:fc36::388) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20 via Frontend Transport; Tue, 24 Nov 2020 02:07:40 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:09CAB705EE7FD68874A62B3FEAC4046E1813E4C141C0CDBE1D9DA885F1C86756; UpperCasedChecksum:3BD0200B8190DDD25CDF6EE034D16A7A7D19D566DD6D3279EE6B16E020102A0D; SizeAsReceived:8268; Count:46 Received: from AM0PR06MB6577.eurprd06.prod.outlook.com ([fe80::9487:8c7d:da00:4993]) by AM0PR06MB6577.eurprd06.prod.outlook.com ([fe80::9487:8c7d:da00:4993%7]) with mapi id 15.20.3589.030; Tue, 24 Nov 2020 02:07:40 +0000 From: Arthur Miller To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83k0udw3jb.fsf@gnu.org> <83v9dwufx4.fsf@gnu.org> <83mtz7vq8j.fsf@gnu.org> <83eekjvnzg.fsf@gnu.org> Date: Tue, 24 Nov 2020 03:07:39 +0100 In-Reply-To: <83eekjvnzg.fsf@gnu.org> (Eli Zaretskii's message of "Mon, 23 Nov 2020 22:04:35 +0200") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Content-Type: text/plain X-TMN: [foDzW72mAVUqwyKA+nigwVzXyoSA2HiJ] X-ClientProxiedBy: AM6PR10CA0104.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:209:8c::45) To AM0PR06MB6577.eurprd06.prod.outlook.com (2603:10a6:208:19a::23) X-Microsoft-Original-Message-ID: <87h7pfpkwk.fsf@live.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from pascal.homepc (90.230.29.56) by AM6PR10CA0104.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:209:8c::45) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20 via Frontend Transport; Tue, 24 Nov 2020 02:07:40 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 46 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 543101b5-e04c-4aa5-2b23-08d8901db904 X-MS-TrafficTypeDiagnostic: AM7EUR06HT203: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: kT3wbKejWJDxsM7PThU8AA0lpNDjwhuhNujZr3qqS5iSButbGaOa6LXkYp61Qkhez4eflVYKvqGk5/+xdDaL7f5yNQXmh2KnvbDkTOa6zzWPlRgsODtDOT9RyU7jnTP25dxIYD8D/bE3rY5n6IF2X+W8Mg63is6tPd8K9Nv1vcSHUYiyGkTCcP81wjjK8O2s/VNoUGmyBEcTiUcnlX7cWw== X-MS-Exchange-AntiSpam-MessageData: trIZkN6COxpJ5TWdDhQItAc2iNCMZtENr7y6vdld65nhxOi4k0lt8tRyEiKPcP2EkBTVx1lzZ6pdIMzKIP6Z9eGCO7XU+b/n12OUu51UKyIUm+3JiT+doyihgkwjXiQV0RgPpKrcrte//Js7hsPfpg== X-OriginatorOrg: live.com X-MS-Exchange-CrossTenant-Network-Message-Id: 543101b5-e04c-4aa5-2b23-08d8901db904 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Nov 2020 02:07:40.8760 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: AM7EUR06FT022.eop-eur06.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7EUR06HT203 X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii writes: >> From: Arthur Miller >> Cc: bugs@gnu.support, fweimer@redhat.com, 43389@debbugs.gnu.org, >> dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, >> carlos@redhat.com >> Date: Mon, 23 Nov 2020 20:49:48 +0100 >> >> Isn't Valgrind good for this kind of problems? Can I run emacs as a >> systemd service in Valgrind? > > You can run Emacs under Valgrind, see etc/DEBUG for the details. But > I'm not sure it will work as systemd service. > > Valgrind is only the right tool if we think there's a memory leak in > Emacs itself. Yeah, you are right; I was trying to crash my Emacs for like 4 hours now, I tried to simulate dired and copying/moving around files since I experienced crashes mostly when in dired and helm; I put a function on a timer where I made 1000 files every few seconds, red those files back inoto lists, copy them around and deleted them; and watched allocations and all I got was spent time; Emacs was rock solid. Typical :D. I hope that this pmem for the process is correct; I was looking at attributes and I saw it go up and down, but it seemed to stay in reange ~2.5 tp ~3.5%, This looked typical, pmem was different for every run, but stayed below 3.5% ((args . "/home/arthur/repos/emacs/src/emacs --fg-daemon") (pmem . 2.919526565234921) (pcpu . 13.355092518800808) (etime 0 5521 40000 0) (rss . 958748) (vsize . 1125912) (start 24508 19530 683640 125000) (thcount . 2) (nice . 0) (pri . 20) (ctime 0 6 880000 0) (cstime 0 0 420000 0) (cutime 0 6 460000 0) (time 0 737 340000 0) (stime 0 47 950000 0) (utime 0 689 390000 0) (cmajflt . 485) (cminflt . 214598) (majflt . 73) (minflt . 1286399) (tpgid . -1) (ttname . "") (sess . 24105) (pgrp . 24105) (ppid . 595) (state . "R") (comm . "emacs") (group . "users") (egid . 100) (user . "arthur") (euid . 1000)) ((args . "/home/arthur/repos/emacs/src/emacs --fg-daemon") (pmem . 2.919526565234921) (pcpu . 13.355092518800808) (etime 0 5521 40000 0) (rss . 958748) (vsize . 1125912) (start 24508 19530 684725 570000) (thcount . 2) (nice . 0) (pri . 20) (ctime 0 6 880000 0) (cstime 0 0 420000 0) (cutime 0 6 460000 0) (time 0 737 340000 0) (stime 0 47 950000 0) (utime 0 689 390000 0) (cmajflt . 485) (cminflt . 214598) (majflt . 73) (minflt . 1286399) (tpgid . -1) (ttname . "") (sess . 24105) (pgrp . 24105) (ppid . 595) (state . "R") (comm . "emacs") (group . "users") (egid . 100) (user . "arthur") (euid . 1000)) ((args . "/home/arthur/repos/emacs/src/emacs --fg-daemon") (pmem . 2.919526565234921) (pcpu . 13.355092518800808) (etime 0 5521 40000 0) (rss . 958748) (vsize . 1125912) (start 24508 19530 685810 502000) (thcount . 2) (nice . 0) (pri . 20) (ctime 0 6 880000 0) (cstime 0 0 420000 0) (cutime 0 6 460000 0) (time 0 737 340000 0) (stime 0 47 950000 0) (utime 0 689 390000 0) (cmajflt . 485) (cminflt . 214598) (majflt . 73) (minflt . 1286399) (tpgid . -1) (ttname . "") (sess . 24105) (pgrp . 24105) (ppid . 595) (state . "R") (comm . "emacs") (group . "users") (egid . 100) (user . "arthur") (euid . 1000)) ((args . "/home/arthur/repos/emacs/src/emacs --fg-daemon") (pmem . 2.919526565234921) (pcpu . 13.355092518800808) (etime 0 5521 40000 0) (rss . 958748) (vsize . 1125912) (start 24508 19530 686711 538000) (thcount . 2) (nice . 0) (pri . 20) (ctime 0 6 880000 0) (cstime 0 0 420000 0) (cutime 0 6 460000 0) (time 0 737 340000 0) (stime 0 47 950000 0) (utime 0 689 390000 0) (cmajflt . 485) (cminflt . 214598) (majflt . 73) (minflt . 1286399) (tpgid . -1) (ttname . "") (sess . 24105) (pgrp . 24105) (ppid . 595) (state . "R") (comm . "emacs") (group . "users") (egid . 100) (user . "arthur") (euid . 1000)) ((args . "/home/arthur/repos/emacs/src/emacs --fg-daemon") (pmem . 2.919526565234921) (pcpu . 13.355092518800808) (etime 0 5521 40000 0) (rss . 958748) (vsize . 1125912) (start 24508 19530 687465 69000) (thcount . 2) (nice . 0) (pri . 20) (ctime 0 6 880000 0) (cstime 0 0 420000 0) (cutime 0 6 460000 0) (time 0 737 340000 0) (stime 0 47 950000 0) (utime 0 689 390000 0) (cmajflt . 485) (cminflt . 214598) (majflt . 73) (minflt . 1286399) (tpgid . -1) (ttname . "") (sess . 24105) (pgrp . 24105) (ppid . 595) (state . "R") (comm . "emacs") (group . "users") (egid . 100) (user . "arthur") (euid . 1000)) I will see it comes back, and see if I can play more with it; I give up for now. From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 23 22:26:14 2020 Received: (at 43389) by debbugs.gnu.org; 24 Nov 2020 03:26:14 +0000 Received: from localhost ([127.0.0.1]:51925 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khOy6-0000hZ-Ia for submit@debbugs.gnu.org; Mon, 23 Nov 2020 22:26:14 -0500 Received: from eggs.gnu.org ([209.51.188.92]:58798) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khOy3-0000hK-Cs for 43389@debbugs.gnu.org; Mon, 23 Nov 2020 22:26:13 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:33875) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1khOxw-0007ek-8u; Mon, 23 Nov 2020 22:26:04 -0500 Received: from [176.228.60.248] (port=2351 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1khOxu-0002Ts-Pp; Mon, 23 Nov 2020 22:26:03 -0500 Date: Tue, 24 Nov 2020 05:25:59 +0200 Message-Id: <834klfv3js.fsf@gnu.org> From: Eli Zaretskii To: Andreas Schwab In-Reply-To: <87sg8zbxrx.fsf@igel.home> (message from Andreas Schwab on Mon, 23 Nov 2020 21:53:22 +0100) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <83k0udw3jb.fsf@gnu.org> <5c8da650-6f3d-8a36-6c09-4690b6c59fbe@redhat.com> <4c13d495-c0a1-b783-aacc-572887913212@redhat.com> <655ae11b-aa72-d10b-6817-9c2db62fb191@redhat.com> <838sarvmq5.fsf@gnu.org> <87sg8zbxrx.fsf@igel.home> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, carlos@redhat.com, trevor@trevorbentley.com, michael_heerdegen@web.de X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Andreas Schwab > Cc: Eli Zaretskii , fweimer@redhat.com, > 43389@debbugs.gnu.org, dj@redhat.com, carlos@redhat.com, > trevor@trevorbentley.com, michael_heerdegen@web.de > Date: Mon, 23 Nov 2020 21:53:22 +0100 > > On Nov 23 2020, Jean Louis wrote: > > > It happens during eww call, not immediately but during. > > That probably just means it is busy in libxml parsing the page. That's not what the backtrace is showing, though. From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 24 00:06:47 2020 Received: (at 43389) by debbugs.gnu.org; 24 Nov 2020 05:06:47 +0000 Received: from localhost ([127.0.0.1]:52093 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khQXP-0003EN-94 for submit@debbugs.gnu.org; Tue, 24 Nov 2020 00:06:47 -0500 Received: from static.rcdrun.com ([95.85.24.50]:46211) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khQXN-0003E4-Bq for 43389@debbugs.gnu.org; Tue, 24 Nov 2020 00:06:45 -0500 Received: from localhost ([::ffff:41.202.241.56]) (AUTH: PLAIN admin, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by static.rcdrun.com with ESMTPSA id 00000000002C000B.000000005FBC94DF.00004C35; Tue, 24 Nov 2020 05:06:38 +0000 Date: Tue, 24 Nov 2020 00:09:03 +0300 From: Jean Louis To: Andreas Schwab Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time Message-ID: References: <5c8da650-6f3d-8a36-6c09-4690b6c59fbe@redhat.com> <4c13d495-c0a1-b783-aacc-572887913212@redhat.com> <655ae11b-aa72-d10b-6817-9c2db62fb191@redhat.com> <838sarvmq5.fsf@gnu.org> <87sg8zbxrx.fsf@igel.home> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: <87sg8zbxrx.fsf@igel.home> User-Agent: Mutt/2.0 (3d08634) (2020-11-07) X-Spam-Score: 1.1 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: * Andreas Schwab [2020-11-23 23:53]: > On Nov 23 2020, Jean Louis wrote: > > > It happens during eww call, not immediately but during. > > That probably just means it is busy i [...] Content analysis details: (1.1 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 1.1 DATE_IN_PAST_06_12 Date: is 6 to 12 hours before Received: date -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, carlos@redhat.com, trevor@trevorbentley.com, michael_heerdegen@web.de, Eli Zaretskii X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.1 (/) * Andreas Schwab [2020-11-23 23:53]: > On Nov 23 2020, Jean Louis wrote: > > > It happens during eww call, not immediately but during. > > That probably just means it is busy in libxml parsing the page. The instance without LD_PRELOAD is fast. Instance with LD_PRELOAD will show me page but not allow any keyboard input unless I interrupt it few times then few times. And there is no CPU activity going on that I can see it on the indicator. From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 24 00:44:54 2020 Received: (at 43389) by debbugs.gnu.org; 24 Nov 2020 05:44:54 +0000 Received: from localhost ([127.0.0.1]:52161 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khR8I-0006K1-6l for submit@debbugs.gnu.org; Tue, 24 Nov 2020 00:44:54 -0500 Received: from static.rcdrun.com ([95.85.24.50]:47021) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khR8G-0006Jm-AF for 43389@debbugs.gnu.org; Tue, 24 Nov 2020 00:44:52 -0500 Received: from localhost ([::ffff:41.202.241.56]) (AUTH: PLAIN admin, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by static.rcdrun.com with ESMTPSA id 00000000002C1AE7.000000005FBC9DCD.0000528F; Tue, 24 Nov 2020 05:44:45 +0000 Date: Tue, 24 Nov 2020 08:29:47 +0300 From: Jean Louis To: Arthur Miller Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time Message-ID: References: <83k0udw3jb.fsf@gnu.org> <83v9dwufx4.fsf@gnu.org> <83mtz7vq8j.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: User-Agent: Mutt/2.0 (3d08634) (2020-11-07) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com, Eli Zaretskii X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * Arthur Miller [2020-11-24 00:23]: > Jean Louis writes: > > > * Arthur Miller [2020-11-23 23:22]: > >> The only thing that changed regularly was of course system updates: kernel, > >> gcc & co etc. So it maybe is as mentioned earlier in this thread by > >> either you or somebody else is that glibc changed and that maybe > >> triggers something in Emacs based on how Emacs use it. I don't know I am > >> not expert in this. Isn't Valgrind good for this kind of problems? Can I > >> run emacs as a systemd service in Valgrind? > > > > I did not change anything like glibc or kernel in Hyperbola > > GNU/Linux-libre > Didn't you update your system since last summer? I am pulling Emacs from git and consider system upgraded that way. For system packages, pacman says there is nothing to do most of time, unless there is new kernel or some security issue. From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 24 03:15:32 2020 Received: (at 43389) by debbugs.gnu.org; 24 Nov 2020 08:15:32 +0000 Received: from localhost ([127.0.0.1]:57382 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khTU3-0000Al-Kb for submit@debbugs.gnu.org; Tue, 24 Nov 2020 03:15:31 -0500 Received: from mail-oln040092067072.outbound.protection.outlook.com ([40.92.67.72]:60830 helo=EUR02-AM5-obe.outbound.protection.outlook.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khTU1-0008Ue-O5 for 43389@debbugs.gnu.org; Tue, 24 Nov 2020 03:15:30 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=b2maJ8bH+pwT6OgpCbqGNJqsxwwZMJt0m1CEDkTnxcAxunvJJzjO12DLtFipMnVvZ0z9WdqyhP7NGmTdHUOCU/u3o9Yse4MNElj3Cu1xKMY4xa+mBUo6q0UnijMqAYMsfnWwH0h82GbIbPIqDF4FY1whSVgcJp33/gn4fqnJWAS6/LaTN8A71K5lW5OI2redQRTyjrarPsSy5pu/x0u7KlDHaAozslVn9nZuTPN8pe0Ve8Lhb2yxzFn/D2bAZh1E4pS3WlrhJwz8BKgMEzhDrippdvnwR4Wx2SOktCGK/i3sEYJcd+1BHCaOFzM4ZwYbMA0iLDN4kTYgcdxozf1PRQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2/XHCD+bzJVEiw9Sav+JhZb4Gf1KJNejCCrd996Puzo=; b=NTmwkr8Tppw3VWCMjKL/to+Wz9fbZsSa/9c/FMWjv+nw+pkUmPgHVKS3BQkuYJ4TAaVHdrcCUyfMB6KnbQQQZOS3ARU0XXC08m3cVWMC7etEgMks6ewUUr4Kx0mp5gm791He9XIZ1Da2ot54/xYEveO+GhNl0dIs2zo39nPZZEZD1gCnT9tf1DV9QrAC9LDEHJ0AxAky7xfbbpJpNKJXg3dXIm1/LhciFyd1hML7SBAJfSSqIw8vy1XOyVn3ZF1GshNSk9n9tFwOk8RuCwHT4UVe28XViZDu4ucIGp50aiDeajDKLFe+Bglceo05EDLAS/ZHh6WuenZuWc4IP71wCg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=live.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2/XHCD+bzJVEiw9Sav+JhZb4Gf1KJNejCCrd996Puzo=; b=YQpW4537vxwpF3fFYw0CD4GBO8+eZfuI/KDWLfOnnwj9Ryfsuxv+EY9V8XRJIk5rxFqDdgUKAdaB5nGrV6hucagv4ufIn80iJKT2ybRtH7jZEtX8qc8gX4BQR+6AYzGVrVnykjqrFsXwzRNMEzptdDz5h/lSJ2egkaVaSENE0IRyYKV0qDwBlQT4T2ItLOsZ5OJTQ79+SyUVBqcjYYnvt4d6JB4hwXkj5+g5+dnHlmNFYx5qDBUyudDqv1EcZ91K3RHtR+VtePOgiIC0iIZn9kQ78SrIChCTiMeO3m453mkujB14Rq9HnCHxYrVm6jn4/HxnTD+2vXJSRs3+KuKkRQ== Received: from HE1EUR02FT050.eop-EUR02.prod.protection.outlook.com (2a01:111:e400:7e1d::50) by HE1EUR02HT168.eop-EUR02.prod.protection.outlook.com (2a01:111:e400:7e1d::291) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20; Tue, 24 Nov 2020 08:15:21 +0000 Received: from AM0PR06MB6577.eurprd06.prod.outlook.com (2a01:111:e400:7e1d::40) by HE1EUR02FT050.mail.protection.outlook.com (2a01:111:e400:7e1d::465) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20 via Frontend Transport; Tue, 24 Nov 2020 08:15:21 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:AA2D22FD5C066EA5C2728BE7086BF298F97E869B28562D20E9B9B1EE57AA0D32; UpperCasedChecksum:ED68B9CEA2C227C1C8F477E5B39CE6A2AB61B00F621A0E0FB838B8BB186EAE1F; SizeAsReceived:8109; Count:46 Received: from AM0PR06MB6577.eurprd06.prod.outlook.com ([fe80::9487:8c7d:da00:4993]) by AM0PR06MB6577.eurprd06.prod.outlook.com ([fe80::9487:8c7d:da00:4993%7]) with mapi id 15.20.3589.030; Tue, 24 Nov 2020 08:15:21 +0000 From: Arthur Miller To: Jean Louis Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <83k0udw3jb.fsf@gnu.org> <83v9dwufx4.fsf@gnu.org> <83mtz7vq8j.fsf@gnu.org> Date: Tue, 24 Nov 2020 09:15:20 +0100 In-Reply-To: (Jean Louis's message of "Tue, 24 Nov 2020 08:29:47 +0300") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Content-Type: text/plain X-TMN: [GLSgXCeY+YlCCibsohH8rc/1HLf06nGJ] X-ClientProxiedBy: AM6P194CA0067.EURP194.PROD.OUTLOOK.COM (2603:10a6:209:84::44) To AM0PR06MB6577.eurprd06.prod.outlook.com (2603:10a6:208:19a::23) X-Microsoft-Original-Message-ID: <87k0ub2msn.fsf@live.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from pascal.homepc (90.230.29.56) by AM6P194CA0067.EURP194.PROD.OUTLOOK.COM (2603:10a6:209:84::44) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20 via Frontend Transport; Tue, 24 Nov 2020 08:15:21 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 46 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 26f49481-9ac1-4cdd-84ba-08d89051165a X-MS-TrafficTypeDiagnostic: HE1EUR02HT168: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: aJAYLgrQMgDiX0xy3D7z8TgAqY5HUiT+e6LwYb7fOAodWSkGrzO9BCP801x7p0yqP7DZqg3uJBRskhcohL4izMInEBOSeBva8u9qyzD6QAGWD+y4pjlyaO/yc/WRUqodbf2kao34K1lLXcsuMHQkKFFY+bgYlDFYlRAvP3MQdxpLK1gVkqrvzSZxuuhZMPaeCvXN0e6fwOXaUre+Q1DXbw== X-MS-Exchange-AntiSpam-MessageData: wJce1WPvgH5jlzESsORtZEVZNGZbHr/QAh0kvkznypDdZkVm8PVf7HoWPH6nF2iLdZlxOBmwZnORuu3mIfN0Ew/XxeNFlBNHnjAJxdHWiJZP+gnWCb77iY3bAHUKBiIkVS2jeEgU8S3cFyJPg2wfTg== X-OriginatorOrg: live.com X-MS-Exchange-CrossTenant-Network-Message-Id: 26f49481-9ac1-4cdd-84ba-08d89051165a X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Nov 2020 08:15:21.7624 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: HE1EUR02FT050.eop-EUR02.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1EUR02HT168 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com, Eli Zaretskii X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Jean Louis writes: > * Arthur Miller [2020-11-24 00:23]: >> Jean Louis writes: >> >> > * Arthur Miller [2020-11-23 23:22]: >> >> The only thing that changed regularly was of course system updates: kernel, >> >> gcc & co etc. So it maybe is as mentioned earlier in this thread by >> >> either you or somebody else is that glibc changed and that maybe >> >> triggers something in Emacs based on how Emacs use it. I don't know I am >> >> not expert in this. Isn't Valgrind good for this kind of problems? Can I >> >> run emacs as a systemd service in Valgrind? >> > >> > I did not change anything like glibc or kernel in Hyperbola >> > GNU/Linux-libre >> Didn't you update your system since last summer? > > I am pulling Emacs from git and consider system upgraded that way. same here > For system packages, pacman says there is nothing to do most of time, > unless there is new kernel or some security issue. Aha, you are running LTS kernel? Mine pacman brings in updates every day. From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 24 04:10:36 2020 Received: (at 43389) by debbugs.gnu.org; 24 Nov 2020 09:10:36 +0000 Received: from localhost ([127.0.0.1]:57639 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khULL-0007ih-JV for submit@debbugs.gnu.org; Tue, 24 Nov 2020 04:10:35 -0500 Received: from static.rcdrun.com ([95.85.24.50]:44863) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khULK-0007iV-RF for 43389@debbugs.gnu.org; Tue, 24 Nov 2020 04:10:35 -0500 Received: from localhost ([::ffff:41.202.241.56]) (AUTH: PLAIN admin, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by static.rcdrun.com with ESMTPSA id 00000000002C0003.000000005FBCCE04.00006CE8; Tue, 24 Nov 2020 09:10:27 +0000 Date: Tue, 24 Nov 2020 12:06:03 +0300 From: Jean Louis To: Arthur Miller Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time Message-ID: References: <83v9dwufx4.fsf@gnu.org> <83mtz7vq8j.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: User-Agent: Mutt/2.0 (3d08634) (2020-11-07) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com, Eli Zaretskii X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * Arthur Miller [2020-11-24 11:15]: > > I am pulling Emacs from git and consider system upgraded that way. > same here > > > For system packages, pacman says there is nothing to do most of time, > > unless there is new kernel or some security issue. > > Aha, you are running LTS kernel? > > Mine pacman brings in updates every day. Really? /boot: config-linux-libre-lts grub initramfs-linux-libre-lts-fallback.img initramfs-linux-libre-lts.img vmlinuz-linux-libre-lts So you have Hyperbola and you get updates every day? How comes? From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 24 04:27:37 2020 Received: (at 43389) by debbugs.gnu.org; 24 Nov 2020 09:27:37 +0000 Received: from localhost ([127.0.0.1]:57675 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khUbg-00089o-Me for submit@debbugs.gnu.org; Tue, 24 Nov 2020 04:27:37 -0500 Received: from mail-oln040092072086.outbound.protection.outlook.com ([40.92.72.86]:52358 helo=EUR03-VE1-obe.outbound.protection.outlook.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khUbe-00089X-Dp for 43389@debbugs.gnu.org; Tue, 24 Nov 2020 04:27:26 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OiF6fuNJQ59YSNT+PQXx4p6MZI5i0d4MGi8zodPAPeENWke8pBDydQFAgz60rl2FFRm5cBQJhK8UDNqbrzsY+cYRoyjWpu+oRP5cdYNgWJ9szIQEVizhUDfYlyd5+EymjH7ccWXe8waKqKCebtOGJaVMKMUATQN3vpKR5UUf/bY2nHLhi326s2bazItEEfrU6VgPFhrm+wBSrX9KL8WzUIV2Uv+Eufe49/53nj2LpewMl6ugQJNjVyKwuaR5LK12z0VEtyCLVr5tL5i8Eud5E80fQ3q4IwR3VwIt0IPkNKKVScz+mKBR5oOKT3xPU+DDjbeL961sLdO2bRv6XFRUBQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/mvk7RfOvnN6DGB33tdvwdvJP69mUy0RtCCxBrc+brA=; b=IUVSEaBIA2pxylk1434G2tuCBryehrATf6RJxK5jWIpXvO68Z+ME0obmIx4oVKwsl1M5mR415kqmhBvnhRIiGFC80eHKvf+a9ETQAPrvyo/RCPxTJaVfgCGX0hBoHKLp2Dp+ldyE1slvtNId6TyVZXaw/NVVfmHDhKkc/ZWmqNO4jq8Kzk/UY+vZCEdvV8FFIKepWa7fdsm9v76cBRlzkIZpqsVPOLJaVma6xRkQlNCKAYNkoIg+yr8oGFVmsmQXrRPupc+ZlQF0Bmdhzpq/8C1DP5zQze0V3Nd56N7ccbQdKcSDfAKcRgb2uT7LWKM8RDVG1xI2qegpsTvtahBtwA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=live.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/mvk7RfOvnN6DGB33tdvwdvJP69mUy0RtCCxBrc+brA=; b=HCn6ddoCpVlFyk+OjN3h0ETZUju0k2SkBMv8nbiC5xcimMJusZQqaz7BPkd5IIM9qjPEH9pzcTYD7iCJM34Sy2+GOPw44VUHWIJfRMT+KPPhdH3JbUDjF8T7UEXYEcvMxz9SlLJ3ZfVSmVSkbCX13CQMLreNzVpgjJLOT/dZfCN9zKd5q4Qx6shV5vGcrVQF+Oy9EXR/WfQiuaK7GMmYk86KfMOsrBvAVMP/tRd/y6V41e9OyoA7nOLpu6oehqrhTWzKviSQ67Z+qX+knwXqPN8ccj6LePKM8/Szl7N7jpiL3YfPZPZLi1qk8f7f3U8Z8KBGxhueV4wgni7hq6D10A== Received: from DB5EUR03FT032.eop-EUR03.prod.protection.outlook.com (2a01:111:e400:7e0a::40) by DB5EUR03HT155.eop-EUR03.prod.protection.outlook.com (2a01:111:e400:7e0a::211) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20; Tue, 24 Nov 2020 09:27:19 +0000 Received: from AM0PR06MB6577.eurprd06.prod.outlook.com (2a01:111:e400:7e0a::46) by DB5EUR03FT032.mail.protection.outlook.com (2a01:111:e400:7e0a::162) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20 via Frontend Transport; Tue, 24 Nov 2020 09:27:19 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:444B315375D170D70388827B878043D0F129EB9C16BDD8AD9574DFD0273CF329; UpperCasedChecksum:F90CD1934ACC56D229092DB3C9B76CFD65ADDD8819B6063452EAD12E85A1BC76; SizeAsReceived:8164; Count:46 Received: from AM0PR06MB6577.eurprd06.prod.outlook.com ([fe80::9487:8c7d:da00:4993]) by AM0PR06MB6577.eurprd06.prod.outlook.com ([fe80::9487:8c7d:da00:4993%7]) with mapi id 15.20.3589.030; Tue, 24 Nov 2020 09:27:18 +0000 From: Arthur Miller To: Jean Louis Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <83v9dwufx4.fsf@gnu.org> <83mtz7vq8j.fsf@gnu.org> Date: Tue, 24 Nov 2020 10:27:17 +0100 In-Reply-To: (Jean Louis's message of "Tue, 24 Nov 2020 12:06:03 +0300") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Content-Type: text/plain X-TMN: [C4KsQAaBOIOPNBLNQRAKU4YFi7zOt9lW] X-ClientProxiedBy: AS8PR04CA0069.eurprd04.prod.outlook.com (2603:10a6:20b:313::14) To AM0PR06MB6577.eurprd06.prod.outlook.com (2603:10a6:208:19a::23) X-Microsoft-Original-Message-ID: <877dqb2jgq.fsf@live.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from pascal.homepc (90.230.29.56) by AS8PR04CA0069.eurprd04.prod.outlook.com (2603:10a6:20b:313::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3611.20 via Frontend Transport; Tue, 24 Nov 2020 09:27:18 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 46 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: b2495917-d0b4-4b24-9ef1-08d8905b2378 X-MS-TrafficTypeDiagnostic: DB5EUR03HT155: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: qe+1Rch/C0aSYqLHVf2MOZKVBZ3VvIsk5getkeqsyII0G/0aLKZs526zZbUMR8MYreoA33fsj6lh4FO7sctm/3ESPYae36AtWh1b6HzozWrDgcF/R00fdx6BsgwQnAFN4t3hTeZ+0jC0orYJqjs35h7ncRILmXbs7j+32bUUaikciscYrpuzJnNddotzoTDdzPU+ypDOPtQGkqaN7ROJbQ== X-MS-Exchange-AntiSpam-MessageData: 7PbGjpeEZWfxf4Sh0SOq5kfzwJt+sGCgoPXUROSUEKuH89CjIZnJJ8TBUxDGkQL8hGLx+lB2u1PJZUu+knF0E06ZxIhMKzONR+/jco49dbHt5tpEH8gu0OT9IcQwte8FrCqJPnOAot5Pi8mIbDqoZg== X-OriginatorOrg: live.com X-MS-Exchange-CrossTenant-Network-Message-Id: b2495917-d0b4-4b24-9ef1-08d8905b2378 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Nov 2020 09:27:18.7503 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: DB5EUR03FT032.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5EUR03HT155 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com, Eli Zaretskii X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Jean Louis writes: > * Arthur Miller [2020-11-24 11:15]: >> > I am pulling Emacs from git and consider system upgraded that way. >> same here >> >> > For system packages, pacman says there is nothing to do most of time, >> > unless there is new kernel or some security issue. >> >> Aha, you are running LTS kernel? >> >> Mine pacman brings in updates every day. > > Really? Yepp; but I am not on lts-kernel, that is probably why. > /boot: > > config-linux-libre-lts > grub > initramfs-linux-libre-lts-fallback.img > initramfs-linux-libre-lts.img > vmlinuz-linux-libre-lts > > So you have Hyperbola and you get updates every day? How comes? No Hyperbola don't even know what distro it is; Just Arch Linux here. I guess because I am not on lts-kernel and probably because I have lots of stuff installed. Harddrive is cheap nowdays. I have entire kde/gnome stack installed; and lots more. When I need to compile a library or application I don't want ot chase dependencies around. I just don't use them as desktops and don't run apps. For example yesterday I was just able to git clone heaptrack and compile it, no headaches. From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 24 11:08:05 2020 Received: (at 43389) by debbugs.gnu.org; 24 Nov 2020 16:08:05 +0000 Received: from localhost ([127.0.0.1]:60996 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kharM-0006Ed-SB for submit@debbugs.gnu.org; Tue, 24 Nov 2020 11:08:05 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52326) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kharL-0006E7-J8 for 43389@debbugs.gnu.org; Tue, 24 Nov 2020 11:08:03 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:46637) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kharE-0007t9-Az; Tue, 24 Nov 2020 11:07:56 -0500 Received: from [176.228.60.248] (port=1112 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kharC-0001Pp-WD; Tue, 24 Nov 2020 11:07:55 -0500 Date: Tue, 24 Nov 2020 18:07:52 +0200 Message-Id: <83o8jmu49z.fsf@gnu.org> From: Eli Zaretskii To: Trevor Bentley In-Reply-To: <87o8jnu5f2.fsf@mail.trevorbentley.com> (message from Trevor Bentley on Mon, 23 Nov 2020 22:30:57 +0100) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, carlos@redhat.com, michael_heerdegen@web.de X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Trevor Bentley > Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, > michael_heerdegen@web.de, carlos@redhat.com > Cc: > Date: Mon, 23 Nov 2020 22:30:57 +0100 > > ;;-------------------------------------- > ;;-------------------------------------- > ;; 3 days later > ;; RSS was steady at 1150MB > ;; leaped to 2.3GB very suddenly > ;; > ;; RSS 2311M > ;;-------------------------------------- > ;;-------------------------------------- > ;; ~182MB > (let ((size 0)) > (dolist (buffer (buffer-list) size) > (setq size (+ size (buffer-size buffer))))) > 182903045 > > ;; sums to ~142MB if I'm reading it right? > (garbage-collect) > ((conses 16 2081486 2630206) (symbols 48 61019 79) (strings 32 353371 288980) (string-bytes 1 13294206) (vectors 16 144742) (vector-slots 8 9503757 592939) (floats 8 2373 8320) (intervals 56 46660 10912) (buffers 992 82)) > (reduce '+ (cl-loop for thing in (garbage-collect) > collect (* (nth 1 thing) (nth 2 thing)))) > 142115406 > > ;; malloc-info > (malloc-info) > > > > > > [...] > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Look at the large chunks in the tail of this. Together, they do account for ~2GB. Carlos, are these chunks in use (i.e. allocated and not freed), or are they the free chunks that are available for allocation, but not released to the OS? If the former, then it sounds like this session does have around 2GB of allocated heap data, so either there's some allocated memory we don't account for, or there is indeed a memory leak in Emacs. If these are the free chunks, then the way glibc manages free'd memory is indeed an issue. From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 24 14:05:24 2020 Received: (at 43389) by debbugs.gnu.org; 24 Nov 2020 19:05:24 +0000 Received: from localhost ([127.0.0.1]:33017 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khdcy-0008Sl-GU for submit@debbugs.gnu.org; Tue, 24 Nov 2020 14:05:24 -0500 Received: from mail.trevorbentley.com ([37.187.5.80]:51174) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khdcw-0008SX-U8 for 43389@debbugs.gnu.org; Tue, 24 Nov 2020 14:05:23 -0500 Received: from localhost (c188-150-0-48.bredband.comhem.se [188.150.0.48]) by mail.trevorbentley.com (Postfix) with ESMTPSA id EA406607BA; Tue, 24 Nov 2020 20:05:16 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mail.trevorbentley.com; s=mail; t=1606244717; bh=lrZ4UZz4bniK0yXJj4ipYK+kJ+E7qoIIV1KYtbwXl6w=; h=From:To:Cc:Cc:Subject:In-Reply-To:References:Date:From; b=oJXBO9GDsFpZ1+DqwZwkA3zV74oitJV43/9Qaj47/e4W4x/Q0RApDf/pXGyQ8U8Za uTi2870XAE1qG9u3Ofi+TQe9hkTgvM/Lgqa7qP1Zl/tZrLOuOSxHv4q/JuKn2/rpsl sLgWkWIjQPsyUH9oNVjQW0uNIIE7qR0jLID6ok9k= From: Trevor Bentley To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time In-Reply-To: <83o8jmu49z.fsf@gnu.org> References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> Date: Tue, 24 Nov 2020 20:05:15 +0100 Message-ID: <87ft4ytw2c.fsf@mail.trevorbentley.com> MIME-Version: 1.0 Content-Type: text/plain; format=flowed X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, carlos@redhat.com, michael_heerdegen@web.de, X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii writes: > > Look at the large chunks in the tail of this. Together, they do > account for ~2GB. > > Carlos, are these chunks in use (i.e. allocated and not freed), > or are they the free chunks that are available for allocation, > but not released to the OS? If the former, then it sounds like > this session does have around 2GB of allocated heap data, so > either there's some allocated memory we don't account for, or > there is indeed a memory leak in Emacs. If these are the free > chunks, then the way glibc manages free'd memory is indeed an > issue. I just updated the log on my website. Same instance a day later, after yet another memory spike up to 4.3GB. Concatenated to the end: https://trevorbentley.com/emacs_malloc_info.log Some interesting observations: - (garbage-collect) takes forever, like on the order of 5-10 minutes, with one CPU core pegged to 100% and emacs frozen. - The leaking stops for a while after (garbage-collect). It was leaking 1MB per second for this last log, and stopped growing after the garbage collection. Question 1: (garbage-collect) shows the memory usage *after* collecting, right? Is there any way to get the same info without actually reaping dead references? It could be that there really were 4.3GB of dead references. Question 2: are the background garbage collections equivalent to the (garbage-collect) function? I certainly don't notice 5-10 minute long pauses during normal use, though "gcs-done" is incrementing. Does it have a different algorithm for partial collection during idle, perhaps? Question 3: I've never used the malloc_trim() function. Could that be something worth experimenting with, to see if it releases any of the massive heap back to the OS? -Trevor From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 24 14:35:15 2020 Received: (at 43389) by debbugs.gnu.org; 24 Nov 2020 19:35:16 +0000 Received: from localhost ([127.0.0.1]:33056 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khe5r-0000jZ-If for submit@debbugs.gnu.org; Tue, 24 Nov 2020 14:35:15 -0500 Received: from eggs.gnu.org ([209.51.188.92]:47540) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khe5p-0000jM-1f for 43389@debbugs.gnu.org; Tue, 24 Nov 2020 14:35:13 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:49575) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1khe5j-00041u-BD; Tue, 24 Nov 2020 14:35:07 -0500 Received: from [176.228.60.248] (port=1958 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1khe5h-0006ap-OB; Tue, 24 Nov 2020 14:35:06 -0500 Date: Tue, 24 Nov 2020 21:35:03 +0200 Message-Id: <83d002tuoo.fsf@gnu.org> From: Eli Zaretskii To: Trevor Bentley In-Reply-To: <87ft4ytw2c.fsf@mail.trevorbentley.com> (message from Trevor Bentley on Tue, 24 Nov 2020 20:05:15 +0100) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <87ft4ytw2c.fsf@mail.trevorbentley.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, carlos@redhat.com, michael_heerdegen@web.de X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Trevor Bentley > Cc: bugs@gnu.support, fweimer@redhat.com, 43389@debbugs.gnu.org, > dj@redhat.com, michael_heerdegen@web.de, carlos@redhat.com > Cc: > Date: Tue, 24 Nov 2020 20:05:15 +0100 > > I just updated the log on my website. Same instance a day later, > after yet another memory spike up to 4.3GB. Concatenated to the > end: > > https://trevorbentley.com/emacs_malloc_info.log I don't think I can interpret that. In particular, how come "total" is 4GB, but I see no comparable sizes in any of the other fields? where do those 4GB hide? Carlos, can you help interpreting this report? > Some interesting observations: > - (garbage-collect) takes forever, like on the order of 5-10 > minutes, with one CPU core pegged to 100% and emacs frozen. Is this with the default values of gc-cons-threshold and gc-cons-percentage? > - The leaking stops for a while after (garbage-collect). It was > leaking 1MB per second for this last log, and stopped growing > after the garbage collection. Now, what happens in that session once per second (in an otherwise idle Emacs, I presume?) to cause such memory consumption? Some timers? If you run with a breakpoint in malloc that just shows the backtrace and continues, do you see what could consume 1MB every second? > Question 1: (garbage-collect) shows the memory usage *after* > collecting, right? Yes. > Is there any way to get the same info without actually reaping dead > references? What do you mean by "reaping dead references" here? > It could be that there really were 4.3GB of dead references. Not sure I understand what are you trying to establish here. > Question 2: are the background garbage collections equivalent to > the (garbage-collect) function? I certainly don't notice 5-10 > minute long pauses during normal use, though "gcs-done" is > incrementing. Does it have a different algorithm for partial > collection during idle, perhaps? There's only one garbage-collect, it is called for _any_ GC. What do you mean by "during normal use" in this sentence: I certainly don't notice 5-10 minute long pauses during normal use, though "gcs-done" is incrementing. How is what you did here, where GC took several minutes, different from "normal usage"? > Question 3: I've never used the malloc_trim() function. Could > that be something worth experimenting with, to see if it releases > any of the massive heap back to the OS? That's for glibc guys to answer. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 24 23:23:53 2020 Received: (at 43389) by debbugs.gnu.org; 25 Nov 2020 04:23:54 +0000 Received: from localhost ([127.0.0.1]:33829 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khmLR-00032y-JW for submit@debbugs.gnu.org; Tue, 24 Nov 2020 23:23:53 -0500 Received: from static.rcdrun.com ([95.85.24.50]:42465) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khmLP-00032k-Ax for 43389@debbugs.gnu.org; Tue, 24 Nov 2020 23:23:52 -0500 Received: from localhost ([::ffff:41.202.241.56]) (AUTH: PLAIN admin, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by static.rcdrun.com with ESMTPSA id 00000000002C1AE8.000000005FBDDC51.00002A16; Wed, 25 Nov 2020 04:23:44 +0000 Date: Tue, 24 Nov 2020 20:18:17 +0300 From: Jean Louis To: Arthur Miller Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time Message-ID: References: <83v9dwufx4.fsf@gnu.org> <83mtz7vq8j.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: User-Agent: Mutt/2.0 (3d08634) (2020-11-07) X-Spam-Score: 1.1 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: * Arthur Miller [2020-11-24 12:27]: > Yepp; but I am not on lts-kernel, that is probably why. I think it is the other issue that you hve many packages, I also have many for Gnome and KDE but do not get updates, maybe I use mirror that is not updated. I will see that. Content analysis details: (1.1 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record 1.1 DATE_IN_PAST_06_12 Date: is 6 to 12 hours before Received: date -0.0 SPF_HELO_PASS SPF: HELO matches SPF record 0.0 URIBL_BLOCKED ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [URIs: live.com] X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com, Eli Zaretskii X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.1 (/) * Arthur Miller [2020-11-24 12:27]: > Yepp; but I am not on lts-kernel, that is probably why. I think it is the other issue that you hve many packages, I also have many for Gnome and KDE but do not get updates, maybe I use mirror that is not updated. I will see that. > > So you have Hyperbola and you get updates every day? How comes? > No Hyperbola don't even know what distro it is; Just Arch Linux > here. Well then it is different thing. You are updating from different repository than me. > Harddrive is cheap nowdays. I have entire kde/gnome stack installed; and > lots more. When I need to compile a library or application I don't want > ot chase dependencies around. I just don't use them as desktops and > don't run apps. For example yesterday I was just able to git clone > heaptrack and compile it, no headaches. That is different OS and Hyperbola is different. Arch Linux has lax policy against non-free software, while Hyperbola GNU/Linux-libre has very strict policy and does not allow anything non-free, that is reason I am using it. It does not use systemd trap and is working stable. Few times I got problem with building for example webkit, but otherwise anything builds pretty well. Hyperbola is independent project that receives little support, it should receive so much more. They will also create new HyperbolaBSD system that will move an OpenBSD kernel into GNU GPL direction. Jean From debbugs-submit-bounces@debbugs.gnu.org Wed Nov 25 05:22:26 2020 Received: (at 43389) by debbugs.gnu.org; 25 Nov 2020 10:22:26 +0000 Received: from localhost ([127.0.0.1]:34490 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khrwQ-0005kB-7V for submit@debbugs.gnu.org; Wed, 25 Nov 2020 05:22:26 -0500 Received: from mail.trevorbentley.com ([37.187.5.80]:55476) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khrwO-0005jv-2x for 43389@debbugs.gnu.org; Wed, 25 Nov 2020 05:22:24 -0500 Received: from localhost (c188-150-0-48.bredband.comhem.se [188.150.0.48]) by mail.trevorbentley.com (Postfix) with ESMTPSA id 7123360808; Wed, 25 Nov 2020 11:22:17 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mail.trevorbentley.com; s=mail; t=1606299737; bh=XUiOLQ3BdxJ8iTci8bnH0T9bgVGBHTNdvLIwCC9Uubw=; h=From:To:Cc:Cc:Subject:In-Reply-To:References:Date:From; b=O94jvT6gax5yd2L00+fjJo/khRHIW6FV9JhyLwiQWLtrowCusilgysEMgNjFFv3JU rFgG8xzfcHZ81iYnSY4zmErf6137Ffk26oeCWiTD8/CqOeSKbx1jogDNXhvoL6gG6N Gg1smFJBKC1BTqARceKKz/4lBtSbY55bJp4XQgog= From: Trevor Bentley To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time In-Reply-To: <83d002tuoo.fsf@gnu.org> References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <87ft4ytw2c.fsf@mail.trevorbentley.com> <83d002tuoo.fsf@gnu.org> Date: Wed, 25 Nov 2020 11:22:16 +0100 Message-ID: <87d001u46f.fsf@mail.trevorbentley.com> MIME-Version: 1.0 Content-Type: text/plain; format=flowed X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, carlos@redhat.com, michael_heerdegen@web.de, X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii writes: >> Some interesting observations: >> - (garbage-collect) takes forever, like on the order of 5-10 >> minutes, with one CPU core pegged to 100% and emacs frozen. > > Is this with the default values of gc-cons-threshold and > gc-cons-percentage? Yes, and they're both printed in the logs: threshold 800000, percentage 0.1. >> - The leaking stops for a while after (garbage-collect). It >> was leaking 1MB per second for this last log, and stopped >> growing after the garbage collection. > > Now, what happens in that session once per second (in an > otherwise idle Emacs, I presume?) to cause such memory > consumption? Some timers? If you run with a breakpoint in > malloc that just shows the backtrace and continues, do you see > what could consume 1MB every second? Not an idle emacs at all, in this case. I have seen the memory growth in an idle emacs, but the only one I can reproduce it on is the emacs-slack one, which is connected to a corporate Slack account. Tons of short messages streaming in over the network and being displayed in rotating buffers, with images mixed in. It's a big 'ol "web 2.0" API... it can easily pass 1MB/s of bloated JSON messages through. This is one _very active_ emacs. The original strace logs and valgrind output I posted before showed a random assortment of calls from gnutls, imagemagick, and lisp strings, with lisp strings dominating the malloc calls (enlarge_buffer_text, mostly). >> Is there any way to get the same info without actually reaping >> dead references? > > What do you mean by "reaping dead references" here? > >> It could be that there really were 4.3GB of dead references. > > Not sure I understand what are you trying to establish here. > GC is running through a list of active allocations and freeing the ones with no remaining references, right? Presumably, if a lot of active malloc() allocations are no longer refernced, and (garbage-collect) calls free() on a bunch of blocks. I'm wondering how to figure out how much memory a call to (garbage-collect) has actually freed. Possibly a sort of "dry run" where it performs the GC algorithm, but doesn't release any memory. (I'm very much assuming how emacs memory management works. Please corect me if I'm wrong.) > There's only one garbage-collect, it is called for _any_ GC. > > What do you mean by "during normal use" in this sentence: > > I certainly don't notice 5-10 minute long pauses during normal > use, though "gcs-done" is incrementing. > > How is what you did here, where GC took several minutes, > different from "normal usage"? In this log, I am explicitly executing "(garbage-collect)", and it takes 10 minutes, during which the UI is unresponsive and sometimes even turns grey when the window stops redrawing. By "normal use", I mean that I use this emacs instance on-and-off all day long. I would notice if it were freezing for minutes at a time, and it definitely is not. As far as I understand, garbage collection is supposed to happen automatically during idle. I would certainly notice if it locked up the whole instance for 10 minutes from an idle GC. I think this means the automatic garbage collection is either not happening, or running on a different thread, or being interrupted, or simply works differently. I have no idea, hence asking you :) The confusing part is that "gcs-done" increments a lot between my manual (garbage-collect) calls. It looks like it does about 500 per day. There is no way emacs freezes and pegs a CPU core to max 500 times per day, but it does exactly that every time I manually execute garbage-collect. Side note: it inflated to 7670MB overnight. I'm running (garbage-collect) as I type this, but it has been churning for 30 minutes with the UI frozen, and still isn't done. I'm going to give up and kill it if it doesn't finish soon, as I kind of need that 8GB back. -Trevor From debbugs-submit-bounces@debbugs.gnu.org Wed Nov 25 09:59:34 2020 Received: (at 43389) by debbugs.gnu.org; 25 Nov 2020 14:59:34 +0000 Received: from localhost ([127.0.0.1]:36668 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khwGc-0006ij-8H for submit@debbugs.gnu.org; Wed, 25 Nov 2020 09:59:34 -0500 Received: from mail-am6eur05olkn2011.outbound.protection.outlook.com ([40.92.91.11]:29437 helo=EUR05-AM6-obe.outbound.protection.outlook.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khwGa-0006iV-MY for 43389@debbugs.gnu.org; Wed, 25 Nov 2020 09:59:33 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RzC8LuN7x2z62ltG9Yxo5ubAYljf3WAOcq5P98+o2nLuCf9gHPmYkR6RTYVtKokislr+sghdKfgTwApJ4S2j6cthT1EPHU8V8rsJliJfL8g76O4GEPbUcWJQ840BsSA820WUlox1ghlekR8710LBiygOFyPhEThGDWba4WouHtrIU/gKGrhnnYZmLb9RmEKlbuu9k/feUJYN7fFCF+jlnPTPnNdtKDbegOgY3yNgfoaPJzgTSkLBYNx2Yr7Qy2mudG9+EYH7c+iNNgk8OpYwUJuRvdPk4UCRFlLsXoxwDbEyILcAG6sovQFlMr2Q49l0T7vj4a1XU+2iTsdE+6Cv4A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3w47K7sRf9NkS52fMLDhOVoKcQzoKebTxP4cVnFVWt4=; b=ZF7oDrFBKPD7j6qFpHBYhMN/e/o3SEh5J8qzi1Z0CtKG6tbt4F01OR4D9UIgUw9Zj/Fnpv7vkPdpc1GL1KolEH7sft7Yq2Bq3d1ilOzZ2WA/x3NM14lrPKtuuu//lToxOE8jiz+X5Et7ds0T2nRq6dx/sWj2pt14t6ArH0ShngMMuuSlqj74eOYuZNs2YXBOAByLGI9ozhWDnuSLW2WGO4SyQQ/2b0dqYb3M1IY65xiJnHbDg69DEZ5iJoVK97k4yIuGZJxe0qIQt5k4bcpsdwcYrsv+h9xEsPzmILwSnVvXx8SVc1CfW+wWeG2yLs+bgighXPXPlz+uzCKJmteeww== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=live.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3w47K7sRf9NkS52fMLDhOVoKcQzoKebTxP4cVnFVWt4=; b=b/8llJNDJhlPF0JR99WdwIRPjRQffPz/k/8E12idjN/BLfD2DZrzHqxggBggVWIt6UKPw4PAx4KHzcRMbFk0qDYFD+8I6NXjvjVqT2YcspnNKgs63UrvNx3P2/9JbVjd1cHoEYeUZ466zMdcG1YcXR0HowhxU/UZGYFMGXke8RsGsA68t/OihLcP1n8/tuXlIR6VmIXAdqnoBxCC/XbIg8F8Hyh3XCYA70fw7zJEQWGoUWUorqytqTUK54Un7hBWo1WGwJ/hwNRc+pGdqMIeuZ4AefvlXXjqVc9QOUJQS8wHYLo2Tf9cjBsHUzy+3FnxY6CRMA1Oy0rgmeAu4nNPDA== Received: from VI1EUR05FT058.eop-eur05.prod.protection.outlook.com (2a01:111:e400:fc12::4e) by VI1EUR05HT236.eop-eur05.prod.protection.outlook.com (2a01:111:e400:fc12::405) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20; Wed, 25 Nov 2020 14:59:25 +0000 Received: from AM0PR06MB6577.eurprd06.prod.outlook.com (2a01:111:e400:fc12::43) by VI1EUR05FT058.mail.protection.outlook.com (2a01:111:e400:fc12::344) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3589.20 via Frontend Transport; Wed, 25 Nov 2020 14:59:25 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:7B9D3AD7FFAD0FF40C73DB153BDAD0905932A47F59229C56F66485AAE3276E8C; UpperCasedChecksum:681AB2DBF5E9317694B34A24E4C49DE3586202ABCD18FC2C3E72D68321DC005F; SizeAsReceived:8167; Count:46 Received: from AM0PR06MB6577.eurprd06.prod.outlook.com ([fe80::9487:8c7d:da00:4993]) by AM0PR06MB6577.eurprd06.prod.outlook.com ([fe80::9487:8c7d:da00:4993%7]) with mapi id 15.20.3589.030; Wed, 25 Nov 2020 14:59:25 +0000 From: Arthur Miller To: Jean Louis Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <83v9dwufx4.fsf@gnu.org> <83mtz7vq8j.fsf@gnu.org> Date: Wed, 25 Nov 2020 15:59:21 +0100 In-Reply-To: (Jean Louis's message of "Tue, 24 Nov 2020 20:18:17 +0300") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Content-Type: text/plain X-TMN: [4gpxng3ZBw+YwBA7OQu2ezB6b4PrF3hD] X-ClientProxiedBy: AM5PR0202CA0011.eurprd02.prod.outlook.com (2603:10a6:203:69::21) To AM0PR06MB6577.eurprd06.prod.outlook.com (2603:10a6:208:19a::23) X-Microsoft-Original-Message-ID: <87sg8x8oty.fsf@live.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from pascal.homepc (90.230.29.56) by AM5PR0202CA0011.eurprd02.prod.outlook.com (2603:10a6:203:69::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3611.20 via Frontend Transport; Wed, 25 Nov 2020 14:59:24 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 46 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 13aebbab-21aa-45a4-8a1e-08d89152b33b X-MS-TrafficTypeDiagnostic: VI1EUR05HT236: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: /phPXQn5XAN1GpVhwMDB0+TMoi4TIJtYNTJ2atQAUMdqI5BI+xaPSmb6FlhM3ftHNtfTRQVG017933IWdgDfIHzEgZ20I5BPyXaVyBY8qqPQAPOQmjsxs/MqH8/L3nPz4iOAWvNCdpO9AbYYE+PU3LFfJAnjKvPXYZyMa2N5/dbp4kLolC650Ac7rtZvAnJctKAoPEP6oI2tMjNV84mB/g== X-MS-Exchange-AntiSpam-MessageData: jDeZAXhZpKCoQuC2ne/14X3QkkTed5DKKb+GhLRMY6evahnZbRKGk5b8PB+9oRhTWMdGCgV/9OUGlTqfcMtcLD1gvUTELHy+TxRfinoDrS7yinsYqMv1tVfnerVZto0E2D6IvgyodFgrbBYbu6d+Zw== X-OriginatorOrg: live.com X-MS-Exchange-CrossTenant-Network-Message-Id: 13aebbab-21aa-45a4-8a1e-08d89152b33b X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Nov 2020 14:59:25.8382 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: VI1EUR05FT058.eop-eur05.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1EUR05HT236 X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com, Eli Zaretskii X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Jean Louis writes: > * Arthur Miller [2020-11-24 12:27]: >> Yepp; but I am not on lts-kernel, that is probably why. > > I think it is the other issue that you hve many packages, I also have > many for Gnome and KDE but do not get updates, maybe I use mirror that > is not updated. I will see that. > >> > So you have Hyperbola and you get updates every day? How comes? >> No Hyperbola don't even know what distro it is; Just Arch Linux >> here. > > Well then it is different thing. You are updating from different > repository than me. > >> Harddrive is cheap nowdays. I have entire kde/gnome stack installed; and >> lots more. When I need to compile a library or application I don't want >> ot chase dependencies around. I just don't use them as desktops and >> don't run apps. For example yesterday I was just able to git clone >> heaptrack and compile it, no headaches. > > That is different OS and Hyperbola is different. Arch Linux has lax policy > against non-free software, while Hyperbola GNU/Linux-libre has very > strict policy and does not allow anything non-free, that is reason I > am using it. It does not use systemd trap and is working stable. > > Few times I got problem with building for example webkit, but > otherwise anything builds pretty well. > > Hyperbola is independent project that receives little support, it > should receive so much more. They will also create new HyperbolaBSD > system that will move an OpenBSD kernel into GNU GPL direction. > > Jean Oki; thansk. I never heard of the Hypberbola before. From debbugs-submit-bounces@debbugs.gnu.org Wed Nov 25 12:45:14 2020 Received: (at 43389) by debbugs.gnu.org; 25 Nov 2020 17:45:14 +0000 Received: from localhost ([127.0.0.1]:36860 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khyqw-0004T7-FW for submit@debbugs.gnu.org; Wed, 25 Nov 2020 12:45:14 -0500 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:52448) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khyqt-0004Sy-Rx for 43389@debbugs.gnu.org; Wed, 25 Nov 2020 12:45:12 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1606326311; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=2h4Rj/qP+2HOPw4ugkTWm5Do9UVpuWTGL+C+BRxiyp8=; b=NsJ3nY1t3gwMVwo3CiDFuXq3vHUzY1YrcEmCK36wHVtxr2o0fGhj8EYPdinVWbN+Tm1aQP fGAWpaMq9hWGv/zOMZ+m9as7+UT92lMIY7gb90tZGwzBPTHus0GbNmKXjP17wgyPOcfsIt UVWpeISapfwL2yo3rPx1RywcaKts4yc= Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-189-bQvFgBUfMjeL4YZ7gf_8sg-1; Wed, 25 Nov 2020 12:45:08 -0500 X-MC-Unique: bQvFgBUfMjeL4YZ7gf_8sg-1 Received: by mail-qt1-f198.google.com with SMTP id r29so2995691qtu.21 for <43389@debbugs.gnu.org>; Wed, 25 Nov 2020 09:45:08 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=2h4Rj/qP+2HOPw4ugkTWm5Do9UVpuWTGL+C+BRxiyp8=; b=JehC5ifdyCEc8+tu1yL+nFzZbBhg89q81a9EYOe2AutR8EYQ0vdtorMzUm/bdHJ+u+ M0yYS8c7OJWJ1UHcos0GVaf7rD3i/QEcP8nnK00LGD0sCKDVVLE++KKPzifVLBdaZSFV 2Bv8SOva8Rzr25dcUIFkCe3G4H9htkDO5m7S9eqPPeri2Ok6fzGEt+69p/WduhX1XQ/s K5IMfltMGZhcXJgp4MJCamaOWY+FcA9Z4RLabhEOir6xEwyN5sa1PYTBHkqyiIPzlTsL rTjGhoT7nBgGAnSb1kPxEfwhklHzr1bvlCuf/082EqkrGnm9ZP0hikiyasxxkCvLnm+5 Tf+g== X-Gm-Message-State: AOAM532ywQbXBy5pR8Jent5mXll7LFI9SzfDaiuHwCmUJkLfRVbBB/vN aM4u/WzEicpDH8Lkx3QvOYmpJO3K8yOx61ZJfDyH3eOadJ4VR4gZJ2zYyWjO+BFmdMGiBdpqy25 kK5HcOFTF9mrbfho= X-Received: by 2002:ad4:4721:: with SMTP id l1mr4666231qvz.30.1606326307877; Wed, 25 Nov 2020 09:45:07 -0800 (PST) X-Google-Smtp-Source: ABdhPJxrmLNaFgXompfA8yf4j9JCh7H26mNprKE1tP3doB84wyVy4SppMajVxh/jnt7lFaMXThPyvQ== X-Received: by 2002:ad4:4721:: with SMTP id l1mr4666200qvz.30.1606326307636; Wed, 25 Nov 2020 09:45:07 -0800 (PST) Received: from [192.168.1.16] (198-84-214-74.cpe.teksavvy.com. [198.84.214.74]) by smtp.gmail.com with ESMTPSA id q32sm3130610qtb.71.2020.11.25.09.45.05 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 25 Nov 2020 09:45:06 -0800 (PST) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time To: Eli Zaretskii , Trevor Bentley References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> From: Carlos O'Donell Organization: Red Hat Message-ID: <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> Date: Wed, 25 Nov 2020 12:45:04 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0 MIME-Version: 1.0 In-Reply-To: <83o8jmu49z.fsf@gnu.org> Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=carlos@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, michael_heerdegen@web.de, dj@redhat.com, bugs@gnu.support X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 11/24/20 11:07 AM, Eli Zaretskii wrote: > Look at the large chunks in the tail of this. Together, they do > account for ~2GB. > > Carlos, are these chunks in use (i.e. allocated and not freed), or are > they the free chunks that are available for allocation, but not > released to the OS? If the former, then it sounds like this session > does have around 2GB of allocated heap data, so either there's some > allocated memory we don't account for, or there is indeed a memory > leak in Emacs. If these are the free chunks, then the way glibc > manages free'd memory is indeed an issue. These chunks are all free and mapped for use by the algorithm to satisfy a request by the application. Looking at the last malloc_info (annotated): https://trevorbentley.com/emacs_malloc_info.log =============================================== ;; malloc-info (malloc-info) => No fast bins. => 1 unused bin. => In total we have only 112KiB in 1 unused chunk free'd on the stack. => The rest of the stack is in use by the application. => It looks like the application usage goes down to zero and then up again? => Currently at 4.2GiB in arena 0 (kernel assigned heap). => The application is using that sbrk'd memory. => This indicates *real* API usage of 4.2GiB. => This is arena 1, which is a thread heap, and uses mmap to create heaps. => Pretty small, 912 bytes in fastbins, and 42MiB in cached chunks. =============================================== This shows the application is USING memory on the main system heap. It might not be "leaked" memory since the application might be using it. You want visibility into what is USING that memory. With glibc-malloc-trace-utils you can try to do that with: LD_PRELOAD=libmtrace.so \ MTRACE_CTL_FILE=/home/user/app.mtr \ MTRACE_CTL_BACKTRACE=1 \ ./app This will use libgcc's unwinder to get a copy of the malloc caller address and then we'll have to decode that based on a /proc/self/maps. Next steps: - Get a glibc-malloc-trace-utils trace of the application ratcheting. - Get a copy of /proc/$PID/maps for the application (shorter version of smaps). Then we might be able to correlate where all the kernel heap data went? -- Cheers, Carlos. From debbugs-submit-bounces@debbugs.gnu.org Wed Nov 25 12:47:27 2020 Received: (at 43389) by debbugs.gnu.org; 25 Nov 2020 17:47:27 +0000 Received: from localhost ([127.0.0.1]:36864 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khyt5-0004WR-15 for submit@debbugs.gnu.org; Wed, 25 Nov 2020 12:47:27 -0500 Received: from eggs.gnu.org ([209.51.188.92]:33882) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khyt3-0004WF-W9 for 43389@debbugs.gnu.org; Wed, 25 Nov 2020 12:47:26 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:49075) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1khysw-0004Ix-MV; Wed, 25 Nov 2020 12:47:19 -0500 Received: from [176.228.60.248] (port=3766 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1khysu-0002fS-7R; Wed, 25 Nov 2020 12:47:16 -0500 Date: Wed, 25 Nov 2020 19:47:16 +0200 Message-Id: <83d001s50b.fsf@gnu.org> From: Eli Zaretskii To: Trevor Bentley In-Reply-To: <87d001u46f.fsf@mail.trevorbentley.com> (message from Trevor Bentley on Wed, 25 Nov 2020 11:22:16 +0100) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <87ft4ytw2c.fsf@mail.trevorbentley.com> <83d002tuoo.fsf@gnu.org> <87d001u46f.fsf@mail.trevorbentley.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, carlos@redhat.com, michael_heerdegen@web.de X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Trevor Bentley > Cc: bugs@gnu.support, fweimer@redhat.com, 43389@debbugs.gnu.org, > dj@redhat.com, michael_heerdegen@web.de, carlos@redhat.com > Date: Wed, 25 Nov 2020 11:22:16 +0100 > > >> - The leaking stops for a while after (garbage-collect). It > >> was leaking 1MB per second for this last log, and stopped > >> growing after the garbage collection. > > > > Now, what happens in that session once per second (in an > > otherwise idle Emacs, I presume?) to cause such memory > > consumption? Some timers? If you run with a breakpoint in > > malloc that just shows the backtrace and continues, do you see > > what could consume 1MB every second? > > Not an idle emacs at all, in this case. I have seen the memory > growth in an idle emacs, but the only one I can reproduce it on is > the emacs-slack one, which is connected to a corporate Slack > account. Tons of short messages streaming in over the network and > being displayed in rotating buffers, with images mixed in. It's a > big 'ol "web 2.0" API... it can easily pass 1MB/s of bloated JSON > messages through. This is one _very active_ emacs. Then I don't think we will be able to understand what consumes memory at such high rate without some debugging. Have you considered using breakpoints and collecting backtraces, as I suggested earlier? The hard problem is to understand which memory is allocated and not freed "soon enough", but for such a high rate of memory consumption perhaps just knowing which code request so much memory would be an important clue. > The original strace logs and valgrind output I posted before > showed a random assortment of calls from gnutls, imagemagick, and > lisp strings, with lisp strings dominating the malloc calls > (enlarge_buffer_text, mostly). Enlarging buffer text generally causes malloc to call mmap (as opposed to brk/sbrk), so this cannot cause the situation where a lot of unused memory that is not returned to the OS. And we already saw that just by summing up the buffer text memory we never get even close to the VM size of the process. > > What do you mean by "reaping dead references" here? > > > >> It could be that there really were 4.3GB of dead references. > > > > Not sure I understand what are you trying to establish here. > > GC is running through a list of active allocations and freeing the > ones with no remaining references, right? Presumably, if a lot of > active malloc() allocations are no longer refernced, and > (garbage-collect) calls free() on a bunch of blocks. We only call free on "unfragmented" Lisp data, e.g. if some block of Lisp strings was freed in its entirety. If some Lisp objects in a block are still alive, we don't free the block, we just mark the freed Lisp objects as being free and available for reuse. So the result of GC shows only tells you how much of the memory was freed but NOT returned to glibc, it doesn't show how much was actually free'd. > I'm wondering how to figure out how much memory a call to > (garbage-collect) has actually freed. Possibly a sort of "dry run" > where it performs the GC algorithm, but doesn't release any memory. "Freed" in what sense? returned to glibc? > > There's only one garbage-collect, it is called for _any_ GC. > > > > What do you mean by "during normal use" in this sentence: > > > > I certainly don't notice 5-10 minute long pauses during normal > > use, though "gcs-done" is incrementing. > > > > How is what you did here, where GC took several minutes, > > different from "normal usage"? > > In this log, I am explicitly executing "(garbage-collect)", and it > takes 10 minutes, during which the UI is unresponsive and > sometimes even turns grey when the window stops redrawing. > > By "normal use", I mean that I use this emacs instance on-and-off > all day long. I would notice if it were freezing for minutes at a > time, and it definitely is not. > > As far as I understand, garbage collection is supposed to happen > automatically during idle. I would certainly notice if it locked > up the whole instance for 10 minutes from an idle GC. I think > this means the automatic garbage collection is either not > happening, or running on a different thread, or being interrupted, > or simply works differently. I have no idea, hence asking you :) That is very strange. There's only one function to perform GC, and it is called both from garbage-collect and from an internal function called when Emacs is idle or when it calls interpreter functions like 'eval' or 'funcall'. The only thing garbage-collect does that the internal function doesn't is generate the list that is the return value of garbage-collect, but that cannot possibly take minutes. I suggest to set garbage-collection-messages non-nil, then you should see when each GC, whether the one you invoke interactively or the automatic one, starts and ends. maybe the minutes you wait are not directly related to GC, but to something else that is triggered by GC? From debbugs-submit-bounces@debbugs.gnu.org Wed Nov 25 12:48:27 2020 Received: (at 43389) by debbugs.gnu.org; 25 Nov 2020 17:48:27 +0000 Received: from localhost ([127.0.0.1]:36869 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khyu2-0004Y7-Mb for submit@debbugs.gnu.org; Wed, 25 Nov 2020 12:48:26 -0500 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:42004) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khyu1-0004Y0-60 for 43389@debbugs.gnu.org; Wed, 25 Nov 2020 12:48:25 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1606326505; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=fm5bTKPTcIyDmafbpcPLNuBNj48TEbTOnOH0JuIdyjo=; b=Ql/TvvWQL69p9lATTmkeBHbHLNqp+iuIe0wNgFkbjR0P6zK8+/OFvBHHlZHsOqw+y0M50/ QK5bHshQDIVqS7oml9B7D0pVffmj603DnycYkf9c4KXkQYxTHyo4PjWFTlqIxXIa7fIvUI w8+rYKSPE0N4OiE8jLw89IhFxlFREng= Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-425-lMrWVH6uPMmrUiGrruRi0w-1; Wed, 25 Nov 2020 12:48:22 -0500 X-MC-Unique: lMrWVH6uPMmrUiGrruRi0w-1 Received: by mail-qt1-f199.google.com with SMTP id i14so3002019qtq.18 for <43389@debbugs.gnu.org>; Wed, 25 Nov 2020 09:48:22 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=fm5bTKPTcIyDmafbpcPLNuBNj48TEbTOnOH0JuIdyjo=; b=K+oIZHc1VfZ18E0D7WgjE64jOKGyihcayJJv/IEX+6S9TqOfxo94dAvP+GwMdal0t+ slpGuurk2bPZ172VHD4Qa7YLZXajk37WafS887qM0E+RYBG16eI7BMRuIkey6DRiCrw8 gMespY90cM618EtgAK6pSrSejXrzTFVsK1Mapl/hJ1EQCNIqXtw8yd21qqpz/Fj8UIT1 ph2PrbxqgPmO7b2LKUJ27HlUmcLxaO8YWunpTIg8jubosgRxD91wIO0c9fvEqt4IzD1Z OOsrKXteUMvU1yhNwJ1nDJjZERNnF91+mH3oEr7VxFS92k0nIode4A0FFD+fhooJOb8F CElg== X-Gm-Message-State: AOAM532EHeMqZSQUcD6VsTsU3rmIVEzhFq2LF9Zw8IrrsoHEOrhNSJyE NdcS8o8f2V0o8nTENpVPuBvLuYk1B/q5YgCkaKMr9atQUIOjkFDEPkXFFkdTgwWdjfvUSevWlqC uKJApe0bcTKXhCc4= X-Received: by 2002:ac8:724d:: with SMTP id l13mr4110823qtp.373.1606326502539; Wed, 25 Nov 2020 09:48:22 -0800 (PST) X-Google-Smtp-Source: ABdhPJy6i4ywXx8GohY/RkSvjg6Pk0KTxz5k5Gwl9XuhbJpphsRCKpJNwXLDXQexx+RM+rp4qHFVdw== X-Received: by 2002:ac8:724d:: with SMTP id l13mr4110806qtp.373.1606326502357; Wed, 25 Nov 2020 09:48:22 -0800 (PST) Received: from [192.168.1.16] (198-84-214-74.cpe.teksavvy.com. [198.84.214.74]) by smtp.gmail.com with ESMTPSA id v15sm2803738qto.74.2020.11.25.09.48.20 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 25 Nov 2020 09:48:21 -0800 (PST) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time To: Eli Zaretskii , Trevor Bentley References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <87ft4ytw2c.fsf@mail.trevorbentley.com> <83d002tuoo.fsf@gnu.org> From: Carlos O'Donell Organization: Red Hat Message-ID: Date: Wed, 25 Nov 2020 12:48:20 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0 MIME-Version: 1.0 In-Reply-To: <83d002tuoo.fsf@gnu.org> Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=carlos@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, michael_heerdegen@web.de, dj@redhat.com, bugs@gnu.support X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 11/24/20 2:35 PM, Eli Zaretskii wrote: >> From: Trevor Bentley >> Cc: bugs@gnu.support, fweimer@redhat.com, 43389@debbugs.gnu.org, >> dj@redhat.com, michael_heerdegen@web.de, carlos@redhat.com >> Cc: >> Date: Tue, 24 Nov 2020 20:05:15 +0100 >> >> I just updated the log on my website. Same instance a day later, >> after yet another memory spike up to 4.3GB. Concatenated to the >> end: >> >> https://trevorbentley.com/emacs_malloc_info.log > > I don't think I can interpret that. In particular, how come "total" > is 4GB, but I see no comparable sizes in any of the other fields? > where do those 4GB hide? Carlos, can you help interpreting this > report? The 4GiB are in use by the application and it is up to us to increase the observability of that usage with our tooling. >> Question 3: I've never used the malloc_trim() function. Could >> that be something worth experimenting with, to see if it releases >> any of the massive heap back to the OS? > > That's for glibc guys to answer. If malloc_info() shows memory that is free'd and unused then malloc_trim() can free back any unused pages to the OS. However, in your last day malloc_info() output you only show ~50MiB of unused memory out of ~4GiB, so calling malloc_trim() would only free ~50MiB. There is heavy usage of the kernel heap by something. Finding out what is using that memory is our next step. -- Cheers, Carlos. From debbugs-submit-bounces@debbugs.gnu.org Wed Nov 25 13:03:48 2020 Received: (at 43389) by debbugs.gnu.org; 25 Nov 2020 18:03:49 +0000 Received: from localhost ([127.0.0.1]:36895 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khz8u-0004uw-FU for submit@debbugs.gnu.org; Wed, 25 Nov 2020 13:03:48 -0500 Received: from eggs.gnu.org ([209.51.188.92]:38718) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khz8q-0004uh-1S for 43389@debbugs.gnu.org; Wed, 25 Nov 2020 13:03:47 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:49468) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1khz8k-0006es-9P; Wed, 25 Nov 2020 13:03:38 -0500 Received: from [176.228.60.248] (port=4760 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1khz8h-0002QY-OV; Wed, 25 Nov 2020 13:03:36 -0500 Date: Wed, 25 Nov 2020 20:03:35 +0200 Message-Id: <83blfls494.fsf@gnu.org> From: Eli Zaretskii To: Carlos O'Donell In-Reply-To: <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> (message from Carlos O'Donell on Wed, 25 Nov 2020 12:45:04 -0500) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Cc: bugs@gnu.support, fweimer@redhat.com, 43389@debbugs.gnu.org, > dj@redhat.com, michael_heerdegen@web.de > From: Carlos O'Donell > Date: Wed, 25 Nov 2020 12:45:04 -0500 > > On 11/24/20 11:07 AM, Eli Zaretskii wrote: > > Look at the large chunks in the tail of this. Together, they do > > account for ~2GB. > > > > Carlos, are these chunks in use (i.e. allocated and not freed), or are > > they the free chunks that are available for allocation, but not > > released to the OS? If the former, then it sounds like this session > > does have around 2GB of allocated heap data, so either there's some > > allocated memory we don't account for, or there is indeed a memory > > leak in Emacs. If these are the free chunks, then the way glibc > > manages free'd memory is indeed an issue. > > These chunks are all free and mapped for use by the algorithm to satisfy > a request by the application. So we have more than 1.5GB free memory available for allocation, is that right? But then how to reconcile this with what you say next: > > > => Currently at 4.2GiB in arena 0 (kernel assigned heap). > => The application is using that sbrk'd memory. > > > > > > => This indicates *real* API usage of 4.2GiB. Here you seem to say that these 4.2GB are _used_ by the application? While I thought the large chunks I asked about, which total more than 1.5GB, are a significant part of those 4.2GB? To make sure there are no misunderstandings, I'm talking about this part of the log: [...] If I sum up the "total=" parts of these large numbers, I get 1.6GB. Is this free memory, given back to glibc for future allocations from this arena, and if so, are those 1.6GB part of the 4.2GB total? > This shows the application is USING memory on the main system heap. > > It might not be "leaked" memory since the application might be using it. > > You want visibility into what is USING that memory. > > With glibc-malloc-trace-utils you can try to do that with: > > LD_PRELOAD=libmtrace.so \ > MTRACE_CTL_FILE=/home/user/app.mtr \ > MTRACE_CTL_BACKTRACE=1 \ > ./app > > This will use libgcc's unwinder to get a copy of the malloc caller > address and then we'll have to decode that based on a /proc/self/maps. > > Next steps: > - Get a glibc-malloc-trace-utils trace of the application ratcheting. > - Get a copy of /proc/$PID/maps for the application (shorter version of smaps). > > Then we might be able to correlate where all the kernel heap data went? Thanks for the instructions. Would people please try that and report the results? From debbugs-submit-bounces@debbugs.gnu.org Wed Nov 25 13:35:32 2020 Received: (at 43389) by debbugs.gnu.org; 25 Nov 2020 18:35:32 +0000 Received: from localhost ([127.0.0.1]:36954 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khzdc-0005fT-Bl for submit@debbugs.gnu.org; Wed, 25 Nov 2020 13:35:32 -0500 Received: from static.rcdrun.com ([95.85.24.50]:44471) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khzda-0005f8-Dd for 43389@debbugs.gnu.org; Wed, 25 Nov 2020 13:35:31 -0500 Received: from localhost ([::ffff:41.202.241.56]) (AUTH: PLAIN admin, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by static.rcdrun.com with ESMTPSA id 00000000002C1AE2.000000005FBEA3EC.0000388C; Wed, 25 Nov 2020 18:35:23 +0000 Date: Wed, 25 Nov 2020 18:09:25 +0300 From: Jean Louis To: Arthur Miller Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time Message-ID: References: <83mtz7vq8j.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: User-Agent: Mutt/2.0 (3d08634) (2020-11-07) X-Spam-Score: 1.1 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: * Arthur Miller [2020-11-25 17:59]: > > Hyperbola is independent project that receives little support, it > > should receive so much more. They will also create new HyperbolaB [...] Content analysis details: (1.1 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record 1.1 DATE_IN_PAST_03_06 Date: is 3 to 6 hours before Received: date 0.0 URIBL_BLOCKED ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [URIs: hyperbola.info] X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com, Eli Zaretskii X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.1 (/) * Arthur Miller [2020-11-25 17:59]: > > Hyperbola is independent project that receives little support, it > > should receive so much more. They will also create new HyperbolaBSD > > system that will move an OpenBSD kernel into GNU GPL direction. > > > > Jean > Oki; thansk. I never heard of the Hypberbola before. https://www.hyperbola.info And there are other fully free operating systems endorsed by the FSF such as: Trisquel GNU/Linux-libre https://trisquel.info and others on https://www.gnu.org Those are only that I am using due to agreement among people to provide fully free software without access to anything non-free. Jean From debbugs-submit-bounces@debbugs.gnu.org Wed Nov 25 13:35:56 2020 Received: (at 43389) by debbugs.gnu.org; 25 Nov 2020 18:35:56 +0000 Received: from localhost ([127.0.0.1]:36963 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khze0-0005gF-04 for submit@debbugs.gnu.org; Wed, 25 Nov 2020 13:35:56 -0500 Received: from static.rcdrun.com ([95.85.24.50]:44471) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khzdy-0005f8-31 for 43389@debbugs.gnu.org; Wed, 25 Nov 2020 13:35:54 -0500 Received: from localhost ([::ffff:41.202.241.56]) (AUTH: PLAIN admin, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by static.rcdrun.com with ESMTPSA id 00000000002C000B.000000005FBEA408.000038E8; Wed, 25 Nov 2020 18:35:52 +0000 Date: Wed, 25 Nov 2020 21:08:35 +0300 From: Jean Louis To: Carlos O'Donell Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time Message-ID: References: <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> User-Agent: Mutt/2.0 (3d08634) (2020-11-07) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, Trevor Bentley , Eli Zaretskii X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * Carlos O'Donell [2020-11-25 20:45]: > With glibc-malloc-trace-utils you can try to do that with: > > LD_PRELOAD=libmtrace.so \ > MTRACE_CTL_FILE=/home/user/app.mtr \ > MTRACE_CTL_BACKTRACE=1 \ > ./app > > This will use libgcc's unwinder to get a copy of the malloc caller > address and then we'll have to decode that based on a > /proc/self/maps. I will also try that in the next session. One problem I have here is that since I run this session I have not get any problem. My uptime is over 2 days, I have not changed my habbits of work within Emacs and my swap remains under 200 MB and only 10% memory used by Emacs, normally 80-90% Almost by the rule I could not run longer than 1 day until I would get swap of about 3 GB - 4 GB and not responsive Emacs. Can it be that libmtrace.so could prevent something happening what is normally happening? From debbugs-submit-bounces@debbugs.gnu.org Wed Nov 25 13:51:47 2020 Received: (at 43389) by debbugs.gnu.org; 25 Nov 2020 18:51:48 +0000 Received: from localhost ([127.0.0.1]:36977 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khztL-00062U-M4 for submit@debbugs.gnu.org; Wed, 25 Nov 2020 13:51:47 -0500 Received: from mail.trevorbentley.com ([37.187.5.80]:57973) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khztK-00062I-EH for 43389@debbugs.gnu.org; Wed, 25 Nov 2020 13:51:46 -0500 Received: from localhost (c188-150-0-48.bredband.comhem.se [188.150.0.48]) by mail.trevorbentley.com (Postfix) with ESMTPSA id 7B0E8603B5; Wed, 25 Nov 2020 19:51:40 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mail.trevorbentley.com; s=mail; t=1606330300; bh=qMGI9uABB0eNByaZdFw+CeM4v45pJLTLPzIYF4CUxDQ=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=Fz6rU1UOxa0BwaR+IKeoVCf+mQmSSMzIwSTi/8uhjbvJEWPh8HHxJIvfpFHw9gcNw ogZD1VyK3v/sfUZ4xKzl5Hz0E4lXZzherE2QGh1ERhNduGr9JEWXgt9ZR1U4XSN89D QqvJmY0wuEa065c007ib6enrDwKC3dRTM3CG8cPw= From: Trevor Bentley To: Jean Louis , Carlos O'Donell Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time In-Reply-To: References: <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> Date: Wed, 25 Nov 2020 19:51:39 +0100 Message-ID: <87o8jltglg.fsf@mail.trevorbentley.com> MIME-Version: 1.0 Content-Type: text/plain; format=flowed X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, Eli Zaretskii , michael_heerdegen@web.de, dj@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Jean Louis writes: >> This will use libgcc's unwinder to get a copy of the malloc >> caller address and then we'll have to decode that based on a >> /proc/self/maps. > > I will also try that in the next session. As will I, but probably won't set it up until this weekend. > One problem I have here is that since I run this session I have > not get any problem. My uptime is over 2 days, I have not > changed my habbits of work within Emacs and my swap remains > under 200 MB and only 10% memory used by Emacs, normally 80-90% > > Almost by the rule I could not run longer than 1 day until I > would get swap of about 3 GB - 4 GB and not responsive Emacs. > > Can it be that libmtrace.so could prevent something happening > what is normally happening? I see high variation in how long it takes to hit it on my machine. The shortest was after ~4 hours, average is 1.5 days, and the longest was 5 days. Perhaps you're seeing the same. I also still hit it while running under Valgrind; the whole emacs session was slow as hell, but still managed to blow out its heap in a few days. Of course, libmtrace could be different, but at least it doesn't seem to be a heisenbug. -Trevor From debbugs-submit-bounces@debbugs.gnu.org Wed Nov 25 13:57:44 2020 Received: (at 43389) by debbugs.gnu.org; 25 Nov 2020 18:57:44 +0000 Received: from localhost ([127.0.0.1]:36986 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khzz5-0006An-KN for submit@debbugs.gnu.org; Wed, 25 Nov 2020 13:57:44 -0500 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:45025) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1khzz3-0006Af-Ei for 43389@debbugs.gnu.org; Wed, 25 Nov 2020 13:57:42 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1606330661; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Yiwqv0Wq3VOPx65/MwCXAOWYgMoiJD5S3QuXyarLc8E=; b=MBZSBl/f4KUXODpqOMLBY6/qfIRYjasEY5gXDEWRkzBSbAvaTWEB7HZAuVQcjvNt3z+GOw jfDTGa7JIv+eaIR1CefUL3X3+fnY5b/VZTs2n0ZYa74qYCdN1OU/ZGao42shu+l7tnD0MO Snn+ZbLeXwW7qS+iMtJ81no9qWGuP1U= Received: from mail-qk1-f199.google.com (mail-qk1-f199.google.com [209.85.222.199]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-529-RWbtKlkNPPeAY3b9-L7X7g-1; Wed, 25 Nov 2020 13:57:37 -0500 X-MC-Unique: RWbtKlkNPPeAY3b9-L7X7g-1 Received: by mail-qk1-f199.google.com with SMTP id 198so3179310qkj.7 for <43389@debbugs.gnu.org>; Wed, 25 Nov 2020 10:57:37 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=Yiwqv0Wq3VOPx65/MwCXAOWYgMoiJD5S3QuXyarLc8E=; b=mEJLwKOPt6HFayRmaqU7WGhQ4pgyaVR2N4XmLKDVL6pCOGXkI3B7LP0/wBjWQi2Fz1 rvYGVX4cr3bTR3w+C2QgJKMbr5rBXyMlQSrAWMtoVRBI9URqJTD5Z5C8XlvYHqrsxAhs 8DzIq4ToCggnmYtwESdyYna9/H+2GO1e8hLA9yuV9knrZr+OMNmwYIM2daPfwpLxxsOk u4grk0VDkgn+3RJXj+mL/6qZKx2+HrCItakL+fuQ1qtX76wsdAtAjzRONYqGS0koLTGP gzC5tTDhMoKRplPfQObBzbdrIxANg5sdg+2Vrl0n9fa2ECaVhd1PY2tI3wCZmlnBqaee Zgyw== X-Gm-Message-State: AOAM530F38SSHKeuAYmi8MzFqrDVqsbdFiDOU7gcOPxLL8B6ZlwL/oM9 Ms+vjRCONBLG0JuCocgZ19U2v0wvc7BCcBM5T1X95N9MqwYWYlOfp+2ONXww+EaZRXCHdUpfJS9 AgiJA7fjEHNf27GY= X-Received: by 2002:ac8:4e87:: with SMTP id 7mr278510qtp.310.1606330656639; Wed, 25 Nov 2020 10:57:36 -0800 (PST) X-Google-Smtp-Source: ABdhPJzgJPwqjAJF3vWyhouo7nNxGU8lfvFLi0lQXuA/cHNky67mP02q7t0aD7FHBI1i+CdtswqXFQ== X-Received: by 2002:ac8:4e87:: with SMTP id 7mr278493qtp.310.1606330656373; Wed, 25 Nov 2020 10:57:36 -0800 (PST) Received: from [192.168.1.16] (198-84-214-74.cpe.teksavvy.com. [198.84.214.74]) by smtp.gmail.com with ESMTPSA id c6sm175704qkg.54.2020.11.25.10.57.34 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 25 Nov 2020 10:57:35 -0800 (PST) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time To: Eli Zaretskii References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> <83blfls494.fsf@gnu.org> From: Carlos O'Donell Organization: Red Hat Message-ID: <53fa9720-e709-81cc-dece-369f6136d048@redhat.com> Date: Wed, 25 Nov 2020 13:57:34 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0 MIME-Version: 1.0 In-Reply-To: <83blfls494.fsf@gnu.org> Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=carlos@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 11/25/20 1:03 PM, Eli Zaretskii wrote: >> Cc: bugs@gnu.support, fweimer@redhat.com, 43389@debbugs.gnu.org, >> dj@redhat.com, michael_heerdegen@web.de >> From: Carlos O'Donell >> Date: Wed, 25 Nov 2020 12:45:04 -0500 >> >> On 11/24/20 11:07 AM, Eli Zaretskii wrote: >>> Look at the large chunks in the tail of this. Together, they do >>> account for ~2GB. >>> >>> Carlos, are these chunks in use (i.e. allocated and not freed), or are >>> they the free chunks that are available for allocation, but not >>> released to the OS? If the former, then it sounds like this session >>> does have around 2GB of allocated heap data, so either there's some >>> allocated memory we don't account for, or there is indeed a memory >>> leak in Emacs. If these are the free chunks, then the way glibc >>> manages free'd memory is indeed an issue. >> >> These chunks are all free and mapped for use by the algorithm to satisfy >> a request by the application. > > So we have more than 1.5GB free memory available for allocation, is > that right? There are 3 malloc_info traces in the log. 1. Lines 47-219. Day 1: 1100MiB of RSS. 2. Lines 386-556. Day 4: 2.3GiB of RSS. 3. Lines 744-792. Day 5: 4.2GiB of RSS. Lines are numbered for the log starting at 1. > To make sure there are no misunderstandings, I'm talking about this > part of the log: Your analysis is for trace #2, lines 386-556. My analysis was for trace #3, lines 744-792. > > > [...] > > > > > > > > > > > > > > > > > > > If I sum up the "total=" parts of these large numbers, I get 1.6GB. > Is this free memory, given back to glibc for future allocations from > this arena, and if so, are those 1.6GB part of the 4.2GB total? In trace #2 we have these final statistics: 549 550 551 552 553 554 555 556 This shows ~1.7GiB of unused free chunks. Keep in mind glibc malloc is a heap-based allocator so if you have FIFO usage pattern you won't see the kernel heap decrease until you free the most recently allocated chunk. In trace #3 we *do* see that application demand consumes all these free chunks again, so something is using them in the application. There are none left reported in the malloc_info statistics (could also be chunk corruption). During trace #2 the only way to free some of the ~1.7GiB in-use by the algorithm is to call malloc_trim() to free back unused pages (requires free/unsorted chunk walk and mmumap() calls to the kernel to reduce RSS accounting). Calling malloc_trim is expensive, particularly if you're just going to use the chunks again, as appears to be happening the next day. In trace #3, for which we are at 4.2GiB of RSS usage, we see the following: 742 ;; malloc-info 743 (malloc-info) 744 745 746 747 748 749 a. Arena 0 (kernel heap) shows 0KiB of unused fast bins, 112KiB of other in 1 bin (probably top-chunk). 750 751 752 753 b. Arena 0 (kernel heap) shows 4.2GiB "current" which means that the sbrk-extended kernel heap is in use up to 4.2GiB. WARNING: We count "foreign" uses of sbrk as brk space, so looking for sbrk or brk by a foreign source is useful. 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 c. Arena 1 has 42MiB of free'd chunks for use. 784 785 786 787 d. We have: - 912KiB of fast bins. - 42MiB of regular bins. - 200MiB of mmap'd large chunks. 788 789 790 e. Total allocated space is 4.2GiB. 791 792 Something is using the kernel heap chunks, or calling sbrk/brk directly (since foreign brks are counted by our statistics). >> This shows the application is USING memory on the main system heap. >> >> It might not be "leaked" memory since the application might be using it. >> >> You want visibility into what is USING that memory. >> >> With glibc-malloc-trace-utils you can try to do that with: >> >> LD_PRELOAD=libmtrace.so \ >> MTRACE_CTL_FILE=/home/user/app.mtr \ >> MTRACE_CTL_BACKTRACE=1 \ >> ./app >> >> This will use libgcc's unwinder to get a copy of the malloc caller >> address and then we'll have to decode that based on a /proc/self/maps. >> >> Next steps: >> - Get a glibc-malloc-trace-utils trace of the application ratcheting. >> - Get a copy of /proc/$PID/maps for the application (shorter version of smaps). >> >> Then we might be able to correlate where all the kernel heap data went? > > Thanks for the instructions. Would people please try that and report > the results? > -- Cheers, Carlos. From debbugs-submit-bounces@debbugs.gnu.org Wed Nov 25 14:01:47 2020 Received: (at 43389) by debbugs.gnu.org; 25 Nov 2020 19:01:47 +0000 Received: from localhost ([127.0.0.1]:36998 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ki031-0006Ig-7g for submit@debbugs.gnu.org; Wed, 25 Nov 2020 14:01:47 -0500 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:60295) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ki02z-0006IZ-BZ for 43389@debbugs.gnu.org; Wed, 25 Nov 2020 14:01:45 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1606330905; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=N1jK98DhEACsiMG51D1xJwGcIgu2uh2Rx/JWgxCooNg=; b=UWm6y66GsRzhQsrImnxDjKFKvi9i/3PwKWB3y69d0sR70hdGHHlnkHjtZBRz2Q65G7osHd fQe+/hXIgpWniTIkVCCDHpsqR56/KQHyRd2jC61o2cwNElB7oSxui4A7k2qye2xLpSNuhC t6iSt1sJP1rTkBZRdE/Rj5e55DW4Z10= Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-502-EtDci-XpNO-zjQqzIy2KAA-1; Wed, 25 Nov 2020 14:01:40 -0500 X-MC-Unique: EtDci-XpNO-zjQqzIy2KAA-1 Received: by mail-qt1-f199.google.com with SMTP id g12so3137315qtc.15 for <43389@debbugs.gnu.org>; Wed, 25 Nov 2020 11:01:40 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=N1jK98DhEACsiMG51D1xJwGcIgu2uh2Rx/JWgxCooNg=; b=plWpGjZRXCBcz574cUbv8o+KiAlMb1g5Coud6igc3n0G6e1M28V8e8Yg3egkBMvz1B 53v9N3GQV4L0SPtqMz/TKAQykbXNJCuiL8IxMPc9OULWN1rPiI9dvVDZ5CM5ZUPpjXrD Z+FgMa654vd657x/viZtyohS7DboBmKA5foKK3o30Em7af7FEUW90SBk7nT46VbqsZqx d0KCHETqMbOv9iQvp+P4z9WL47zcWEueqkWadiqBd/A8yKH1P/W/ojjuispq2XRP9N8M 57rIVDXISAP6s9wni9Pth9owMnl/5tCb79fuOpGf0P/g3cLolBVgEWhMyVUSFAHjXnzL Dqeg== X-Gm-Message-State: AOAM530cAVK4PtBLuZtFqVPCg7ZQsR6vdab8I3yhEmek+I45a4bULP2t AwbH3DbhVuPzN5s6KnKG5JyUsr0WamjvvcduJBh+jAxL9yuqWdnK6dnP98jgckvmXe42g36plkI hrdGZPsP1qFk5CQA= X-Received: by 2002:a05:620a:1196:: with SMTP id b22mr303349qkk.31.1606330900431; Wed, 25 Nov 2020 11:01:40 -0800 (PST) X-Google-Smtp-Source: ABdhPJzHLOF71VoBGkV+LBmZ6z8MMLD8ePZhMcd+qXIX9ouFnmGd0KmjVMeU/PJiXogxNaCw1szteA== X-Received: by 2002:a05:620a:1196:: with SMTP id b22mr303326qkk.31.1606330900243; Wed, 25 Nov 2020 11:01:40 -0800 (PST) Received: from [192.168.1.16] (198-84-214-74.cpe.teksavvy.com. [198.84.214.74]) by smtp.gmail.com with ESMTPSA id a42sm195933qtk.64.2020.11.25.11.01.38 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 25 Nov 2020 11:01:39 -0800 (PST) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time To: Jean Louis References: <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> From: Carlos O'Donell Organization: Red Hat Message-ID: <930a2c1c-b44d-eb25-29f2-63f6d2def7df@redhat.com> Date: Wed, 25 Nov 2020 14:01:32 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0 MIME-Version: 1.0 In-Reply-To: Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=carlos@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, Trevor Bentley , Eli Zaretskii X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 11/25/20 1:08 PM, Jean Louis wrote: > * Carlos O'Donell [2020-11-25 20:45]: >> With glibc-malloc-trace-utils you can try to do that with: >> >> LD_PRELOAD=libmtrace.so \ >> MTRACE_CTL_FILE=/home/user/app.mtr \ >> MTRACE_CTL_BACKTRACE=1 \ >> ./app >> >> This will use libgcc's unwinder to get a copy of the malloc caller >> address and then we'll have to decode that based on a >> /proc/self/maps. > > I will also try that in the next session. > > One problem I have here is that since I run this session I have not > get any problem. My uptime is over 2 days, I have not changed my > habbits of work within Emacs and my swap remains under 200 MB and only > 10% memory used by Emacs, normally 80-90% > > Almost by the rule I could not run longer than 1 day until I would get > swap of about 3 GB - 4 GB and not responsive Emacs. > > Can it be that libmtrace.so could prevent something happening what is > normally happening? It could. If there are timing sensitivities to this issue then it might be sufficiently perturbed that it doesn't reproduce. The above backtracing is expensive and increases the performance impact. However, given that we want to know who the caller was and determine the source of the 4.2GiB allocations... we need to try capture that information. -- Cheers, Carlos. From debbugs-submit-bounces@debbugs.gnu.org Wed Nov 25 14:02:40 2020 Received: (at 43389) by debbugs.gnu.org; 25 Nov 2020 19:02:40 +0000 Received: from localhost ([127.0.0.1]:37003 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ki03s-0006KE-Ji for submit@debbugs.gnu.org; Wed, 25 Nov 2020 14:02:40 -0500 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:54651) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ki03r-0006K6-10 for 43389@debbugs.gnu.org; Wed, 25 Nov 2020 14:02:39 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1606330958; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=yLxuPKV3HFHDxFlrafMPiqwS4R5X4dQZim5eq9xfWB8=; b=OjKzbIlbaSbKKF5Y8X1YsszEkgCCiFQfwLLGzziVJMrzqD17NAMXC3DLE3JsSj35vBhkr+ 1O3eDaTXWeFvCJejgbcBGulPQU/4AGlOYFEC1FLLbT/VZY/7JqE+idQwpjO6C3WRDNmxEZ e6p5ucbLpnKIOQCqUry2baM0WG010dg= Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-126-F-YFWFwyP92ztG99NIvINQ-1; Wed, 25 Nov 2020 14:02:37 -0500 X-MC-Unique: F-YFWFwyP92ztG99NIvINQ-1 Received: by mail-qt1-f199.google.com with SMTP id f19so3148908qtx.6 for <43389@debbugs.gnu.org>; Wed, 25 Nov 2020 11:02:36 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=yLxuPKV3HFHDxFlrafMPiqwS4R5X4dQZim5eq9xfWB8=; b=q1akrH0aeBen4hPVpZ/jc9l4cpKTdDMkq6V+FvZnU8LDtWODq7RiO9ld6WKZnCNeLQ 32O9O5GaQRFx/Z309GSkCB1YSStrHtNfVbkSAyz23l2iUvvVN/Zj/PHjlpYAx6RYt8yU waK2FLU5qLKC0mncwTv7SAoIzZTZiIqOsS8DRGNT7WmyK2Xm1aAXKzZVWoOmilBIb87V kz48ULgVbbsbuLjAt2exAby4MMdUt8Iu2WfzN5ly2kK5Ue4dK72tfreBosurorpeu0aW NQfZq0IMytxwIRSabzEYJNN5pAaC91LdH7L5ntLX3lpY4OUyMSBV4Go8O4WvV8wRcpc0 jBSQ== X-Gm-Message-State: AOAM530Y66L9O5ybZUmZWdyE391aeTMuVm3UxzOC7qHSFruWlu5LKXFY NQJsbz9htzjTyrj7+2c3MIixAEH5PJJRvkA68aIuzitc7iHZMaIqppDZJ8nfGuofRh+f2ll76oQ zwSbdT2Dh5jix5uM= X-Received: by 2002:a37:e09:: with SMTP id 9mr313289qko.39.1606330955885; Wed, 25 Nov 2020 11:02:35 -0800 (PST) X-Google-Smtp-Source: ABdhPJyzV1Y9PJtbIYqdQdEpHkZKZJzKp19tBcg5oCc3MtxvZ7CRWFgygYrBA16IWuqE7SBO4puI9A== X-Received: by 2002:a37:e09:: with SMTP id 9mr313274qko.39.1606330955730; Wed, 25 Nov 2020 11:02:35 -0800 (PST) Received: from [192.168.1.16] (198-84-214-74.cpe.teksavvy.com. [198.84.214.74]) by smtp.gmail.com with ESMTPSA id o9sm214478qko.53.2020.11.25.11.02.34 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 25 Nov 2020 11:02:34 -0800 (PST) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time To: Trevor Bentley , Jean Louis References: <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> <87o8jltglg.fsf@mail.trevorbentley.com> From: Carlos O'Donell Organization: Red Hat Message-ID: <43b8f55b-d201-76e0-2d19-d97dec8798aa@redhat.com> Date: Wed, 25 Nov 2020 14:02:33 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0 MIME-Version: 1.0 In-Reply-To: <87o8jltglg.fsf@mail.trevorbentley.com> Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=carlos@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, Eli Zaretskii , michael_heerdegen@web.de, dj@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 11/25/20 1:51 PM, Trevor Bentley wrote: > I also still hit it while running under Valgrind; the whole emacs > session was slow as hell, but still managed to blow out its heap in a > few days. Of course, libmtrace could be different, but at least it > doesn't seem to be a heisenbug. Do you have a valgrind report to share? -- Cheers, Carlos. From debbugs-submit-bounces@debbugs.gnu.org Wed Nov 25 14:06:30 2020 Received: (at 43389) by debbugs.gnu.org; 25 Nov 2020 19:06:30 +0000 Received: from localhost ([127.0.0.1]:37015 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ki07a-0006QR-D1 for submit@debbugs.gnu.org; Wed, 25 Nov 2020 14:06:30 -0500 Received: from mail.trevorbentley.com ([37.187.5.80]:58073) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ki07Y-0006QD-5K for 43389@debbugs.gnu.org; Wed, 25 Nov 2020 14:06:28 -0500 Received: from localhost (c188-150-0-48.bredband.comhem.se [188.150.0.48]) by mail.trevorbentley.com (Postfix) with ESMTPSA id 54A5B60C47; Wed, 25 Nov 2020 20:06:22 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mail.trevorbentley.com; s=mail; t=1606331182; bh=2ZRLeF1eP/nnbgfS+yrBEXneWHKnoN0jcASYf9tmRPQ=; h=From:To:Cc:Cc:Subject:In-Reply-To:References:Date:From; b=Bka7SpRat6SsETWTrSnAYD5N7YaAxXjvTjk19cRadWGOZGTFToo7uTmVc+R5Rxv+m Ira0gFlp2Gsqh7B5yELU3jcpy43teBR9DVnOBn6MQcH8lbJbdQuxFeNhlxMLMrpwf/ sNIEavDErk/BPytfhyygwx3MX2t+01EoRVcVoE64= From: Trevor Bentley To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time In-Reply-To: <83d001s50b.fsf@gnu.org> References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <87ft4ytw2c.fsf@mail.trevorbentley.com> <83d002tuoo.fsf@gnu.org> <87d001u46f.fsf@mail.trevorbentley.com> <83d001s50b.fsf@gnu.org> Date: Wed, 25 Nov 2020 20:06:21 +0100 Message-ID: <87lfeptfwy.fsf@mail.trevorbentley.com> MIME-Version: 1.0 Content-Type: text/plain; format=flowed X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, carlos@redhat.com, michael_heerdegen@web.de, X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii writes: > Then I don't think we will be able to understand what consumes > memory at such high rate without some debugging. Have you > considered using breakpoints and collecting backtraces, as I > suggested earlier? Next up will be libmtrace, and then I can look into gdb. It's going to be really noisy... we'll see how it goes. > > So the result of GC shows only tells you how much of the memory > was freed but NOT returned to glibc, it doesn't show how much > was actually free'd. > >> I'm wondering how to figure out how much memory a call to >> (garbage-collect) has actually freed. Possibly a sort of "dry >> run" where it performs the GC algorithm, but doesn't release >> any memory. > > "Freed" in what sense? returned to glibc? I was referring to glibc malloc/free, but emacs internal allocations would also be interesting. It's a moot point, as I don't think emacs supports it. In short, the question is "what has garbage-collect done?" It prints the state of memory after it is finished, but I have no idea if it has actually "collected" anything. >> As far as I understand, garbage collection is supposed to >> happen automatically during idle. I would certainly notice if >> it locked up the whole instance for 10 minutes from an idle >> GC. I think this means the automatic garbage collection is >> either not happening, or running on a different thread, or >> being interrupted, or simply works differently. I have no >> idea, hence asking you :) > > That is very strange. There's only one function to perform GC, > and it is called both from garbage-collect and from an internal > function called when Emacs is idle or when it calls interpreter > functions like 'eval' or 'funcall'. The only thing > garbage-collect does that the internal function doesn't is > generate the list that is the return value of garbage-collect, > but that cannot possibly take minutes. > > I suggest to set garbage-collection-messages non-nil, then you > should see when each GC, whether the one you invoke > interactively or the automatic one, starts and ends. maybe the > minutes you wait are not directly related to GC, but to > something else that is triggered by GC? I just set garbage-collection-messages to non-nil and evaluated (garbage-collect), and nothing was printed... you are suggesting that it should print something to *Messages*, right? I've never tried emacs's profiler. I'll try that next time I do a big garbage-collect and see what it shows. -Trevor From debbugs-submit-bounces@debbugs.gnu.org Wed Nov 25 14:14:05 2020 Received: (at 43389) by debbugs.gnu.org; 25 Nov 2020 19:14:05 +0000 Received: from localhost ([127.0.0.1]:37072 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ki0Ev-0006dH-IV for submit@debbugs.gnu.org; Wed, 25 Nov 2020 14:14:05 -0500 Received: from eggs.gnu.org ([209.51.188.92]:56966) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ki0Eu-0006cZ-Bz for 43389@debbugs.gnu.org; Wed, 25 Nov 2020 14:14:04 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:50998) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ki0Eo-0007zR-V0; Wed, 25 Nov 2020 14:13:58 -0500 Received: from [176.228.60.248] (port=1098 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1ki0Eo-0000fs-8S; Wed, 25 Nov 2020 14:13:58 -0500 Date: Wed, 25 Nov 2020 21:13:59 +0200 Message-Id: <835z5ts0zs.fsf@gnu.org> From: Eli Zaretskii To: Carlos O'Donell In-Reply-To: <53fa9720-e709-81cc-dece-369f6136d048@redhat.com> (message from Carlos O'Donell on Wed, 25 Nov 2020 13:57:34 -0500) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> <83blfls494.fsf@gnu.org> <53fa9720-e709-81cc-dece-369f6136d048@redhat.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Cc: trevor@trevorbentley.com, bugs@gnu.support, fweimer@redhat.com, > 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de > From: Carlos O'Donell > Date: Wed, 25 Nov 2020 13:57:34 -0500 > > There are 3 malloc_info traces in the log. > > 1. Lines 47-219. Day 1: 1100MiB of RSS. > 2. Lines 386-556. Day 4: 2.3GiB of RSS. > 3. Lines 744-792. Day 5: 4.2GiB of RSS. > > Lines are numbered for the log starting at 1. > > > To make sure there are no misunderstandings, I'm talking about this > > part of the log: > > Your analysis is for trace #2, lines 386-556. > > My analysis was for trace #3, lines 744-792. OK, thanks for clarifying my confusion. From debbugs-submit-bounces@debbugs.gnu.org Wed Nov 25 14:17:35 2020 Received: (at 43389) by debbugs.gnu.org; 25 Nov 2020 19:17:35 +0000 Received: from localhost ([127.0.0.1]:37080 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ki0IJ-0006j2-CB for submit@debbugs.gnu.org; Wed, 25 Nov 2020 14:17:35 -0500 Received: from mail.trevorbentley.com ([37.187.5.80]:58143) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ki0II-0006io-0Z for 43389@debbugs.gnu.org; Wed, 25 Nov 2020 14:17:34 -0500 Received: from localhost (c188-150-0-48.bredband.comhem.se [188.150.0.48]) by mail.trevorbentley.com (Postfix) with ESMTPSA id DFD5D602C7; Wed, 25 Nov 2020 20:17:27 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mail.trevorbentley.com; s=mail; t=1606331848; bh=KFVaCCe8ZSOdLyRMS3xlkO4SPSD1PF+tJXz9afOb/lU=; h=From:To:Cc:Cc:Subject:In-Reply-To:References:Date:From; b=WfwxqIOI59RDn30Ia9pXkp+11H14/jW+UFhk6pO1/5mxXYLjWzC4HXyrpoF18LZYV O/2Ia6Y9aCoa+c2xjg9UQmQqSTcLmS4n9NPA3wVYe0aGzSY0/ekXoExF04Fjyoj/Wu JTD9aNY3nBkcPo2Qey1SbCfhuQSXQOhdA5hdzdLY= From: Trevor Bentley To: Carlos O'Donell , Jean Louis Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time In-Reply-To: <43b8f55b-d201-76e0-2d19-d97dec8798aa@redhat.com> References: <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> <87o8jltglg.fsf@mail.trevorbentley.com> <43b8f55b-d201-76e0-2d19-d97dec8798aa@redhat.com> Date: Wed, 25 Nov 2020 20:17:27 +0100 Message-ID: <87im9ttfeg.fsf@mail.trevorbentley.com> MIME-Version: 1.0 Content-Type: text/plain; format=flowed X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, Eli Zaretskii , X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Carlos O'Donell writes: > On 11/25/20 1:51 PM, Trevor Bentley wrote: >> I also still hit it while running under Valgrind; the whole >> emacs session was slow as hell, but still managed to blow out >> its heap in a few days. Of course, libmtrace could be >> different, but at least it doesn't seem to be a heisenbug. > > Do you have a valgrind report to share? Yes, they were earlier in this bug report, perhaps before you joined. It was the 'massif' heap tracing tool from the valgrind suite, not the regular valgrind leak detector. Here are the links again: The raw massif output: http://trevorbentley.com/massif.out.3364630 The *full* tree output: http://trevorbentley.com/ms_print.3364630.txt The tree output showing only entries above 10% usage: http://trevorbentley.com/ms_print.thresh10.3364630.txt -Trevor From debbugs-submit-bounces@debbugs.gnu.org Wed Nov 25 14:22:11 2020 Received: (at 43389) by debbugs.gnu.org; 25 Nov 2020 19:22:11 +0000 Received: from localhost ([127.0.0.1]:37084 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ki0Mk-0006q8-TS for submit@debbugs.gnu.org; Wed, 25 Nov 2020 14:22:11 -0500 Received: from eggs.gnu.org ([209.51.188.92]:59178) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ki0Mj-0006pv-EJ for 43389@debbugs.gnu.org; Wed, 25 Nov 2020 14:22:09 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:51086) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ki0Md-00025l-BJ; Wed, 25 Nov 2020 14:22:03 -0500 Received: from [176.228.60.248] (port=1597 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1ki0Mc-0001IQ-J2; Wed, 25 Nov 2020 14:22:03 -0500 Date: Wed, 25 Nov 2020 21:22:02 +0200 Message-Id: <83360xs0md.fsf@gnu.org> From: Eli Zaretskii To: Trevor Bentley In-Reply-To: <87lfeptfwy.fsf@mail.trevorbentley.com> (message from Trevor Bentley on Wed, 25 Nov 2020 20:06:21 +0100) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <87ft4ytw2c.fsf@mail.trevorbentley.com> <83d002tuoo.fsf@gnu.org> <87d001u46f.fsf@mail.trevorbentley.com> <83d001s50b.fsf@gnu.org> <87lfeptfwy.fsf@mail.trevorbentley.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, carlos@redhat.com, michael_heerdegen@web.de X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Trevor Bentley > Cc: bugs@gnu.support, fweimer@redhat.com, 43389@debbugs.gnu.org, > dj@redhat.com, michael_heerdegen@web.de, carlos@redhat.com > Cc: > Date: Wed, 25 Nov 2020 20:06:21 +0100 > > > "Freed" in what sense? returned to glibc? > > I was referring to glibc malloc/free, but emacs internal > allocations would also be interesting. It's a moot point, as I > don't think emacs supports it. In short, the question is "what > has garbage-collect done?" It prints the state of memory after it > is finished, but I have no idea if it has actually "collected" > anything. GC always frees something, don't worry about that. Your chances of finding Emacs in a state that it has no garbage to free are nil. > I just set garbage-collection-messages to non-nil and evaluated > (garbage-collect), and nothing was printed... ??? really? That can only happen if memory-full is non-nil. Is it? > you are suggesting that it should print something to *Messages*, > right? No, in the echo area. these messages don't go to *Messages*. > I've never tried emacs's profiler. I'll try that next time I do a > big garbage-collect and see what it shows. That won't help in this case: GC is in C, and the profiler doesn't profile C code that is not exposed to Lisp. From debbugs-submit-bounces@debbugs.gnu.org Wed Nov 25 14:38:46 2020 Received: (at 43389) by debbugs.gnu.org; 25 Nov 2020 19:38:46 +0000 Received: from localhost ([127.0.0.1]:37110 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ki0co-0007Ee-HQ for submit@debbugs.gnu.org; Wed, 25 Nov 2020 14:38:46 -0500 Received: from mail.trevorbentley.com ([37.187.5.80]:58267) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ki0cn-0007ER-GW for 43389@debbugs.gnu.org; Wed, 25 Nov 2020 14:38:45 -0500 Received: from localhost (c188-150-0-48.bredband.comhem.se [188.150.0.48]) by mail.trevorbentley.com (Postfix) with ESMTPSA id 4738E67483; Wed, 25 Nov 2020 20:38:39 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mail.trevorbentley.com; s=mail; t=1606333119; bh=wmsnf89mG5FohSQ7FG9hWAGu+Rgj3m3XfsieJ37RDwM=; h=From:To:Cc:Cc:Subject:In-Reply-To:References:Date:From; b=A1F8O+mazP9eALuHf5n0AVg51+yaPR8I/F2lHRNRf+0aUq6uckxDcCLdV92yaaKSX FlJZsqybE+7lyPle2QfAr1T+tfR3R/STKnOAr/v8G4u2ztNuXTsMJnTzm1bXwjQA/Z 7V54kSIF9pMPX+dVD+vri96/sEjodBTwttjT0gc4= From: Trevor Bentley To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time In-Reply-To: <83360xs0md.fsf@gnu.org> References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <87ft4ytw2c.fsf@mail.trevorbentley.com> <83d002tuoo.fsf@gnu.org> <87d001u46f.fsf@mail.trevorbentley.com> <83d001s50b.fsf@gnu.org> <87lfeptfwy.fsf@mail.trevorbentley.com> <83360xs0md.fsf@gnu.org> Date: Wed, 25 Nov 2020 20:38:38 +0100 Message-ID: <87ft4xtef5.fsf@mail.trevorbentley.com> MIME-Version: 1.0 Content-Type: text/plain; format=flowed X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, carlos@redhat.com, michael_heerdegen@web.de, X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii writes: >> you are suggesting that it should print something to >> *Messages*, right? > > No, in the echo area. these messages don't go to *Messages*. Oh! Well, yes, it is there then. I didn't realize you can echo without going to *Messages*. It's extremely fleeting... is there some way to persist these messages? >> I've never tried emacs's profiler. I'll try that next time I >> do a big garbage-collect and see what it shows. > > That won't help in this case: GC is in C, and the profiler > doesn't profile C code that is not exposed to Lisp. Ah, ok. Well, I'll try it anyway, and expect nothing. -Trevor From debbugs-submit-bounces@debbugs.gnu.org Wed Nov 25 15:02:47 2020 Received: (at 43389) by debbugs.gnu.org; 25 Nov 2020 20:02:47 +0000 Received: from localhost ([127.0.0.1]:37155 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ki102-0007pJ-SQ for submit@debbugs.gnu.org; Wed, 25 Nov 2020 15:02:47 -0500 Received: from eggs.gnu.org ([209.51.188.92]:41526) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ki100-0007p6-UG for 43389@debbugs.gnu.org; Wed, 25 Nov 2020 15:02:45 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:51752) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ki0zu-0008LN-Jl; Wed, 25 Nov 2020 15:02:38 -0500 Received: from [176.228.60.248] (port=4066 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1ki0zt-0006U6-8q; Wed, 25 Nov 2020 15:02:38 -0500 Date: Wed, 25 Nov 2020 22:02:39 +0200 Message-Id: <83y2ipqk68.fsf@gnu.org> From: Eli Zaretskii To: Trevor Bentley In-Reply-To: <87ft4xtef5.fsf@mail.trevorbentley.com> (message from Trevor Bentley on Wed, 25 Nov 2020 20:38:38 +0100) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <87ft4ytw2c.fsf@mail.trevorbentley.com> <83d002tuoo.fsf@gnu.org> <87d001u46f.fsf@mail.trevorbentley.com> <83d001s50b.fsf@gnu.org> <87lfeptfwy.fsf@mail.trevorbentley.com> <83360xs0md.fsf@gnu.org> <87ft4xtef5.fsf@mail.trevorbentley.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, carlos@redhat.com, michael_heerdegen@web.de X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Trevor Bentley > Cc: bugs@gnu.support, fweimer@redhat.com, 43389@debbugs.gnu.org, > dj@redhat.com, michael_heerdegen@web.de, carlos@redhat.com > Cc: > Date: Wed, 25 Nov 2020 20:38:38 +0100 > > Eli Zaretskii writes: > > >> you are suggesting that it should print something to > >> *Messages*, right? > > > > No, in the echo area. these messages don't go to *Messages*. > > Oh! Well, yes, it is there then. I didn't realize you can echo > without going to *Messages*. It's extremely fleeting... is there > some way to persist these messages? But if GC is taking minutes, you should be seeing the first of these 2 messages sitting in the echo area for the full duration of those minutes. So how can they be so ephemeral in your case? From debbugs-submit-bounces@debbugs.gnu.org Wed Nov 25 15:43:15 2020 Received: (at 43389) by debbugs.gnu.org; 25 Nov 2020 20:43:15 +0000 Received: from localhost ([127.0.0.1]:37261 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ki1dC-0000OI-OF for submit@debbugs.gnu.org; Wed, 25 Nov 2020 15:43:14 -0500 Received: from mail.trevorbentley.com ([37.187.5.80]:58593) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ki1dB-0000O5-9H for 43389@debbugs.gnu.org; Wed, 25 Nov 2020 15:43:13 -0500 Received: from localhost (c188-150-0-48.bredband.comhem.se [188.150.0.48]) by mail.trevorbentley.com (Postfix) with ESMTPSA id 05EAB60131; Wed, 25 Nov 2020 21:43:06 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mail.trevorbentley.com; s=mail; t=1606336987; bh=2h0giJNmm7pkNNl5LoL9H2x1AVhyHfxYVAdlOoJ3oJg=; h=From:To:Cc:Cc:Subject:In-Reply-To:References:Date:From; b=bhoQqWNaMuCw0dL0fhmBsmWOTWdZ9al2drM2nlrQ6TYzxmfmesEmrnKFQI47rZUvh iYI0JXO8gBbcJH3nXx5Xu3YgfQGTvxfDUzJ1i7g4FU8HMyf1qH+huE4ZA9tAhFfwH2 tpYADvNahfj7IK4ouDWavb45oykx1CHlyFoD6OvM= From: Trevor Bentley To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time In-Reply-To: <83y2ipqk68.fsf@gnu.org> References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <87ft4ytw2c.fsf@mail.trevorbentley.com> <83d002tuoo.fsf@gnu.org> <87d001u46f.fsf@mail.trevorbentley.com> <83d001s50b.fsf@gnu.org> <87lfeptfwy.fsf@mail.trevorbentley.com> <83360xs0md.fsf@gnu.org> <87ft4xtef5.fsf@mail.trevorbentley.com> <83y2ipqk68.fsf@gnu.org> Date: Wed, 25 Nov 2020 21:43:06 +0100 Message-ID: <87d001tbfp.fsf@mail.trevorbentley.com> MIME-Version: 1.0 Content-Type: text/plain; format=flowed X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, carlos@redhat.com, michael_heerdegen@web.de, X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii writes: >> Oh! Well, yes, it is there then. I didn't realize you can >> echo without going to *Messages*. It's extremely >> fleeting... is there some way to persist these messages? > > But if GC is taking minutes, you should be seeing the first of > these 2 messages sitting in the echo area for the full duration > of those minutes. So how can they be so ephemeral in your case? Yes, for the long ones I expect to see the message hang in the echo area. I was just hoping to also see when it is GC'ing in general (if it is GCi'ng in general, since it's behaving so weirdly). A timestamped log of every time garbage-collect runs would be great. Maybe I can do that with "(add-function :around ...)". The long garbage-collect doesn't happen until I'm in exploding memory mode. I recently restarted emacs, so right now a GC is instantaneous. I'll let you know how it goes next time the memory runs away. -Trevor From debbugs-submit-bounces@debbugs.gnu.org Wed Nov 25 15:51:24 2020 Received: (at 43389) by debbugs.gnu.org; 25 Nov 2020 20:51:24 +0000 Received: from localhost ([127.0.0.1]:37265 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ki1l6-0000Zs-JM for submit@debbugs.gnu.org; Wed, 25 Nov 2020 15:51:24 -0500 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:52388) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ki1l5-0000Zl-Aa for 43389@debbugs.gnu.org; Wed, 25 Nov 2020 15:51:24 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1606337482; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=4QwnxLlSfIwFH/l0+zsGIgeRlr33GEAyRbItBNYRkWo=; b=ixH1VfQrlqa9VUTwlyzKyj6zYR6Uu8XsbzJuETFEWuaUG4zTq6uy7ovSYaqmQF65R2hN/K +ZXvMvf552R33Sj278EgcEK7xVC+KqSWfo3d2SgTv2T4n+gW7pM8HX34KLekFA5VNpyuac cCwEMwf21hThn1RTPXVKWUfJsJgvueQ= Received: from mail-qv1-f71.google.com (mail-qv1-f71.google.com [209.85.219.71]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-155-GMtKIcxdO-ObMNO5H6p2oQ-1; Wed, 25 Nov 2020 15:51:19 -0500 X-MC-Unique: GMtKIcxdO-ObMNO5H6p2oQ-1 Received: by mail-qv1-f71.google.com with SMTP id t14so3259786qvc.13 for <43389@debbugs.gnu.org>; Wed, 25 Nov 2020 12:51:19 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=4QwnxLlSfIwFH/l0+zsGIgeRlr33GEAyRbItBNYRkWo=; b=uEKbgZruxR7iFTmOMcWTIHlTql7mKhpxgz3AC/nMMhqZihBgnrBcOCbNP1vIg1I7N4 8nCgNOw/RuuKwMy2Dp8pVHyFhk1GvEZlU2IZUHLrIKcL5/ytSOAt9vVS+uOjHlroQKwP TpZpEju9jiB5XpVMS50WZF6xzQ3Er1p2PpB4suI/alU6uvQAclhXTpFXXTWKEee4tOyP en3l2i3bZfpse6ZfmDt3KwkITwWb/+c+eLiLg+21JaDFmUJ/FMjc3GvrvB41VbJbK8YT z2GDQgrjsJPNqgs6Fl6uPemNDxWyKdKGAbAZ3U08/97iDfcXLFcMGWthZmsR2+VkzMTv uWcw== X-Gm-Message-State: AOAM532NWJ3xSY/OqbH0b62DnQ1GaR2FTqxhHA0sbblX6Bo4kJvzlRS6 8GRYFymzXA19g8ORdx0R3dkjgWlCtbOvNkHSZRSWdy6ZNTv10NvoapNJtoxx6Ce2fOgzBYdp1/N CWaGrUdpV+HJH1jM= X-Received: by 2002:aed:2662:: with SMTP id z89mr803960qtc.70.1606337478785; Wed, 25 Nov 2020 12:51:18 -0800 (PST) X-Google-Smtp-Source: ABdhPJzNy5YezZPu7g6R0+rhDNQ095uNuo54OTel8zWQCgrrUaZMqg8KnzCKdBdusTXtfHmFbyNCEg== X-Received: by 2002:aed:2662:: with SMTP id z89mr803935qtc.70.1606337478586; Wed, 25 Nov 2020 12:51:18 -0800 (PST) Received: from [192.168.1.16] (198-84-214-74.cpe.teksavvy.com. [198.84.214.74]) by smtp.gmail.com with ESMTPSA id j19sm409010qkk.119.2020.11.25.12.51.17 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 25 Nov 2020 12:51:17 -0800 (PST) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time To: Trevor Bentley , Jean Louis References: <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> <87o8jltglg.fsf@mail.trevorbentley.com> <43b8f55b-d201-76e0-2d19-d97dec8798aa@redhat.com> <87im9ttfeg.fsf@mail.trevorbentley.com> From: Carlos O'Donell Organization: Red Hat Message-ID: <399d4681-940a-c782-b91e-750e62840cb6@redhat.com> Date: Wed, 25 Nov 2020 15:51:16 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0 MIME-Version: 1.0 In-Reply-To: <87im9ttfeg.fsf@mail.trevorbentley.com> Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=carlos@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, Eli Zaretskii , michael_heerdegen@web.de, dj@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 11/25/20 2:17 PM, Trevor Bentley wrote: > Carlos O'Donell writes: > >> On 11/25/20 1:51 PM, Trevor Bentley wrote: >>> I also still hit it while running under Valgrind; the whole emacs session was slow as hell, but still managed to blow out its heap in a few days.  Of course, libmtrace could be different, but at least it doesn't seem to be a heisenbug. >> >> Do you have a valgrind report to share? > > Yes, they were earlier in this bug report, perhaps before you joined.  It was the 'massif' heap tracing tool from the valgrind suite, not the regular valgrind leak detector. > > Here are the links again: > >  The raw massif output: >  http://trevorbentley.com/massif.out.3364630 >  The *full* tree output: >  http://trevorbentley.com/ms_print.3364630.txt >  The tree output showing only entries above 10% usage: >  http://trevorbentley.com/ms_print.thresh10.3364630.txt This data is pretty clear: 1.40GiB - lisp_align_malloc (alloc.c:1195) 1.40GiB - lmalloc (alloc.c:1359) 0.65GiB - lrealloc (alloc.c:1374) 0.24GiB - AcquireAlignedMemory (/usr/lib/libMagickCore-7.Q16HDRI.so.7.0.0) -------- 3.60Gib - In use as of the snapshot. That's a fairly high fraction of the ~4.2GiB that is eventually in use. With lisp_align_malloc, lmalloc, and lrealloc shooting up exponentially at the end of the run look like they are making lists and processing numbers and other objects. This is a direct expression of something increasing demand for memory. -- Cheers, Carlos. From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 26 04:09:47 2020 Received: (at 43389) by debbugs.gnu.org; 26 Nov 2020 09:09:47 +0000 Received: from localhost ([127.0.0.1]:38357 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiDHf-0005mX-EG for submit@debbugs.gnu.org; Thu, 26 Nov 2020 04:09:47 -0500 Received: from static.rcdrun.com ([95.85.24.50]:48291) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiDHd-0005mI-Pu for 43389@debbugs.gnu.org; Thu, 26 Nov 2020 04:09:46 -0500 Received: from localhost ([::ffff:41.202.241.56]) (AUTH: PLAIN admin, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by static.rcdrun.com with ESMTPSA id 00000000002C0007.000000005FBF70D2.00002B76; Thu, 26 Nov 2020 09:09:38 +0000 Date: Thu, 26 Nov 2020 12:09:32 +0300 From: Jean Louis To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time Message-ID: References: <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> <83blfls494.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: <83blfls494.fsf@gnu.org> User-Agent: Mutt/2.0 (3d08634) (2020-11-07) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, Carlos O'Donell , trevor@trevorbentley.com, michael_heerdegen@web.de X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello Eli, Here is short report on the behavior: Emacs uptime: 2 days, 19 hours, 46 minutes, 49 seconds I think it was 11:12 o'clock my time zone. I was not doing nothing special just writing emails and invoking emacsclient. All the time before the swap shown by symon-mode was just about 200 MB suddenly it grew to large number maybe few gigabytes, hard disk started working heavily. It became all very slow but I could write letters. I have tried to invoke M-x good-bye around 11:12, that is where it became all very slow and started working with hard disk. Almost everything blocked on screen. Emacs was kind of empty, no menus, nothing, just blank black background, no mode line. So I moved it to other workspace and continued working with zile. About 36 minutes later it finally wrote this information into file: ((uptime "2 days, 18 hours, 32 minutes, 32 seconds") (pid 13339) (garbage ((conses 16 4438358 789442) (symbols 48 86924 25) (strings 32 571988 149785) (string-bytes 1 25104928) (vectors 16 245282) (vector-slots 8 4652918 1622184) (floats 8 1860 19097) (intervals 56 645336 37479) (buffers 992 900))) (buffers-size 200839861) (vsize (vsize 5144252))) There after few minutes I have invoked the good-bye again: ((uptime "2 days, 18 hours, 35 minutes, 19 seconds") (pid 13339) (garbage ((conses 16 4511014 617524) (symbols 48 86926 23) (strings 32 576134 114546) (string-bytes 1 25198549) (vectors 16 245670) (vector-slots 8 4636183 1560354) (floats 8 1859 18842) (intervals 56 655325 24178) (buffers 992 900))) (buffers-size 200898858) (vsize (vsize 5144252))) But what happened after 36 minutes of waiting is that Emacs became responsive. So I am still running this session and I hope to get mtrace after the session has finished. Before I was not patient longer than maybe 3-5 minutes and I have aborted Emacs. But now I can see it stabilized after hard work with memory or whatever it was doing. Swap is 1809 MB and vsize just same as above. Observation on "what I was doing when vsize started growing" is simple, I was just editing email, nothing drastic. I did not do anything special. If you say I should finish session now and send the mtrace, I can do it. Jean (defun good-bye () (interactive) (let* ((garbage (garbage-collect)) (size 0) (buffers-size (dolist (buffer (buffer-list) size) (setq size (+ size (buffer-size buffer))))) (uptime (emacs-uptime)) (pid (emacs-pid)) (vsize (vsize-value)) (file (format "~/tmp/emacs-session-%s.el" pid)) (list (list (list 'uptime uptime) (list 'pid pid) (list 'garbage garbage) (list 'buffers-size buffers-size) (list 'vsize vsize)))) (with-temp-file file (insert (prin1-to-string list))) (message file))) From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 26 07:38:05 2020 Received: (at 43389) by debbugs.gnu.org; 26 Nov 2020 12:38:05 +0000 Received: from localhost ([127.0.0.1]:40004 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiGXF-0001KI-Ae for submit@debbugs.gnu.org; Thu, 26 Nov 2020 07:38:05 -0500 Received: from mail.trevorbentley.com ([37.187.5.80]:35451) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiGXA-0001JY-VK for 43389@debbugs.gnu.org; Thu, 26 Nov 2020 07:38:02 -0500 Received: from localhost (c188-150-0-48.bredband.comhem.se [188.150.0.48]) by mail.trevorbentley.com (Postfix) with ESMTPSA id C2A0A60DA4; Thu, 26 Nov 2020 13:37:54 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mail.trevorbentley.com; s=mail; t=1606394274; bh=mGf1Bzdq1CN9mGCzRuOrbQ+0XC/sZ9PQj+DMkY22BZg=; h=From:To:Cc:Cc:Subject:In-Reply-To:References:Date:From; b=At74EIb0sWDhlaSoKr+5haezWAQm/NTY/X6vJhlwkgK80gfnVF9f2cJDMT+F61IMV BTbHpcZ/v9FI/0MMCGfNb3wE/mCRzII5LgHhSTgxiuzlm+y6bYQ1TDwuqUYGQTJ9X+ guvpgM6jVPBrHBAi95KRoWtVdzjLR4FooY86F8XM= From: Trevor Bentley To: Carlos O'Donell , Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time In-Reply-To: <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> Date: Thu, 26 Nov 2020 13:37:54 +0100 Message-ID: <87a6v4thst.fsf@mail.trevorbentley.com> MIME-Version: 1.0 Content-Type: text/plain; format=flowed X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, michael_heerdegen@web.de, X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) > You want visibility into what is USING that memory. > > With glibc-malloc-trace-utils you can try to do that with: > > LD_PRELOAD=libmtrace.so \ MTRACE_CTL_FILE=/home/user/app.mtr \ > MTRACE_CTL_BACKTRACE=1 \ ./app > > This will use libgcc's unwinder to get a copy of the malloc > caller address and then we'll have to decode that based on a > /proc/self/maps. > > Next steps: - Get a glibc-malloc-trace-utils trace of the > application ratcheting. - Get a copy of /proc/$PID/maps for the > application (shorter version of smaps). > Oh, this is going to be a problem. I guess it is producing one trace file per thread? I ran it with libmtrace overnight. Memory usage was very high, but it doesn't look like the same problem. I hit 1550MB of RSS, but smaps reported only ~350MB of that was in the heap, which seemed reasonable for the ~150MB that emacs reported it was using. Does libmtrace add a lot of memory overhead? However, libmtrace has made 4968 files totalling 26GB in that time. Ouch. It's going to be hard to tell when I hit the bug under libmtrace, questionable whether the report will even fit on my disk, and tricky to share however many tens of gigabytes of trace files it results in. If it's one trace per thread, though, then we at least know that my emacs process in question is blazing through threads. That could be relevant. Other thing to note (for Eli): I wrapped garbage-collect like so: --- (defun trev/garbage-collect (orig-fun &rest args) (message "%s -- Starting garbage-collect." (current-time-string)) (let ((time (current-time)) (result (apply orig-fun args))) (message "%s -- Finished garbage-collect in %.06f" (current-time-string) (float-time (time-since time))) result)) (add-function :around (symbol-function 'garbage-collect) #'trev/garbage-collect) --- This printed a start and stop message each time I evaluated garbage-collect manually. It did not print any messages in 11 hours of running unattended. This is with an active network connection receiving messages fairly frequently, so there was plenty of consing going on. Hard for me to judge if it should run any garbage collection in that time, but I would have expected so. -Trevor From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 26 08:58:35 2020 Received: (at 43389) by debbugs.gnu.org; 26 Nov 2020 13:58:36 +0000 Received: from localhost ([127.0.0.1]:40330 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiHn9-0005Ut-LK for submit@debbugs.gnu.org; Thu, 26 Nov 2020 08:58:35 -0500 Received: from eggs.gnu.org ([209.51.188.92]:34686) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiHn4-0005Uc-Ug for 43389@debbugs.gnu.org; Thu, 26 Nov 2020 08:58:34 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:42342) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kiHmz-0006K3-6d; Thu, 26 Nov 2020 08:58:25 -0500 Received: from [176.228.60.248] (port=2210 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kiHmx-0004gw-RQ; Thu, 26 Nov 2020 08:58:24 -0500 Date: Thu, 26 Nov 2020 15:58:04 +0200 Message-Id: <83pn40qkyb.fsf@gnu.org> From: Eli Zaretskii To: Carlos O'Donell In-Reply-To: <399d4681-940a-c782-b91e-750e62840cb6@redhat.com> (message from Carlos O'Donell on Wed, 25 Nov 2020 15:51:16 -0500) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> <87o8jltglg.fsf@mail.trevorbentley.com> <43b8f55b-d201-76e0-2d19-d97dec8798aa@redhat.com> <87im9ttfeg.fsf@mail.trevorbentley.com> <399d4681-940a-c782-b91e-750e62840cb6@redhat.com> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Cc: Eli Zaretskii , fweimer@redhat.com, 43389@debbugs.gnu.org, > dj@redhat.com, michael_heerdegen@web.de > From: Carlos O'Donell > Date: Wed, 25 Nov 2020 15:51:16 -0500 > > >  The raw massif output: > >  http://trevorbentley.com/massif.out.3364630 > >  The *full* tree output: > >  http://trevorbentley.com/ms_print.3364630.txt > >  The tree output showing only entries above 10% usage: > >  http://trevorbentley.com/ms_print.thresh10.3364630.txt > > This data is pretty clear: > > 1.40GiB - lisp_align_malloc (alloc.c:1195) > 1.40GiB - lmalloc (alloc.c:1359) > 0.65GiB - lrealloc (alloc.c:1374) > 0.24GiB - AcquireAlignedMemory (/usr/lib/libMagickCore-7.Q16HDRI.so.7.0.0) > -------- > 3.60Gib - In use as of the snapshot. > > That's a fairly high fraction of the ~4.2GiB that is eventually in use. > > With lisp_align_malloc, lmalloc, and lrealloc shooting up exponentially at the end of the run look like they are making lists and processing numbers and other objects. > > This is a direct expression of something increasing demand for memory. So, at least in Trevor's case, it sounds like we sometimes request a lot of memory during short periods of time. But what kind of memory is that? lmalloc is called by xmalloc, xrealloc, xzalloc, and xpalloc -- functions Emacs calls to get memory unrelated to Lisp data. But it is also called by lisp_malloc, which is used to allocate memory for some Lisp objects. lisp_align_malloc, OTOH, is used exclusively for allocating Lisp data (conses, strings, etc.). It is somewhat strange that lisp_align_malloc and lmalloc were called to allocate similar amounts of memory: these two functions are orthogonal, AFAICS, used for disparate groups of Lisp object types, and it sounds strange that we somehow allocate very similar amounts of memory for those data types. Another observation is that since GC succeeds to release a large portion of this memory, it would probably mean some significant proportion of the calls are for Lisp data, maybe strings (because GC compacts strings, which can allow Emacs to release more memory to glibc's heap allocation machinery). Apart of that, I think we really need to see the most significant customers of these functions when the memory footprint starts growing fast. From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 26 09:14:26 2020 Received: (at 43389) by debbugs.gnu.org; 26 Nov 2020 14:14:26 +0000 Received: from localhost ([127.0.0.1]:40386 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiI2U-0005wc-AW for submit@debbugs.gnu.org; Thu, 26 Nov 2020 09:14:26 -0500 Received: from eggs.gnu.org ([209.51.188.92]:38738) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiI2S-0005wQ-HH for 43389@debbugs.gnu.org; Thu, 26 Nov 2020 09:14:24 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:42755) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kiI2M-00031Q-ML; Thu, 26 Nov 2020 09:14:18 -0500 Received: from [176.228.60.248] (port=3185 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kiI2M-0007Em-1p; Thu, 26 Nov 2020 09:14:18 -0500 Date: Thu, 26 Nov 2020 16:13:58 +0200 Message-Id: <83lfeoqk7t.fsf@gnu.org> From: Eli Zaretskii To: Jean Louis In-Reply-To: (message from Jean Louis on Thu, 26 Nov 2020 12:09:32 +0300) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> <83blfls494.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, carlos@redhat.com, trevor@trevorbentley.com, michael_heerdegen@web.de X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Thu, 26 Nov 2020 12:09:32 +0300 > From: Jean Louis > Cc: Carlos O'Donell , trevor@trevorbentley.com, > fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, > michael_heerdegen@web.de > > ((uptime "2 days, 18 hours, 35 minutes, 19 seconds") (pid 13339) (garbage ((conses 16 4511014 617524) (symbols 48 86926 23) (strings 32 576134 114546) (string-bytes 1 25198549) (vectors 16 245670) (vector-slots 8 4636183 1560354) (floats 8 1859 18842) (intervals 56 655325 24178) (buffers 992 900))) (buffers-size 200898858) (vsize (vsize 5144252))) > > But what happened after 36 minutes of waiting is that Emacs became > responsive. So I am still running this session and I hope to get > mtrace after the session has finished. > > Before I was not patient longer than maybe 3-5 minutes and I have > aborted Emacs. But now I can see it stabilized after hard work with > memory or whatever it was doing. Swap is 1809 MB and vsize just same > as above. It's still 5GB, which is a fairly large footprint, certainly for a 2-day session. > Observation on "what I was doing when vsize started growing" is > simple, I was just editing email, nothing drastic. I did not do > anything special. Can you describe in more detail how you edit email? Which email package(s) do you do, and what would composing email generally involve? Also, are there any background activities that routinely run in your Emacs sessions? > If you say I should finish session now and send the mtrace, I can do > it. That's for Carlos to say. Thanks for the info. From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 26 09:30:52 2020 Received: (at 43389) by debbugs.gnu.org; 26 Nov 2020 14:30:52 +0000 Received: from localhost ([127.0.0.1]:40419 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiIIN-0008SC-Ed for submit@debbugs.gnu.org; Thu, 26 Nov 2020 09:30:52 -0500 Received: from eggs.gnu.org ([209.51.188.92]:43562) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiIIC-0008RV-Rf for 43389@debbugs.gnu.org; Thu, 26 Nov 2020 09:30:41 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:43182) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kiII6-0000GH-Uj; Thu, 26 Nov 2020 09:30:34 -0500 Received: from [176.228.60.248] (port=4181 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kiII6-0001U6-AH; Thu, 26 Nov 2020 09:30:34 -0500 Date: Thu, 26 Nov 2020 16:30:14 +0200 Message-Id: <83eekgqjgp.fsf@gnu.org> From: Eli Zaretskii To: Trevor Bentley In-Reply-To: <87a6v4thst.fsf@mail.trevorbentley.com> (message from Trevor Bentley on Thu, 26 Nov 2020 13:37:54 +0100) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> <87a6v4thst.fsf@mail.trevorbentley.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, carlos@redhat.com, michael_heerdegen@web.de X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Trevor Bentley > Cc: bugs@gnu.support, fweimer@redhat.com, 43389@debbugs.gnu.org, > dj@redhat.com, michael_heerdegen@web.de > Cc: > Date: Thu, 26 Nov 2020 13:37:54 +0100 > > If it's one trace per thread, though, then we at least know that > my emacs process in question is blazing through threads. I don't see how this could be true, unless some library you use (ImageMagick?) starts a lot of threads. Emacs itself is single-threaded, and the only other threads are those from GTK, which should be very few (like, 4 or 5). This assumes you didn't use Lisp threads, of course. > Other thing to note (for Eli): I wrapped garbage-collect like so: > > --- > (defun trev/garbage-collect (orig-fun &rest args) > (message "%s -- Starting garbage-collect." > (current-time-string)) (let ((time (current-time)) > (result (apply orig-fun args))) > (message "%s -- Finished garbage-collect in %.06f" > (current-time-string) (float-time (time-since time))) result)) > (add-function :around (symbol-function 'garbage-collect) > #'trev/garbage-collect) > --- > > This printed a start and stop message each time I evaluated > garbage-collect manually. It did not print any messages in 11 > hours of running unattended. That's expected, because the automatic GC doesn't call garbage-collect. garbage-collect is just a thin wrapper around a C function, called garbage_collect, and the automatic GC calls that function directly from C. And you cannot advise C functions not exposed to Lisp. If you want to have record of the times it took each GC to run, you will have to modify the C sources. From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 26 10:20:03 2020 Received: (at 43389) by debbugs.gnu.org; 26 Nov 2020 15:20:03 +0000 Received: from localhost ([127.0.0.1]:42481 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiJ3z-0001ls-3h for submit@debbugs.gnu.org; Thu, 26 Nov 2020 10:20:03 -0500 Received: from mail.trevorbentley.com ([37.187.5.80]:36253) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiJ3w-0001lJ-Dk for 43389@debbugs.gnu.org; Thu, 26 Nov 2020 10:20:01 -0500 Received: from localhost (c188-150-0-48.bredband.comhem.se [188.150.0.48]) by mail.trevorbentley.com (Postfix) with ESMTPSA id 5BB8B6022A; Thu, 26 Nov 2020 16:19:54 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mail.trevorbentley.com; s=mail; t=1606403994; bh=8ULAdeamrKicVJGyra7OtJ6pqQRISSKWomIGeu1DZ3M=; h=From:To:Cc:Cc:Subject:In-Reply-To:References:Date:From; b=i5gLLlULhjstMLZ2o4su9x2q95mD7zbwTU+bt84PngEGgjRakmH2zgaABCJQIuh4Z 8PvNmK3bUeUoWYbaiS7dx2dYau15RJPLeqp6+fnQhmubx+XWweBks89MnQlJn0VggE mp498PUI/MVMt33iTIWFkdfyWGksFcSPGX6YbXGo= From: Trevor Bentley To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time In-Reply-To: <83eekgqjgp.fsf@gnu.org> References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> <87a6v4thst.fsf@mail.trevorbentley.com> <83eekgqjgp.fsf@gnu.org> Date: Thu, 26 Nov 2020 16:19:53 +0100 Message-ID: <877dq8taau.fsf@mail.trevorbentley.com> MIME-Version: 1.0 Content-Type: text/plain; format=flowed X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, carlos@redhat.com, michael_heerdegen@web.de, X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) >> If it's one trace per thread, though, then we at least know >> that my emacs process in question is blazing through threads. > > I don't see how this could be true, unless some library you use > (ImageMagick?) starts a lot of threads. Emacs itself is > single-threaded, and the only other threads are those from GTK, > which should be very few (like, 4 or 5). This assumes you > didn't use Lisp threads, of course. Oh, it may be subprocesses instead of threads. emacs-slack is doing all sorts of things, involving both ImageMagick and launching curl subprocesses. Is there a way to prevent libmtrace from following children? I've just hooked make-process and make-thread, and see both being called back-to-back very often for spawning curl subprocesses. >> This printed a start and stop message each time I evaluated >> garbage-collect manually. It did not print any messages in 11 >> hours of running unattended. > > That's expected, because the automatic GC doesn't call > garbage-collect. garbage-collect is just a thin wrapper around > a C function, called garbage_collect, and the automatic GC calls > that function directly from C. And you cannot advise C > functions not exposed to Lisp. > > If you want to have record of the times it took each GC to run, > you will have to modify the C sources. Gotcha. No surprise, then. -Trevor From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 26 10:32:09 2020 Received: (at 43389) by debbugs.gnu.org; 26 Nov 2020 15:32:10 +0000 Received: from localhost ([127.0.0.1]:42510 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiJFh-0003lP-KK for submit@debbugs.gnu.org; Thu, 26 Nov 2020 10:32:09 -0500 Received: from eggs.gnu.org ([209.51.188.92]:33618) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiJFe-0003eR-JG for 43389@debbugs.gnu.org; Thu, 26 Nov 2020 10:32:08 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:44659) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kiJFY-0004PD-Db; Thu, 26 Nov 2020 10:32:00 -0500 Received: from [176.228.60.248] (port=4524 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kiJFX-0007DO-20; Thu, 26 Nov 2020 10:31:59 -0500 Date: Thu, 26 Nov 2020 17:31:37 +0200 Message-Id: <83a6v4qgme.fsf@gnu.org> From: Eli Zaretskii To: Trevor Bentley In-Reply-To: <877dq8taau.fsf@mail.trevorbentley.com> (message from Trevor Bentley on Thu, 26 Nov 2020 16:19:53 +0100) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> <87a6v4thst.fsf@mail.trevorbentley.com> <83eekgqjgp.fsf@gnu.org> <877dq8taau.fsf@mail.trevorbentley.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, carlos@redhat.com, michael_heerdegen@web.de X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Trevor Bentley > Cc: carlos@redhat.com, bugs@gnu.support, fweimer@redhat.com, > 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de > Cc: > Date: Thu, 26 Nov 2020 16:19:53 +0100 > > I've just hooked make-process and make-thread, and see both being > called back-to-back very often for spawning curl subprocesses. What Lisp commands cause make-thread to be called? From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 26 10:44:21 2020 Received: (at submit) by debbugs.gnu.org; 26 Nov 2020 15:44:21 +0000 Received: from localhost ([127.0.0.1]:42529 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiJRL-0004UN-Ob for submit@debbugs.gnu.org; Thu, 26 Nov 2020 10:44:21 -0500 Received: from lists.gnu.org ([209.51.188.17]:33420) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiJRI-0004UD-Ef for submit@debbugs.gnu.org; Thu, 26 Nov 2020 10:44:11 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:55786) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kiJRG-00028X-Pf for bug-gnu-emacs@gnu.org; Thu, 26 Nov 2020 10:44:07 -0500 Received: from se15.route25.eu ([2a00:f10:402:781:1c00:45ff:fe00:24f8]:50160) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kiJR9-0008Cl-VG for bug-gnu-emacs@gnu.org; Thu, 26 Nov 2020 10:44:05 -0500 Date: Thu, 26 Nov 2020 16:42:19 +0100 From: Russell Adams To: bug-gnu-emacs@gnu.org Subject: Re: bug#43389: 28.0.50; Emacs memory leaks Message-ID: <20201126154219.GA16802@maokai> Mail-Followup-To: bug-gnu-emacs@gnu.org References: <87r1r5428d.fsf@web.de> <87mu1sry72.fsf@mail.linkov.net> <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200917204704.GA20217@maokai> X-Originating-IP: 185.87.184.57 X-SpamExperts-Domain: out.pcextreme.nl X-SpamExperts-Username: 185.87.184.57 Authentication-Results: route25.eu; auth=pass smtp.auth=185.87.184.57@out.pcextreme.nl X-SpamExperts-Outgoing-Class: ham X-SpamExperts-Outgoing-Evidence: SB/global_tokens (0.00791682965805) X-Recommended-Action: accept X-Filter-ID: Mvzo4OR0dZXEDF/gcnlw0fJVsTFCFA1YlcTpjJcy6PSpSDasLI4SayDByyq9LIhVtcWfpvqLS60e BNTMwtOw90TNWdUk1Ol2OGx3IfrIJKywOmJyM1qr8uRnWBrbSAGD0VsY0HzEkBzUTjuObUvkgtQ5 3pMmTXeVbblO3cSIiVD+lPsJl3NQibG9+awNzLmjJODXbtOodkPED+RkHjVGH9gpfPe2lDQBFQc5 pWKjU8U1TnR+f0U9cu064nZcMieLAqdkk6hppCDsqsBwLjHur1XxB26GtR7aQdGQ3RxVousDFpkW mgyT/YeLVvI3HPYSaHwJ2eESrUp0Iw/gSJ3HqMuR600P9eQ3vodupN36MrkzGQZS068e3EYTgNAB jZkD8TzPF4eG61o+cxFZrUIXowfXJosMX5ZQSlYSVlCDu2na8Lc2iK0mXNgodhRh0E6+UMVFei1G 2PrSIU9EwioS70yFBF2moUWeHNDS4qZDIDB7XoQijaYHvr9sPSt0aWxBU8NAmhVjxOcflCqTdpCd nz3dKxLhoxcmaInYbR5vlqF9UZSlUPITrUlXo0KweE5K01CkZQcRJUiIO9z1A2bbodvpo2UgV9PP 0GtOSQCD3Wp6EipRzMVZ5LqwTx7Vvn9SWQRihqWRcCaa7yMGNcHiKiC9NjNYY5WoFXFyoMFsG38I aa05P3P4eYW86qsHunbFcho0P7VyKpXK1A14c1ki+AeYUOp7A73HI6oJg7w/Vod4U0DAmRXz28Ch LUng6DAB7o8DebwK9n0BDYMYTfyprxMqABCuK7DVpOJr7QXPUVFWWG/qurFASmykSe7dic5Ihrj9 GCF/KjAOTCzc+K6CedMMKG5rbgpB8auCio8qMm9fnNrs9kXoCnLlxvUdano2ZuM7jUXIESohoO51 xWmU8YFNhmLhRrMmGp/YP6zHURnLwHAPPq8eGMIHhPrdhREhenKEodVwN3ziyd+8A4WM4r9OjVTa +ThEGFv9mPwqFSTyI0CgGXyP43F+qNYPSuWcCYZmKidDyMV/PX+3S0zKrHuRYVQUGjtN3c8fawDG Z2V64F3WR5dr6gmwksvSMd3pbTr/MieXCrcMYb3lt2VkyA== X-Report-Abuse-To: spam@semaster01.route25.eu Received-SPF: pass client-ip=2a00:f10:402:781:1c00:45ff:fe00:24f8; envelope-from=rladams@adamsinfoserv.com; helo=se15.route25.eu X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) On Thu, Sep 17, 2020 at 10:47:04PM +0200, Russell Adams wrote: > From Emacs memory-usage package: > > Garbage collection stats: > ((conses 16 1912248 251798) (symbols 48 54872 19) (strings 32 327552 81803) (string-bytes 1 12344346) (vectors 16 158994) (vector-slots 8 2973919 339416) (floats 8 992 4604) (intervals 56 182607 7492) (buffers 1000 195)) > > => 29.2MB (+ 3.84MB dead) in conses > 2.51MB (+ 0.89kB dead) in symbols > 10.00MB (+ 2.50MB dead) in strings > 11.8MB in string-bytes > 2.43MB in vectors > 22.7MB (+ 2.59MB dead) in vector-slots > 7.75kB (+ 36.0kB dead) in floats > 9.75MB (+ 410kB dead) in intervals > 190kB in buffers > > Total in lisp objects: 97.9MB (live 88.5MB, dead 9.36MB) I had the memory leak occur again and this time I had the glibc-malloc-trace-utils loaded and running from the start. So my emacs grew to 8GB in RAM, and what was curious is if it was a background task (not window focused on an emacsclient), then the memory stayed the same. When I had the window focused, I could watch the memory constantly increasing in htop a few megs at a time. Garbage collection stats: ((conses 16 1749077 1176908) (symbols 48 47530 38) (strings 32 307123 144020) (string-bytes 1 10062511) (vectors 16 113172) (vector-slots 8 2105205 486800) (floats 8 709 1719) (intervals 56 174593 44804) (buffers 1000 71)) => 26.7MB (+ 18.0MB dead) in conses 2.18MB (+ 1.78kB dead) in symbols 9.37MB (+ 4.40MB dead) in strings 9.60MB in string-bytes 1.73MB in vectors 16.1MB (+ 3.71MB dead) in vector-slots 5.54kB (+ 13.4kB dead) in floats 9.32MB (+ 2.39MB dead) in intervals 69.3kB in buffers Total in lisp objects: 103MB (live 75.0MB, dead 28.5MB) Buffer ralloc memory usage: 47 buffers 3.36MB total ( 232kB in gaps) Size Gap Name 926626 1504 AIS.org 690050 1933 Personal.org 553850 2000 Abuffer.org 490398 3851 *Packages* 215653 2000 KB.org 76686 1708 X230.org 59841 2123 Agenda.org 51375 51076 *sly-events for sbcl* 51060 1902 ASC.org 44596 2000 Contacts.org 36825 1792 *Messages* 23882 2309 *org-caldav-debug* 22867 2000 rgb.lisp 14678 746 *sly-mrepl for sbcl* 6640 1173 VirtualFCMap.lisp 4096 2000 *code-converting-work* 3409 16717 *http orgmode.org:443* 1946 104 *Org Agenda* 1528 2028 *http gaming.demosthenes.org*-491231 1524 2028 *http gaming.demosthenes.org*-15349 1518 2028 *http gaming.demosthenes.org* 1276 1368 *sly-inferior-lisp for sbcl* 1231 2026 *http gaming.demosthenes.org*-464306 1208 825 *Help* 679 1574 *Buffer Details* 641 1975 *Agenda Commands* 531 1494 *Calendar* 324 2008 *http melpa.org:443* 278 3775 *helm M-x* 185 1838 *org caldav sync result* 144 2000 *scratch* 57 21434 *helm find files* 44 5610 *icalendar-work* 30 2000 *sly-fontify* 21 2000 *log-edit-files* 20 0 *pdf-info-query--escape* 18 4077 *helm mini* 12 8630 *code-conversion-work* 5 4065 *Echo Area 1* 0 2033 *Minibuf-1* 0 20 *Minibuf-0* 0 20 *server* 0 4060 *Echo Area 0* 0 61547 *sly-1* 0 20 *sly-dds-1-1* 0 20 *changes to ~/ASC/Software/Snaps/* 0 20 *vc* I started emacs with: MTRACE_CTL_FILE=mtraceEMACS.mtr LD_PRELOAD=~/software/glibc-malloc-trace-utils/libmtrace.so ~/.local/bin/emacs --daemon >> ~/.config/emacs/emacs.log 2>&1 This created some huge files. By the time I reached 8GB in RAM, the mtr file for the main process (I think) was 53 GB. I also have little mtrace files littered everywhere in different project directories. -rw-r--r-- 1 adamsrl adamsrl 53G Nov 26 13:23 mtraceEMACS.mtr.15236 -rw-r--r-- 1 adamsrl adamsrl 4.2G Nov 26 13:36 my.wl -rw-r--r-- 1 adamsrl adamsrl 1.3G Nov 26 13:50 mtraceEMACS.mtr.15236.allocs -rw-r--r-- 1 adamsrl adamsrl 32K Nov 26 13:55 mtraceEMACS.mtr.15236.binnedallocs.log -rw-r--r-- 1 adamsrl adamsrl 6.0G Nov 26 15:12 vmrssout -rw-r--r-- 1 adamsrl adamsrl 6.0G Nov 26 15:12 vmout -rw-r--r-- 1 adamsrl adamsrl 8.6G Nov 26 15:12 idealrssout I converted the mtraceEMACS.mtr.15236 to my.wl using trace2wl. The trace_run command did this output: % ~/software/glibc-malloc-trace-utils/trace_run ./my.wl vmout vmrssout idealrssout 11,757,635,230,744 cycles 4,532,472,554 usec wall time 5,966,752,470 usec across 3 threads 8,461,721,600 bytes Max RSS (218,308,608 -> 8,680,030,208) Starting VmRSS 218308608 (bytes) Starting VmSize 219549696 (bytes) Starting MaxRSS 218308608 (bytes) Ending VmRSS 8680030208 (bytes) Ending VmSize 8903626752 (bytes) Ending MaxRSS 8680030208 (bytes) 8,131,008 Kb Max Ideal RSS sizeof ticks_t is 8 Avg malloc time: 145 in 422,186,832 calls Avg calloc time: 12,538 in 1,164,584 calls Avg realloc time: 566 in 3,294,165 calls Avg free time: 110 in 449,397,629 calls Total call time: 127,318,389,383 cycles These files are impossible to share around, is there anything I can run to extract anything else useful from them? % ~/software/glibc-malloc-trace-utils/trace_statistics mtraceEMACS.mtr.15236 Min allocation size: 0 Max allocation size: 1603869 Mean allocation size: 128 I did follow the instructions for downsampling, but I haven't a clue what to do in Octave. Is it worth posting those files? I have the impression this is more about how often more RAM was requested, and not the source of the call? I should mention I'm present in #emacs and happy to discuss there. ------------------------------------------------------------------ Russell Adams RLAdams@AdamsInfoServ.com PGP Key ID: 0x1160DCB3 http://www.adamsinfoserv.com/ Fingerprint: 1723 D8CA 4280 1EC9 557F 66E8 1154 E018 1160 DCB3 From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 26 11:34:54 2020 Received: (at submit) by debbugs.gnu.org; 26 Nov 2020 16:34:54 +0000 Received: from localhost ([127.0.0.1]:42614 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiKEQ-0005mn-2D for submit@debbugs.gnu.org; Thu, 26 Nov 2020 11:34:54 -0500 Received: from lists.gnu.org ([209.51.188.17]:39470) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiKEO-0005md-7m for submit@debbugs.gnu.org; Thu, 26 Nov 2020 11:34:52 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:48184) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kiKEO-0003fC-14 for bug-gnu-emacs@gnu.org; Thu, 26 Nov 2020 11:34:52 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:46317) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kiKEM-0004MC-Ld; Thu, 26 Nov 2020 11:34:50 -0500 Received: from [176.228.60.248] (port=4462 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kiKEM-0003N1-4v; Thu, 26 Nov 2020 11:34:50 -0500 Date: Thu, 26 Nov 2020 18:34:31 +0200 Message-Id: <837dq8qdpk.fsf@gnu.org> From: Eli Zaretskii To: Russell Adams In-Reply-To: <20201126154219.GA16802@maokai> (message from Russell Adams on Thu, 26 Nov 2020 16:42:19 +0100) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <87mu1sry72.fsf@mail.linkov.net> <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> <20201126154219.GA16802@maokai> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: submit Cc: bug-gnu-emacs@gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Thu, 26 Nov 2020 16:42:19 +0100 > From: Russell Adams > > So my emacs grew to 8GB in RAM, and what was curious is if it was a > background task (not window focused on an emacsclient), then the > memory stayed the same. When I had the window focused, I could watch > the memory constantly increasing in htop a few megs at a time. Was the memory increasing even when you did nothing in the session? If so, do you have some background functions running, e.g. timers? If Emacs was not idle, can you describe what you were doing at that time? Thanks. From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 26 11:54:52 2020 Received: (at submit) by debbugs.gnu.org; 26 Nov 2020 16:54:52 +0000 Received: from localhost ([127.0.0.1]:42677 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiKXj-0006Ip-S7 for submit@debbugs.gnu.org; Thu, 26 Nov 2020 11:54:52 -0500 Received: from lists.gnu.org ([209.51.188.17]:53088) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiKXh-0006Ih-MT for submit@debbugs.gnu.org; Thu, 26 Nov 2020 11:54:50 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:55312) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kiKXh-0001xi-1I for bug-gnu-emacs@gnu.org; Thu, 26 Nov 2020 11:54:49 -0500 Received: from se18.route25.eu ([2a00:f10:400:4:1c00:18ff:fe00:1617]:59366) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kiKXc-0007l7-Un for bug-gnu-emacs@gnu.org; Thu, 26 Nov 2020 11:54:47 -0500 Date: Thu, 26 Nov 2020 17:54:36 +0100 From: Russell Adams To: bug-gnu-emacs@gnu.org Subject: Re: bug#43389: 28.0.50; Emacs memory leaks Message-ID: <20201126165436.GB16802@maokai> Mail-Followup-To: bug-gnu-emacs@gnu.org References: <87r1r5428d.fsf@web.de> <87mu1sry72.fsf@mail.linkov.net> <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> <20201126154219.GA16802@maokai> <837dq8qdpk.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <837dq8qdpk.fsf@gnu.org> X-Originating-IP: 2a00:f10:400:2:446:66ff:fe00:2ce X-SpamExperts-Domain: out.pcextreme.nl X-SpamExperts-Username: 2a00:f10:400:2:446:66ff:fe00:2ce Authentication-Results: route25.eu; auth=pass smtp.auth=2a00:f10:400:2:446:66ff:fe00:2ce@out.pcextreme.nl X-SpamExperts-Outgoing-Class: ham X-SpamExperts-Outgoing-Evidence: Combined (0.15) X-Recommended-Action: accept X-Filter-ID: Mvzo4OR0dZXEDF/gcnlw0fJVsTFCFA1YlcTpjJcy6PSpSDasLI4SayDByyq9LIhVUZbR67CQ7/vm /hHDJU4RXkTNWdUk1Ol2OGx3IfrIJKywOmJyM1qr8uRnWBrbSAGD0VsY0HzEkBzUTjuObUvkgtQ5 3pMmTXeVbblO3cSIiVA6EIOyzl67b30anJ1fltctJODXbtOodkPED+RkHjVGH9gpfPe2lDQBFQc5 pWKjU8U1TnR+f0U9cu064nZcMieLAqdkk6hppCDsqsBwLjHur1XxB26GtR7aQdGQ3RxVouttwXp1 RdEU8VHZI5KGZSviaHwJ2eESrUp0Iw/gSJ3HqMuR600P9eQ3vodupN36MrkzGQZS068e3EYTgNAB jZkD8TzPF4eG61o+cxFZrUIXowfXJosMX5ZQSlYSVlCDu2na8Lc2iK0mXNgodhRh0E6+UMVFei1G 2PrSIU9EwioS70yFBF2moUWeHNDS4qZDIDBdjx85xQq9VD42UbTRudBo31/E3ahF5MMcDI7KdpjQ KULbtCr8aoTjHIUEuG3LCVsCW2UOyugPPaOGK1ZclZhyJ1oAKHx1qHjvOGXm6QB+mk6ZTzCPKsFf twxbkg5OTEJBSZDxFdMdjhWKQRs1y634ncQ5WKeQ/7rEsJxU50tHcvbkO2/k3PClL+ADRrPkiQom eMjKHBjP6ZaffNwqYvUmL8nkwDR3V5eCWS3kuF8Eiy5vj0UGBndj/UwlV/6+vV94bLBiueHg91Bu vRZIPRdQl0I4rlRXPFv7CSYqmR2tS5YJVR60EgsQK4e4QdU0u3iBotFRctWNM2uhdjS2uzKcacI7 P7qjc8/EwgU8p/GRq2js9yN/qOHGqE5JAJM/lajD24VGIrQmPeYn4G4ieUhaM+ZHOJ4Od3JKamn9 /TD1X5yuUvaV4bwXiAmP35nCbbvfbrsIY86Dt5ybhCB2OzCv8H1dg/u+LGrQdWzpT1PL3S19dl7e TocCLA1rf4z2Env1H/aAwarQpYDOYx/6JtUOY6chk/Ym1VOWJ2Egq1PYUKq7p+Aut70NqBHSYY2j WnNlOQUSpl/WbCVnblTlIEy6WbHtJTWsABJGLVa9GkLvBMbxrrIm5OCohHtOR2YQX2ieYvMB8Pl7 zcMiwDZ5DSJtWGRabluw1cZvDvo1nQSJJA== X-Report-Abuse-To: spam@semaster01.route25.eu Received-SPF: pass client-ip=2a00:f10:400:4:1c00:18ff:fe00:1617; envelope-from=rladams@adamsinfoserv.com; helo=se18.route25.eu X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) On Thu, Nov 26, 2020 at 06:34:31PM +0200, Eli Zaretskii wrote: > > Date: Thu, 26 Nov 2020 16:42:19 +0100 > > From: Russell Adams > > > > So my emacs grew to 8GB in RAM, and what was curious is if it was a > > background task (not window focused on an emacsclient), then the > > memory stayed the same. When I had the window focused, I could watch > > the memory constantly increasing in htop a few megs at a time. > > Was the memory increasing even when you did nothing in the session? > If so, do you have some background functions running, e.g. timers? If > Emacs was not idle, can you describe what you were doing at that time? At one point I was watching htop and every time I switched to the Emacs window and returned to htop, I'd see it grow by several more MB over 3-5 seconds and then stop. So I left Emacs as the focused window overnight, and it grew from 4GB to 8GB. In this instance, I had my cursor at the bottom of a saved Org file. I wasn't even actively typing or interacting with Emacs. I just grew each time it got window focus. Yes I have a few timers, but those trip at midnight. I call org-agenda and org-caldev-sync. I don't have any other timers that I know of. Mind you I'm running daemon mode and I'm looking at an emacsclient frame. Thanks. ------------------------------------------------------------------ Russell Adams RLAdams@AdamsInfoServ.com PGP Key ID: 0x1160DCB3 http://www.adamsinfoserv.com/ Fingerprint: 1723 D8CA 4280 1EC9 557F 66E8 1154 E018 1160 DCB3 From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 26 14:21:06 2020 Received: (at submit) by debbugs.gnu.org; 26 Nov 2020 19:21:06 +0000 Received: from localhost ([127.0.0.1]:42916 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiMpF-0003bn-Sb for submit@debbugs.gnu.org; Thu, 26 Nov 2020 14:21:06 -0500 Received: from lists.gnu.org ([209.51.188.17]:58310) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiMpE-0003bg-Eu for submit@debbugs.gnu.org; Thu, 26 Nov 2020 14:21:04 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:34504) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kiMpD-0001zo-HJ for bug-gnu-emacs@gnu.org; Thu, 26 Nov 2020 14:21:03 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:49204) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kiMpC-00030t-KH; Thu, 26 Nov 2020 14:21:02 -0500 Received: from [176.228.60.248] (port=2671 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kiMp9-00036t-Qk; Thu, 26 Nov 2020 14:21:00 -0500 Date: Thu, 26 Nov 2020 21:20:42 +0200 Message-Id: <831rgfrkl1.fsf@gnu.org> From: Eli Zaretskii To: Russell Adams In-Reply-To: <20201126165436.GB16802@maokai> (message from Russell Adams on Thu, 26 Nov 2020 17:54:36 +0100) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <87mu1sry72.fsf@mail.linkov.net> <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> <20201126154219.GA16802@maokai> <837dq8qdpk.fsf@gnu.org> <20201126165436.GB16802@maokai> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: submit Cc: bug-gnu-emacs@gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Thu, 26 Nov 2020 17:54:36 +0100 > From: Russell Adams > > At one point I was watching htop and every time I switched to the > Emacs window and returned to htop, I'd see it grow by several more MB > over 3-5 seconds and then stop. So I left Emacs as the focused window > overnight, and it grew from 4GB to 8GB. > > In this instance, I had my cursor at the bottom of a saved Org file. I > wasn't even actively typing or interacting with Emacs. I just grew > each time it got window focus. OK, so an idling Emacs with one focused frame gains about 0.5GB every hour, would that be more or less accurate? > Yes I have a few timers, but those trip at midnight. I call org-agenda > and org-caldev-sync. I don't have any other timers that I know of. Just so we have the hard evidence: could you please show the values of timer-list and timer-idle-list on that system? Thanks. From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 26 15:21:13 2020 Received: (at 43389) by debbugs.gnu.org; 26 Nov 2020 20:21:13 +0000 Received: from localhost ([127.0.0.1]:42999 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiNlR-00056i-Bl for submit@debbugs.gnu.org; Thu, 26 Nov 2020 15:21:13 -0500 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:56967) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiNlN-00056W-Ix for 43389@debbugs.gnu.org; Thu, 26 Nov 2020 15:21:12 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1606422069; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=vb+k8+9/Nia5HQdcT+5z3+EG6P0Adem4Ehsh4DRcUaQ=; b=L4x1B3VIRnbje7VGi4nc5LQDffrigOezhHeCqtznmLFxMLcXW8cBqjX1X5RnO6Kh0dOtyX GATFitAjIv/EhzbvE7Upda4DnE1NctLDNfttgp9zdp2BHpkc7a5I0lbGk6zFg9j0+8720J mdoHNy2584iHkLAEsxaXNxx4hAEojbg= Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-197-UUm1zYXTPhyjb8Pdy1-rwg-1; Thu, 26 Nov 2020 15:21:07 -0500 X-MC-Unique: UUm1zYXTPhyjb8Pdy1-rwg-1 Received: by mail-qk1-f200.google.com with SMTP id o190so2120129qkf.15 for <43389@debbugs.gnu.org>; Thu, 26 Nov 2020 12:21:07 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=vb+k8+9/Nia5HQdcT+5z3+EG6P0Adem4Ehsh4DRcUaQ=; b=UHs2GbyjFM1V04VFEkK3ZTTy0NVLvRXCRLBHlrrNfjxU5uhZjFkBxwGj3MN6BFtxc4 P5kUPjFchAPtlRZN6PRDVxJZ1kPDX2gH15pNY1tGv7bh1/oiEYAnWRA6h9lL0jUAl2tR Md8PX7mmQHVjIpT0hNRx855ze5jlYhFImzrekCWijHDOoOiCtVUTaWVl0O3JRqQ2ykgX xQFgwwWmnxSbGYtJJjH5ul6kDZHeLVFI1WBj5D3VCfHSV5SGzed1gvoblnp4/86U9clc gzYWCMYn6JNLZgCU5+Qly7jlQ2HbmUvPmWX871AG6Zb12auI9XlQJWJTsPmboWsZ6wq8 rO0w== X-Gm-Message-State: AOAM530Z1iHKfc31oWK4KEr2mynjBw2ngi2bEdkpO/gJeEBBEBtprvaO Fu+B1biUeLhj3O4Q5xb/19RrogwLUtpg65pOFTUAWADQsN3gb98olAumQhMuS7VMP+bgS46NuJF rxEOr7HlE47DsMZs= X-Received: by 2002:ad4:524d:: with SMTP id s13mr4859426qvq.19.1606422066776; Thu, 26 Nov 2020 12:21:06 -0800 (PST) X-Google-Smtp-Source: ABdhPJxIMqPoMcYtQQE5sha8wZamcCXBBmi+iN1Q7X332DEDuzmph7/QZFkMizwNqQNnIAnlCN1rLA== X-Received: by 2002:ad4:524d:: with SMTP id s13mr4859413qvq.19.1606422066574; Thu, 26 Nov 2020 12:21:06 -0800 (PST) Received: from [192.168.1.16] (198-84-214-74.cpe.teksavvy.com. [198.84.214.74]) by smtp.gmail.com with ESMTPSA id h26sm3619746qkh.127.2020.11.26.12.21.05 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 26 Nov 2020 12:21:05 -0800 (PST) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time To: Eli Zaretskii References: <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> <87o8jltglg.fsf@mail.trevorbentley.com> <43b8f55b-d201-76e0-2d19-d97dec8798aa@redhat.com> <87im9ttfeg.fsf@mail.trevorbentley.com> <399d4681-940a-c782-b91e-750e62840cb6@redhat.com> <83pn40qkyb.fsf@gnu.org> From: Carlos O'Donell Organization: Red Hat Message-ID: <418751f6-41be-a5e2-908a-ea4196d5fb9b@redhat.com> Date: Thu, 26 Nov 2020 15:21:04 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0 MIME-Version: 1.0 In-Reply-To: <83pn40qkyb.fsf@gnu.org> Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=carlos@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 11/26/20 8:58 AM, Eli Zaretskii wrote: > Apart of that, I think we really need to see the most significant > customers of these functions when the memory footprint starts growing > fast. It's in the mastiff captured data. Of the 1.7GiB it's all in Fcons: 448.2 MiB: Fmake_list 270.3 MiB: in 262 places all over the place (below massif's threshold) 704.0 MiB: list4 -> exec_byte_code 109.7 MiB: F*_json_read_string_0 -> funcall_subr ... 102.2 MiB: Flist -> exec_byte_code ... 68.5 MiB: Fcopy_alist -> Fframe_parameters ... -- Cheers, Carlos. From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 26 15:30:43 2020 Received: (at 43389) by debbugs.gnu.org; 26 Nov 2020 20:30:43 +0000 Received: from localhost ([127.0.0.1]:43017 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiNud-0005MH-Fh for submit@debbugs.gnu.org; Thu, 26 Nov 2020 15:30:43 -0500 Received: from eggs.gnu.org ([209.51.188.92]:58186) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiNub-0005M4-JQ for 43389@debbugs.gnu.org; Thu, 26 Nov 2020 15:30:42 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:50264) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kiNuW-0002Tr-3f; Thu, 26 Nov 2020 15:30:36 -0500 Received: from [176.228.60.248] (port=2986 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kiNuT-0003hh-Re; Thu, 26 Nov 2020 15:30:35 -0500 Date: Thu, 26 Nov 2020 22:30:14 +0200 Message-Id: <83y2inq2sp.fsf@gnu.org> From: Eli Zaretskii To: Carlos O'Donell In-Reply-To: <418751f6-41be-a5e2-908a-ea4196d5fb9b@redhat.com> (message from Carlos O'Donell on Thu, 26 Nov 2020 15:21:04 -0500) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> <87o8jltglg.fsf@mail.trevorbentley.com> <43b8f55b-d201-76e0-2d19-d97dec8798aa@redhat.com> <87im9ttfeg.fsf@mail.trevorbentley.com> <399d4681-940a-c782-b91e-750e62840cb6@redhat.com> <83pn40qkyb.fsf@gnu.org> <418751f6-41be-a5e2-908a-ea4196d5fb9b@redhat.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Cc: trevor@trevorbentley.com, bugs@gnu.support, fweimer@redhat.com, > 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de > From: Carlos O'Donell > Date: Thu, 26 Nov 2020 15:21:04 -0500 > > On 11/26/20 8:58 AM, Eli Zaretskii wrote: > > Apart of that, I think we really need to see the most significant > > customers of these functions when the memory footprint starts growing > > fast. > > It's in the mastiff captured data. > > Of the 1.7GiB it's all in Fcons: > > 448.2 MiB: Fmake_list > 270.3 MiB: in 262 places all over the place (below massif's threshold) > 704.0 MiB: list4 -> exec_byte_code > 109.7 MiB: F*_json_read_string_0 -> funcall_subr ... > 102.2 MiB: Flist -> exec_byte_code ... > 68.5 MiB: Fcopy_alist -> Fframe_parameters ... Thanks. Those are the low-level primitives, they tell nothing about the Lisp code which caused this much memory allocation. We need higher levels of callstack, and preferably in Lisp terms. GDB backtraces would show them, due to tailoring in src/.gdbinit. From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 26 20:01:25 2020 Received: (at 43389) by debbugs.gnu.org; 27 Nov 2020 01:01:25 +0000 Received: from localhost ([127.0.0.1]:43274 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiS8a-0005d4-PG for submit@debbugs.gnu.org; Thu, 26 Nov 2020 20:01:25 -0500 Received: from static.rcdrun.com ([95.85.24.50]:43215) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiS8Y-0005cq-TL for 43389@debbugs.gnu.org; Thu, 26 Nov 2020 20:01:23 -0500 Received: from localhost ([::ffff:41.202.241.56]) (AUTH: PLAIN admin, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by static.rcdrun.com with ESMTPSA id 00000000002C0007.000000005FC04FDC.00001E5E; Fri, 27 Nov 2020 01:01:16 +0000 Date: Thu, 26 Nov 2020 21:25:35 +0300 From: Jean Louis To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time Message-ID: References: <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> <87a6v4thst.fsf@mail.trevorbentley.com> <83eekgqjgp.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: <83eekgqjgp.fsf@gnu.org> User-Agent: Mutt/2.0 (3d08634) (2020-11-07) X-Spam-Score: 1.1 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: My mtrace files do not have the PID from Emacs. It got lost maybe because I killed Emacs. There are many other PID files. Or maybe initial PID file was based by the script that run it. Should I provide mtrace files which do not have emacs PID? Content analysis details: (1.1 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_HELO_PASS SPF: HELO matches SPF record 1.1 DATE_IN_PAST_06_12 Date: is 6 to 12 hours before Received: date -0.0 SPF_PASS SPF: sender matches SPF record X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, carlos@redhat.com, Trevor Bentley , michael_heerdegen@web.de X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.1 (/) My mtrace files do not have the PID from Emacs. It got lost maybe because I killed Emacs. There are many other PID files. Or maybe initial PID file was based by the script that run it. Should I provide mtrace files which do not have emacs PID? From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 26 20:01:31 2020 Received: (at 43389) by debbugs.gnu.org; 27 Nov 2020 01:01:31 +0000 Received: from localhost ([127.0.0.1]:43279 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiS8g-0005dT-IT for submit@debbugs.gnu.org; Thu, 26 Nov 2020 20:01:30 -0500 Received: from static.rcdrun.com ([95.85.24.50]:54303) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiS8c-0005cv-FB for 43389@debbugs.gnu.org; Thu, 26 Nov 2020 20:01:26 -0500 Received: from localhost ([::ffff:41.202.241.56]) (AUTH: PLAIN admin, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by static.rcdrun.com with ESMTPSA id 00000000002C0010.000000005FC04FE0.00001E76; Fri, 27 Nov 2020 01:01:19 +0000 Date: Thu, 26 Nov 2020 21:37:56 +0300 From: Jean Louis To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time Message-ID: References: <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> <83blfls494.fsf@gnu.org> <83lfeoqk7t.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: <83lfeoqk7t.fsf@gnu.org> User-Agent: Mutt/2.0 (3d08634) (2020-11-07) X-Spam-Score: 1.1 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: * Eli Zaretskii [2020-11-26 17:14]: > > Date: Thu, 26 Nov 2020 12:09:32 +0300 > > From: Jean Louis > > Cc: Carlos O'Donell , trevor@trevorbentley.c [...] Content analysis details: (1.1 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_HELO_PASS SPF: HELO matches SPF record 1.1 DATE_IN_PAST_06_12 Date: is 6 to 12 hours before Received: date -0.0 SPF_PASS SPF: sender matches SPF record X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, carlos@redhat.com, trevor@trevorbentley.com, michael_heerdegen@web.de X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.1 (/) * Eli Zaretskii [2020-11-26 17:14]: > > Date: Thu, 26 Nov 2020 12:09:32 +0300 > > From: Jean Louis > > Cc: Carlos O'Donell , trevor@trevorbentley.com, > > fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, > > michael_heerdegen@web.de > > > > ((uptime "2 days, 18 hours, 35 minutes, 19 seconds") (pid 13339) (garbage ((conses 16 4511014 617524) (symbols 48 86926 23) (strings 32 576134 114546) (string-bytes 1 25198549) (vectors 16 245670) (vector-slots 8 4636183 1560354) (floats 8 1859 18842) (intervals 56 655325 24178) (buffers 992 900))) (buffers-size 200898858) (vsize (vsize 5144252))) > > > > But what happened after 36 minutes of waiting is that Emacs became > > responsive. So I am still running this session and I hope to get > > mtrace after the session has finished. > > > > Before I was not patient longer than maybe 3-5 minutes and I have > > aborted Emacs. But now I can see it stabilized after hard work with > > memory or whatever it was doing. Swap is 1809 MB and vsize just same > > as above. > > It's still 5GB, which is a fairly large footprint, certainly for a > 2-day session. And this time I could observe it was quick to reach, like from some 200 MB swap reported it grew to few gigabytes in few minutes. > > Observation on "what I was doing when vsize started growing" is > > simple, I was just editing email, nothing drastic. I did not do > > anything special. > > Can you describe in more detail how you edit email? Which email > package(s) do you do, and what would composing email generally > involve? I was using XTerm invoked from outside with mutt. Mutt invokes emacsclient and it uses normally same frame, but sometimes other frame. Default setting is to use new frame, but I sometimes change to invoke it without creating new frame. There are 2 modules vterm that I load and emacs-libpq for database. > Also, are there any background activities that routinely run in your > Emacs sessions? Jabber doing XMPP without problem before, persistent scratch, symon-mode, helm, sql-postgres mode, there is eshell always invoked and shell. Timers now: 5.0s - undo-auto--boundary-timer 10.1s 30.0s jabber-whitespace-ping-do 18.8s 1m 0.0s display-time-event-handler 4m 49.4s 5m 0.0s persistent-scratch-save 31m 10.9s 1h 0m 0.0s url-cookie-write-file * 0.1s t show-paren-function * 0.5s :repeat blink-cursor-start * 0.5s t #f(compiled-function () # [jit-lock--antiblink-grace-timer jit-lock-context-fontify]) * 1.0s - helm-ff--cache-mode-refresh * 2.0s t jabber-activity-clean > > If you say I should finish session now and send the mtrace, I can do > > it. > > That's for Carlos to say. > > Thanks for the info. That session after some time invoked much harder hard disk swapping and I have killed Emacs. But I could not find mtrace with corresponding PID for that Emacs session For this session I can see the corresponding PID on the disk. I am now at 8 hours session. Once finishes I hope that mtrace file will not be deleted even if I kill Emacs. ((uptime "8 hours, 8 minutes, 11 seconds") (pid 7385) (garbage ((conses 16 1032190 170175) (symbols 48 49048 11) (strings 32 252789 45307) (string-bytes 1 8153413) (vectors 16 84232) (vector-slots 8 1713735 81778) (floats 8 690 1822) (intervals 56 68015 4240) (buffers 984 105))) (buffers-size 3632683) (vsize (vsize 1217088))) From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 26 23:54:30 2020 Received: (at 43389) by debbugs.gnu.org; 27 Nov 2020 04:54:30 +0000 Received: from localhost ([127.0.0.1]:43460 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiVmA-0002pj-0u for submit@debbugs.gnu.org; Thu, 26 Nov 2020 23:54:30 -0500 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:30993) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiVm6-0002pZ-60 for 43389@debbugs.gnu.org; Thu, 26 Nov 2020 23:54:28 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1606452866; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=3ik/T3V3VjYkPiMim+DrOvi39YsNvFDKcTf4oz0icg8=; b=fWVOqTCI5vmvRdzIP7RkSAjbV6ecOA86lXm/gZ8cPunXprZCEeRgch3n0oc9GOduTFINB8 h20qFLvN1xExIYkbt2zUrONY4cFeV/t76MODaLs9rfcNgs2xBkuSTO/kp1zhSmGNvoM7lN eMiUmfcw/svFhDuO0JiQakzJZwzD438= Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-20-UarM3hKhN_iPW2Ito6yXCA-1; Thu, 26 Nov 2020 23:54:24 -0500 X-MC-Unique: UarM3hKhN_iPW2Ito6yXCA-1 Received: by mail-qt1-f197.google.com with SMTP id f19so2476793qtx.6 for <43389@debbugs.gnu.org>; Thu, 26 Nov 2020 20:54:24 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=3ik/T3V3VjYkPiMim+DrOvi39YsNvFDKcTf4oz0icg8=; b=K1MniYl1W9vN8HcS4ewlHqH7aRb1gQjfT1+hjwfB2TGb2a+dw/UoHtpaVAqAbDLdp1 oi1y78VHoYYZqRauLbgwPyEug4vZjNGz7kDO0AVWd4JocWb1TZPzsiD0JfrEI2/HmNWo R2AXH7yQDaRaMqBKqtFWPXFkJiizNKRXD4hGmKmWITpuY8mK0V8yd59mqnQVhUqqYmId JdjWp5COKBp9QFnJoGtFW88qqryqshERGJdCazCUKlss9Xpz5PkOSfe6MU8qzwbwppbT 4jl8pOKz/Sm0A0p2gjycmG6JBsup79FXvQZK33TYPpNP7rDsYZuPfTKpTxtGhclEoCwr 5Gtg== X-Gm-Message-State: AOAM532dMz9iSRvK/evSUCZlcX1HIFigB2ehuriZQLGks9pJrBH9llWA NT1PpcfdggME05l+1cI5YtOXYhZTcXC2QuOEcIqkYXd+oBeTAE1wE1BxToZhmvYqjUC8Z8UoQCg uxhaQ5qvGe5aWUKk= X-Received: by 2002:aed:2823:: with SMTP id r32mr6479297qtd.199.1606452863889; Thu, 26 Nov 2020 20:54:23 -0800 (PST) X-Google-Smtp-Source: ABdhPJzwmRtbH7wmj25FxuOWXrvs/ZL6Uz7DvkQhogsXu8KCg1jkZ+cfINhW0TVl82lEZWyuVxVwTA== X-Received: by 2002:aed:2823:: with SMTP id r32mr6479281qtd.199.1606452863712; Thu, 26 Nov 2020 20:54:23 -0800 (PST) Received: from [192.168.1.16] (198-84-214-74.cpe.teksavvy.com. [198.84.214.74]) by smtp.gmail.com with ESMTPSA id c128sm4626977qkg.66.2020.11.26.20.54.21 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 26 Nov 2020 20:54:22 -0800 (PST) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time To: Trevor Bentley , Eli Zaretskii References: <86y2j2brg2.fsf@protected.rcdrun.com> <83blfxth7c.fsf@gnu.org> <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> <87a6v4thst.fsf@mail.trevorbentley.com> <83eekgqjgp.fsf@gnu.org> <877dq8taau.fsf@mail.trevorbentley.com> From: Carlos O'Donell Organization: Red Hat Message-ID: <6fe9ab5a-3995-acb2-eaea-9c269f86a604@redhat.com> Date: Thu, 26 Nov 2020 23:54:21 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0 MIME-Version: 1.0 In-Reply-To: <877dq8taau.fsf@mail.trevorbentley.com> Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=carlos@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, michael_heerdegen@web.de, dj@redhat.com, bugs@gnu.support X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 11/26/20 10:19 AM, Trevor Bentley wrote: >>> If it's one trace per thread, though, then we at least know that >>> my emacs process in question is blazing through threads. >> >> I don't see how this could be true, unless some library you use >> (ImageMagick?) starts a lot of threads. Emacs itself is >> single-threaded, and the only other threads are those from GTK, >> which should be very few (like, 4 or 5). This assumes you didn't >> use Lisp threads, of course. > > Oh, it may be subprocesses instead of threads. emacs-slack is doing > all sorts of things, involving both ImageMagick and launching curl > subprocesses. Is there a way to prevent libmtrace from following > children? Each process generates a trace, and that trace contains the data for all threads in the process. I've just pushed MTRACE_CTL_CHILDREN, set that to 0 and the children will not trace. Thanks for the feedback and enhancement. commit 8a88a4840b5a573c50264f04f68f71d0496913d3 Author: Carlos O'Donell Date: Thu Nov 26 23:50:57 2020 -0500 mtrace: Add support for MTRACE_CTL_CHILDREN. Allow the tracer to only trace the parent process and disable tracing in all child processes unless those processes choose to programmatically re-eanble tracing via the exposed API. -- Cheers, Carlos. From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 26 23:55:52 2020 Received: (at 43389) by debbugs.gnu.org; 27 Nov 2020 04:55:52 +0000 Received: from localhost ([127.0.0.1]:43464 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiVnU-0002sH-Dz for submit@debbugs.gnu.org; Thu, 26 Nov 2020 23:55:52 -0500 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:48804) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiVnR-0002s8-Tl for 43389@debbugs.gnu.org; Thu, 26 Nov 2020 23:55:50 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1606452949; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=XjJW84BjOOOR4xTq8CZt1h/RdXbqCsqzY9QrC5WnxT4=; b=BmCS2p7A0JbTAmxPTlwrVW4l8UBWlpyWnpPBuj2BLRcWkZOCbEL1rZpp8qt+Uza/42jqLr oOq7reM/3+IqvtVAw4195/X1PWhd5AkKCUjBzthA67E2jW+2gjZEgjNnwPRGsCGpbx4lDD wPJKtgcTyukcNUnTAONzoeZ/ypmQjXY= Received: from mail-qk1-f199.google.com (mail-qk1-f199.google.com [209.85.222.199]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-376-WMeaRF-KM3S2dQiz8Q5NIw-1; Thu, 26 Nov 2020 23:55:47 -0500 X-MC-Unique: WMeaRF-KM3S2dQiz8Q5NIw-1 Received: by mail-qk1-f199.google.com with SMTP id q21so2811823qkq.11 for <43389@debbugs.gnu.org>; Thu, 26 Nov 2020 20:55:47 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=XjJW84BjOOOR4xTq8CZt1h/RdXbqCsqzY9QrC5WnxT4=; b=Nomin02kuJpbSol7J3eN7nSieMtkR35hDQ8uQaOzl6UxL4HFuj5DZhibhU7CKjUdxO 9MFTP18ROQ+OPbuCzcNuJojmk//kg2Ih+xfDMfRAh0DTPe/LRXsvecYdEdStnlzfvFsT rHz/VRcgQiTtok4c/kBmlXj0Wsshf01E0NDC4rLX4DmqK7cG9/yc2klNhrw5KQjpmarF ARrthWQKOFYMhtfjmB4VYvpoia8/4gK9baI9KJOYgAy3rBq7lx46294Zm+UBtunJbR8+ 3wJFHZqQ8BPdm2vc7z6llegH+a5C5H5Ino52qGSf/5thYiewuSUJQRxIvEjLjHp5N9Uo nqlw== X-Gm-Message-State: AOAM533XP023ZA8YudHhyJb1DOJLr3HEK0EogH5C9IOillyp6GxSNpy3 ND7xez5T72iedAAx0jeoJh2MEjVxlbpc1Z485pUaQ4iotffNaVLGeepCChJWLk+H/DME3r308KK 1cB4AJ7YOUSYF5lU= X-Received: by 2002:ad4:4908:: with SMTP id bh8mr6462101qvb.58.1606452947132; Thu, 26 Nov 2020 20:55:47 -0800 (PST) X-Google-Smtp-Source: ABdhPJyTLoDWIbTUCRsfa6HruDgssRt+Xygil+rGE0pfFp2oVS6/hKjZ7Ekttal86acz/J/gaQ09dg== X-Received: by 2002:ad4:4908:: with SMTP id bh8mr6462092qvb.58.1606452947000; Thu, 26 Nov 2020 20:55:47 -0800 (PST) Received: from [192.168.1.16] (198-84-214-74.cpe.teksavvy.com. [198.84.214.74]) by smtp.gmail.com with ESMTPSA id 97sm4927860qte.34.2020.11.26.20.55.45 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 26 Nov 2020 20:55:46 -0800 (PST) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time To: Jean Louis , Eli Zaretskii References: <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> <87a6v4thst.fsf@mail.trevorbentley.com> <83eekgqjgp.fsf@gnu.org> From: Carlos O'Donell Organization: Red Hat Message-ID: Date: Thu, 26 Nov 2020 23:55:45 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0 MIME-Version: 1.0 In-Reply-To: Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=carlos@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, Trevor Bentley , dj@redhat.com, michael_heerdegen@web.de X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 11/26/20 1:25 PM, Jean Louis wrote: > My mtrace files do not have the PID from Emacs. It got lost maybe > because I killed Emacs. There are many other PID files. Or maybe > initial PID file was based by the script that run it. > > Should I provide mtrace files which do not have emacs PID? Each PID is from a spawned subprocess. I've just pushed new code to the tracer to allow you to do: MTRACE_CTL_CHILDREN=0 to avoid tracing the spawned child processes. We would only want the mtrace file for the emacs PID (all contained threads store to that file). -- Cheers, Carlos. From debbugs-submit-bounces@debbugs.gnu.org Fri Nov 27 00:05:03 2020 Received: (at 43389) by debbugs.gnu.org; 27 Nov 2020 05:05:03 +0000 Received: from localhost ([127.0.0.1]:43468 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiVwN-00037m-Em for submit@debbugs.gnu.org; Fri, 27 Nov 2020 00:05:03 -0500 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:42978) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiVwL-00037U-K2 for 43389@debbugs.gnu.org; Fri, 27 Nov 2020 00:05:02 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1606453501; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=gBJjMMu9yJ0IC2VGHxopM/G1pYKJp9Nvy+4VoWort5o=; b=ELneldNMuGh6WO8vXeJob1UssX2NjdhdyvVR3sm4Qhpj2ez6K8pH8CiDpcF5U66EceNyuJ TIW77NQWDQL5RD/mYD/1InZJ1X6nKTqYAH+Oa61AWz9/aqezOOlHMtlQFO7ZLBe4csuBSW pt2XVyXO7ibp3C7p8Y7Nvki39hsTh9I= Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-424-CZEnYcX4NZa9SgykXRWL7w-1; Fri, 27 Nov 2020 00:04:59 -0500 X-MC-Unique: CZEnYcX4NZa9SgykXRWL7w-1 Received: by mail-qk1-f197.google.com with SMTP id 141so2829058qkh.18 for <43389@debbugs.gnu.org>; Thu, 26 Nov 2020 21:04:59 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=gBJjMMu9yJ0IC2VGHxopM/G1pYKJp9Nvy+4VoWort5o=; b=c/eEdhTaUx6PZ4cRjdaof47w2Ynu79w3C8CGgSeZ0gqxywap48d/xTHkPptmWcFPru 03Uf6slJNjpvyxNpgYHZI57FB/gMDl4k6EDDkvSUw05O5QLlcEFb7wtJdzgd0/bheh/h dhF8w7oOoSI6diS3MxJZMfEUyhKbpEIImgLbC6SY1EPX9iz3yOs1C9Bzvn7OHZ+SEtXX UEjGPRF9tA5TXI6dv/LLYWqWebLwJnJIAPMnkSIVzxGb4yJcBz8beNrjnVRQwmKvuS2g QyIps+5FZPZTgXpHAwS/onv4d+H1pv/iDb89VLhdoV2rkEDFxnkSpPoUB++D/MP1czYm Pj+g== X-Gm-Message-State: AOAM533Jh3PVFyelFc/WnbmISfPME/iY24tvYVGQe/RMAnu+1OLBHarP Qqe8+iUYOMa8GHN6jlX5qN+KtYZedUuSeMZ6WigbpFfYnMB/qA4SMVQmGQBcT5ZimLU5ZtwCuvm sNJmGkhCWhxpGDgI= X-Received: by 2002:a37:9b01:: with SMTP id d1mr6349181qke.89.1606453498819; Thu, 26 Nov 2020 21:04:58 -0800 (PST) X-Google-Smtp-Source: ABdhPJwNjJO7Uy3jJ96sooITKh+e+es9hAw2wIWBWleCPXr8Sk2Zw6WgcBUvaZV3cEActIxyQ7j5EQ== X-Received: by 2002:a37:9b01:: with SMTP id d1mr6349160qke.89.1606453498569; Thu, 26 Nov 2020 21:04:58 -0800 (PST) Received: from [192.168.1.16] (198-84-214-74.cpe.teksavvy.com. [198.84.214.74]) by smtp.gmail.com with ESMTPSA id f189sm4794537qkb.84.2020.11.26.21.04.56 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 26 Nov 2020 21:04:57 -0800 (PST) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time To: Eli Zaretskii References: <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> <87o8jltglg.fsf@mail.trevorbentley.com> <43b8f55b-d201-76e0-2d19-d97dec8798aa@redhat.com> <87im9ttfeg.fsf@mail.trevorbentley.com> <399d4681-940a-c782-b91e-750e62840cb6@redhat.com> <83pn40qkyb.fsf@gnu.org> <418751f6-41be-a5e2-908a-ea4196d5fb9b@redhat.com> <83y2inq2sp.fsf@gnu.org> From: Carlos O'Donell Organization: Red Hat Message-ID: <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> Date: Fri, 27 Nov 2020 00:04:56 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0 MIME-Version: 1.0 In-Reply-To: <83y2inq2sp.fsf@gnu.org> Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=carlos@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 11/26/20 3:30 PM, Eli Zaretskii wrote: >> Cc: trevor@trevorbentley.com, bugs@gnu.support, fweimer@redhat.com, >> 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de >> From: Carlos O'Donell >> Date: Thu, 26 Nov 2020 15:21:04 -0500 >> >> On 11/26/20 8:58 AM, Eli Zaretskii wrote: >>> Apart of that, I think we really need to see the most significant >>> customers of these functions when the memory footprint starts growing >>> fast. >> >> It's in the mastiff captured data. >> >> Of the 1.7GiB it's all in Fcons: >> >> 448.2 MiB: Fmake_list >> 270.3 MiB: in 262 places all over the place (below massif's threshold) >> 704.0 MiB: list4 -> exec_byte_code >> 109.7 MiB: F*_json_read_string_0 -> funcall_subr ... >> 102.2 MiB: Flist -> exec_byte_code ... >> 68.5 MiB: Fcopy_alist -> Fframe_parameters ... > > Thanks. Those are the low-level primitives, they tell nothing about > the Lisp code which caused this much memory allocation. We need > higher levels of callstack, and preferably in Lisp terms. GDB > backtraces would show them, due to tailoring in src/.gdbinit. Sure, let me pick one for you: lisp_align_malloc (alloc.c:1195) Fcons (alloc.c:2694) concat (fns.c:730) Fcopy_sequence (fns.c:598) timer_check (keyboard.c:4395) wait_reading_process_output (process.c:5334) sit_for (dispnew.c:6056) read_char (keyboard.c:2742) read_key_sequence (keyboard.c:9551) command_loop_1 (keyboard.c:1354) internal_condition_case (eval.c:1365) command_loop_2 (keyboard.c:1095) internal_catch (eval.c:1126) command_loop (keyboard.c:1074) recursive_edit_1 (keyboard.c:718) Frecursive_edit (keyboard.c:790) main (emacs.c:2080) There is a 171MiB's worth of allocations in that path. There are a lot of traces ending in wait_reading_process_output that are consuming 50MiB. -- Cheers, Carlos. From debbugs-submit-bounces@debbugs.gnu.org Fri Nov 27 00:08:29 2020 Received: (at 43389) by debbugs.gnu.org; 27 Nov 2020 05:08:29 +0000 Received: from localhost ([127.0.0.1]:43474 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiVzh-0003Cy-2N for submit@debbugs.gnu.org; Fri, 27 Nov 2020 00:08:29 -0500 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:33282) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiVzf-0003Cp-0o for 43389@debbugs.gnu.org; Fri, 27 Nov 2020 00:08:28 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1606453706; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=DppodePAuHn+8xQIF3oArxc7ocVeAG0F0nz2DuKsVxs=; b=EfSdJOlKrsINDT76RX2m4thKJMt2bP+UMK3odBWsSudS2poj3kJEZy4jB3O/2vMTZSnPom ARlXPDRw/W+WKA9LaBfH9QPtqOnaMTSjjge96y66OLo5rDjUYBxeeax1zmoUVSr8FLpb88 kGIMytamW6t3z4qZKlvAaZIvL60Nvks= Received: from mail-il1-f198.google.com (mail-il1-f198.google.com [209.85.166.198]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-189-S0quTgfSOSOplqO7qxee7Q-1; Fri, 27 Nov 2020 00:08:24 -0500 X-MC-Unique: S0quTgfSOSOplqO7qxee7Q-1 Received: by mail-il1-f198.google.com with SMTP id u17so2874509ilb.4 for <43389@debbugs.gnu.org>; Thu, 26 Nov 2020 21:08:24 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=DppodePAuHn+8xQIF3oArxc7ocVeAG0F0nz2DuKsVxs=; b=jZsflQ1EeSePK/Qjef6j8BlIkZ/loonEVWh0GBmPnpXUdKEUTd5osBlRyP1htRjx2O uor/I2YMWQPuR5x0C8LpHXIAUL4oerEtkjUNZEzRc7+7vVa8wO2L9o4Vr7mOrTi00sv+ mmm/maErZQaYVlLxCJi4QmxmZH9G+eTD5NNlVQ7vF5rzyiS9R1bYjRXpCrBAGKgyjVyv CTZDrR+N4wj3ZAj9/LyQyHqccPj+wN7Kg6CnSnov0k0vI+iFYJTI6HY2A+Ruvul+RoXm hgZxxPXM09scaAwB8k88DmVdGSAl5s+E/W8dpdzfaabTQDtfFDPFQjw++CManfLAjJnv njjA== X-Gm-Message-State: AOAM532iC+NAoxaoCcnqBZ+hfOEKevMrF2NMZqCwew6P0NTvWjc0DOgh qc+th27xwVydPNE5epyn2pOFEL2SS56QFO5ZEU48z8ti0cGDgmapvrsLhlGUeVJcWfnNXVjKBpf dw6tOihyyAg9GawQ= X-Received: by 2002:a02:272e:: with SMTP id g46mr98072jaa.37.1606453703607; Thu, 26 Nov 2020 21:08:23 -0800 (PST) X-Google-Smtp-Source: ABdhPJxq7H5pEatPhKyyROl8L0ePuJRCdCHoaPzA9YwHYGp1o6vWKRi2MyPWhpFI5jlLVaFjduHS/Q== X-Received: by 2002:a02:272e:: with SMTP id g46mr98059jaa.37.1606453703433; Thu, 26 Nov 2020 21:08:23 -0800 (PST) Received: from [192.168.1.16] (198-84-214-74.cpe.teksavvy.com. [198.84.214.74]) by smtp.gmail.com with ESMTPSA id u24sm308666ili.47.2020.11.26.21.08.22 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 26 Nov 2020 21:08:22 -0800 (PST) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time To: Jean Louis , Eli Zaretskii References: <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> <83blfls494.fsf@gnu.org> <83lfeoqk7t.fsf@gnu.org> From: Carlos O'Donell Organization: Red Hat Message-ID: <328ace07-17d8-bac4-e042-789dc50c033c@redhat.com> Date: Fri, 27 Nov 2020 00:08:21 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0 MIME-Version: 1.0 In-Reply-To: Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=carlos@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, trevor@trevorbentley.com, dj@redhat.com, michael_heerdegen@web.de X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 11/26/20 1:37 PM, Jean Louis wrote: > For this session I can see the corresponding PID on the disk. I am now > at 8 hours session. Once finishes I hope that mtrace file will not be > deleted even if I kill Emacs. Nothing should be deleting the on-disk traces. -- Cheers, Carlos. From debbugs-submit-bounces@debbugs.gnu.org Fri Nov 27 02:41:21 2020 Received: (at 43389) by debbugs.gnu.org; 27 Nov 2020 07:41:21 +0000 Received: from localhost ([127.0.0.1]:43693 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiYNc-0000pV-UO for submit@debbugs.gnu.org; Fri, 27 Nov 2020 02:41:21 -0500 Received: from eggs.gnu.org ([209.51.188.92]:44192) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiYNZ-0000pI-Nm for 43389@debbugs.gnu.org; Fri, 27 Nov 2020 02:41:20 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:60756) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kiYNT-0007QS-Lt; Fri, 27 Nov 2020 02:41:11 -0500 Received: from [176.228.60.248] (port=4081 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kiYNT-0003kS-0W; Fri, 27 Nov 2020 02:41:11 -0500 Date: Fri, 27 Nov 2020 09:40:53 +0200 Message-Id: <83mtz3p7qy.fsf@gnu.org> From: Eli Zaretskii To: Carlos O'Donell In-Reply-To: <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> (message from Carlos O'Donell on Fri, 27 Nov 2020 00:04:56 -0500) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> <87o8jltglg.fsf@mail.trevorbentley.com> <43b8f55b-d201-76e0-2d19-d97dec8798aa@redhat.com> <87im9ttfeg.fsf@mail.trevorbentley.com> <399d4681-940a-c782-b91e-750e62840cb6@redhat.com> <83pn40qkyb.fsf@gnu.org> <418751f6-41be-a5e2-908a-ea4196d5fb9b@redhat.com> <83y2inq2sp.fsf@gnu.org> <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Cc: trevor@trevorbentley.com, bugs@gnu.support, fweimer@redhat.com, > 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de > From: Carlos O'Donell > Date: Fri, 27 Nov 2020 00:04:56 -0500 > > >> 448.2 MiB: Fmake_list > >> 270.3 MiB: in 262 places all over the place (below massif's threshold) > >> 704.0 MiB: list4 -> exec_byte_code > >> 109.7 MiB: F*_json_read_string_0 -> funcall_subr ... > >> 102.2 MiB: Flist -> exec_byte_code ... > >> 68.5 MiB: Fcopy_alist -> Fframe_parameters ... > > > > Thanks. Those are the low-level primitives, they tell nothing about > > the Lisp code which caused this much memory allocation. We need > > higher levels of callstack, and preferably in Lisp terms. GDB > > backtraces would show them, due to tailoring in src/.gdbinit. > > Sure, let me pick one for you: > > lisp_align_malloc (alloc.c:1195) > Fcons (alloc.c:2694) > concat (fns.c:730) > Fcopy_sequence (fns.c:598) > timer_check (keyboard.c:4395) > wait_reading_process_output (process.c:5334) > sit_for (dispnew.c:6056) > read_char (keyboard.c:2742) > read_key_sequence (keyboard.c:9551) > command_loop_1 (keyboard.c:1354) > internal_condition_case (eval.c:1365) > command_loop_2 (keyboard.c:1095) > internal_catch (eval.c:1126) > command_loop (keyboard.c:1074) > recursive_edit_1 (keyboard.c:718) > Frecursive_edit (keyboard.c:790) > main (emacs.c:2080) > > There is a 171MiB's worth of allocations in that path. > > There are a lot of traces ending in wait_reading_process_output that > are consuming 50MiB. Thanks. If they are like the one above, the allocations are due to some timer. Could be jabber, I'll take a look at it. Or maybe helm-ff--cache-mode-refresh, whatever that is; need to look at Helm as well. However, GDB's backtraces are even more informative, as they show Lisp functions invoked in-between (via exec_byte_code, funcall_subr, etc.). These pinpoint the offending Lisp code much more accurately. The downside is that running with GDB stopping Emacs and emitting the backtrace is no fun... From debbugs-submit-bounces@debbugs.gnu.org Fri Nov 27 02:52:28 2020 Received: (at 43389) by debbugs.gnu.org; 27 Nov 2020 07:52:28 +0000 Received: from localhost ([127.0.0.1]:43723 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiYYO-00017x-BL for submit@debbugs.gnu.org; Fri, 27 Nov 2020 02:52:28 -0500 Received: from eggs.gnu.org ([209.51.188.92]:48732) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiYYM-00017l-MU for 43389@debbugs.gnu.org; Fri, 27 Nov 2020 02:52:27 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:60885) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kiYYF-0003Ov-Lh; Fri, 27 Nov 2020 02:52:20 -0500 Received: from [176.228.60.248] (port=4768 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kiYYD-0004qN-J2; Fri, 27 Nov 2020 02:52:18 -0500 Date: Fri, 27 Nov 2020 09:52:00 +0200 Message-Id: <83lfenp78f.fsf@gnu.org> From: Eli Zaretskii To: trevor@trevorbentley.com In-Reply-To: <83mtz3p7qy.fsf@gnu.org> (message from Eli Zaretskii on Fri, 27 Nov 2020 09:40:53 +0200) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> <87o8jltglg.fsf@mail.trevorbentley.com> <43b8f55b-d201-76e0-2d19-d97dec8798aa@redhat.com> <87im9ttfeg.fsf@mail.trevorbentley.com> <399d4681-940a-c782-b91e-750e62840cb6@redhat.com> <83pn40qkyb.fsf@gnu.org> <418751f6-41be-a5e2-908a-ea4196d5fb9b@redhat.com> <83y2inq2sp.fsf@gnu.org> <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83mtz3p7qy.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, carlos@redhat.com, michael_heerdegen@web.de X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Fri, 27 Nov 2020 09:40:53 +0200 > From: Eli Zaretskii > Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, > michael_heerdegen@web.de, trevor@trevorbentley.com > > > Cc: trevor@trevorbentley.com, bugs@gnu.support, fweimer@redhat.com, > > 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de > > From: Carlos O'Donell > > Date: Fri, 27 Nov 2020 00:04:56 -0500 > > > > >> 448.2 MiB: Fmake_list > > >> 270.3 MiB: in 262 places all over the place (below massif's threshold) > > >> 704.0 MiB: list4 -> exec_byte_code > > >> 109.7 MiB: F*_json_read_string_0 -> funcall_subr ... > > >> 102.2 MiB: Flist -> exec_byte_code ... > > >> 68.5 MiB: Fcopy_alist -> Fframe_parameters ... > > > > > > Thanks. Those are the low-level primitives, they tell nothing about > > > the Lisp code which caused this much memory allocation. We need > > > higher levels of callstack, and preferably in Lisp terms. GDB > > > backtraces would show them, due to tailoring in src/.gdbinit. > > > > Sure, let me pick one for you: > > > > lisp_align_malloc (alloc.c:1195) > > Fcons (alloc.c:2694) > > concat (fns.c:730) > > Fcopy_sequence (fns.c:598) > > timer_check (keyboard.c:4395) > > wait_reading_process_output (process.c:5334) > > sit_for (dispnew.c:6056) > > read_char (keyboard.c:2742) > > read_key_sequence (keyboard.c:9551) > > command_loop_1 (keyboard.c:1354) > > internal_condition_case (eval.c:1365) > > command_loop_2 (keyboard.c:1095) > > internal_catch (eval.c:1126) > > command_loop (keyboard.c:1074) > > recursive_edit_1 (keyboard.c:718) > > Frecursive_edit (keyboard.c:790) > > main (emacs.c:2080) > > > > There is a 171MiB's worth of allocations in that path. > > > > There are a lot of traces ending in wait_reading_process_output that > > are consuming 50MiB. > > Thanks. If they are like the one above, the allocations are due to > some timer. Could be jabber, I'll take a look at it. Or maybe > helm-ff--cache-mode-refresh, whatever that is; need to look at Helm as > well. Oops, I got this mixed up: the timer list is from Jean, but the massif files are from Trevor. Trevor, can you show the list of timers running on your system? From debbugs-submit-bounces@debbugs.gnu.org Fri Nov 27 03:21:12 2020 Received: (at 43389) by debbugs.gnu.org; 27 Nov 2020 08:21:12 +0000 Received: from localhost ([127.0.0.1]:43835 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiZ0C-0001vC-5A for submit@debbugs.gnu.org; Fri, 27 Nov 2020 03:21:12 -0500 Received: from eggs.gnu.org ([209.51.188.92]:56140) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiZ0A-0001ux-BZ for 43389@debbugs.gnu.org; Fri, 27 Nov 2020 03:21:11 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:33100) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kiZ04-0005bj-O7; Fri, 27 Nov 2020 03:21:04 -0500 Received: from [176.228.60.248] (port=2550 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kiZ03-0002lQ-UH; Fri, 27 Nov 2020 03:21:04 -0500 Date: Fri, 27 Nov 2020 10:20:46 +0200 Message-Id: <83h7pbp5wh.fsf@gnu.org> From: Eli Zaretskii To: carlos@redhat.com In-Reply-To: <83lfenp78f.fsf@gnu.org> (message from Eli Zaretskii on Fri, 27 Nov 2020 09:52:00 +0200) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> <87o8jltglg.fsf@mail.trevorbentley.com> <43b8f55b-d201-76e0-2d19-d97dec8798aa@redhat.com> <87im9ttfeg.fsf@mail.trevorbentley.com> <399d4681-940a-c782-b91e-750e62840cb6@redhat.com> <83pn40qkyb.fsf@gnu.org> <418751f6-41be-a5e2-908a-ea4196d5fb9b@redhat.com> <83y2inq2sp.fsf@gnu.org> <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83mtz3p7qy.fsf@gnu.org> <83lfenp78f.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Fri, 27 Nov 2020 09:52:00 +0200 > From: Eli Zaretskii > Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, > carlos@redhat.com, michael_heerdegen@web.de > > > Date: Fri, 27 Nov 2020 09:40:53 +0200 > > From: Eli Zaretskii > > Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, > > michael_heerdegen@web.de, trevor@trevorbentley.com > > > > > lisp_align_malloc (alloc.c:1195) > > > Fcons (alloc.c:2694) > > > concat (fns.c:730) > > > Fcopy_sequence (fns.c:598) > > > timer_check (keyboard.c:4395) > > > wait_reading_process_output (process.c:5334) > > > sit_for (dispnew.c:6056) > > > read_char (keyboard.c:2742) > > > read_key_sequence (keyboard.c:9551) > > > command_loop_1 (keyboard.c:1354) > > > internal_condition_case (eval.c:1365) > > > command_loop_2 (keyboard.c:1095) > > > internal_catch (eval.c:1126) > > > command_loop (keyboard.c:1074) > > > recursive_edit_1 (keyboard.c:718) > > > Frecursive_edit (keyboard.c:790) > > > main (emacs.c:2080) > > > > > > There is a 171MiB's worth of allocations in that path. > > > > > > There are a lot of traces ending in wait_reading_process_output that > > > are consuming 50MiB. > > > > Thanks. If they are like the one above, the allocations are due to > > some timer. Could be jabber, I'll take a look at it. Or maybe > > helm-ff--cache-mode-refresh, whatever that is; need to look at Helm as > > well. > > Oops, I got this mixed up: the timer list is from Jean, but the massif > files are from Trevor. Double oops: the above just shows that each time we process timers, we copy the list of the timers first. Not sure what to do about that. Hmm... Maybe we should try GC at the end of each timer_check call? Is it possible to tell how much time did it take to allocate those 171MB via the above chain of calls? I'm trying to assess the rate of allocations we request this way. Each call to lisp_align_malloc above requests a 1008-byte chunk of memory for a new block of Lisp conses. Would it benefit us to tune this value to a larger or smaller size, as far as glibc's malloc is concerned? From debbugs-submit-bounces@debbugs.gnu.org Fri Nov 27 04:50:23 2020 Received: (at 43389) by debbugs.gnu.org; 27 Nov 2020 09:50:23 +0000 Received: from localhost ([127.0.0.1]:44005 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiaOU-0006JE-Ob for submit@debbugs.gnu.org; Fri, 27 Nov 2020 04:50:22 -0500 Received: from static.rcdrun.com ([95.85.24.50]:49999) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiaOQ-0006Iq-Ko for 43389@debbugs.gnu.org; Fri, 27 Nov 2020 04:50:21 -0500 Received: from localhost ([::ffff:197.157.0.29]) (AUTH: PLAIN admin, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by static.rcdrun.com with ESMTPSA id 00000000002C000B.000000005FC0CBD4.000075A1; Fri, 27 Nov 2020 09:50:11 +0000 Date: Fri, 27 Nov 2020 11:44:33 +0300 From: Jean Louis To: Carlos O'Donell Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time Message-ID: References: <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> <87a6v4thst.fsf@mail.trevorbentley.com> <83eekgqjgp.fsf@gnu.org> <877dq8taau.fsf@mail.trevorbentley.com> <6fe9ab5a-3995-acb2-eaea-9c269f86a604@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: <6fe9ab5a-3995-acb2-eaea-9c269f86a604@redhat.com> User-Agent: Mutt/2.0 (3d08634) (2020-11-07) X-Spam-Score: 1.5 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: * Carlos O'Donell [2020-11-27 07:54]: > Each process generates a trace, and that trace contains the data for > all threads in the process. > > I've just pushed MTRACE_CTL_CHILDREN, [...] Content analysis details: (1.5 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 1.5 RCVD_IN_SORBS_WEB RBL: SORBS: sender is an abusable web server [197.157.0.29 listed in dnsbl.sorbs.net] -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.0 SPF_PASS SPF: sender matches SPF record X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, michael_heerdegen@web.de, Trevor Bentley , Eli Zaretskii X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.5 (/) * Carlos O'Donell [2020-11-27 07:54]: > Each process generates a trace, and that trace contains the data for > all threads in the process. > > I've just pushed MTRACE_CTL_CHILDREN, set that to 0 and the children > will not trace. Thanks for the feedback and enhancement. Thank you, that is nice feature, I will use it for the next session. I have finished one trace and now packing it to see if it can be packed and uploaded. I will upload it and share the hyperlink to Carlos and Eli as private email. Sadly I could not invoke my function M-x good-bye and I also did not see this time problem with swapping. Problem came that I have invoked M-x eww and was browsing and it blocked. I had to interrupt. But nothing worked in the end and user interface became not responsive. I could not type a key, use mouse or do anything. Hard disk was working, not much, and not that the LED was turned on as usual continually. I have been doing usual work, nothing special. Just using eww. Mouse and menu did not work. M-x did not work. Interrupting with ESC man times or C-g did not work. It worked once to get error in process filter but after everything was blocked. My vsize function have been showing me over 4 GB vsize value in minibuffer. Swap size was under 200 MB this time. When the condition occurs that we are trying to capture my swap size was always 2-3 GB minimum, and I have 4 GB RAM. I had to invoke xkill to kill Emacs. Hyperlink with mtrace is coming as soon as it hopefully gets packed better. Thank you, Jean From debbugs-submit-bounces@debbugs.gnu.org Fri Nov 27 05:45:39 2020 Received: (at submit) by debbugs.gnu.org; 27 Nov 2020 10:45:39 +0000 Received: from localhost ([127.0.0.1]:44094 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kibFy-0001Ob-Jt for submit@debbugs.gnu.org; Fri, 27 Nov 2020 05:45:39 -0500 Received: from lists.gnu.org ([209.51.188.17]:47016) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kibFw-0001OS-P8 for submit@debbugs.gnu.org; Fri, 27 Nov 2020 05:45:37 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:33302) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kibFw-00042l-GQ for bug-gnu-emacs@gnu.org; Fri, 27 Nov 2020 05:45:36 -0500 Received: from se18.route25.eu ([2a00:f10:400:4:1c00:18ff:fe00:1617]:44292) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kibFo-0008PH-RM for bug-gnu-emacs@gnu.org; Fri, 27 Nov 2020 05:45:35 -0500 Date: Fri, 27 Nov 2020 11:45:20 +0100 From: Russell Adams To: bug-gnu-emacs@gnu.org Subject: Re: bug#43389: 28.0.50; Emacs memory leaks Message-ID: <20201127104520.GE16802@maokai> Mail-Followup-To: bug-gnu-emacs@gnu.org References: <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> <20201126154219.GA16802@maokai> <837dq8qdpk.fsf@gnu.org> <20201126165436.GB16802@maokai> <831rgfrkl1.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <831rgfrkl1.fsf@gnu.org> X-Originating-IP: 185.87.184.57 X-SpamExperts-Domain: out.pcextreme.nl X-SpamExperts-Username: 185.87.184.57 Authentication-Results: route25.eu; auth=pass smtp.auth=185.87.184.57@out.pcextreme.nl X-SpamExperts-Outgoing-Class: ham X-SpamExperts-Outgoing-Evidence: Combined (0.14) X-Recommended-Action: accept X-Filter-ID: Mvzo4OR0dZXEDF/gcnlw0ecN11dQIc3aKzz9DU5dqGmpSDasLI4SayDByyq9LIhVXL2pm6jngj6P fUXcDYIHsUTNWdUk1Ol2OGx3IfrIJKywOmJyM1qr8uRnWBrbSAGD0VsY0HzEkBzUTjuObUvkgtQ5 3pMmTXeVbblO3cSIiVC6xN67yBfQb4yNgJkfG5otJODXbtOodkPED+RkHjVGH9gpfPe2lDQBFQc5 pWKjU8U1TnR+f0U9cu064nZcMieLAqdkk6hppCDsqsBwLjHur1XxB26GtR7aQdGQ3RxVouttwXp1 RdEU8VHZI5KGZSviaHwJ2eESrUp0Iw/gSJ3HqMuR600P9eQ3vodupN36MrkzGQZS068e3EYTgNAB jZkD8TzPF4eG61o+cxFZrUIXowfXJosMX5ZQSlYSVlCDu2na8Lc2iK0mXNgodhRh0E6+UMVFei1G 2PrSIU9EwioS70yFBF2moUWeHNDS4qZDIDBdjx85xQq9VD42UbTRudBo31/E3ahF5MMcDI7KdpjQ KULbtCr8aoTjHIUEuG3LCVsCW2UOyugPPaOGK1ZclZhyJ1oAKHx1qHjvOGXm6QB+mk6ZTzCPKsFf twxbkg5OTEJBSZDxFdMdjhWKQRs1y634NtkDir044XKUvwzb23wQ7pgpf21taAxkVvyytXnHYuRC sfsWpWpZETi3iGJnui/pB5hQ6nsDvccjqgmDvD9Wh3hTQMCZFfPbwKEtSeDoMAHujwN5vAr2fQEN gxhN/KmvEyoAEK4rsNWk4mvtBc9RUVZYb+q6sUBKbKRJ7t2JzkiGuP0YIX8qMA5MLNz4roJ5XkZx xjtVUSKP0SAjfC/Jzazwe+LlFCfFvyKRS5/5739m4zuNRcgRKiGg7nXFaZTxgU2GYuFGsyYan9g/ rMdRGcvAcA8+rx4YwgeE+t2FESF6coSh1XA3fOLJ37wDhYziv06NVNr5OEQYW/2Y/CoVJPIjQKAZ fI/jcX6o1g9K5ZwJhmYqJ0PIxX89f7dLTMqse5FhVBQaO03dzx9rAMZnZXrgXdZHl2vqCbCSy9Ix 3eltOv8yJ5cKtwxhveW3ZWTI X-Report-Abuse-To: spam@semaster01.route25.eu Received-SPF: pass client-ip=2a00:f10:400:4:1c00:18ff:fe00:1617; envelope-from=rladams@adamsinfoserv.com; helo=se18.route25.eu X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) On Thu, Nov 26, 2020 at 09:20:42PM +0200, Eli Zaretskii wrote: > > Date: Thu, 26 Nov 2020 17:54:36 +0100 > > From: Russell Adams > > > > At one point I was watching htop and every time I switched to the > > Emacs window and returned to htop, I'd see it grow by several more MB > > over 3-5 seconds and then stop. So I left Emacs as the focused window > > overnight, and it grew from 4GB to 8GB. > > > > In this instance, I had my cursor at the bottom of a saved Org file. I > > wasn't even actively typing or interacting with Emacs. I just grew > > each time it got window focus. > > OK, so an idling Emacs with one focused frame gains about 0.5GB every > hour, would that be more or less accurate? > > > Yes I have a few timers, but those trip at midnight. I call org-agenda > > and org-caldev-sync. I don't have any other timers that I know of. > > Just so we have the hard evidence: could you please show the values of > timer-list and timer-idle-list on that system? > > Thanks. > 3.15 1.00 appt-check 8.38 - undo-auto--boundary-timer 117.38 5.00 savehist-autosave 1143.17 60.00 url-cookie-write-file 44223.15 1440.00 org-save-all-org-buffers 44283.15 1440.00 org-agenda-list 44343.15 1440.00 org-caldav-sync * 0.00 t show-paren-function * 0.50 t #f(compiled-function () # [jit-lock--antiblink-grace-timer jit-lock-context-fontify]) * 1.00 - helm-ff--cache-mode-refresh Unfortunately the Emacs that was 8GB has since been stopped, I killed it before working with the trace files. My laptop was rebooted later when the trace statistics utils ate all the RAM (my error, wrong input file). This list of timers is from a new instance, but the configuration hasn't changed. Are the 50+GB of trace files I have of any value? ------------------------------------------------------------------ Russell Adams RLAdams@AdamsInfoServ.com PGP Key ID: 0x1160DCB3 http://www.adamsinfoserv.com/ Fingerprint: 1723 D8CA 4280 1EC9 557F 66E8 1154 E018 1160 DCB3 From debbugs-submit-bounces@debbugs.gnu.org Fri Nov 27 07:38:40 2020 Received: (at 43389) by debbugs.gnu.org; 27 Nov 2020 12:38:40 +0000 Received: from localhost ([127.0.0.1]:44244 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kid1M-000052-6l for submit@debbugs.gnu.org; Fri, 27 Nov 2020 07:38:40 -0500 Received: from eggs.gnu.org ([209.51.188.92]:41552) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kid1K-0008WR-Nk for 43389@debbugs.gnu.org; Fri, 27 Nov 2020 07:38:39 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:46412) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kid18-0007wl-KN; Fri, 27 Nov 2020 07:38:28 -0500 Received: from [176.228.60.248] (port=2422 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kid16-00008l-NH; Fri, 27 Nov 2020 07:38:26 -0500 Date: Fri, 27 Nov 2020 14:38:07 +0200 Message-Id: <83360votzk.fsf@gnu.org> From: Eli Zaretskii To: Russell Adams In-Reply-To: <20201127104520.GE16802@maokai> (message from Russell Adams on Fri, 27 Nov 2020 11:45:20 +0100) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> <20201126154219.GA16802@maokai> <837dq8qdpk.fsf@gnu.org> <20201126165436.GB16802@maokai> <831rgfrkl1.fsf@gnu.org> <20201127104520.GE16802@maokai> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Fri, 27 Nov 2020 11:45:20 +0100 > From: Russell Adams > > > > Yes I have a few timers, but those trip at midnight. I call org-agenda > > > and org-caldev-sync. I don't have any other timers that I know of. > > > > Just so we have the hard evidence: could you please show the values of > > timer-list and timer-idle-list on that system? > > > > Thanks. > > > > 3.15 1.00 appt-check > 8.38 - undo-auto--boundary-timer > 117.38 5.00 savehist-autosave > 1143.17 60.00 url-cookie-write-file > 44223.15 1440.00 org-save-all-org-buffers > 44283.15 1440.00 org-agenda-list > 44343.15 1440.00 org-caldav-sync > * 0.00 t show-paren-function > * 0.50 t #f(compiled-function () # [jit-lock--antiblink-grace-timer jit-lock-context-fontify]) > * 1.00 - helm-ff--cache-mode-refresh Thanks. > Unfortunately the Emacs that was 8GB has since been stopped, I killed > it before working with the trace files. My laptop was rebooted later > when the trace statistics utils ate all the RAM (my error, wrong input > file). > > This list of timers is from a new instance, but the configuration > hasn't changed. > > Are the 50+GB of trace files I have of any value? I don't think Carlos and others saw your reports, because they were not CC'ed. I'm CC'ing them now; please make sure to reply to all of them next time. Carlos, please read https://debbugs.gnu.org/cgi/bugreport.cgi?bug=43389#554 for the details posted by Russel about his data points. If you can instruct him how to produce some analysis from the mtrace files, or how to make them available for your analysis, please do. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Fri Nov 27 10:33:38 2020 Received: (at 43389) by debbugs.gnu.org; 27 Nov 2020 15:33:38 +0000 Received: from localhost ([127.0.0.1]:45996 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kifkg-0004lL-FV for submit@debbugs.gnu.org; Fri, 27 Nov 2020 10:33:38 -0500 Received: from eggs.gnu.org ([209.51.188.92]:57808) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kifkc-0004l6-Ad for 43389@debbugs.gnu.org; Fri, 27 Nov 2020 10:33:37 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:52397) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kifkW-0002or-P9; Fri, 27 Nov 2020 10:33:28 -0500 Received: from [176.228.60.248] (port=1667 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kifkV-0000H6-Md; Fri, 27 Nov 2020 10:33:28 -0500 Date: Fri, 27 Nov 2020 17:33:11 +0200 Message-Id: <83lfemolvs.fsf@gnu.org> From: Eli Zaretskii To: Carlos O'Donell In-Reply-To: <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> (message from Carlos O'Donell on Fri, 27 Nov 2020 00:04:56 -0500) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> <87o8jltglg.fsf@mail.trevorbentley.com> <43b8f55b-d201-76e0-2d19-d97dec8798aa@redhat.com> <87im9ttfeg.fsf@mail.trevorbentley.com> <399d4681-940a-c782-b91e-750e62840cb6@redhat.com> <83pn40qkyb.fsf@gnu.org> <418751f6-41be-a5e2-908a-ea4196d5fb9b@redhat.com> <83y2inq2sp.fsf@gnu.org> <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Cc: trevor@trevorbentley.com, bugs@gnu.support, fweimer@redhat.com, > 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de > From: Carlos O'Donell > Date: Fri, 27 Nov 2020 00:04:56 -0500 > > lisp_align_malloc (alloc.c:1195) > Fcons (alloc.c:2694) > concat (fns.c:730) > Fcopy_sequence (fns.c:598) > timer_check (keyboard.c:4395) > wait_reading_process_output (process.c:5334) > sit_for (dispnew.c:6056) > read_char (keyboard.c:2742) > read_key_sequence (keyboard.c:9551) > command_loop_1 (keyboard.c:1354) > internal_condition_case (eval.c:1365) > command_loop_2 (keyboard.c:1095) > internal_catch (eval.c:1126) > command_loop (keyboard.c:1074) > recursive_edit_1 (keyboard.c:718) > Frecursive_edit (keyboard.c:790) > main (emacs.c:2080) > > There is a 171MiB's worth of allocations in that path. Are there chains of calls that are responsible for more memory allocated than 171MB? From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 28 04:00:47 2020 Received: (at 43389) by debbugs.gnu.org; 28 Nov 2020 09:00:47 +0000 Received: from localhost ([127.0.0.1]:46932 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiw63-0004nQ-B5 for submit@debbugs.gnu.org; Sat, 28 Nov 2020 04:00:47 -0500 Received: from eggs.gnu.org ([209.51.188.92]:33046) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiw60-0004nC-Nh for 43389@debbugs.gnu.org; Sat, 28 Nov 2020 04:00:45 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:42134) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kiw5u-0000jS-R3; Sat, 28 Nov 2020 04:00:38 -0500 Received: from [176.228.60.248] (port=2186 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kiw5p-00054N-DA; Sat, 28 Nov 2020 04:00:38 -0500 Date: Sat, 28 Nov 2020 11:00:17 +0200 Message-Id: <83v9dpn9em.fsf@gnu.org> From: Eli Zaretskii To: carlos@redhat.com In-Reply-To: <83h7pbp5wh.fsf@gnu.org> (message from Eli Zaretskii on Fri, 27 Nov 2020 10:20:46 +0200) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> <87o8jltglg.fsf@mail.trevorbentley.com> <43b8f55b-d201-76e0-2d19-d97dec8798aa@redhat.com> <87im9ttfeg.fsf@mail.trevorbentley.com> <399d4681-940a-c782-b91e-750e62840cb6@redhat.com> <83pn40qkyb.fsf@gnu.org> <418751f6-41be-a5e2-908a-ea4196d5fb9b@redhat.com> <83y2inq2sp.fsf@gnu.org> <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83mtz3p7qy.fsf@gnu.org> <83lfenp78f.fsf@gnu.org> <83h7pbp5wh.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Fri, 27 Nov 2020 10:20:46 +0200 > From: Eli Zaretskii > Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, > michael_heerdegen@web.de, trevor@trevorbentley.com > > > > > lisp_align_malloc (alloc.c:1195) > > > > Fcons (alloc.c:2694) > > > > concat (fns.c:730) > > > > Fcopy_sequence (fns.c:598) > > > > timer_check (keyboard.c:4395) > > > > wait_reading_process_output (process.c:5334) > > > > sit_for (dispnew.c:6056) > > > > read_char (keyboard.c:2742) > > > > read_key_sequence (keyboard.c:9551) > > > > command_loop_1 (keyboard.c:1354) > > > > internal_condition_case (eval.c:1365) > > > > command_loop_2 (keyboard.c:1095) > > > > internal_catch (eval.c:1126) > > > > command_loop (keyboard.c:1074) > > > > recursive_edit_1 (keyboard.c:718) > > > > Frecursive_edit (keyboard.c:790) > > > > main (emacs.c:2080) > > > > > > > > There is a 171MiB's worth of allocations in that path. > > > > > > > > There are a lot of traces ending in wait_reading_process_output that > > > > are consuming 50MiB. > > > > > > Thanks. If they are like the one above, the allocations are due to > > > some timer. Could be jabber, I'll take a look at it. Or maybe > > > helm-ff--cache-mode-refresh, whatever that is; need to look at Helm as > > > well. > > > > Oops, I got this mixed up: the timer list is from Jean, but the massif > > files are from Trevor. > > Double oops: the above just shows that each time we process timers, we > copy the list of the timers first. Not sure what to do about that. > Hmm... Maybe we should try GC at the end of each timer_check call? This doesn't seem to be necessary: timer functions are called via 'funcall', whose implementation already includes a call to maybe_gc. Just to see if we have some problem there, I left an otherwise idle Emacs with 20 timer functions firing every second run overnight. It gained less than 1MB of memory footprint after 10 hours. So timers alone cannot explain the dramatic increase in memory footprints described in this bug report, although they might be a contributing factor when the Emacs process already has lots of memory allocated to it. > Each call to lisp_align_malloc above requests a 1008-byte chunk of > memory for a new block of Lisp conses. More accurately, malloc is asked to provide a block of memory whose size is 1024 bytes minus sizeof (void *). From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 28 05:46:13 2020 Received: (at 43389) by debbugs.gnu.org; 28 Nov 2020 10:46:13 +0000 Received: from localhost ([127.0.0.1]:47006 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kixk4-0007R1-Sa for submit@debbugs.gnu.org; Sat, 28 Nov 2020 05:46:13 -0500 Received: from static.rcdrun.com ([95.85.24.50]:46369) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kixk0-0007Qf-8I for 43389@debbugs.gnu.org; Sat, 28 Nov 2020 05:46:12 -0500 Received: from localhost ([::ffff:197.157.0.29]) (AUTH: PLAIN admin, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by static.rcdrun.com with ESMTPSA id 00000000002C0010.000000005FC22A69.0000379E; Sat, 28 Nov 2020 10:46:01 +0000 Date: Sat, 28 Nov 2020 13:45:38 +0300 From: Jean Louis To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time Message-ID: References: <87im9ttfeg.fsf@mail.trevorbentley.com> <399d4681-940a-c782-b91e-750e62840cb6@redhat.com> <83pn40qkyb.fsf@gnu.org> <418751f6-41be-a5e2-908a-ea4196d5fb9b@redhat.com> <83y2inq2sp.fsf@gnu.org> <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83mtz3p7qy.fsf@gnu.org> <83lfenp78f.fsf@gnu.org> <83h7pbp5wh.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: <83v9dpn9em.fsf@gnu.org> User-Agent: Mutt/2.0 (3d08634) (2020-11-07) X-Spam-Score: 1.5 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Hello, My good-by function took this time abut 7 minutes with swap being about 650 MB. Swap was constantly less than 200 MB. Then without me doing something special, maybe I was idling, swap grew to 650 MB. [...] Content analysis details: (1.5 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record 1.5 RCVD_IN_SORBS_WEB RBL: SORBS: sender is an abusable web server [197.157.0.29 listed in dnsbl.sorbs.net] X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, carlos@redhat.com, trevor@trevorbentley.com, michael_heerdegen@web.de X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.5 (/) Hello, My good-by function took this time abut 7 minutes with swap being about 650 MB. Swap was constantly less than 200 MB. Then without me doing something special, maybe I was idling, swap grew to 650 MB. That is where I invoked the function: ((uptime "8 hours, 56 minutes, 27 seconds") (pid 14637) (garbage ((conses 16 2191203 1613364) (symbols 48 52843 237) (strings 32 301705 122437) (string-bytes 1 9982401) (vectors 16 99828) (vector-slots 8 1856426 1471952) (floats 8 738 5008) (intervals 56 180891 252942) (buffers 984 343))) (buffers-size 38553249) (vsize (vsize 3268444))) One can see larger vsize of 3.12 G Largest buffer is PDF of 5394959, the 4322895, 3706662, and so on. I have tried deleting some buffers with M-x list-buffers: - few largest buffers I have deleted without problem - I have tried deleting my Org file with size 966405 and when I pressed D nothing was shown on screen, rather hard disk started working and it looks by behavior related to memory or swapping - screen came back and I could press x to delete those buffers. - even those some deleted buffers were deleted with x, at next click on Size in list-buffers I could again find the deleted buffers in the list. This is probably unrelated bug. I pressed x again and they disappeared. But what if they were not realy delete first time? I will work little more in this session and will then provide mtrace for pid 14637. If anything else to be provided let me know. Jean From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 28 12:31:57 2020 Received: (at 43389) by debbugs.gnu.org; 28 Nov 2020 17:31:57 +0000 Received: from localhost ([127.0.0.1]:48971 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kj44j-0004zI-9v for submit@debbugs.gnu.org; Sat, 28 Nov 2020 12:31:57 -0500 Received: from mail.trevorbentley.com ([37.187.5.80]:50398) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kj44g-0004z0-OU for 43389@debbugs.gnu.org; Sat, 28 Nov 2020 12:31:56 -0500 Received: from localhost (c188-150-0-48.bredband.comhem.se [188.150.0.48]) by mail.trevorbentley.com (Postfix) with ESMTPSA id 97A0165105; Sat, 28 Nov 2020 18:31:48 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mail.trevorbentley.com; s=mail; t=1606584708; bh=W25lk1Db8xo8/xY+6cutMnPwS/AuxWzhAMSveOZ1dhc=; h=From:To:Cc:Cc:Subject:In-Reply-To:References:Date:From; b=cSfU8iMX4ZHb84HgFf8+A2debiI2+sCxlR7l3nZD6SBXVIj2gd2bSeFIvtTra+4Mc MBTU+BUqXapwO3WZU36VwJyIwLqITensjPRBXvv5n0IOBmjgFpGhCWqfrKcP85UjVP S4mUStO5c5oaglGCPocUXOZV85MlNv0JxrqpZw00= From: Trevor Bentley To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time In-Reply-To: <83lfenp78f.fsf@gnu.org> References: <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> <87o8jltglg.fsf@mail.trevorbentley.com> <43b8f55b-d201-76e0-2d19-d97dec8798aa@redhat.com> <87im9ttfeg.fsf@mail.trevorbentley.com> <399d4681-940a-c782-b91e-750e62840cb6@redhat.com> <83pn40qkyb.fsf@gnu.org> <418751f6-41be-a5e2-908a-ea4196d5fb9b@redhat.com> <83y2inq2sp.fsf@gnu.org> <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83mtz3p7qy.fsf@gnu.org> <83lfenp78f.fsf@gnu.org> Date: Sat, 28 Nov 2020 18:31:47 +0100 Message-ID: <87v9dps7zw.fsf@mail.trevorbentley.com> MIME-Version: 1.0 Content-Type: text/plain; format=flowed X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, carlos@redhat.com, michael_heerdegen@web.de, X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii writes: >> Thanks. If they are like the one above, the allocations are >> due to some timer. Could be jabber, I'll take a look at it. >> Or maybe helm-ff--cache-mode-refresh, whatever that is; need to >> look at Helm as well. > > Oops, I got this mixed up: the timer list is from Jean, but the > massif files are from Trevor. > > Trevor, can you show the list of timers running on your system? I use helm as well, emacs-slack sets a bunch of timers, and I have a custom treemacs-based UI for emacs-slack that also refreshes on a timer. A typical timer list looks like this: (list-timers) 0.2s - thread-list--timer-func 5.0s - undo-auto--boundary-timer 5.1s - slack-ws-ping 5.1s - slack-ws-ping 5.1s - slack-ws-ping 5.2s - slack-ws-ping 5.2s - slack-ws-ping 35.6s 1m 0.0s trev/slack--refresh-cache * 0.5s - #f(compiled-function () # [eldoc-mode global-eldoc-mode eldoc--supported-p (debug error) eldoc-print-current-symbol-info message "eldoc error: %s" nil]) * 0.5s t #f(compiled-function () # [jit-lock--antiblink-grace-timer jit-lock-context-fontify]) * 0.5s :repeat blink-cursor-start * 1.0s - helm-ff--cache-mode-refresh -Trevor From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 28 12:49:46 2020 Received: (at 43389) by debbugs.gnu.org; 28 Nov 2020 17:49:46 +0000 Received: from localhost ([127.0.0.1]:48989 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kj4Lx-0005Of-ND for submit@debbugs.gnu.org; Sat, 28 Nov 2020 12:49:45 -0500 Received: from mail.trevorbentley.com ([37.187.5.80]:50503) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kj4Lv-0005OS-V4 for 43389@debbugs.gnu.org; Sat, 28 Nov 2020 12:49:44 -0500 Received: from localhost (c188-150-0-48.bredband.comhem.se [188.150.0.48]) by mail.trevorbentley.com (Postfix) with ESMTPSA id 14A3D602C8; Sat, 28 Nov 2020 18:49:38 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mail.trevorbentley.com; s=mail; t=1606585778; bh=tILzxGkSVM2qfK+BoQ7xnGYcaqaFDdHy0l0IRBmeSzA=; h=From:To:Cc:Cc:Subject:In-Reply-To:References:Date:From; b=gsVb3bqgTSPi+zoT1chz0s4F7haFMe6wjYZox1hYRVFxVcDu436vZNQ9ct1IG4krw 4ijF7GRn/RRRap0KWqSMkN7afwUEMElANZJw/J9gS3RSwtuHH6i+HHap+88I3nt4AB Lq42PtENggcBecCnxjJtUQMgBaPoiFZlMedvDOvc= From: Trevor Bentley To: Eli Zaretskii , carlos@redhat.com Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time In-Reply-To: <83v9dpn9em.fsf@gnu.org> References: <83y2j0qb2v.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> <87o8jltglg.fsf@mail.trevorbentley.com> <43b8f55b-d201-76e0-2d19-d97dec8798aa@redhat.com> <87im9ttfeg.fsf@mail.trevorbentley.com> <399d4681-940a-c782-b91e-750e62840cb6@redhat.com> <83pn40qkyb.fsf@gnu.org> <418751f6-41be-a5e2-908a-ea4196d5fb9b@redhat.com> <83y2inq2sp.fsf@gnu.org> <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83mtz3p7qy.fsf@gnu.org> <83lfenp78f.fsf@gnu.org> <83h7pbp5wh.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> Date: Sat, 28 Nov 2020 18:49:37 +0100 Message-ID: <87sg8ts766.fsf@mail.trevorbentley.com> MIME-Version: 1.0 Content-Type: text/plain; format=flowed X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, michael_heerdegen@web.de, X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii writes: > Just to see if we have some problem there, I left an otherwise > idle Emacs with 20 timer functions firing every second run > overnight. It gained less than 1MB of memory footprint after 10 > hours. So timers alone cannot explain the dramatic increase in > memory footprints described in this bug report, although they > might be a contributing factor when the Emacs process already > has lots of memory allocated to it. Something else worth noting is that I have dozens and dozens of emacs processes running at all times, and only graphical X11 clients have had memory explosion. Plenty of my `emacs -nw` instances have been open for 30+ days with heavy use, and all have stayed under 100MB RSS. The most recent instance I ran is a graphical instance that I haven't done anything in except scroll around in a single small elisp file. This one has an interesting difference in memory usage: the usage is large (2GB heap), but it isn't growing on its own. It seems to grow by 10-20MB every time it gets X11 window focus, and other than that it's stable. If I alt-tab to it continuously, I can force its usage up. It appears to be permanent. This differs from my emacs-slack instances, which constantly grow even when backgrounded. I have yet another graphical instance that I just opened and minimized, and never focus. It's still only using 70MB after over a week. So at least it's not simply leaking all the time... some active use has to trigger it. I'll have an mtrace for you from the current experiment (X11 focus leak) tomorrow or Monday. I hope it's the same issue. -Trevor From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 28 14:56:40 2020 Received: (at 43389) by debbugs.gnu.org; 28 Nov 2020 19:56:40 +0000 Received: from localhost ([127.0.0.1]:49145 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kj6Km-0002A5-Ea for submit@debbugs.gnu.org; Sat, 28 Nov 2020 14:56:40 -0500 Received: from se05.route25.eu ([185.87.186.222]:54419) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kj6Ki-00029t-Vw for 43389@debbugs.gnu.org; Sat, 28 Nov 2020 14:56:38 -0500 Date: Sat, 28 Nov 2020 20:56:31 +0100 From: Russell Adams To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks Message-ID: <20201128195631.GK16802@maokai> References: <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> <20201126154219.GA16802@maokai> <837dq8qdpk.fsf@gnu.org> <20201126165436.GB16802@maokai> <831rgfrkl1.fsf@gnu.org> <20201127104520.GE16802@maokai> <83360votzk.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <83360votzk.fsf@gnu.org> X-Originating-IP: 185.87.185.80 X-SpamExperts-Domain: out.pcextreme.nl X-SpamExperts-Username: 185.87.185.80 Authentication-Results: route25.eu; auth=pass smtp.auth=185.87.185.80@out.pcextreme.nl X-SpamExperts-Outgoing-Class: ham X-SpamExperts-Outgoing-Evidence: Combined (0.11) X-Recommended-Action: accept X-Filter-ID: Mvzo4OR0dZXEDF/gcnlw0ecN11dQIc3aKzz9DU5dqGmpSDasLI4SayDByyq9LIhVAq3DKs/sLL8N 5F3RMk1wo0TNWdUk1Ol2OGx3IfrIJKyP9eGNFz9TW9u+Jt8z2T3KeftVfXhxMQ04j8ndL5E8bbUS i56EfQ0rdWR4P39S1IpCG43jNckTsnu0Vma2B9rT/7TBeJCtE/3PtdoOyjKfDx66OOYZs3a1h0KV b1jwoZlGVm5pZgqyMrcMDB2tS/rO3rA0PMtQ+y0aX4NDRLp2xIUgUBeIBK51+WfVeHZIBkajcXRJ xrYzcB206EtR3hhq2s1Xp8nFtzJT3aBfCBDkL9lnibl3vcBqVmvQB4A18ac7dywIp6IjpzPfGPLH sDKzAVXirbLuJjy3NtnGWLbnBPSflyeJj6AFoLCUmqyOCtOWTg2esdlueWtJ8prBt64Mg8CBO1Sn vm6qXHQp7O9kdYkcpBMgcR761AjiNShpFdRwYZEtAFUQ4Jd7177NiPzHS8KWaecotq4zBypQ19eU 2GxrlyZPzyn5edZSesYokAKItBMasm7pZA/O6yBhF8ofxGP8GhEQ1f+yBicGv+yRcznV71gErS0C 0wftxHOa3oGCYOsnTY2OA0dQlbWm0xSdEE6z2imBWb46X5I8GpyRFRKz7c/NnxVl92HbT0+343Te OQNHQEdjU4M5JFrls8Or8R3kmST+8AM1EOydCf8J/ZhEHfx/kJUlKY/jXVFcuqwgr/U0flMcy2Vi /IcBgY4acnKqPguWcFDuAX4XQPeF/4m2NAvgI4s8HRo3pEptO2+mTg8kj7EIi2j7xoIQhElAhhOD hDC2adW/ZikdubSTH0s+a/uhLBizaAsv0ppgp9JpAhe2btBmnyOR1Y+v19Bz0cFf0X+kd3Id+MUV d2OtJMr1tQU4Bleak0vC9IQ+CwyYpK8IqcfK7NfbwoNdne0oONHVJe5tplc8MDizMP2r2AWKGxfc zPFlnAJy0NZewzLYbunlpmFqidK9KA1zyv4cavkKD23TTnPwZtcwY/Q7zIxpXoIlKaBTyl+1suTE KExQFRpAmOPl+Mk2TpNRDPKg+Hdjnzqffuq7pd8q/9stqfyQ+LqrEipHw6fVWMsEaTdo7Pcjf6jh xqhOSQCTP5Wo51+QgqgIDHe1cfNBRH3ApgKrPSDQBm06n9mf2cbKcEkLuGFeW6folbmEgVPaWk/v 95Cn7Wx5X69MUx9Ikn8IaPtsiz0lw03t5oEI9kJnnqcc2eOmWKBjs81R88cYLO8A X-Report-Abuse-To: spam@semaster01.route25.eu X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On Fri, Nov 27, 2020 at 02:38:07PM +0200, Eli Zaretskii wrote: > > Unfortunately the Emacs that was 8GB has since been stopped, I killed > > it before working with the trace files. My laptop was rebooted later > > when the trace statistics utils ate all the RAM (my error, wrong input > > file). > > > > This list of timers is from a new instance, but the configuration > > hasn't changed. > > > > Are the 50+GB of trace files I have of any value? > > I don't think Carlos and others saw your reports, because they were > not CC'ed. I'm CC'ing them now; please make sure to reply to all of > them next time. > > Carlos, please read > > https://debbugs.gnu.org/cgi/bugreport.cgi?bug=43389#554 > > for the details posted by Russel about his data points. If you can > instruct him how to produce some analysis from the mtrace files, or > how to make them available for your analysis, please do. I find particularly of interest the growth of Emacs processes while idle. Yesterday I restarted Emacs and over the next 18 hours I left my laptop idle with Emacs as the focused application. My Emacs has grown to 3GB and every time I select my Emacs window it will grow by a few MB while I watch in htop. I will restart it again tonight and leave it focused, and see if I can reproduce the growth. It also appears that the growth is not linear, slower at first and hard to see, but in the multiple MB at a time later when the total is in GB. Again I use emacs in daemon mode with one or more emacsclient processes connected (x11 and terminal). I use StumpWM in full screen mode with my emacsclient, and if it's focused it seems the growth continues despite xscreensaver coming on and dimming the screen. ------------------------------------------------------------------ Russell Adams RLAdams@AdamsInfoServ.com PGP Key ID: 0x1160DCB3 http://www.adamsinfoserv.com/ Fingerprint: 1723 D8CA 4280 1EC9 557F 66E8 1154 E018 1160 DCB3 From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 28 15:14:23 2020 Received: (at 43389) by debbugs.gnu.org; 28 Nov 2020 20:14:23 +0000 Received: from localhost ([127.0.0.1]:49167 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kj6bu-0002af-RA for submit@debbugs.gnu.org; Sat, 28 Nov 2020 15:14:23 -0500 Received: from eggs.gnu.org ([209.51.188.92]:51462) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kj6bq-0002aP-8k for 43389@debbugs.gnu.org; Sat, 28 Nov 2020 15:14:21 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:49891) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kj6bj-0000ju-8y; Sat, 28 Nov 2020 15:14:11 -0500 Received: from [176.228.60.248] (port=3946 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kj6bi-000852-6D; Sat, 28 Nov 2020 15:14:10 -0500 Date: Sat, 28 Nov 2020 22:13:56 +0200 Message-Id: <83eekdme7v.fsf@gnu.org> From: Eli Zaretskii To: Russell Adams In-Reply-To: <20201128195631.GK16802@maokai> (message from Russell Adams on Sat, 28 Nov 2020 20:56:31 +0100) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> <20201126154219.GA16802@maokai> <837dq8qdpk.fsf@gnu.org> <20201126165436.GB16802@maokai> <831rgfrkl1.fsf@gnu.org> <20201127104520.GE16802@maokai> <83360votzk.fsf@gnu.org> <20201128195631.GK16802@maokai> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Sat, 28 Nov 2020 20:56:31 +0100 > From: Russell Adams > Cc: dj@redhat.com, fweimer@redhat.com, trevor@trevorbentley.com, > michael_heerdegen@web.de, carlos@redhat.com, 43389@debbugs.gnu.org > > I find particularly of interest the growth of Emacs processes while > idle. > > Yesterday I restarted Emacs and over the next 18 hours I left my > laptop idle with Emacs as the focused application. My Emacs has grown > to 3GB and every time I select my Emacs window it will grow by a few > MB while I watch in htop. Is there any way to get a trace/record of X events that are delivered to Emacs during this kind of idleness? Those events and the timers are, I think, the only things that are going inside such an idle session. From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 28 16:52:56 2020 Received: (at 43389) by debbugs.gnu.org; 28 Nov 2020 21:52:56 +0000 Received: from localhost ([127.0.0.1]:49248 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kj89H-0004zl-RL for submit@debbugs.gnu.org; Sat, 28 Nov 2020 16:52:56 -0500 Received: from mail-wm1-f50.google.com ([209.85.128.50]:40934) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kj89D-0004zT-Ej for 43389@debbugs.gnu.org; Sat, 28 Nov 2020 16:52:54 -0500 Received: by mail-wm1-f50.google.com with SMTP id a3so11498427wmb.5 for <43389@debbugs.gnu.org>; Sat, 28 Nov 2020 13:52:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tcd-ie.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=FK1kbwERKp0sgwhlQk3Hopt7dOtakM7HrEW2LkHEtWQ=; b=uD7ezE/aUXAN5SYfqX/hj8c3d/aECJvnQjRgKxdcIeVvPLGdIOhvRYoPVMyP6uDYyt VMvZRemWwi0D68J0kx3uhmVNXATuwwnvDMsxcT15FUNBS68pdiaDpwygjsNDtSmnp2f5 RKYGyksncnPHCzuCGlvoLpwe4ZJfWPvo4mKwxwO7QMKeTtct7Vw/D/ePQ2XqH3Tvt2Uo RV+GIDHvHJTLIaAP5v5JRl67fie3mNWAVvwx05DDrkZM/ebFsEQNotB3JYm5ka08qT5x pkBJdH/XfQUJGqKCKe8uyiIDxGE5iZg8BP4ebYdSW+3+5QqK8TQVIN98EWZQIro5QkXl euBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=FK1kbwERKp0sgwhlQk3Hopt7dOtakM7HrEW2LkHEtWQ=; b=iCGgXEqRn9+06yF0lZOjkn+4E2ilma+P4auIm6Fx43Goz6CEYGUxZrBGqJtqdKHAuf 9IYlHBJ1su4/YhAy8uhjxo7+xl0qWTmF3XqXPzsLpK4W9hNsCZk8MPlHbRjuWnpPmpuv 1K7UaAE9i1Ctpup2N227Fjin9X5wac8XDzrDs6Eur+fVqLdnvJrE3cJcjPbbuQQAJ9vL OJn8yWs/tz/NwMlBAucwk8Xq8mvirEcI5LaEN/341BHFF3WVro37c0/mKwNKh7ZDPhcM z80Ta2oDiRgt2D0GfA3nXQ+kJIZRiZ8V1Lq8dkT0jKiz+w6UN5rU08B57MDmWKqUKY+N q4Gg== X-Gm-Message-State: AOAM533nTGi0qXP7zpJsEDgUI5adMY30RvwQ2bqPzvsIAv3YLkbDP2/3 xpJGMl3Q4sTt4D0KIV+DjqyPeQ== X-Google-Smtp-Source: ABdhPJxjQpxJAUk/5Lff/89coIMaVR1ybTer0EeKzIPo4VM9Kni/sSw+wmAABmEOjxNzg5KgHCJXIw== X-Received: by 2002:a1c:ed13:: with SMTP id l19mr4089026wmh.141.1606600365603; Sat, 28 Nov 2020 13:52:45 -0800 (PST) Received: from localhost ([2a02:8084:20e2:c380:92bd:1bfd:38fc:fae2]) by smtp.gmail.com with ESMTPSA id w21sm18552851wmi.29.2020.11.28.13.52.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 28 Nov 2020 13:52:44 -0800 (PST) From: "Basil L. Contovounesios" To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> <20201126154219.GA16802@maokai> <837dq8qdpk.fsf@gnu.org> <20201126165436.GB16802@maokai> <831rgfrkl1.fsf@gnu.org> <20201127104520.GE16802@maokai> <83360votzk.fsf@gnu.org> <20201128195631.GK16802@maokai> <83eekdme7v.fsf@gnu.org> Date: Sat, 28 Nov 2020 21:52:42 +0000 In-Reply-To: <83eekdme7v.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 28 Nov 2020 22:13:56 +0200") Message-ID: <87im9pywr9.fsf@tcd.ie> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com, Russell Adams X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii writes: > Is there any way to get a trace/record of X events that are delivered > to Emacs during this kind of idleness? Those events and the timers > are, I think, the only things that are going inside such an idle > session. What about asynchronous processes, such as url.el retrievals? (Though I guess those would be accounted for in buffer/GC lists.) -- Basil From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 28 22:30:08 2020 Received: (at 43389) by debbugs.gnu.org; 29 Nov 2020 03:30:08 +0000 Received: from localhost ([127.0.0.1]:49471 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kjDPb-00011S-Uh for submit@debbugs.gnu.org; Sat, 28 Nov 2020 22:30:08 -0500 Received: from eggs.gnu.org ([209.51.188.92]:39510) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kjDPY-0000zT-Gj for 43389@debbugs.gnu.org; Sat, 28 Nov 2020 22:30:06 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:55168) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kjDPR-0002ky-CV; Sat, 28 Nov 2020 22:29:57 -0500 Received: from [176.228.60.248] (port=2690 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kjDPQ-00084Z-Ma; Sat, 28 Nov 2020 22:29:57 -0500 Date: Sun, 29 Nov 2020 05:29:43 +0200 Message-Id: <83a6v0n8m0.fsf@gnu.org> From: Eli Zaretskii To: "Basil L. Contovounesios" In-Reply-To: <87im9pywr9.fsf@tcd.ie> (contovob@tcd.ie) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> <20201126154219.GA16802@maokai> <837dq8qdpk.fsf@gnu.org> <20201126165436.GB16802@maokai> <831rgfrkl1.fsf@gnu.org> <20201127104520.GE16802@maokai> <83360votzk.fsf@gnu.org> <20201128195631.GK16802@maokai> <83eekdme7v.fsf@gnu.org> <87im9pywr9.fsf@tcd.ie> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com, RLAdams@AdamsInfoServ.Com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: "Basil L. Contovounesios" > Cc: Russell Adams , fweimer@redhat.com, > 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, > trevor@trevorbentley.com, carlos@redhat.com > Date: Sat, 28 Nov 2020 21:52:42 +0000 > > Eli Zaretskii writes: > > > Is there any way to get a trace/record of X events that are delivered > > to Emacs during this kind of idleness? Those events and the timers > > are, I think, the only things that are going inside such an idle > > session. > > What about asynchronous processes, such as url.el retrievals? Those should not depend on whether the session is GUI or TTY, nor on whether an Emacs frame has focus. From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 30 12:17:38 2020 Received: (at 43389) by debbugs.gnu.org; 30 Nov 2020 17:17:38 +0000 Received: from localhost ([127.0.0.1]:56526 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kjmnx-0005Pq-Un for submit@debbugs.gnu.org; Mon, 30 Nov 2020 12:17:38 -0500 Received: from mail.trevorbentley.com ([37.187.5.80]:35651) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kjmnx-0005L8-2y for 43389@debbugs.gnu.org; Mon, 30 Nov 2020 12:17:37 -0500 Received: from localhost (c188-150-0-48.bredband.comhem.se [188.150.0.48]) by mail.trevorbentley.com (Postfix) with ESMTPSA id 937E7602C8; Mon, 30 Nov 2020 18:17:29 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mail.trevorbentley.com; s=mail; t=1606756649; bh=AQ9D0+k22Us+dPUGA/3wK2zYbzr76otqUNZ2nz5/oWM=; h=From:To:Cc:Cc:Subject:In-Reply-To:References:Date:From; b=PMo///+h9f6KeQMUpxFx5qYq8TBwLjtoTY/4AHOoLgz9r69PuxfrJLy6Kgzlhd4Jw kmh8oaLFJ/rXVGxU2RoAGC3RiyXuPn5+GxzjJfuDMCaho+SQOV1cOxQZ6gjX/NhhkT aqaRxDHCjz6lwZq90JKoLZRQIUwV8e9Q6VU6eRxs= From: Trevor Bentley To: Eli Zaretskii , carlos@redhat.com Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time In-Reply-To: <87sg8ts766.fsf@mail.trevorbentley.com> References: <83y2j0qb2v.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> <87o8jltglg.fsf@mail.trevorbentley.com> <43b8f55b-d201-76e0-2d19-d97dec8798aa@redhat.com> <87im9ttfeg.fsf@mail.trevorbentley.com> <399d4681-940a-c782-b91e-750e62840cb6@redhat.com> <83pn40qkyb.fsf@gnu.org> <418751f6-41be-a5e2-908a-ea4196d5fb9b@redhat.com> <83y2inq2sp.fsf@gnu.org> <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83mtz3p7qy.fsf@gnu.org> <83lfenp78f.fsf@gnu.org> <83h7pbp5wh.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> <87sg8ts766.fsf@mail.trevorbentley.com> Date: Mon, 30 Nov 2020 18:17:28 +0100 Message-ID: <87pn3usr13.fsf@mail.trevorbentley.com> MIME-Version: 1.0 Content-Type: text/plain; format=flowed X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, michael_heerdegen@web.de, X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) > I'll have an mtrace for you from the current experiment (X11 > focus leak) tomorrow or Monday. I hope it's the same issue. Ok, here is my latest memory log and a matching libmtrace: https://trevorbentley.com/mtrace3/ This capture is unique in three ways: 1) Compared to my other tests, this one did not run emacs-slack and did about half of its leaking from X11 focus events, and the other half drifting upwards during idle. This session has barely done anything. 2) I added a custom (malloc-trim) command, and called it after making my standard memory log. At the end of the log, you can see that after the trim memory usage fell from 4GB to 50MB. Unfortunately, this malloc_trim() might make the libmtrace trace harder to make sense of. But, at least in this case, it meant 99% of the memory could be given back to the OS? 3) I ran the built-in emacs profiler. The profiler memory results are in the log, both in normal and reversed format, with the largest element expanded. I don't know how to interpret it, but it looks like maybe a periodic timer started by helm is responsible for 3+GB of RAM? Also note that the (garbage-collect) call is timed now. 318 seconds for this one. -Trevor From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 30 13:16:19 2020 Received: (at 43389) by debbugs.gnu.org; 30 Nov 2020 18:16:19 +0000 Received: from localhost ([127.0.0.1]:56620 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kjnif-000736-Ex for submit@debbugs.gnu.org; Mon, 30 Nov 2020 13:16:19 -0500 Received: from eggs.gnu.org ([209.51.188.92]:40912) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kjnid-00072q-4u for 43389@debbugs.gnu.org; Mon, 30 Nov 2020 13:16:12 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:33840) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kjniW-0000z1-Qm; Mon, 30 Nov 2020 13:16:04 -0500 Received: from [176.228.60.248] (port=2116 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kjniV-0001pB-72; Mon, 30 Nov 2020 13:16:03 -0500 Date: Mon, 30 Nov 2020 20:15:54 +0200 Message-Id: <83blfek8x1.fsf@gnu.org> From: Eli Zaretskii To: Trevor Bentley In-Reply-To: <87pn3usr13.fsf@mail.trevorbentley.com> (message from Trevor Bentley on Mon, 30 Nov 2020 18:17:28 +0100) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <83y2j0qb2v.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> <87o8jltglg.fsf@mail.trevorbentley.com> <43b8f55b-d201-76e0-2d19-d97dec8798aa@redhat.com> <87im9ttfeg.fsf@mail.trevorbentley.com> <399d4681-940a-c782-b91e-750e62840cb6@redhat.com> <83pn40qkyb.fsf@gnu.org> <418751f6-41be-a5e2-908a-ea4196d5fb9b@redhat.com> <83y2inq2sp.fsf@gnu.org> <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83mtz3p7qy.fsf@gnu.org> <83lfenp78f.fsf@gnu.org> <83h7pbp5wh.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> <87sg8ts766.fsf@mail.trevorbentley.com> <87pn3usr13.fsf@mail.trevorbentley.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, carlos@redhat.com, michael_heerdegen@web.de X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Trevor Bentley > Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, > dj@redhat.com, michael_heerdegen@web.de > Cc: > Date: Mon, 30 Nov 2020 18:17:28 +0100 > > 3) I ran the built-in emacs profiler. The profiler memory > results are in the log Thanks, but this doesn't really measure memory usage. It just uses malloc calls as a poor man's replacement for SIGPROF signal, so the results show a kind of CPU profile, not memory profile. > I don't know how to interpret it, but it looks like maybe a > periodic timer started by helm is responsible for 3+GB of RAM? More like it's responsible for most of the CPU activity. > Also note that the (garbage-collect) call is timed now. 318 > seconds for this one. And the automatic GCs were much faster? Thanks. I hope Carlos will be able to give some hints based on your data. From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 30 13:33:47 2020 Received: (at 43389) by debbugs.gnu.org; 30 Nov 2020 18:33:48 +0000 Received: from localhost ([127.0.0.1]:56639 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kjnzf-0007X9-LN for submit@debbugs.gnu.org; Mon, 30 Nov 2020 13:33:47 -0500 Received: from mail.trevorbentley.com ([37.187.5.80]:36044) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kjnze-0007Wv-5U for 43389@debbugs.gnu.org; Mon, 30 Nov 2020 13:33:46 -0500 Received: from localhost (c188-150-0-48.bredband.comhem.se [188.150.0.48]) by mail.trevorbentley.com (Postfix) with ESMTPSA id 80FDD67480; Mon, 30 Nov 2020 19:33:39 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mail.trevorbentley.com; s=mail; t=1606761219; bh=dafJWnYCetUO0jMSzpdGyHhaLLTwQG8MSzu0Jtfmdwc=; h=From:To:Cc:Cc:Subject:In-Reply-To:References:Date:From; b=ahuRnZ3IFOGq3jbcEEB02FtacqaUfDiFIOTDZmHmv+QrkajSsK57H2LnkOJpbzyNx 22ofHWrItl9CGOoGR+jE2yB1IZEmaOp7eHAY1YNCXtn4cQVVzXWdUS+198unsODHuz kULRSeU8e3VdtuOSvmElcdWqir3tSw2EWZvBcYqU= From: Trevor Bentley To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time In-Reply-To: <83blfek8x1.fsf@gnu.org> References: <83y2j0qb2v.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> <87o8jltglg.fsf@mail.trevorbentley.com> <43b8f55b-d201-76e0-2d19-d97dec8798aa@redhat.com> <87im9ttfeg.fsf@mail.trevorbentley.com> <399d4681-940a-c782-b91e-750e62840cb6@redhat.com> <83pn40qkyb.fsf@gnu.org> <418751f6-41be-a5e2-908a-ea4196d5fb9b@redhat.com> <83y2inq2sp.fsf@gnu.org> <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83mtz3p7qy.fsf@gnu.org> <83lfenp78f.fsf@gnu.org> <83h7pbp5wh.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> <87sg8ts766.fsf@mail.trevorbentley.com> <87pn3usr13.fsf@mail.trevorbentley.com> <83blfek8x1.fsf@gnu.org> Date: Mon, 30 Nov 2020 19:33:38 +0100 Message-ID: <87mtyysni5.fsf@mail.trevorbentley.com> MIME-Version: 1.0 Content-Type: text/plain; format=flowed X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, carlos@redhat.com, michael_heerdegen@web.de, X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii writes: >> Also note that the (garbage-collect) call is timed now. 318 >> seconds for this one. > > And the automatic GCs were much faster? > Automatic GCs were unnoticeable, as before. Still not sure what that means. I think I'll instrument it in C to try to figure out what is going on. -Trevor From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 30 14:02:29 2020 Received: (at 43389) by debbugs.gnu.org; 30 Nov 2020 19:02:29 +0000 Received: from localhost ([127.0.0.1]:56669 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kjoRQ-0008KY-T9 for submit@debbugs.gnu.org; Mon, 30 Nov 2020 14:02:29 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52642) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kjoRP-0008KK-R3 for 43389@debbugs.gnu.org; Mon, 30 Nov 2020 14:02:28 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:34718) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kjoRK-0006wh-3w; Mon, 30 Nov 2020 14:02:22 -0500 Received: from [176.228.60.248] (port=4962 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kjoRG-0004p5-44; Mon, 30 Nov 2020 14:02:18 -0500 Date: Mon, 30 Nov 2020 21:02:10 +0200 Message-Id: <83wny2is7h.fsf@gnu.org> From: Eli Zaretskii To: Trevor Bentley In-Reply-To: <87mtyysni5.fsf@mail.trevorbentley.com> (message from Trevor Bentley on Mon, 30 Nov 2020 19:33:38 +0100) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <83y2j0qb2v.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> <87o8jltglg.fsf@mail.trevorbentley.com> <43b8f55b-d201-76e0-2d19-d97dec8798aa@redhat.com> <87im9ttfeg.fsf@mail.trevorbentley.com> <399d4681-940a-c782-b91e-750e62840cb6@redhat.com> <83pn40qkyb.fsf@gnu.org> <418751f6-41be-a5e2-908a-ea4196d5fb9b@redhat.com> <83y2inq2sp.fsf@gnu.org> <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83mtz3p7qy.fsf@gnu.org> <83lfenp78f.fsf@gnu.org> <83h7pbp5wh.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> <87sg8ts766.fsf@mail.trevorbentley.com> <87pn3usr13.fsf@mail.trevorbentley.com> <83blfek8x1.fsf@gnu.org> <87mtyysni5.fsf@mail.trevorbentley.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, carlos@redhat.com, michael_heerdegen@web.de X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Trevor Bentley > Cc: carlos@redhat.com, fweimer@redhat.com, 43389@debbugs.gnu.org, > bugs@gnu.support, dj@redhat.com, michael_heerdegen@web.de > Cc: > Date: Mon, 30 Nov 2020 19:33:38 +0100 > > Eli Zaretskii writes: > > >> Also note that the (garbage-collect) call is timed now. 318 > >> seconds for this one. > > > > And the automatic GCs were much faster? > > > > Automatic GCs were unnoticeable, as before. Still not sure what > that means. I think I'll instrument it in C to try to figure out > what is going on. I'm stomped by this discrepancy, and feel that I'm missing something very basic here... From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 01 04:00:13 2020 Received: (at 43389) by debbugs.gnu.org; 1 Dec 2020 09:00:13 +0000 Received: from localhost ([127.0.0.1]:57743 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kk1W9-0003fC-Ce for submit@debbugs.gnu.org; Tue, 01 Dec 2020 04:00:13 -0500 Received: from static.rcdrun.com ([95.85.24.50]:41887) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kk1W4-0003cY-HP for 43389@debbugs.gnu.org; Tue, 01 Dec 2020 04:00:09 -0500 Received: from localhost ([::ffff:41.202.241.16]) (AUTH: PLAIN admin, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by static.rcdrun.com with ESMTPSA id 00000000002C0006.000000005FC60617.000016E1; Tue, 01 Dec 2020 09:00:07 +0000 Date: Mon, 30 Nov 2020 22:17:09 +0300 From: Jean Louis To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time Message-ID: References: <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83mtz3p7qy.fsf@gnu.org> <83lfenp78f.fsf@gnu.org> <83h7pbp5wh.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> <87sg8ts766.fsf@mail.trevorbentley.com> <87pn3usr13.fsf@mail.trevorbentley.com> <83blfek8x1.fsf@gnu.org> <87mtyysni5.fsf@mail.trevorbentley.com> <83wny2is7h.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: <83wny2is7h.fsf@gnu.org> User-Agent: Mutt/2.0 (3d08634) (2020-11-07) X-Spam-Score: 0.8 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, carlos@redhat.com, Trevor Bentley , michael_heerdegen@web.de X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.2 (/) * Eli Zaretskii [2020-11-30 22:10]: > > From: Trevor Bentley > > Cc: carlos@redhat.com, fweimer@redhat.com, 43389@debbugs.gnu.org, > > bugs@gnu.support, dj@redhat.com, michael_heerdegen@web.de > > Cc: > > Date: Mon, 30 Nov 2020 19:33:38 +0100 > > > > Eli Zaretskii writes: > > > > >> Also note that the (garbage-collect) call is timed now. 318 > > >> seconds for this one. > > > > > > And the automatic GCs were much faster? > > > > > > > Automatic GCs were unnoticeable, as before. Still not sure what > > that means. I think I'll instrument it in C to try to figure out > > what is going on. > > I'm stomped by this discrepancy, and feel that I'm missing something > very basic here... This issue on helm is closed but looks very similar to what is happening here and could maybe give related information: https://github.com/helm/helm/issues/3121 Other issues related to memory leak at helm: https://github.com/helm/helm/issues?q=memory+leak From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 01 05:14:54 2020 Received: (at 43389) by debbugs.gnu.org; 1 Dec 2020 10:14:54 +0000 Received: from localhost ([127.0.0.1]:57933 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kk2gQ-0007ll-Bv for submit@debbugs.gnu.org; Tue, 01 Dec 2020 05:14:54 -0500 Received: from mail.trevorbentley.com ([37.187.5.80]:40396) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kk2gO-0007lV-TH for 43389@debbugs.gnu.org; Tue, 01 Dec 2020 05:14:53 -0500 Received: from localhost (c188-150-0-48.bredband.comhem.se [188.150.0.48]) by mail.trevorbentley.com (Postfix) with ESMTPSA id EE348605FB; Tue, 1 Dec 2020 11:14:46 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mail.trevorbentley.com; s=mail; t=1606817687; bh=GIf40rw2ndipfmRvo4PnP7hjvo8TunyTNAAi82WLNww=; h=From:To:Cc:Cc:Subject:In-Reply-To:References:Date:From; b=elah1czW4JyiM2gw8HiRIrDMlbj1oZe4qFKzcRFoP8kxdZUGVCG9jhO6GDTg6ILp6 03oQHqaxAs1TLfyVXlUBxtSbBkr9jM2BzePK+vwF76ftqQjSpmbP929gmM1nO8toHe DzR7PFOfhe5JNn3iwyNi8haJMESCQSSABZjCpens= From: Trevor Bentley To: Jean Louis , Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time In-Reply-To: References: <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83mtz3p7qy.fsf@gnu.org> <83lfenp78f.fsf@gnu.org> <83h7pbp5wh.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> <87sg8ts766.fsf@mail.trevorbentley.com> <87pn3usr13.fsf@mail.trevorbentley.com> <83blfek8x1.fsf@gnu.org> <87mtyysni5.fsf@mail.trevorbentley.com> <83wny2is7h.fsf@gnu.org> Date: Tue, 01 Dec 2020 11:14:46 +0100 Message-ID: <87k0u1sui1.fsf@mail.trevorbentley.com> MIME-Version: 1.0 Content-Type: text/plain; format=flowed X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, carlos@redhat.com, X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Jean Louis writes: > > This issue on helm is closed but looks very similar to what is > happening here and could maybe give related information: > > https://github.com/helm/helm/issues/3121 > > Other issues related to memory leak at helm: > https://github.com/helm/helm/issues?q=memory+leak This is a different "helm" project, unrelated to emacs as far as I can tell. The emacs helm is here: https://github.com/emacs-helm/helm -Trevor From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 01 05:35:05 2020 Received: (at 43389) by debbugs.gnu.org; 1 Dec 2020 10:35:05 +0000 Received: from localhost ([127.0.0.1]:57976 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kk2zx-0001wt-2V for submit@debbugs.gnu.org; Tue, 01 Dec 2020 05:35:05 -0500 Received: from static.rcdrun.com ([95.85.24.50]:41489) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kk2zv-0001wH-Hb for 43389@debbugs.gnu.org; Tue, 01 Dec 2020 05:35:04 -0500 Received: from localhost ([::ffff:41.202.241.16]) (AUTH: PLAIN admin, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by static.rcdrun.com with ESMTPSA id 00000000002C0010.000000005FC61C50.000020FA; Tue, 01 Dec 2020 10:34:56 +0000 Date: Tue, 1 Dec 2020 13:33:37 +0300 From: Jean Louis To: Trevor Bentley Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time Message-ID: References: <83lfenp78f.fsf@gnu.org> <83h7pbp5wh.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> <87sg8ts766.fsf@mail.trevorbentley.com> <87pn3usr13.fsf@mail.trevorbentley.com> <83blfek8x1.fsf@gnu.org> <87mtyysni5.fsf@mail.trevorbentley.com> <83wny2is7h.fsf@gnu.org> <87k0u1sui1.fsf@mail.trevorbentley.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <87k0u1sui1.fsf@mail.trevorbentley.com> User-Agent: Mutt/2.0 (3d08634) (2020-11-07) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de, carlos@redhat.com, Eli Zaretskii X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * Trevor Bentley [2020-12-01 13:15]: > Jean Louis writes: > > > > This issue on helm is closed but looks very similar to what is happening > > here and could maybe give related information: > > > > https://github.com/helm/helm/issues/3121 > > > > Other issues related to memory leak at helm: > > https://github.com/helm/helm/issues?q=memory+leak > > This is a different "helm" project, unrelated to emacs as far as I can tell. > The emacs helm is here: https://github.com/emacs-helm/helm Ohhh ÷) From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 01 11:00:27 2020 Received: (at 43389) by debbugs.gnu.org; 1 Dec 2020 16:00:27 +0000 Received: from localhost ([127.0.0.1]:33066 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kk84o-00078O-KF for submit@debbugs.gnu.org; Tue, 01 Dec 2020 11:00:27 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52388) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kk84m-00078A-Ag for 43389@debbugs.gnu.org; Tue, 01 Dec 2020 11:00:25 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:57264) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kk84g-0000P9-EP; Tue, 01 Dec 2020 11:00:18 -0500 Received: from [176.228.60.248] (port=2419 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kk84f-000165-BL; Tue, 01 Dec 2020 11:00:18 -0500 Date: Tue, 01 Dec 2020 18:00:12 +0200 Message-Id: <83h7p5ikj7.fsf@gnu.org> From: Eli Zaretskii To: Jean Louis In-Reply-To: (message from Jean Louis on Mon, 30 Nov 2020 22:17:09 +0300) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83mtz3p7qy.fsf@gnu.org> <83lfenp78f.fsf@gnu.org> <83h7pbp5wh.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> <87sg8ts766.fsf@mail.trevorbentley.com> <87pn3usr13.fsf@mail.trevorbentley.com> <83blfek8x1.fsf@gnu.org> <87mtyysni5.fsf@mail.trevorbentley.com> <83wny2is7h.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, carlos@redhat.com, trevor@trevorbentley.com, michael_heerdegen@web.de X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Mon, 30 Nov 2020 22:17:09 +0300 > From: Jean Louis > Cc: Trevor Bentley , fweimer@redhat.com, > 43389@debbugs.gnu.org, dj@redhat.com, carlos@redhat.com, > michael_heerdegen@web.de > > This issue on helm is closed but looks very similar to what is > happening here and could maybe give related information: > > https://github.com/helm/helm/issues/3121 > > Other issues related to memory leak at helm: > https://github.com/helm/helm/issues?q=memory+leak Are these at all relevant? they are not about Emacs, AFAIU. There are many ways to have a leak and run out of memory, most of them unrelated to what happens in our case. From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 01 11:14:39 2020 Received: (at 43389) by debbugs.gnu.org; 1 Dec 2020 16:14:39 +0000 Received: from localhost ([127.0.0.1]:33090 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kk8IZ-0007TG-Cn for submit@debbugs.gnu.org; Tue, 01 Dec 2020 11:14:39 -0500 Received: from mab.sdf.org ([205.166.94.33]:35248 helo=ma.sdf.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kk8IX-0007T7-2C for 43389@debbugs.gnu.org; Tue, 01 Dec 2020 11:14:37 -0500 Received: from akrl by ma.sdf.org with local (Exim 4.92) (envelope-from ) id 1kk8IQ-0004TU-DH; Tue, 01 Dec 2020 16:14:30 +0000 From: Andrea Corallo To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83mtz3p7qy.fsf@gnu.org> <83lfenp78f.fsf@gnu.org> <83h7pbp5wh.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> <87sg8ts766.fsf@mail.trevorbentley.com> <87pn3usr13.fsf@mail.trevorbentley.com> <83blfek8x1.fsf@gnu.org> <87mtyysni5.fsf@mail.trevorbentley.com> <83wny2is7h.fsf@gnu.org> <83h7p5ikj7.fsf@gnu.org> Date: Tue, 01 Dec 2020 16:14:30 +0000 In-Reply-To: <83h7p5ikj7.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 01 Dec 2020 18:00:12 +0200") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, Jean Louis , dj@redhat.com, carlos@redhat.com, trevor@trevorbentley.com, michael_heerdegen@web.de X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii writes: >> Date: Mon, 30 Nov 2020 22:17:09 +0300 >> From: Jean Louis >> Cc: Trevor Bentley , fweimer@redhat.com, >> 43389@debbugs.gnu.org, dj@redhat.com, carlos@redhat.com, >> michael_heerdegen@web.de >> >> This issue on helm is closed but looks very similar to what is >> happening here and could maybe give related information: >> >> https://github.com/helm/helm/issues/3121 >> >> Other issues related to memory leak at helm: >> https://github.com/helm/helm/issues?q=memory+leak > > Are these at all relevant? they are not about Emacs, AFAIU. There are > many ways to have a leak and run out of memory, most of them unrelated > to what happens in our case. That's another helm "The package manager for Kubernetes", not the Elisp package. Andrea From debbugs-submit-bounces@debbugs.gnu.org Thu Dec 03 02:21:08 2020 Received: (at 43389) by debbugs.gnu.org; 3 Dec 2020 07:21:08 +0000 Received: from localhost ([127.0.0.1]:38059 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kkivM-0004Cf-DO for submit@debbugs.gnu.org; Thu, 03 Dec 2020 02:21:08 -0500 Received: from static.rcdrun.com ([95.85.24.50]:50331) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kkivL-0004CF-EI for 43389@debbugs.gnu.org; Thu, 03 Dec 2020 02:21:07 -0500 Received: from localhost ([::ffff:197.157.0.57]) (AUTH: PLAIN admin, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by static.rcdrun.com with ESMTPSA id 00000000002C0007.000000005FC891DB.00007CC1; Thu, 03 Dec 2020 07:20:57 +0000 Date: Thu, 3 Dec 2020 09:30:54 +0300 From: Jean Louis To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time Message-ID: References: <87im9ttfeg.fsf@mail.trevorbentley.com> <399d4681-940a-c782-b91e-750e62840cb6@redhat.com> <83pn40qkyb.fsf@gnu.org> <418751f6-41be-a5e2-908a-ea4196d5fb9b@redhat.com> <83y2inq2sp.fsf@gnu.org> <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83mtz3p7qy.fsf@gnu.org> <83lfenp78f.fsf@gnu.org> <83h7pbp5wh.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: <83v9dpn9em.fsf@gnu.org> User-Agent: Mutt/2.0 (3d08634) (2020-11-07) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, carlos@redhat.com, trevor@trevorbentley.com, michael_heerdegen@web.de X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) I have finished one Emacs session over 2 days and 11 hours with some differences in my behavior, and I have not observed no problem with Emacs swapping hard or having memory problem that impacts my work. I have not upgraded from git as well. - while I did use helm mode in the sense to directly invoke it, I did not turn it on with helm-mode but some functions used helm indirectly. This is because it was said that helm could be problem. Now without using helm I did not encounter problem in by average longer time than before when I did encounter it. - I have not used helm to install packages `helm-system-packages' what I often do - my state for input-method before 1.5 days could not be switched back any more. C-\ did not work. Anything I would do the input method remained. This may or may not be related. To me it looks apparently related. - symon-mode could not be turned off any more. It would say it is turned off but it was not. I think it runs with timer and something happened. It also looks related to this problem just by feeling. It may not be. Because of not being able to change input method back to normal I have to restart session. I have sent one mtrace, there is no report, so I am not sending the previous 2 mtraces which had the memory problem and swapping, that I had to kill emacs. Once it becomes needed, I can send it. I have mtrace for this session and I will send it when somebody tells me it is needed. From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 07 20:07:26 2020 Received: (at 43389) by debbugs.gnu.org; 8 Dec 2020 01:07:26 +0000 Received: from localhost ([127.0.0.1]:55971 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kmRTS-0007xL-Gy for submit@debbugs.gnu.org; Mon, 07 Dec 2020 20:07:26 -0500 Received: from mout.web.de ([212.227.15.14]:57923) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kmRTQ-0007x6-2V for 43389@debbugs.gnu.org; Mon, 07 Dec 2020 20:07:25 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1607389631; bh=GnlCWyT1j6XVJ+Gnemw6UwrwFP+ywos2uIg/bmXjJZw=; h=X-UI-Sender-Class:From:To:Cc:Subject:References:Date:In-Reply-To; b=VAtWEDvQGhUrX9pbk0Fm1e3cSQMnlRvcjIQqotARJYI1uJpOiIPfXZ5yeb6vuu6bN mD3V1tz989kA6CtKwbVIbOrkgIW+sXfRZu5vh1CYVIu54/V+d04VTZg0+GIZnuw4wF miFahDuv8UBJ+q8/b+EGNYWpyv6jDKolPKN+YaZM= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Received: from drachen.dragon ([88.67.99.46]) by smtp.web.de (mrweb006 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MD5jp-1kvY8k2jhJ-0099Eg; Tue, 08 Dec 2020 02:07:11 +0100 From: Michael Heerdegen To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87r1r5428d.fsf@web.de> <87mu1sry72.fsf@mail.linkov.net> <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> <83zh5n4hpd.fsf@gnu.org> <878sbagsx8.fsf@web.de> <87imaefck8.fsf@web.de> <87wnyudws1.fsf@web.de> <83pn4l3mts.fsf@gnu.org> <87v9edk4eb.fsf@igel.home> <87imadcqqk.fsf@web.de> <87h7pxjrh5.fsf@igel.home> <87eel1cq83.fsf@web.de> <4788A848-D51C-4A25-B023-BA029874DBE5@gnu.org> <87a6vpcphp.fsf@web.de> <83ft5h2pks.fsf@gnu.org> <87tutxi2cz.fsf@web.de> Date: Tue, 08 Dec 2020 02:07:10 +0100 In-Reply-To: <87tutxi2cz.fsf@web.de> (Michael Heerdegen's message of "Tue, 10 Nov 2020 17:49:16 +0100") Message-ID: <87y2i9jebl.fsf@web.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Provags-ID: V03:K1:wUBdIOsCy4IjJKEbwzwemn50Qvt9q4br4e21TxLFowqQmB+8ysD gLM5Qy45gAcpr25ol+U9HKtYfEAuAkO+5euCOYYwqV16j9F30uQOUyGyg097BXL7Pt81Lxs lIeJy7t66ao0CWQgcVKBTdkro8s+yLp5Or7022cIVs4gexuzsYbNr3UMj5cfCCrfYzn3e8I tdXYvr7ZgTc6m5WeKnrYQ== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:3ExKy3g0Y7Q=:cssZ1Usixtad8kbgR6biEV kLhO1FFjcm/ltKaD3OQwBEyrLNSCu/4ZmIsIlh3LOlnDIaQ/QiSkWJQQniVBeMM+iwsYzZ9IE 9OnJmVFkQVPIGkiwjV6qPeZ0XFY75TN+89zQPbVhkCxfa/+R4QZiXHlLsMofAndTGgLmgnato PXGOC4hGh5Uop9VFmMshPzgR+ojUu9z7Zk3D2FrjyaelRHNdQMgbolqnC3la33InaCaPfHzuq 8w/NGSSfePz44yjtqizyiLl/LWB/w/Nz3rXKA7kvNWJx557mno7RSf34CQVSPWuHOrsKDssRg VTYE1t8yKjdidDhMJsHHoFo2+DdQM1gn613tOf/q4AnObNOaryg4Ksz55Ym3zMUOuBoT62wBA lkS6ZqumQ5RumgfBVSBIawEM496wmXNJe/pDIOC7rr4BmSIP7dVeLyJTlEaBGIUTafGarciIC SHKBfSWhtll0sUld2EQJxgLkldcwdFgH0hgh0FNpKWILXIqiRTvVkMuBGaG92IGZX2DEC+s0B f5fuOfwNeU1IWfOMGERbm9NqQKiJmaibREOHLDG9280FVa1RN5zQxAATaHwdUNDRWsQRk3FO8 jIy/gWPNnbhlG+372HN96k6Gq4nxHbCOTbmOrppbAQj4XIYXeIiTGnznNoM9sKWrC0Puwqd+y p+4nCZkG00qbTtvBJwrhflQD20XR9MY6CjXnbS9sa0FxhxFIPvI4rEfgmyHpZVIHGyptPQZEe twOh8pQ7pWrYHRAdA2DeeDDNIvBNBhA0zrfb3SG6/HDBS2dNZ0kr/rucwsLACCBdJZhq2IbrG kjZQkgkwmAiBihZYaxEZKSA5mTgpesp6IcIrnFkbPb9P4UC43DDordHFfo5D5Lu6tIwLkeKFk v6qGdMpMGmTesOP2t4EeOp+eBeMM0pMAC7pmS58Jc= X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org, RLAdams@AdamsInfoServ.Com, schwab@linux-m68k.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) --=-=-= Content-Type: text/plain Michael Heerdegen writes: > > Compliance! > > > > (gdb) call (int)malloc_info (0, stdout) > > I'm very sorry, but it's gone. Today, "it" happened again (not sure how many problems were are discussing here, though). I had been cleaning my web.de INBOX with Gnus. Started Gnus, deleted or moved some messages, shut down, and repeated. Then I suddenly saw that our problem was back, Emacs using 6GB or so. The session is gone now (I shut it down normally). I'm sure that at least a significant part of the problem materialized while using (more or less only) Gnus. And here is that heap output you wanted: --=-=-= Content-Type: text/plain Content-Disposition: inline; filename=heap.txt --=-=-= Content-Type: text/plain HTH, Michael. --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 08 00:18:20 2020 Received: (at 43389) by debbugs.gnu.org; 8 Dec 2020 05:18:20 +0000 Received: from localhost ([127.0.0.1]:56283 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kmVOF-0007mn-Vh for submit@debbugs.gnu.org; Tue, 08 Dec 2020 00:18:20 -0500 Received: from static.rcdrun.com ([95.85.24.50]:42245) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kmVOC-0007mW-Vs for 43389@debbugs.gnu.org; Tue, 08 Dec 2020 00:18:19 -0500 Received: from localhost ([::ffff:197.157.0.57]) (AUTH: PLAIN admin, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by static.rcdrun.com with ESMTPSA id 00000000002C1AE2.000000005FCF0C92.00006C04; Tue, 08 Dec 2020 05:18:09 +0000 Date: Tue, 8 Dec 2020 08:13:04 +0300 From: Jean Louis To: Michael Heerdegen Subject: Re: bug#43389: 28.0.50; Emacs memory leaks Message-ID: References: <83pn4l3mts.fsf@gnu.org> <87v9edk4eb.fsf@igel.home> <87imadcqqk.fsf@web.de> <87h7pxjrh5.fsf@igel.home> <87eel1cq83.fsf@web.de> <4788A848-D51C-4A25-B023-BA029874DBE5@gnu.org> <87a6vpcphp.fsf@web.de> <83ft5h2pks.fsf@gnu.org> <87tutxi2cz.fsf@web.de> <87y2i9jebl.fsf@web.de> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: <87y2i9jebl.fsf@web.de> User-Agent: Mutt/2.0 (3d08634) (2020-11-07) X-Spam-Score: 3.6 (+++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: * Michael Heerdegen [2020-12-08 04:08]: > Michael Heerdegen writes: > > > > Compliance! > > > > > > (gdb) call (int)malloc_info (0, stdout) > > > [...] Content analysis details: (3.6 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 3.6 RCVD_IN_SBL_CSS RBL: Received via a relay in Spamhaus SBL-CSS [197.157.0.57 listed in zen.spamhaus.org] -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.0 SPF_PASS SPF: sender matches SPF record X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org, Eli Zaretskii , schwab@linux-m68k.org, RLAdams@AdamsInfoServ.Com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 2.6 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: * Michael Heerdegen [2020-12-08 04:08]: > Michael Heerdegen writes: > > > > Compliance! > > > > > > (gdb) call (int)malloc_info (0, stdout) > > > [...] Content analysis details: (2.6 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 3.6 RCVD_IN_SBL_CSS RBL: Received via a relay in Spamhaus SBL-CSS [197.157.0.57 listed in zen.spamhaus.org] -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.0 SPF_PASS SPF: sender matches SPF record -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager * Michael Heerdegen [2020-12-08 04:08]: > Michael Heerdegen writes: > > > > Compliance! > > > > > > (gdb) call (int)malloc_info (0, stdout) > > > > I'm very sorry, but it's gone. > > Today, "it" happened again (not sure how many problems were are > discussing here, though). > > I had been cleaning my web.de INBOX with Gnus. Started Gnus, deleted or > moved some messages, shut down, and repeated. Then I suddenly saw that > our problem was back, Emacs using 6GB or so. The session is gone now (I > shut it down normally). I'm sure that at least a significant part of > the problem materialized while using (more or less only) Gnus. > > And here is that heap output you wanted: Michael, since I stopped using helm-mode always on, I still use it, but not awlays on and I do not query system packages with helm, since then I have not get problem of swapping hard with 5 GB and more. I could observe that vsize is increasing as Eli asked me for that. And I could observe slow down, like that it slows down being harder to type. But hard disk was not working. I could do garbage collect without waiting 40-50 minutes for function to finish. And I did not update or changed Emacs version yet. I have all the mtraces when it happened and also after when I stopped using helm and waiting for developers to tell if they need those mtraces. Now question is, do you use helm with helm mode always on? Of course it need not be related. But it is interesting as since I stopped using it at least I did not get swapping problem where Emacs tries to get some memory or has troubles with it. Especially I am thinking of the helm function helm-system-packages which always takes longer time as it searches through many packages. It need not be related but I do remember that I had problem with memory hours after using that function or turning helm always on. Since I do not use, I did not yet observe the same problem. Usually it would be after one day. From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 08 07:08:21 2020 Received: (at submit) by debbugs.gnu.org; 8 Dec 2020 12:08:21 +0000 Received: from localhost ([127.0.0.1]:56770 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kmbn3-0006LQ-Bq for submit@debbugs.gnu.org; Tue, 08 Dec 2020 07:08:21 -0500 Received: from lists.gnu.org ([209.51.188.17]:50288) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kmbn1-0006LG-1k for submit@debbugs.gnu.org; Tue, 08 Dec 2020 07:08:20 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:51778) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kmbn0-00042N-Su for bug-gnu-emacs@gnu.org; Tue, 08 Dec 2020 07:08:18 -0500 Received: from static.214.254.202.116.clients.your-server.de ([116.202.254.214]:40596 helo=ciao.gmane.io) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kmbmy-0000Z2-DW for bug-gnu-emacs@gnu.org; Tue, 08 Dec 2020 07:08:18 -0500 Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1kmbmr-0002cw-Sn for bug-gnu-emacs@gnu.org; Tue, 08 Dec 2020 13:08:09 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: bug-gnu-emacs@gnu.org From: "Jose A. Ortega Ruiz" Subject: Re: bug#43389: 28.0.50; Emacs memory leaks Date: Tue, 08 Dec 2020 03:24:27 +0000 Message-ID: <878sa9f09g.fsf@gnus.jao.io> References: <87r1r5428d.fsf@web.de> <875z8fc224.fsf@web.de> <20200915175418.GV20869@maokai> <838sda98jm.fsf@gnu.org> <20200915211209.GW20869@maokai> <83pn6l7ozj.fsf@gnu.org> <20200917204704.GA20217@maokai> <83zh5n4hpd.fsf@gnu.org> <878sbagsx8.fsf@web.de> <87imaefck8.fsf@web.de> <87wnyudws1.fsf@web.de> <83pn4l3mts.fsf@gnu.org> <87v9edk4eb.fsf@igel.home> <87imadcqqk.fsf@web.de> <87h7pxjrh5.fsf@igel.home> <87eel1cq83.fsf@web.de> <4788A848-D51C-4A25-B023-BA029874DBE5@gnu.org> <87a6vpcphp.fsf@web.de> <83ft5h2pks.fsf@gnu.org> <87tutxi2cz.fsf@web.de> <87y2i9jebl.fsf@web.de> Mime-Version: 1.0 Content-Type: text/plain User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Cancel-Lock: sha1:9EDjlRN9lkQj3wB6vYtV0ZNXoXY= X-Attribution: jao X-Clacks-Overhead: GNU Terry Pratchett X-URL: Received-SPF: pass client-ip=116.202.254.214; envelope-from=geb-bug-gnu-emacs@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: 0 X-Spam_score: -0.1 X-Spam_bar: / X-Spam_report: (-0.1 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_06_12=1.543, HEADER_FROM_DIFFERENT_DOMAINS=0.25, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On Tue, Dec 08 2020, Michael Heerdegen wrote: > shut it down normally). I'm sure that at least a significant part of > the problem materialized while using (more or less only) Gnus. I also have anecdotal evidence of that. Quite systematically, i start emacs, things load, i'm around 300Mb or RAM, quite stable. Then i start Gnus, read some groups, and, ver soon after that, while emacs is basically idle, i can see RAM increasing by ~10Mb every ~10secs until it reaches something like 800-900Mb. I've checked and i think the only timer with a periodicity of 10secs always present when that happens is undo-auto--boundary-timer. (Sometimes there's also slack-ws-ping, which checks that a websocket connection is open, but i think i've seen this behaviour without that timer on). I'm sorry i don't have the time to obtain better benchmark data. Just mentioning the above in case it rings a bell to someone knowledgeable. Cheers, jao From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 08 07:38:03 2020 Received: (at submit) by debbugs.gnu.org; 8 Dec 2020 12:38:03 +0000 Received: from localhost ([127.0.0.1]:56801 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kmcFn-0003Fp-If for submit@debbugs.gnu.org; Tue, 08 Dec 2020 07:38:03 -0500 Received: from lists.gnu.org ([209.51.188.17]:57952) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kmcFj-0003FJ-MG for submit@debbugs.gnu.org; Tue, 08 Dec 2020 07:38:02 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:58246) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kmcFj-0003PG-FP for bug-gnu-emacs@gnu.org; Tue, 08 Dec 2020 07:37:59 -0500 Received: from se05.route25.eu ([2a00:f10:121:b00:43f:e2ff:fe00:1cfb]:55777) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kmcFf-0002X4-LN for bug-gnu-emacs@gnu.org; Tue, 08 Dec 2020 07:37:59 -0500 Date: Tue, 8 Dec 2020 13:37:37 +0100 From: Russell Adams To: bug-gnu-emacs@gnu.org Subject: Re: bug#43389: 28.0.50; Emacs memory leaks Message-ID: <20201208123737.GZ6337@maokai> Mail-Followup-To: bug-gnu-emacs@gnu.org References: <87v9edk4eb.fsf@igel.home> <87imadcqqk.fsf@web.de> <87h7pxjrh5.fsf@igel.home> <87eel1cq83.fsf@web.de> <4788A848-D51C-4A25-B023-BA029874DBE5@gnu.org> <87a6vpcphp.fsf@web.de> <83ft5h2pks.fsf@gnu.org> <87tutxi2cz.fsf@web.de> <87y2i9jebl.fsf@web.de> <878sa9f09g.fsf@gnus.jao.io> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <878sa9f09g.fsf@gnus.jao.io> X-Originating-IP: 185.87.185.80 X-SpamExperts-Domain: out.pcextreme.nl X-SpamExperts-Username: 185.87.185.80 Authentication-Results: route25.eu; auth=pass smtp.auth=185.87.185.80@out.pcextreme.nl X-SpamExperts-Outgoing-Class: ham X-SpamExperts-Outgoing-Evidence: Combined (0.15) X-Recommended-Action: accept X-Filter-ID: Pt3MvcO5N4iKaDQ5O6lkdGlMVN6RH8bjRMzItlySaT9WLQux0N3HQm8ltz8rnu+BPUtbdvnXkggZ 3YnVId/Y5jcf0yeVQAvfjHznO7+bT5wlAxozo778b01LESzM9ruWD181ZRkJ75zosNBWoY/fPNcV PSoHm0W/3adFfiYl2ntOV5feuIFvRzXh/E+hTSJP/T4GcPvCLvSpAEEGy7kYxsD3QRUnhlexiXT3 xXuXeIhevFP+kOiMW3ZJfjMJYMEj+gaXrHkgRC7/tI3CjXmVyqkKR3aaaYMFKczxejwYqhbHh0cQ L0Ci0sRm4Wh/iZxmPmKsRAie6X5VUup6QaxbpcztdQUSqk/AeLi65+4s/LrywTM2yEHEhvC9Izsy /NENTMQ3Kg3hL2oXz5A5E5R/dS4GkJ5hfB+qWugfDEytZYoACfRtBjLzEjgIZNLWhI/Mshn3T8Ox KyIrAogwLlirll+u0Sc2bgjgy6NE5WzPnrJ1fJyKyenPq733oZ8bAyJmHQrtppYmxMktfUX7kfB+ UdezYqxGMqsKjARq8PBC4qgxMmglBiLsgrvXOb7qEGUwgxHIagHkgJmlqPNWnLI1oovhSJcbnX/H QqL/X9rNCJCc6iESJvKm1NV8gkr+Wu8ScVDXinOVyuIpITQ9z3M3DO7OWuqF1+w/pTOKTb9S095k zceLZ1B7juE/8qhbN5oMeVGYiG9bBjJzOBUnoIYvw5pAsDwSmLLjI7Hj98S4eAnin8trLB1aNUk3 bKYC3mDyT854kXwv2RX/MHp3a7oN/i32EoSnB0KQ6B3xt8UP9IrQLp/miaSDdXxJiAZb1EzkA9VQ u12rxRZzC8qBatCnanu594Bg9F0487570noQlWutNWqkIsYohMMl/dydeuL2ctgzcDoFd+96Xw4Q UNtTnT5USTuJ4+3886sgmKmkaUBIi2jULgpXi1xBXhUizdxdDneFtYF4v0IUhnwA7zUt/xXczwGF xR7aC6zIFLawTOmNvxgu6jFRoaLzVpT+CP36s6RbLfB6BI3XJUys1lM3IMGhDC7qKEsgLqHNXMxe jlB49DjiWowOnKvI8aF4jzAuZNIARVagEMhjyGL5llQ69151eclHOr67cHgLgz4Hvn0= X-Report-Abuse-To: spam@semaster01.route25.eu Received-SPF: pass client-ip=2a00:f10:121:b00:43f:e2ff:fe00:1cfb; envelope-from=rladams@adamsinfoserv.com; helo=se05.route25.eu X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) On Tue, Dec 08, 2020 at 03:24:27AM +0000, Jose A. Ortega Ruiz wrote: > On Tue, Dec 08 2020, Michael Heerdegen wrote: > > > shut it down normally). I'm sure that at least a significant part of > > the problem materialized while using (more or less only) Gnus. > > I also have anecdotal evidence of that. Quite systematically, i start > emacs, things load, i'm around 300Mb or RAM, quite stable. Then i start > Gnus, read some groups, and, ver soon after that, while emacs is > basically idle, i can see RAM increasing by ~10Mb every ~10secs until it > reaches something like 800-900Mb. I have consistently encountered this memory leak without a clear path to reproducing it other than regular use over time, and I don't use Gnus. I read mail in Mutt in another terminal window. Thus I'm not sure Gnus is the culprit. ------------------------------------------------------------------ Russell Adams RLAdams@AdamsInfoServ.com PGP Key ID: 0x1160DCB3 http://www.adamsinfoserv.com/ Fingerprint: 1723 D8CA 4280 1EC9 557F 66E8 1154 E018 1160 DCB3 From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 08 11:30:40 2020 Received: (at 43389) by debbugs.gnu.org; 8 Dec 2020 16:30:40 +0000 Received: from localhost ([127.0.0.1]:59360 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kmfsu-0000ae-CX for submit@debbugs.gnu.org; Tue, 08 Dec 2020 11:30:40 -0500 Received: from mout.web.de ([217.72.192.78]:37663) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kmfsr-0000SQ-Ce for 43389@debbugs.gnu.org; Tue, 08 Dec 2020 11:30:39 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1607444994; bh=NDbY2F+Rq9T3O+vPFZ+2SoX1ifb49rlNgPdR06I/lpo=; h=X-UI-Sender-Class:From:To:Cc:Subject:References:Date:In-Reply-To; b=qsTaJY0YPV66gFm+YY837R04jvNJRDdiXStZ/VW8jsfsJGkBb/DtMNkcI2YR4cqpW qGnkFI0x5jk2aOUeRz5QHxikRqsYP94W1pgKRHxRDsgiXTjsniHtORvTVxzPD+z99N NNRl0qvTo/7JGle9sjUPAqWV7tJHNgrlerLjVxvM= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Received: from drachen.dragon ([88.67.99.46]) by smtp.web.de (mrweb106 [213.165.67.124]) with ESMTPSA (Nemesis) id 1MxHYA-1jy1CT44am-00xZEp; Tue, 08 Dec 2020 17:29:54 +0100 From: Michael Heerdegen To: Jean Louis Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <83pn4l3mts.fsf@gnu.org> <87v9edk4eb.fsf@igel.home> <87imadcqqk.fsf@web.de> <87h7pxjrh5.fsf@igel.home> <87eel1cq83.fsf@web.de> <4788A848-D51C-4A25-B023-BA029874DBE5@gnu.org> <87a6vpcphp.fsf@web.de> <83ft5h2pks.fsf@gnu.org> <87tutxi2cz.fsf@web.de> <87y2i9jebl.fsf@web.de> Date: Tue, 08 Dec 2020 17:29:52 +0100 In-Reply-To: (Jean Louis's message of "Tue, 8 Dec 2020 08:13:04 +0300") Message-ID: <87lfe8jm67.fsf@web.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:AlQrTkKexgbwF5QlzyELVH13UolUDBBm2trTSJtVOXwD4vri3PA RwzWdUKda+LAeOM4yfK/AZQLQxhInVHmmN4DKZiy5E8KdJyFwxt71fwFcgcR51zFPmzixbv Xb6AqIF2mJ0MIYMIGY3xj1uFaJ12mtnSdHRn7pXQlMgxtry3u97qQSoz/gOwnjldf/4Qnov v7bfi13/xHAaRR4k+eKIw== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:Jj3oelGG4Ds=:dsuovmlsk867Auf7GGaJD8 2gb7eSHpWbzGIvvppje+RnwmA04kszWZSQi2dWl+to6RpNgD5gcOwPC7iwfCBwRCvkrtK6Mcb xnl74LLnTZetn/+hFRmdbeZC09n6eJdGQ7EL0bb4ijsQCOt1bKrXhnL7Vwu9AVqv+oUmu92P/ lE3Z+f57v3bnESwSzBVoiefA1iaUJb4+EjTwy/OHhOns2JUA4PWIB5xzlhzpCm2+svjY3mpRh dIoAWHOd+1wSjzKkifOLhuLguv4EVLagY83Z0SC/s5RqbzMuZoFyVVt4gzkNMoyom7mejuGMU w3wCP+d6mDxFcjzTJsISt8rZ/cZ7tRZa3dBjAaKdxhCa3r1ZGzAo+uMgqW+NCHXYS8bldlhdu Fla7OWTL5FvQlEpqsZh3IJ4IOGBCzHzomv4US+DweEXXmMDZoPtcppJWVqswkWHU7V1TiMYml Oe2YP/2WWv0cvBXPRVLJjIqlK1vYvQP0+D5DlgATttOiTqdspkyUvlWlLBQIKrXSigd+vqXpO iWHSUWBmITK5fgLij1DCoKLWi2UyvwuPAek0ZR7wIPsli/ExcLgjnYojum+97sinsxp0jvbad 6GnAhe86+/iimsTURUSRGQe+/i/TfX/yqxFDxLyqirf8lE7JYDJWykCAHL8snl05odtjbg5TX tQVrD296Fsbt60XwsMPyrdJNXum4tQaN+WaaDNIJLrR1vUaYb+rew1mLAsYu3KwUFp0pPHbkC Ti/FgG7Z4P87XKZ/QtqFR6TDGhuuUmyc2gEGlaL5Fkc5lXh/bXPNh9JPJHuoN868q9H6dGxuo n4pEPa7EIN+LCGfys09Iv9lKvV/yv6wuKQaLlgrXfOud+DJImkKJeTs6LriPNS19duVblO+6e zCBFWi3qkXxSVsuII+i7H9zb23HYhwn68UDLctUdY= X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org, Eli Zaretskii , schwab@linux-m68k.org, RLAdams@AdamsInfoServ.Com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Jean Louis writes: > Michael, since I stopped using helm-mode always on, I still use it, > but not awlays on and I do not query system packages with helm, since > then I have not get problem of swapping hard with 5 GB and more. Yesterday it was not swapping yet. I'm monitoring memory usage with gkrellm. When it starts blinking red, which was the case yesterday, memory starts running out. It skipped the blinking yellow state, which means that a lot of memory must have been acquired in a short time period. > Now question is, do you use helm with helm mode always on? I regularly use some Helm commands (e.g. for C-x C-f or M-x) but not helm-mode. > I could observe that vsize is increasing as Eli asked me for that. And > I could observe slow down, like that it slows down being harder to > type. But hard disk was not working. I could do garbage collect > without waiting 40-50 minutes for function to finish. I think we see different symptoms. I don't see any slow-down at all (unless swapping starts, obviously). When I do M-x garbage-collect, it finishes immediately without freeing an significant amount of memory. > Of course it need not be related. But it is interesting as since I > stopped using it at least I did not get swapping problem where Emacs > tries to get some memory or has troubles with it. > > Especially I am thinking of the helm function helm-system-packages > which always takes longer time as it searches through many > packages. I was not using this command. Maybe our problems have a similar cause, but seems they are a bit different. Regards, Michael. From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 08 16:50:48 2020 Received: (at 43389) by debbugs.gnu.org; 8 Dec 2020 21:50:48 +0000 Received: from localhost ([127.0.0.1]:60021 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kmksh-0004Nw-Mu for submit@debbugs.gnu.org; Tue, 08 Dec 2020 16:50:47 -0500 Received: from mail.trevorbentley.com ([37.187.5.80]:32792) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kmksf-0004Ni-Di for 43389@debbugs.gnu.org; Tue, 08 Dec 2020 16:50:46 -0500 Received: from localhost (c188-150-0-48.bredband.comhem.se [188.150.0.48]) by mail.trevorbentley.com (Postfix) with ESMTPSA id F0A6C6055C; Tue, 8 Dec 2020 22:50:38 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mail.trevorbentley.com; s=mail; t=1607464239; bh=JCqT/DyRtltRoG+bUrsTyQGoQ50fOG+dY41cFFXqEW4=; h=From:To:Cc:Cc:Subject:In-Reply-To:References:Date:From; b=rJkdgc62GnqfpRDbKuvoIKo/D6gaCQRdi13RlxnsCGxZjJukx3ezBhGO6D9U63fKV cqRLnzp0RSHi4JbmCensAJ+4H3/LZYUviU+j1aVrzlakJPP6Iqj+CyQDIBD3l2UmDf 2JvrD9aBeYUwHgL78rFrWxhFt36muTIWrFQeBvR8= From: Trevor Bentley To: Eli Zaretskii , carlos@redhat.com Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time In-Reply-To: <87pn3usr13.fsf@mail.trevorbentley.com> References: <83y2j0qb2v.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> <87o8jltglg.fsf@mail.trevorbentley.com> <43b8f55b-d201-76e0-2d19-d97dec8798aa@redhat.com> <87im9ttfeg.fsf@mail.trevorbentley.com> <399d4681-940a-c782-b91e-750e62840cb6@redhat.com> <83pn40qkyb.fsf@gnu.org> <418751f6-41be-a5e2-908a-ea4196d5fb9b@redhat.com> <83y2inq2sp.fsf@gnu.org> <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83mtz3p7qy.fsf@gnu.org> <83lfenp78f.fsf@gnu.org> <83h7pbp5wh.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> <87sg8ts766.fsf@mail.trevorbentley.com> <87pn3usr13.fsf@mail.trevorbentley.com> Date: Tue, 08 Dec 2020 22:50:37 +0100 Message-ID: <87eek0rmqa.fsf@mail.trevorbentley.com> MIME-Version: 1.0 Content-Type: text/plain; format=flowed X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, michael_heerdegen@web.de, X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Trevor Bentley writes: I'm back with 5 mtraces: https://trevorbentley.com/mtrace/ Keep in mind that these things compress well, so the largest one is on the order of 45GB when decompressed. These are from various emacs instances, some running the emacs-slack package and others just editing elisp code. All inflated to several gigabytes of heap over 1-4 days. Log files similar to the ones I've been posting in this thread are in the archives. I don't think there's any point of including them here anymore, as they're all about the same. I've been too busy to modify emacs to print garbage collects, but these still show really long (garbage-collect) calls, often exceeding 15 minutes. Last thing: I've had one unused (graphical) emacs session running for 16 days now, minimized. It's still at 57MB RSS. I can definitively say that the leak doesn't occur unless emacs is actively used, for all the good that does us. -Trevor From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 08 17:12:57 2020 Received: (at 43389) by debbugs.gnu.org; 8 Dec 2020 22:12:57 +0000 Received: from localhost ([127.0.0.1]:60031 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kmlE8-0004xN-S0 for submit@debbugs.gnu.org; Tue, 08 Dec 2020 17:12:57 -0500 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:34900) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kmlE6-0004xF-7H for 43389@debbugs.gnu.org; Tue, 08 Dec 2020 17:12:56 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1607465574; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=8gcuNkyLdtDKOIFnzW1lbwsv0bfS5ZmNa7pMf8DF7ws=; b=Sn/RGLWKtJn2arq7tZwKo1yTAZbAOrXjNRN8EyPENLcb1U8EGF3xsYNowEg7eKTAL4L2y8 grJbq1dHDLAIXfVhS2Hc5F2TK79p6/ltS33mfG7205/397TV9lY59TIQY8tw5ZpOrAAAEc s1PpkmS94Tmb5yaWMAMJ9yUTufzH/Bg= Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-359-4vUq2VGQO-WOYxo4nVWSEQ-1; Tue, 08 Dec 2020 17:12:44 -0500 X-MC-Unique: 4vUq2VGQO-WOYxo4nVWSEQ-1 Received: by mail-qk1-f198.google.com with SMTP id x74so6454561qkb.12 for <43389@debbugs.gnu.org>; Tue, 08 Dec 2020 14:12:44 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=8gcuNkyLdtDKOIFnzW1lbwsv0bfS5ZmNa7pMf8DF7ws=; b=uVxgZWIHRcW0qxBs9WuZVtFw79ZfQMCLu+PxIGKa/QDXWeM9LujVzE0sB9iHPkbp4t k7o2TFkn0tGU9wKRbpKOfsHuLy7hgz8tRU+hxZz5kVM4zXuxJx8C1GB3slgGSRkWl5uu 3wjwkO85ec0+fudWZOOMdMtsBSNPcz9HnDqbAc//dJ53LyK2e660msONxV8QAhXV1w4z owChYoZXfTLd+40As9PwpRQWkBC1KIlISBG5K1WpkDSUtxIfrnQpHVpSCWkmO45fpJ3f zFr1PQWmb9kO6GNTLSfqXPmOW4qAcK7UFIePQSrRa4lwW6k/dQV+zj9HKcwLuWQW43Z3 k7lQ== X-Gm-Message-State: AOAM531le1l1xV8mHP2HWERCAhlwZIgOrluwUjuClpIcPJmYxl56HYxV ITalvOClyzo84qy/ztHawwTHWPfGzEGCmXxHy2JTxJYIFG2lRcOYC7moPBx4YqWDPQFcB9lcZXI gIvdyvJILBbIv4VQ= X-Received: by 2002:ae9:e007:: with SMTP id m7mr32814302qkk.220.1607465564133; Tue, 08 Dec 2020 14:12:44 -0800 (PST) X-Google-Smtp-Source: ABdhPJyUoSxLkQ5W755wjCYrb2d4gcrGA5D4Hw6s+C2+zSK+6ZrAtBjeOVPdmXT24vb+2JyLJqKF3A== X-Received: by 2002:ae9:e007:: with SMTP id m7mr32814275qkk.220.1607465563908; Tue, 08 Dec 2020 14:12:43 -0800 (PST) Received: from [192.168.1.16] (198-84-214-74.cpe.teksavvy.com. [198.84.214.74]) by smtp.gmail.com with ESMTPSA id e7sm5435qkn.117.2020.12.08.14.12.42 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 08 Dec 2020 14:12:43 -0800 (PST) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time To: Trevor Bentley , Eli Zaretskii References: <83y2j0qb2v.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> <87o8jltglg.fsf@mail.trevorbentley.com> <43b8f55b-d201-76e0-2d19-d97dec8798aa@redhat.com> <87im9ttfeg.fsf@mail.trevorbentley.com> <399d4681-940a-c782-b91e-750e62840cb6@redhat.com> <83pn40qkyb.fsf@gnu.org> <418751f6-41be-a5e2-908a-ea4196d5fb9b@redhat.com> <83y2inq2sp.fsf@gnu.org> <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83mtz3p7qy.fsf@gnu.org> <83lfenp78f.fsf@gnu.org> <83h7pbp5wh.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> <87sg8ts766.fsf@mail.trevorbentley.com> <87pn3usr13.fsf@mail.trevorbentley.com> <87eek0rmqa.fsf@mail.trevorbentley.com> From: Carlos O'Donell Organization: Red Hat Message-ID: <7e0ce46f-ccb3-ae85-c553-75bd3b487677@redhat.com> Date: Tue, 8 Dec 2020 17:12:41 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0 MIME-Version: 1.0 In-Reply-To: <87eek0rmqa.fsf@mail.trevorbentley.com> Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=carlos@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, michael_heerdegen@web.de, dj@redhat.com, bugs@gnu.support X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 12/8/20 4:50 PM, Trevor Bentley wrote: > Trevor Bentley writes: > > I'm back with 5 mtraces: > > https://trevorbentley.com/mtrace/ > > Keep in mind that these things compress well, so the largest one is on the order of 45GB when decompressed. > > These are from various emacs instances, some running the emacs-slack package and others just editing elisp code.  All inflated to several gigabytes of heap over 1-4 days. > > Log files similar to the ones I've been posting in this thread are in the archives.  I don't think there's any point of including them here anymore, as they're all about the same. > > I've been too busy to modify emacs to print garbage collects, but these still show really long (garbage-collect) calls, often exceeding 15 minutes. > > Last thing: I've had one unused (graphical) emacs session running for 16 days now, minimized.  It's still at 57MB RSS.  I can definitively say that the leak doesn't occur unless emacs is actively used, for all the good that does us. I'm fetching this trace for analysis: https://trevorbentley.com/mtrace/mtrace9.tar.bz2 -- Cheers, Carlos. From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 08 17:15:39 2020 Received: (at 43389) by debbugs.gnu.org; 8 Dec 2020 22:15:39 +0000 Received: from localhost ([127.0.0.1]:60037 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kmlGl-00052W-Bz for submit@debbugs.gnu.org; Tue, 08 Dec 2020 17:15:39 -0500 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:39950) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kmlGi-00052M-Q8 for 43389@debbugs.gnu.org; Tue, 08 Dec 2020 17:15:38 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1607465736; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=SYQISvuWzpsKbu2O+mIUa7Ul8mL6G37ESQyD4zu8h/w=; b=V+AK74X7SbAIF7hjR5HLpalx5vYWVU1prEg3llWMgmFAQDwfwyeulg9YbskMuSq9dOXKKr CJy06+hY7Um+1LG+wIQ01YKbQfKwr+CYKV24kEcklZ2P8wG/Wxs3T0ZOtQ/EK4dBTuj0Br WR2lqllEPQHcfBKT4Ee+QiridooaKAw= Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-263-EO9wMjjaMFufKtvssuIJ8Q-1; Tue, 08 Dec 2020 17:15:32 -0500 X-MC-Unique: EO9wMjjaMFufKtvssuIJ8Q-1 Received: by mail-qt1-f197.google.com with SMTP id n95so14960338qte.16 for <43389@debbugs.gnu.org>; Tue, 08 Dec 2020 14:15:32 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=SYQISvuWzpsKbu2O+mIUa7Ul8mL6G37ESQyD4zu8h/w=; b=hJUr1SfMtnN1grqns+knU+yI3Z2/dX2rB5RkgdgcaOrkhAKU4pkrJNsLocgS+rz5gV 2Y4TPDB49Z+vV4Cm51j7h1yrk7UIn7ow6Qxlv9j149ixt5G7gfp5c8+j2ZFj9cGTqsjP n7qLj4+rE3kjjd/FM/2AbjrKtLlJsBnloJozFISYHtERTBsfJAQbgK4o7cOp3kANfy4l d4RzMXUvE+MobjQ4UhBDU9/RaiDH0ccQQCppO/11nzEPf09iEnXB9IW/qdXcpyt0MBvG RA/+8gTJKtrY2ACMxAgBtfBEy1GfRKGtOd6UHUzbZk0c9IXL78k5oUgGKgf3Uy3jOLiA FwBQ== X-Gm-Message-State: AOAM532a70wcWsKB/d+RZPt36rdEhoOALWbSQkkP/dlMibGu6EeQbU4Q u0EEpM7XftHlPL4ZeQtcQcLsWk3TYYHam/Up+UI0XdRg0WmkATS3ZZ4zqgRvjY2bYkq7zqRkirZ xe62j88wKsE3ZdNg= X-Received: by 2002:a05:620a:4054:: with SMTP id i20mr7660805qko.72.1607465731706; Tue, 08 Dec 2020 14:15:31 -0800 (PST) X-Google-Smtp-Source: ABdhPJwwuoYv9/vTk3+d5RiVJyydFvNdiQP2qfSKgeR95xgN/FoTzFFfps4td6PiOabssNVrWDwnEA== X-Received: by 2002:a05:620a:4054:: with SMTP id i20mr7660776qko.72.1607465731461; Tue, 08 Dec 2020 14:15:31 -0800 (PST) Received: from [192.168.1.16] (198-84-214-74.cpe.teksavvy.com. [198.84.214.74]) by smtp.gmail.com with ESMTPSA id 76sm5798qkg.134.2020.12.08.14.15.30 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 08 Dec 2020 14:15:30 -0800 (PST) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time To: Eli Zaretskii References: <83y2j0qb2v.fsf@gnu.org> <831rgppg3w.fsf@gnu.org> <83zh3czbvz.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> <87o8jltglg.fsf@mail.trevorbentley.com> <43b8f55b-d201-76e0-2d19-d97dec8798aa@redhat.com> <87im9ttfeg.fsf@mail.trevorbentley.com> <399d4681-940a-c782-b91e-750e62840cb6@redhat.com> <83pn40qkyb.fsf@gnu.org> <418751f6-41be-a5e2-908a-ea4196d5fb9b@redhat.com> <83y2inq2sp.fsf@gnu.org> <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83lfemolvs.fsf@gnu.org> From: Carlos O'Donell Organization: Red Hat Message-ID: <9d38c8f6-f14a-39b5-5ed7-3da8b718035b@redhat.com> Date: Tue, 8 Dec 2020 17:15:29 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0 MIME-Version: 1.0 In-Reply-To: <83lfemolvs.fsf@gnu.org> Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=carlos@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, michael_heerdegen@web.de, trevor@trevorbentley.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 11/27/20 10:33 AM, Eli Zaretskii wrote: >> Cc: trevor@trevorbentley.com, bugs@gnu.support, fweimer@redhat.com, >> 43389@debbugs.gnu.org, dj@redhat.com, michael_heerdegen@web.de >> From: Carlos O'Donell >> Date: Fri, 27 Nov 2020 00:04:56 -0500 >> >> lisp_align_malloc (alloc.c:1195) >> Fcons (alloc.c:2694) >> concat (fns.c:730) >> Fcopy_sequence (fns.c:598) >> timer_check (keyboard.c:4395) >> wait_reading_process_output (process.c:5334) >> sit_for (dispnew.c:6056) >> read_char (keyboard.c:2742) >> read_key_sequence (keyboard.c:9551) >> command_loop_1 (keyboard.c:1354) >> internal_condition_case (eval.c:1365) >> command_loop_2 (keyboard.c:1095) >> internal_catch (eval.c:1126) >> command_loop (keyboard.c:1074) >> recursive_edit_1 (keyboard.c:718) >> Frecursive_edit (keyboard.c:790) >> main (emacs.c:2080) >> >> There is a 171MiB's worth of allocations in that path. > > Are there chains of calls that are responsible for more memory > allocated than 171MB? Yes, you can view them all yourself, just fetch the massif data and use massif-visualizer to view the data: http://trevorbentley.com/massif.out.3364630 -- Cheers, Carlos. From debbugs-submit-bounces@debbugs.gnu.org Wed Dec 09 15:08:15 2020 Received: (at submit) by debbugs.gnu.org; 9 Dec 2020 20:08:15 +0000 Received: from localhost ([127.0.0.1]:36232 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kn5l1-0007XM-Gw for submit@debbugs.gnu.org; Wed, 09 Dec 2020 15:08:15 -0500 Received: from lists.gnu.org ([209.51.188.17]:37494) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kn5kz-0007XE-Tw for submit@debbugs.gnu.org; Wed, 09 Dec 2020 15:08:14 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:50198) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kn5kz-0008TE-OV for bug-gnu-emacs@gnu.org; Wed, 09 Dec 2020 15:08:13 -0500 Received: from static.214.254.202.116.clients.your-server.de ([116.202.254.214]:54626 helo=ciao.gmane.io) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kn5ky-0004mR-8B for bug-gnu-emacs@gnu.org; Wed, 09 Dec 2020 15:08:13 -0500 Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1kn5ks-000A61-CI for bug-gnu-emacs@gnu.org; Wed, 09 Dec 2020 21:08:06 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: bug-gnu-emacs@gnu.org From: "Jose A. Ortega Ruiz" Subject: Re: bug#43389: 28.0.50; Emacs memory leaks Date: Wed, 09 Dec 2020 19:41:36 +0000 Message-ID: <87r1nywyvj.fsf@gnus.jao.io> References: <87v9edk4eb.fsf@igel.home> <87imadcqqk.fsf@web.de> <87h7pxjrh5.fsf@igel.home> <87eel1cq83.fsf@web.de> <4788A848-D51C-4A25-B023-BA029874DBE5@gnu.org> <87a6vpcphp.fsf@web.de> <83ft5h2pks.fsf@gnu.org> <87tutxi2cz.fsf@web.de> <87y2i9jebl.fsf@web.de> <878sa9f09g.fsf@gnus.jao.io> <20201208123737.GZ6337@maokai> Mime-Version: 1.0 Content-Type: text/plain User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Cancel-Lock: sha1:2vPS7EhgbiKe7LJVOB32GmJFm5Y= X-Attribution: jao X-Clacks-Overhead: GNU Terry Pratchett X-URL: Received-SPF: pass client-ip=116.202.254.214; envelope-from=geb-bug-gnu-emacs@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -15 X-Spam_score: -1.6 X-Spam_bar: - X-Spam_report: (-1.6 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.25, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.1 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.1 (--) On Tue, Dec 08 2020, Russell Adams wrote: > On Tue, Dec 08, 2020 at 03:24:27AM +0000, Jose A. Ortega Ruiz wrote: >> On Tue, Dec 08 2020, Michael Heerdegen wrote: >> >> > shut it down normally). I'm sure that at least a significant part of >> > the problem materialized while using (more or less only) Gnus. >> >> I also have anecdotal evidence of that. Quite systematically, i start >> emacs, things load, i'm around 300Mb or RAM, quite stable. Then i start >> Gnus, read some groups, and, ver soon after that, while emacs is >> basically idle, i can see RAM increasing by ~10Mb every ~10secs until it >> reaches something like 800-900Mb. > > I have consistently encountered this memory leak without a clear path > to reproducing it other than regular use over time, and I don't use > Gnus. I read mail in Mutt in another terminal window. > > Thus I'm not sure Gnus is the culprit. Neither am i :) Actually, i just observed the pattern above (RAM going up by 1Mb/sec bringing total memory from 300Mb to 800Mb, then stopping) before starting Gnus. So i guess that, if Gnus plays any role, it must be indirectly. jao -- I don't necessarily agree with everything I say. -Marshall McLuhan (1911-1980) From debbugs-submit-bounces@debbugs.gnu.org Wed Dec 09 15:25:49 2020 Received: (at 43389) by debbugs.gnu.org; 9 Dec 2020 20:25:49 +0000 Received: from localhost ([127.0.0.1]:36256 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kn621-0007xb-20 for submit@debbugs.gnu.org; Wed, 09 Dec 2020 15:25:49 -0500 Received: from quimby.gnus.org ([95.216.78.240]:42190) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kn61z-0007xO-9I for 43389@debbugs.gnu.org; Wed, 09 Dec 2020 15:25:47 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=GXeapL4e/GV4Mr3EACbYhk2UktWxoomuZXxAooj2sXM=; b=FTVeB0xayjuP2NFRy6HXS8/Zb/ MrOss2VQ8nQ3rdoWT1gYHo4v/wGI/OqpvLo1ejziZdjJWmcQGLcl0+9PKzIqbwNiz9lAISKcYzT4c wO2EFQwoSyGyYY34bbObb5Gfv8FUpUsy3ytmY8WCpFDNhE+BPaDm+3VQ7wthPBTrfczo=; Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kn61q-0005Gf-A6; Wed, 09 Dec 2020 21:25:40 +0100 From: Lars Ingebrigtsen To: "Jose A. Ortega Ruiz" Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87v9edk4eb.fsf@igel.home> <87imadcqqk.fsf@web.de> <87h7pxjrh5.fsf@igel.home> <87eel1cq83.fsf@web.de> <4788A848-D51C-4A25-B023-BA029874DBE5@gnu.org> <87a6vpcphp.fsf@web.de> <83ft5h2pks.fsf@gnu.org> <87tutxi2cz.fsf@web.de> <87y2i9jebl.fsf@web.de> <878sa9f09g.fsf@gnus.jao.io> <20201208123737.GZ6337@maokai> <87r1nywyvj.fsf@gnus.jao.io> Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwAgMAAAAqbBEUAAAABGdBTUEAALGPC/xhBQAAACBj SFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEU4ODuEPmvLzMz/ //9s1jDoAAAAAWJLR0QDEQxM8gAAAAlwSFlzAAAuIwAALiMBeKU/dgAAAAd0SU1FB+QMCRQVKZfR JGsAAAE/SURBVCjPRdGxbsIwEADQOxQjtZOHeCifwFc4FSxMtpSL2s4wNF/Rrp1opTIwUQkQua/s nR0HS4n8fOezcwGACiz6hshDHjWA07kJ8iKgANgmGONXvqBKuSPQ2wlIzT2CkapQYFtn7QSwtSnw UNfGg8nVYPt0Lz3/5k8wCR4Wm0v0VZMjiyXgHlw+h8/Yn8CQYsZX5jNgp5h/MfMNMCgMJ5iQ97Cm ZcymyCXAw04wKNZyUY3wmPaTEHLkkHAS7IK9Jpw17S1msOSYLk+5SgW2/aGUlo89Pk83IMd+kGIZ 2PEv875cdN5sJnR7pPe2RIJzK/lJPjWEIh7a2XpsonsNuMhpKkM340dAP4Tcbh3LIWgB0rlf8kl/ vsUU4b/hBRxNowXXUKsLkWKUPWtKc3kEVGAzQlqQ3n48SmsBj3L4P02aiwS5jZmyAAAAJXRFWHRk YXRlOmNyZWF0ZQAyMDIwLTEyLTA5VDIwOjIxOjQxKzAwOjAwtMlGhwAAACV0RVh0ZGF0ZTptb2Rp ZnkAMjAyMC0xMi0wOVQyMDoyMTo0MSswMDowMMWU/jsAAAAASUVORK5CYII= X-Now-Playing: =?utf-8?Q?R=C3=B3isin?= Murphy's _Murphy's Law (Crooked Remixes)_: "Murphy's Law (Crooked Cowbelly 1)" Date: Wed, 09 Dec 2020 21:25:37 +0100 In-Reply-To: <87r1nywyvj.fsf@gnus.jao.io> (Jose A. Ortega Ruiz's message of "Wed, 09 Dec 2020 19:41:36 +0000") Message-ID: <87tusuvi9q.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: "Jose A. Ortega Ruiz" writes: > Neither am i :) Actually, i just observed the pattern above (RAM going > up by 1Mb/sec bringing total memory from 300Mb to 800Mb, then stopping) > before starting Gnus. So i guess that, if Gnus play [...] Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) "Jose A. Ortega Ruiz" writes: > Neither am i :) Actually, i just observed the pattern above (RAM going > up by 1Mb/sec bringing total memory from 300Mb to 800Mb, then stopping) > before starting Gnus. So i guess that, if Gnus plays any role, it must > be indirectly. I haven't been following this thread closely, but it strikes me as puzzling that there's a lot of people seeing these leaks -- and there's also many people (like me) that don't see these leaks at all. (And I have Emacsen running for weeks on end, doing all sorts of odd stuff.) Has anybody tried compiling a list of features people who see the leaks are using? Not that there's really any good way of gathering that data, but ... Like, helm is known for using lots of memory, and eww can, too, under some circumstances, and so can image caching... -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Wed Dec 09 16:05:15 2020 Received: (at 43389) by debbugs.gnu.org; 9 Dec 2020 21:05:15 +0000 Received: from localhost ([127.0.0.1]:36345 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kn6eA-0002cA-Sz for submit@debbugs.gnu.org; Wed, 09 Dec 2020 16:05:15 -0500 Received: from eggs.gnu.org ([209.51.188.92]:42218) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kn6e9-0002by-Dh for 43389@debbugs.gnu.org; Wed, 09 Dec 2020 16:05:13 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:55203) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kn6e3-0006RK-2c; Wed, 09 Dec 2020 16:05:08 -0500 Received: from cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net ([92.233.85.247]:57260 helo=osgiliath.local) by fencepost.gnu.org with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) (Exim 4.82) (envelope-from ) id 1kn6dw-0006FQ-O4; Wed, 09 Dec 2020 16:05:06 -0500 Received: by osgiliath.local (Postfix, from userid 1000) id B4BE1402D1; Wed, 9 Dec 2020 21:04:58 +0000 (GMT) From: "Jose A. Ortega Ruiz" To: "Lars Ingebrigtsen" Subject: Re: bug#43389: 28.0.50; Emacs memory leaks In-Reply-To: <87tusuvi9q.fsf@gnus.org> (Lars Ingebrigtsen's message of "Wed, 09 Dec 2020 21:25:37 +0100") References: <87v9edk4eb.fsf@igel.home> <87imadcqqk.fsf@web.de> <87h7pxjrh5.fsf@igel.home> <87eel1cq83.fsf@web.de> <4788A848-D51C-4A25-B023-BA029874DBE5@gnu.org> <87a6vpcphp.fsf@web.de> <83ft5h2pks.fsf@gnu.org> <87tutxi2cz.fsf@web.de> <87y2i9jebl.fsf@web.de> <878sa9f09g.fsf@gnus.jao.io> <20201208123737.GZ6337@maokai> <87r1nywyvj.fsf@gnus.jao.io> <87tusuvi9q.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) X-Attribution: jao X-Clacks-Overhead: GNU Terry Pratchett X-URL: Date: Wed, 09 Dec 2020 21:04:58 +0000 Message-ID: <87im9awv0l.fsf@gnus.jao.io> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) On Wed, Dec 09 2020, Lars Ingebrigtsen wrote: [...] > Has anybody tried compiling a list of features people who see the leaks > are using? Not that there's really any good way of gathering that data, > but ... Like, helm is known for using lots of memory, and eww can, too, > under some circumstances, and so can image caching... in my case, it's ivy and emacs-w3m. the first burst i observe is usually at the beginning, so not many of the miriad other packages i use have been active at all. i use exwm, so that's one that's always there for sure, and ivy takes control immediately, but little else seems "needed". regarding images, i use pdf-tools, and it has a heavy memory footprint (opening any PDF increases easily emacs ram consumption in 200Mb, no matter how big the PDF). but those jumps are immediate upon opening the doc. in my case, another source of puzzlement is this "bursty" behaviour. after the firs one, i can be at ~1Gb for a day or two (doing almost everything inside emacs, so all kinds of packages used), and then, without any change in my usage patterns i could tell, a new burst will take my RAM, 10Mbs at a time, up to ~2Gb. and then stop, again without me doing, concisouly, anything differently. jao -- To see ourselves as others see us is a most salutary gift. Hardly less important is the capacity to see others as they see themselves. -Aldous Huxley, novelist (1894-1963) From debbugs-submit-bounces@debbugs.gnu.org Wed Dec 09 19:51:29 2020 Received: (at 43389) by debbugs.gnu.org; 10 Dec 2020 00:51:29 +0000 Received: from localhost ([127.0.0.1]:36551 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1knAB7-000844-4o for submit@debbugs.gnu.org; Wed, 09 Dec 2020 19:51:29 -0500 Received: from mout.web.de ([212.227.15.3]:39865) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1knAB4-00083p-D6 for 43389@debbugs.gnu.org; Wed, 09 Dec 2020 19:51:27 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1607561444; bh=VwIFy5emvf70B/csrtfP44yJUHSeVc894J3CcdMDSNU=; h=X-UI-Sender-Class:From:To:Cc:Subject:References:Date:In-Reply-To; b=aS4vC6chDFL4aGu0RG8S433EhWKW+VgnQJoVeYJ6LinBqGC/2gW66/aUSiuP8rg4m +dvLZTDt3h+4LDZoyz+Ylvpv8ImHTYuePj86MZzcETw+0mpY3oONbZ7tCOquB/YUq4 +CnsKZl1HlmXslk/PatZc/Gs6ZCI0w3zeiEWvek8= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Received: from drachen.dragon ([88.67.99.46]) by smtp.web.de (mrweb006 [213.165.67.108]) with ESMTPSA (Nemesis) id 1MkVwo-1kQjRS2B2M-00mN2g; Thu, 10 Dec 2020 01:50:44 +0100 From: Michael Heerdegen To: Jean Louis Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <83pn4l3mts.fsf@gnu.org> <87v9edk4eb.fsf@igel.home> <87imadcqqk.fsf@web.de> <87h7pxjrh5.fsf@igel.home> <87eel1cq83.fsf@web.de> <4788A848-D51C-4A25-B023-BA029874DBE5@gnu.org> <87a6vpcphp.fsf@web.de> <83ft5h2pks.fsf@gnu.org> <87tutxi2cz.fsf@web.de> <87y2i9jebl.fsf@web.de> <87lfe8jm67.fsf@web.de> Date: Thu, 10 Dec 2020 01:50:43 +0100 In-Reply-To: <87lfe8jm67.fsf@web.de> (Michael Heerdegen's message of "Tue, 08 Dec 2020 17:29:52 +0100") Message-ID: <87mtym7acc.fsf@web.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:SRMHfjUF1wIpJnSQRZlLVoESg/XqVRfO1Wwrg6oj6yAedXVPxs0 r5q21GE5cnPZBTbjfg3XLMS7y0wVHrg1UjxZ0g3uA8euQxrHQBftPybMi4SaojxVlv9eLCf 3usUZTONmuif6jUDzkFjxCK/Fcr5TGkiq5SQq3ThWYyx8+goojsTGWwNhvgklc0fa6ONmNB WFnUE68E4dz8vWB8Vo2PQ== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:R4hoYklkoSw=:7Givgt2ZmN8YvEifEQoxZu 7TWveyak75kWKs/LVmNBrh3pHs6M2QFmQM78BhSY8uEtWhJ6dIjc2NCoXSN/GMXeGGRnWOb1e 7rhUZxkN97koBkGsGoCVr58oXxCf8KYa1l7jpw/ojOnWBEQGD2cWBNRqxb8pWfy6fk1B7XZi4 KHzYDDhRukv6IphkUUc26u0wDE0rvc+agPr6jaaVbHyCeRNuYE0KvijNbO8ROAItQxgAe04Bt G5c9Nul1MykIiwa9eK++M/G4z2CHxVdc8Al/TNL/M7qfPzRxL2bE6HeI6xbW1trp4calln6+j iXvY5FdYgYRcFkZ7f5WW102GXlA8oawskEmxXq2B7mNLkvEWLLFu7FplRnWi/zDZ9jOhmlBFQ FbsXRei+rbqfWzM2joSwj7WiCWOHS+aRMzACxm+UUOHjFFfUrjJF0V2vJSG1SsipvqBG5EmiO s4TPWrEBBpEUW+sQbEAURW99BD3vsuzvNRxS/CZ3aqe5jA4WQ8pPth9N16IVEArYHsHTPymh9 qi2NlGts393RhSWRzE9v0em/M5zLqZvixBqEd7c8FP8+Kvney5ixs3WX3NSYiOtMxukPFt+hv 3Maf/BOGfzl256VCpKiSTc74x66VZvEeqoGdSxnMP9u5j3spVDe1K3z41SOWUHe8uHJNUbMP/ oQQOmPYrqcWPkpzRPYCvTdl/XhFrwZmFuonQJXAYi0Zvt+WeC4/2asQefg8IOCTzVH+cmW0f6 Kriwl5GYR/NCBW89CwdflV/ZsBIeQ102gXYNJiZTMcSYoQI2CQ7AEnEAhqbKYqh3I6L8CB6b4 p0Y9JsR2S0gFEXtofpzGx48tznpAhTx+Q/dw4uQIN0z7AZaAI2b0ZVrhLL9Yuu6ileoyLBTii cbnz2s2p63i82au47MzLjlOd+9rdxZm76iWlV7JOM= X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org, RLAdams@AdamsInfoServ.Com, schwab@linux-m68k.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Michael Heerdegen writes: > I think we see different symptoms. I don't see any slow-down at all > (unless swapping starts, obviously). When I do M-x garbage-collect, it > finishes immediately without freeing an significant amount of memory. I must correct myself. While this all was definitely the case the last time I tried to investigate this issue (one or two months ago) the garbage-collect statement is not true anymore. I did M-x garbage-collect today when the memory was getting short and then Emacs froze (in the sense of "didn't respond, even to C-g"), without gkrellm reporting much progress, so I killed it (after 20 seconds or so - aeons for a computer). I did not experience a slowdown, however (maybe I've faster RAM?). Michael. From debbugs-submit-bounces@debbugs.gnu.org Thu Dec 10 03:32:37 2020 Received: (at 43389) by debbugs.gnu.org; 10 Dec 2020 08:32:37 +0000 Received: from localhost ([127.0.0.1]:36949 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1knHNN-0002nI-5K for submit@debbugs.gnu.org; Thu, 10 Dec 2020 03:32:37 -0500 Received: from stw1.rcdrun.com ([217.170.207.13]:54503) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1knHNL-0002n5-0a for 43389@debbugs.gnu.org; Thu, 10 Dec 2020 03:32:35 -0500 Received: from localhost ([::ffff:41.202.241.31]) (AUTH: PLAIN securesender, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by stw1.rcdrun.com with ESMTPSA id 000000000001E525.000000005FD1DD1C.000012D4; Thu, 10 Dec 2020 01:32:27 -0700 Date: Thu, 10 Dec 2020 08:43:56 +0300 From: Jean Louis To: Michael Heerdegen Subject: Re: bug#43389: 28.0.50; Emacs memory leaks Message-ID: References: <87h7pxjrh5.fsf@igel.home> <87eel1cq83.fsf@web.de> <4788A848-D51C-4A25-B023-BA029874DBE5@gnu.org> <87a6vpcphp.fsf@web.de> <83ft5h2pks.fsf@gnu.org> <87tutxi2cz.fsf@web.de> <87y2i9jebl.fsf@web.de> <87lfe8jm67.fsf@web.de> <87mtym7acc.fsf@web.de> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: <87mtym7acc.fsf@web.de> User-Agent: Mutt/2.0 (3d08634) (2020-11-07) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org, RLAdams@AdamsInfoServ.Com, schwab@linux-m68k.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * Michael Heerdegen [2020-12-10 03:51]: > Michael Heerdegen writes: > > > I think we see different symptoms. I don't see any slow-down at all > > (unless swapping starts, obviously). When I do M-x garbage-collect, it > > finishes immediately without freeing an significant amount of memory. > > I must correct myself. While this all was definitely the case the last > time I tried to investigate this issue (one or two months ago) the > garbage-collect statement is not true anymore. I did M-x > garbage-collect today when the memory was getting short and then Emacs > froze (in the sense of "didn't respond, even to C-g"), without gkrellm > reporting much progress, so I killed it (after 20 seconds or so - aeons > for a computer). > > I did not experience a slowdown, however (maybe I've faster RAM?). One time I waited for 36 minutes and it completed the garbage collection. From debbugs-submit-bounces@debbugs.gnu.org Thu Dec 10 13:46:16 2020 Received: (at 43389) by debbugs.gnu.org; 10 Dec 2020 18:46:16 +0000 Received: from localhost ([127.0.0.1]:39271 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1knQxE-0003zr-1d for submit@debbugs.gnu.org; Thu, 10 Dec 2020 13:46:16 -0500 Received: from eggs.gnu.org ([209.51.188.92]:49694) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1knQx9-0003za-Fq for 43389@debbugs.gnu.org; Thu, 10 Dec 2020 13:46:14 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:45696) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1knQx3-0005fb-DK; Thu, 10 Dec 2020 13:46:05 -0500 Received: from [176.228.60.248] (port=3566 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1knQx1-0002T4-H4; Thu, 10 Dec 2020 13:46:05 -0500 Date: Thu, 10 Dec 2020 20:45:40 +0200 Message-Id: <83zh2l33fv.fsf@gnu.org> From: Eli Zaretskii To: Trevor Bentley , Stefan Monnier In-Reply-To: <87eek0rmqa.fsf@mail.trevorbentley.com> (message from Trevor Bentley on Tue, 08 Dec 2020 22:50:37 +0100) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <83y2j0qb2v.fsf@gnu.org> <83blfovzxz.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> <87o8jltglg.fsf@mail.trevorbentley.com> <43b8f55b-d201-76e0-2d19-d97dec8798aa@redhat.com> <87im9ttfeg.fsf@mail.trevorbentley.com> <399d4681-940a-c782-b91e-750e62840cb6@redhat.com> <83pn40qkyb.fsf@gnu.org> <418751f6-41be-a5e2-908a-ea4196d5fb9b@redhat.com> <83y2inq2sp.fsf@gnu.org> <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83mtz3p7qy.fsf@gnu.org> <83lfenp78f.fsf@gnu.org> <83h7pbp5wh.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> <87sg8ts766.fsf@mail.trevorbentley.com> <87pn3usr13.fsf@mail.trevorbentley.com> <87eek0rmqa.fsf@mail.trevorbentley.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, carlos@redhat.com, michael_heerdegen@web.de X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Stefan, please help with this complex issue (or maybe several issues). We have collected some evidence in this bug report, but I don't yet see where is this going, or how to make any real progress here. One thing that I cannot explain is this: > From: Trevor Bentley > Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, > dj@redhat.com, michael_heerdegen@web.de > Cc: > Date: Tue, 08 Dec 2020 22:50:37 +0100 > > I've been too busy to modify emacs to print garbage collects, but > these still show really long (garbage-collect) calls, often > exceeding 15 minutes. Trevor reported several times that automatic GC is fast as usual, but manual invocations of "M-x garbage-collect" take much longer, many minutes. I don't understand how this could happen, because both methods of invoking GC do exactly the same job. I thought about possible ways of explaining the stark differences in the time it takes to GC, and came up with these: . The depth of the run-time (C-level) stack. If this is much deeper in one of the cases, it could explain the longer time. But in that case, I'd expect the automatic GC to take longer, because typically the C stack is relatively shallow when Emacs is idle than when it runs some Lisp. This contradicts Trevor's observations. . Some difference in buffers and strings, which causes the manual GC to relocate and compact a lot of them. But again: (a) why the automatic GC never hits the same condition, and (b) I can explain the reverse easier, i.e. that lots of temporary strings and buffers exist while Lisp runs, but not when Emacs is idle. Any other ideas? Any data Trevor could provide, e.g. by attaching a debugger during these prolonged GC, and telling us something interesting? TIA From debbugs-submit-bounces@debbugs.gnu.org Thu Dec 10 14:21:29 2020 Received: (at 43389) by debbugs.gnu.org; 10 Dec 2020 19:21:29 +0000 Received: from localhost ([127.0.0.1]:39308 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1knRVI-0004qN-Vn for submit@debbugs.gnu.org; Thu, 10 Dec 2020 14:21:29 -0500 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:17610) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1knRVF-0004q6-Qg for 43389@debbugs.gnu.org; Thu, 10 Dec 2020 14:21:27 -0500 Received: from pmg2.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 2A88580381; Thu, 10 Dec 2020 14:21:20 -0500 (EST) Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 218118033C; Thu, 10 Dec 2020 14:21:18 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1607628078; bh=wNkJ2rhZDUx4/CJIXQXWPLc2/2ZPWP7TxRon4J7vA1A=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=H7UvQVRved8iViksoIyCPOHnV5eLHyFZMH4BPehjz8r0BHIYCLHBM8DLIrYvqMVpa SIhPCsg1nIXW9yLtcxy52ydU2Rn8Rq/Cc9Qk811glcFqgKcmbOpgvm/fsBLRpZP1nt Hsw0bxDQ3uUvH9yrnWgTKZVwBq8pwf136Fz1/5M1mDzkhQkpXdTmDZ2XNkkSErAKKL dk3LiZZnDdl/Og0v2NPXcMnE5jKnjmP3/WCQP3k3pBEnvGKJumVm/KkHfdb2/abrTe Ce2swig99VPpTyupjSlKI+AmGmG2KDw7i8nziclGRYsfdaSw9zI4jp2cvWAA9nyx3O hee5pDFYODx3g== Received: from alfajor (69-165-136-52.dsl.teksavvy.com [69.165.136.52]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id B66EA120340; Thu, 10 Dec 2020 14:21:17 -0500 (EST) From: Stefan Monnier To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time Message-ID: References: <83y2j0qb2v.fsf@gnu.org> <87o8jnu5f2.fsf@mail.trevorbentley.com> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> <87o8jltglg.fsf@mail.trevorbentley.com> <43b8f55b-d201-76e0-2d19-d97dec8798aa@redhat.com> <87im9ttfeg.fsf@mail.trevorbentley.com> <399d4681-940a-c782-b91e-750e62840cb6@redhat.com> <83pn40qkyb.fsf@gnu.org> <418751f6-41be-a5e2-908a-ea4196d5fb9b@redhat.com> <83y2inq2sp.fsf@gnu.org> <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83mtz3p7qy.fsf@gnu.org> <83lfenp78f.fsf@gnu.org> <83h7pbp5wh.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> <87sg8ts766.fsf@mail.trevorbentley.com> <87pn3usr13.fsf@mail.trevorbentley.com> <87eek0rmqa.fsf@mail.trevorbentley.com> <83zh2l33fv.fsf@gnu.org> Date: Thu, 10 Dec 2020 14:21:16 -0500 In-Reply-To: <83zh2l33fv.fsf@gnu.org> (Eli Zaretskii's message of "Thu, 10 Dec 2020 20:45:40 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.060 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, carlos@redhat.com, Trevor Bentley , michael_heerdegen@web.de X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Trevor reported several times that automatic GC is fast as usual, but > manual invocations of "M-x garbage-collect" take much longer, many > minutes. I don't understand how this could happen, because both > methods of invoking GC do exactly the same job. Indeed, that makes no sense. The only thing that comes to mind is that when they do `M-x garbage-collect` the 15 minutes aren't actually spent in the GC but in some pre/post command hook or something like that (e.g. in `execute-extended-command--shorter`)? Do we have a `profiler-report` available for those 15 minutes? I've taken a quick look at the massive threads in that bug report, but haven't had the time to read in detail. AFAICT we don't have a profiler output for those 15minutes, so it would be good to try: M-x profiler-start RET RET M-x garbage-collect RET ;; This should presumably take several minutes M-x profiler-report RET and then shows us this report (using C-u RET on the top-level elements to unfold them). Stefan From debbugs-submit-bounces@debbugs.gnu.org Thu Dec 10 14:33:30 2020 Received: (at 43389) by debbugs.gnu.org; 10 Dec 2020 19:33:30 +0000 Received: from localhost ([127.0.0.1]:39313 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1knRgw-0007EQ-2T for submit@debbugs.gnu.org; Thu, 10 Dec 2020 14:33:30 -0500 Received: from mail.trevorbentley.com ([37.187.5.80]:45030) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1knRgt-0007EB-9G for 43389@debbugs.gnu.org; Thu, 10 Dec 2020 14:33:28 -0500 Received: from localhost (c188-150-0-48.bredband.comhem.se [188.150.0.48]) by mail.trevorbentley.com (Postfix) with ESMTPSA id DDDE3612AC; Thu, 10 Dec 2020 20:33:20 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mail.trevorbentley.com; s=mail; t=1607628801; bh=ovC3CffbXiBnqmjqQw1HecHZF+6x06foIvwJDWh/pgk=; h=From:To:Cc:Cc:Subject:In-Reply-To:References:Date:From; b=jVJyjh6Nb1mty5qYXl8eer/Ta4uIVO2JuqoTUSxHn5kRwIpI/XC2NgmIHQ3Ay1fpz d4EKcGltl82iiu+RmErSScczq2cKWKAwUgtjjVrmtZqElPwwk58WuzZGbC5KGaYF24 bQB0VDIXpcuexMQEt3/99IFW7HeBGjODTgsE9gwA= From: Trevor Bentley To: Stefan Monnier , Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time In-Reply-To: References: <83y2j0qb2v.fsf@gnu.org> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> <87o8jltglg.fsf@mail.trevorbentley.com> <43b8f55b-d201-76e0-2d19-d97dec8798aa@redhat.com> <87im9ttfeg.fsf@mail.trevorbentley.com> <399d4681-940a-c782-b91e-750e62840cb6@redhat.com> <83pn40qkyb.fsf@gnu.org> <418751f6-41be-a5e2-908a-ea4196d5fb9b@redhat.com> <83y2inq2sp.fsf@gnu.org> <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83mtz3p7qy.fsf@gnu.org> <83lfenp78f.fsf@gnu.org> <83h7pbp5wh.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> <87sg8ts766.fsf@mail.trevorbentley.com> <87pn3usr13.fsf@mail.trevorbentley.com> <87eek0rmqa.fsf@mail.trevorbentley.com> <83zh2l33fv.fsf@gnu.org> Date: Thu, 10 Dec 2020 20:33:20 +0100 Message-ID: <87a6ulsbgf.fsf@mail.trevorbentley.com> MIME-Version: 1.0 Content-Type: text/plain; format=flowed X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, carlos@redhat.com, michael_heerdegen@web.de, X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Stefan Monnier writes: > Do we have a `profiler-report` available for those 15 minutes? > I've taken a quick look at the massive threads in that bug > report, but haven't had the time to read in detail. AFAICT we > don't have a profiler output for those 15minutes, so it would be > good to try: > > M-x profiler-start RET RET M-x garbage-collect RET ;; > This should presumably take several minutes M-x > profiler-report RET > > and then shows us this report (using C-u RET on the top-level > elements to unfold them). I made one a profiler report for a complete 1-2 day session (see the e-mail referencing "mtrace3"), but none for just garbage collection. I'll do that for the next one. Is there any easy way to check if any of my packages are adding extra hooks around garbage-collect? I can't imagine why they would, but you never know. Thanks -Trevor From debbugs-submit-bounces@debbugs.gnu.org Thu Dec 10 14:48:07 2020 Received: (at 43389) by debbugs.gnu.org; 10 Dec 2020 19:48:07 +0000 Received: from localhost ([127.0.0.1]:39331 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1knRv4-0007aF-7w for submit@debbugs.gnu.org; Thu, 10 Dec 2020 14:48:07 -0500 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:21012) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1knRv1-0007Za-T6 for 43389@debbugs.gnu.org; Thu, 10 Dec 2020 14:48:04 -0500 Received: from pmg1.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 8FDE61000C9; Thu, 10 Dec 2020 14:47:58 -0500 (EST) Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id B77E6100225; Thu, 10 Dec 2020 14:47:52 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1607629672; bh=YvXDDRibJcY1HGc8tBNWSs7sAsBvoSPaWKwu4AnMIdM=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=JV28AtLRhceHTqiCVN7THv6ssdZZzeJ8zDHi2rkTabbz6UHBJYwlers6yTRehC3hE dENSVdkKVFGaGCxavIyPKEMa/JjW8UKuRjezAf7tuSJ5uhXazKn+FAQXxk9PfQbQYc wMDu/D8KacZ1nEEfP1N3QiNKMxjM0GtoMAYVghXE8UMG/9Kj2QsdSTNZlK4BQSxnDW SXO0LWyOYHGkWNSmqx9zc7hDw40C1/pFAt4DtxA0RGDQ9Q1Vx5nFFdNxi4UKKeb68N A94lB1k4Snq1p8te6JD0h1RO2oJkWBktUeXk1UjR0Umot56kKTq5vXoFKRbth/6ZhC gQTCSpqZu3pmQ== Received: from alfajor (69-165-136-52.dsl.teksavvy.com [69.165.136.52]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id E266E120124; Thu, 10 Dec 2020 14:47:51 -0500 (EST) From: Stefan Monnier To: Trevor Bentley Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time Message-ID: References: <83y2j0qb2v.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> <87o8jltglg.fsf@mail.trevorbentley.com> <43b8f55b-d201-76e0-2d19-d97dec8798aa@redhat.com> <87im9ttfeg.fsf@mail.trevorbentley.com> <399d4681-940a-c782-b91e-750e62840cb6@redhat.com> <83pn40qkyb.fsf@gnu.org> <418751f6-41be-a5e2-908a-ea4196d5fb9b@redhat.com> <83y2inq2sp.fsf@gnu.org> <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83mtz3p7qy.fsf@gnu.org> <83lfenp78f.fsf@gnu.org> <83h7pbp5wh.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> <87sg8ts766.fsf@mail.trevorbentley.com> <87pn3usr13.fsf@mail.trevorbentley.com> <87eek0rmqa.fsf@mail.trevorbentley.com> <83zh2l33fv.fsf@gnu.org> <87a6ulsbgf.fsf@mail.trevorbentley.com> Date: Thu, 10 Dec 2020 14:47:51 -0500 In-Reply-To: <87a6ulsbgf.fsf@mail.trevorbentley.com> (Trevor Bentley's message of "Thu, 10 Dec 2020 20:33:20 +0100") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.085 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, carlos@redhat.com, michael_heerdegen@web.de, Eli Zaretskii X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Is there any easy way to check if any of my packages are adding extra hooks > around garbage-collect? I can't imagine why they would, but you never know. I think there can be so many hooks involved that the profiler is the only good way to figure that out. Stefan From debbugs-submit-bounces@debbugs.gnu.org Thu Dec 10 16:45:51 2020 Received: (at 43389) by debbugs.gnu.org; 10 Dec 2020 21:45:51 +0000 Received: from localhost ([127.0.0.1]:39489 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1knTl1-00049u-JE for submit@debbugs.gnu.org; Thu, 10 Dec 2020 16:45:51 -0500 Received: from stw1.rcdrun.com ([217.170.207.13]:43599) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1knTky-00049c-Gj for 43389@debbugs.gnu.org; Thu, 10 Dec 2020 16:45:50 -0500 Received: from localhost ([::ffff:41.202.241.31]) (AUTH: PLAIN securesender, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by stw1.rcdrun.com with ESMTPSA id 000000000001E527.000000005FD29705.000059BD; Thu, 10 Dec 2020 14:45:41 -0700 Date: Thu, 10 Dec 2020 23:24:04 +0300 From: Jean Louis To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time Message-ID: References: <83y2inq2sp.fsf@gnu.org> <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83mtz3p7qy.fsf@gnu.org> <83lfenp78f.fsf@gnu.org> <83h7pbp5wh.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> <87sg8ts766.fsf@mail.trevorbentley.com> <87pn3usr13.fsf@mail.trevorbentley.com> <87eek0rmqa.fsf@mail.trevorbentley.com> <83zh2l33fv.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: <83zh2l33fv.fsf@gnu.org> User-Agent: Mutt/2.0 (3d08634) (2020-11-07) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, carlos@redhat.com, Trevor Bentley , michael_heerdegen@web.de, Stefan Monnier X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * Eli Zaretskii [2020-12-10 21:47]: > Trevor reported several times that automatic GC is fast as usual, but > manual invocations of "M-x garbage-collect" take much longer, many > minutes. I don't understand how this could happen, because both > methods of invoking GC do exactly the same job. Sometimes 30-36 minutes. From debbugs-submit-bounces@debbugs.gnu.org Thu Dec 10 16:45:56 2020 Received: (at 43389) by debbugs.gnu.org; 10 Dec 2020 21:45:56 +0000 Received: from localhost ([127.0.0.1]:39493 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1knTl5-0004A9-SD for submit@debbugs.gnu.org; Thu, 10 Dec 2020 16:45:56 -0500 Received: from stw1.rcdrun.com ([217.170.207.13]:41431) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1knTl1-00049g-U9 for 43389@debbugs.gnu.org; Thu, 10 Dec 2020 16:45:52 -0500 Received: from localhost ([::ffff:41.202.241.31]) (AUTH: PLAIN securesender, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by stw1.rcdrun.com with ESMTPSA id 000000000001E52A.000000005FD29709.000059D6; Thu, 10 Dec 2020 14:45:44 -0700 Date: Thu, 10 Dec 2020 23:26:24 +0300 From: Jean Louis To: Stefan Monnier Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time Message-ID: References: <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83mtz3p7qy.fsf@gnu.org> <83lfenp78f.fsf@gnu.org> <83h7pbp5wh.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> <87sg8ts766.fsf@mail.trevorbentley.com> <87pn3usr13.fsf@mail.trevorbentley.com> <87eek0rmqa.fsf@mail.trevorbentley.com> <83zh2l33fv.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: User-Agent: Mutt/2.0 (3d08634) (2020-11-07) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, carlos@redhat.com, Trevor Bentley , michael_heerdegen@web.de, Eli Zaretskii X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * Stefan Monnier [2020-12-10 22:21]: > M-x profiler-start RET RET > M-x garbage-collect RET ;; This should presumably take several minutes > M-x profiler-report RET I will try with function doing all three together. From debbugs-submit-bounces@debbugs.gnu.org Thu Dec 10 16:46:01 2020 Received: (at 43389) by debbugs.gnu.org; 10 Dec 2020 21:46:01 +0000 Received: from localhost ([127.0.0.1]:39495 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1knTlB-0004AR-37 for submit@debbugs.gnu.org; Thu, 10 Dec 2020 16:46:01 -0500 Received: from stw1.rcdrun.com ([217.170.207.13]:44699) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1knTl5-00049m-Hj for 43389@debbugs.gnu.org; Thu, 10 Dec 2020 16:45:55 -0500 Received: from localhost ([::ffff:41.202.241.31]) (AUTH: PLAIN securesender, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by stw1.rcdrun.com with ESMTPSA id 000000000001E532.000000005FD2970C.000059E5; Thu, 10 Dec 2020 14:45:48 -0700 Date: Thu, 10 Dec 2020 23:30:05 +0300 From: Jean Louis To: Stefan Monnier Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time Message-ID: References: <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83mtz3p7qy.fsf@gnu.org> <83lfenp78f.fsf@gnu.org> <83h7pbp5wh.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> <87sg8ts766.fsf@mail.trevorbentley.com> <87pn3usr13.fsf@mail.trevorbentley.com> <87eek0rmqa.fsf@mail.trevorbentley.com> <83zh2l33fv.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: User-Agent: Mutt/2.0 (3d08634) (2020-11-07) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, carlos@redhat.com, Trevor Bentley , michael_heerdegen@web.de, Eli Zaretskii X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * Stefan Monnier [2020-12-10 22:21]: > > Trevor reported several times that automatic GC is fast as usual, but > > manual invocations of "M-x garbage-collect" take much longer, many > > minutes. I don't understand how this could happen, because both > > methods of invoking GC do exactly the same job. > > Indeed, that makes no sense. The only thing that comes to mind is that > when they do `M-x garbage-collect` the 15 minutes aren't actually spent > in the GC but in some pre/post command hook or something like that > (e.g. in `execute-extended-command--shorter`)? > > Do we have a `profiler-report` available for those 15 minutes? > I've taken a quick look at the massive threads in that bug report, > but haven't had the time to read in detail. AFAICT we don't have a > profiler output for those 15minutes, so it would be good to try: > > M-x profiler-start RET RET > M-x garbage-collect RET ;; This should presumably take several minutes > M-x profiler-report RET Another issue is that since I use LD_PRELOAD with gmalloc trace is that I have not encountered high swapping and Emacs being totally unusable. And I have not upgraded Emacs. Changed basically nothing but using the mtrace. What I can still observe is that vsize grows high as usual. But I have not observed swap growing high or that hard disk starts working to find some swap memory for 40 minutes or longer indefinitely maybe. From debbugs-submit-bounces@debbugs.gnu.org Fri Dec 11 08:56:02 2020 Received: (at 43389) by debbugs.gnu.org; 11 Dec 2020 13:56:02 +0000 Received: from localhost ([127.0.0.1]:40555 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1knitt-0000u4-UX for submit@debbugs.gnu.org; Fri, 11 Dec 2020 08:56:02 -0500 Received: from quimby.gnus.org ([95.216.78.240]:34232) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1knitr-0000ti-PZ for 43389@debbugs.gnu.org; Fri, 11 Dec 2020 08:56:00 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=aGebtYq+IHcHn3s8XWHuinjIG/Kbaw/7TzNCpG3Ze7s=; b=rEmqKcKkWStY6CouC1FbjYZPpW w9D80zFCfu4ONHNiVcS8KztLCcpKBMyMPyCN6pKtC9sylpBLEQuT6CxSGQ5smkYbF4dI7QENSr4FY FhGCc1sKHk/trd2FM5wGWnIeRBZSu3/1QClcOaLSzr1uFIsD2bMTMUF/lDz1a7LH1VXA=; Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kniti-00037d-Nn; Fri, 11 Dec 2020 14:55:53 +0100 From: Lars Ingebrigtsen To: "Jose A. Ortega Ruiz" Subject: Re: bug#43389: 28.0.50; Emacs memory leaks References: <87v9edk4eb.fsf@igel.home> <87imadcqqk.fsf@web.de> <87h7pxjrh5.fsf@igel.home> <87eel1cq83.fsf@web.de> <4788A848-D51C-4A25-B023-BA029874DBE5@gnu.org> <87a6vpcphp.fsf@web.de> <83ft5h2pks.fsf@gnu.org> <87tutxi2cz.fsf@web.de> <87y2i9jebl.fsf@web.de> <878sa9f09g.fsf@gnus.jao.io> <20201208123737.GZ6337@maokai> <87r1nywyvj.fsf@gnus.jao.io> <87tusuvi9q.fsf@gnus.org> <87im9awv0l.fsf@gnus.jao.io> Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAABGdBTUEAALGPC/xhBQAAACBj SFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAGFBMVEUnOIxpZGiik0cu QkGRcTBfWCuQipn////0LwWVAAAAAWJLR0QHFmGI6wAAAAd0SU1FB+QMCw01M0bJqccAAAGmSURB VDjL3ZLbkSMhDEVxBsPYzb+pngCmZAUwXgigjRQAP+Qfwl7xsD1VG8Gq3W24B0kI5Nz/bf7f8meM 7kz0Lp38hztBT45gftrHyX/+HD7GuA9Ap66fvZcvEegxdaBavqFjUOS49/UGuCjs8EjGWGNAUlan GbIIvsP3MRySkyyZIbMB4hTvXd8dj0BetECf27v0HHO8A8i1j4OBMqs4cyG+X18eqtOdhG77tb6D Wrv7Xm4JIPjqZQLva/ObGhjej155aDXU1rZcHmmGVdEOWvMA6Y/qNXgLgKqxXQOwzQqaoUTVZRl6 O/8C4lIKT5DzBGoeCrEGy5GeHgiL7Q6HsCHwKvaSo9O+qxaaRT78u8fMgSktgJt5hrJz/F5dsefi pCzdP1mNmVaOLkMlvKFZs7HWYJmPjUwct4M7c/eIerCLUnqH0aFkh0PWV9ZAJg9UyM7GTte6iabZ SBcoeHjoN+hsnVbs2E1lthya0F7aO5NHUwMofheB+FVsogPwiLuNvz51I+XSzMpMPhbM6cuc7b6P Uv/K+jpe4M3yCKWMxUxFmZaK9y/k9ctSdr/JEgAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMC0xMi0x MVQxMzo1Mzo1MSswMDowMGCznr4AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjAtMTItMTFUMTM6NTM6 NTErMDA6MDAR7iYCAAAAAElFTkSuQmCC X-Now-Playing: Shopping's _All Or Nothing_: "No Apologies" Date: Fri, 11 Dec 2020 14:55:49 +0100 In-Reply-To: <87im9awv0l.fsf@gnus.jao.io> (Jose A. Ortega Ruiz's message of "Wed, 09 Dec 2020 21:04:58 +0000") Message-ID: <87im98bg62.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: As previously briefly discussed, I wondered whether adding a command that shows "large" buffers and variables would tell us anything interesting in these cases, and I've now implemented that. `M-x memory-report' Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: 43389@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) As previously briefly discussed, I wondered whether adding a command that shows "large" buffers and variables would tell us anything interesting in these cases, and I've now implemented that. `M-x memory-report' on the current trunk. It may or may not tell us something interesting -- please give it a whirl and report back. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Fri Dec 11 20:30:51 2020 Received: (at 43389) by debbugs.gnu.org; 12 Dec 2020 01:30:51 +0000 Received: from localhost ([127.0.0.1]:43655 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kntkI-00009V-O0 for submit@debbugs.gnu.org; Fri, 11 Dec 2020 20:30:50 -0500 Received: from stw1.rcdrun.com ([217.170.207.13]:33807) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kntkG-00009C-EW for 43389@debbugs.gnu.org; Fri, 11 Dec 2020 20:30:49 -0500 Received: from localhost ([::ffff:41.202.241.42]) (AUTH: PLAIN securesender, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by stw1.rcdrun.com with ESMTPSA id 00000000000442C7.000000005FD41D40.000078DE; Fri, 11 Dec 2020 18:30:40 -0700 Date: Sat, 12 Dec 2020 04:28:26 +0300 From: Jean Louis To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time Message-ID: References: <83y2inq2sp.fsf@gnu.org> <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83mtz3p7qy.fsf@gnu.org> <83lfenp78f.fsf@gnu.org> <83h7pbp5wh.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> <87sg8ts766.fsf@mail.trevorbentley.com> <87pn3usr13.fsf@mail.trevorbentley.com> <87eek0rmqa.fsf@mail.trevorbentley.com> <83zh2l33fv.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline In-Reply-To: <83zh2l33fv.fsf@gnu.org> User-Agent: Mutt/2.0 (3d08634) (2020-11-07) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, bugs@gnu.support, carlos@redhat.com, Trevor Bentley , michael_heerdegen@web.de, Stefan Monnier X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * Eli Zaretskii [2020-12-10 21:46]: > Stefan, please help with this complex issue (or maybe several > issues). We have collected some evidence in this bug report, but I > don't yet see where is this going, or how to make any real progress > here. > > One thing that I cannot explain is this: > > > From: Trevor Bentley > > Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, > > dj@redhat.com, michael_heerdegen@web.de > > Cc: > > Date: Tue, 08 Dec 2020 22:50:37 +0100 > > > > I've been too busy to modify emacs to print garbage collects, but > > these still show really long (garbage-collect) calls, often > > exceeding 15 minutes. > > Trevor reported several times that automatic GC is fast as usual, but > manual invocations of "M-x garbage-collect" take much longer, many > minutes. I don't understand how this could happen, because both > methods of invoking GC do exactly the same job. My observation over time is that that running M-x garbage-collect created the same effect just as when I observed that Emacs starts doing something with hard disk and continues so for unpredicted number of minutes. Normally so long until I kill it. It could be 10-20 minutes that I have waited. So that could be where the problem lies. Something happens inside of Emacs, automatic garbage-collect is invoked which cannot soon finish its job. About 2 times I invoked garbage-collect manually and caused about visually same behavior to take place. I hope you understand this explanation. From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 12 03:50:04 2020 Received: (at 43389) by debbugs.gnu.org; 12 Dec 2020 08:50:04 +0000 Received: from localhost ([127.0.0.1]:43885 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ko0bM-0002uk-2l for submit@debbugs.gnu.org; Sat, 12 Dec 2020 03:50:04 -0500 Received: from mail-out.m-online.net ([212.18.0.10]:37986) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ko0bK-0002u6-7v for 43389@debbugs.gnu.org; Sat, 12 Dec 2020 03:50:02 -0500 Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 4CtLvC28Q1z1rynZ; Sat, 12 Dec 2020 09:49:59 +0100 (CET) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 4CtLvB6HDkz1t82F; Sat, 12 Dec 2020 09:49:58 +0100 (CET) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id GQbwIY-oo4f3; Sat, 12 Dec 2020 09:49:57 +0100 (CET) X-Auth-Info: e1ARg9V5V22mO5dciQNA5NQBLcX649acZqdq405YeIGKIBEAxFNVy8jvzgHby1a9 Received: from hase.home (ppp-46-244-182-188.dynamic.mnet-online.de [46.244.182.188]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPSA; Sat, 12 Dec 2020 09:49:57 +0100 (CET) Received: by hase.home (Postfix, from userid 1000) id 8FBDB102A56; Sat, 12 Dec 2020 09:49:56 +0100 (CET) From: Andreas Schwab To: Jean Louis Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <83y2inq2sp.fsf@gnu.org> <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83mtz3p7qy.fsf@gnu.org> <83lfenp78f.fsf@gnu.org> <83h7pbp5wh.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> <87sg8ts766.fsf@mail.trevorbentley.com> <87pn3usr13.fsf@mail.trevorbentley.com> <87eek0rmqa.fsf@mail.trevorbentley.com> <83zh2l33fv.fsf@gnu.org> X-Yow: Oh, FISH sticks, CHEEZ WHIZ, GIN fizz, SHOW BIZ!! Date: Sat, 12 Dec 2020 09:49:56 +0100 In-Reply-To: (Jean Louis's message of "Sat, 12 Dec 2020 04:28:26 +0300") Message-ID: <875z57wgqz.fsf@linux-m68k.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.4 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, carlos@redhat.com, Trevor Bentley , michael_heerdegen@web.de, Stefan Monnier , Eli Zaretskii X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.4 (-) On Dez 12 2020, Jean Louis wrote: > My observation over time is that that running M-x garbage-collect > created the same effect just as when I observed that Emacs starts > doing something with hard disk and continues so for unpredicted number > of minutes. This is totally expected. When you are tight on memory, rummaging through all of it can only make things worse. Andreas. -- Andreas Schwab, schwab@linux-m68k.org GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1 "And now for something completely different." From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 12 06:21:10 2020 Received: (at 43389) by debbugs.gnu.org; 12 Dec 2020 11:21:10 +0000 Received: from localhost ([127.0.0.1]:44036 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ko2xa-0000Wp-0N for submit@debbugs.gnu.org; Sat, 12 Dec 2020 06:21:10 -0500 Received: from mail.trevorbentley.com ([37.187.5.80]:56163) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ko2xU-0000Vv-5R for 43389@debbugs.gnu.org; Sat, 12 Dec 2020 06:21:07 -0500 Received: from localhost (c188-150-0-48.bredband.comhem.se [188.150.0.48]) by mail.trevorbentley.com (Postfix) with ESMTPSA id 04E46605E7; Sat, 12 Dec 2020 12:20:57 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mail.trevorbentley.com; s=mail; t=1607772058; bh=K1o9jufAV8cxIbI3H+yWZgDR7zgwPjeHsr2TqZkde8o=; h=From:To:Cc:Cc:Subject:In-Reply-To:References:Date:From; b=B7SIe7OoUgmgeu44IFT0yuhg1tWxYc5TI1q/QRls0XBTK/C2hFjQLs2bOMjIP56oX 3F/nOpUrSEnvpQwMJX+tpFvTc7qyJEJ2glVXVnk2gX59XclDPseVTu6mBO8tH9l8ds I22GAv9SwUFKWFwwmrbPT4K2GIU9FrO247Bbn6Gw= From: Trevor Bentley To: Stefan Monnier , Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time In-Reply-To: References: <83y2j0qb2v.fsf@gnu.org> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> <87o8jltglg.fsf@mail.trevorbentley.com> <43b8f55b-d201-76e0-2d19-d97dec8798aa@redhat.com> <87im9ttfeg.fsf@mail.trevorbentley.com> <399d4681-940a-c782-b91e-750e62840cb6@redhat.com> <83pn40qkyb.fsf@gnu.org> <418751f6-41be-a5e2-908a-ea4196d5fb9b@redhat.com> <83y2inq2sp.fsf@gnu.org> <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83mtz3p7qy.fsf@gnu.org> <83lfenp78f.fsf@gnu.org> <83h7pbp5wh.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> <87sg8ts766.fsf@mail.trevorbentley.com> <87pn3usr13.fsf@mail.trevorbentley.com> <87eek0rmqa.fsf@mail.trevorbentley.com> <83zh2l33fv.fsf@gnu.org> Date: Sat, 12 Dec 2020 12:20:57 +0100 Message-ID: <87zh2jqnhi.fsf@mail.trevorbentley.com> MIME-Version: 1.0 Content-Type: text/plain; format=flowed X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, carlos@redhat.com, michael_heerdegen@web.de, X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Stefan Monnier writes: > Do we have a `profiler-report` available for those 15 minutes? > I've taken a quick look at the massive threads in that bug > report, but haven't had the time to read in detail. AFAICT we > don't have a profiler output for those 15minutes, so it would be > good to try: > > M-x profiler-start RET RET M-x garbage-collect RET ;; > This should presumably take several minutes M-x > profiler-report RET > > and then shows us this report (using C-u RET on the top-level > elements to unfold them). I'm back with a new mtrace, a profile of the long garbage-collect, and a new discovery. First of all, the 26GB mtrace of a session that exploded to over 8GB is available in mtrace12.tar.bz2 here: https://trevorbentley.com/mtrace/ The summary log is in mtrace12_log.txt in the same directory, including output of profiler-report for only the duration of the garbage-collect, which took a record 50 minutes to complete. As you can see in the profiler log, it is, in fact, the C garbage_collect() function eating all of the time: ---- ;;(profiler-report) - ... 901307 99% Automatic GC 901281 99% + trev/slack--refresh-cache 19 0% ---- Not only that, but I added printfs in emacs itself around the garbage_collect() and gc_sweep() functions. Each line prints the unix timestamp when it began, and the 'end' lines print the duration since the start. You can see that the entire 50 minutes was spent in gc_sweep(): ---- 1607695679: garbage_collect start 1607695680: gc_sweep start 1607695680: gc_sweep end (0 s) 1607695680: garbage_collect #1085 end (1 s) 1607695761: garbage_collect start 1607695762: gc_sweep start 1607695762: gc_sweep end (0 s) 1607726912: garbage_collect start 1607726913: gc_sweep start 1607729921: gc_sweep end (3008 s) 1607729922: garbage_collect #1086 end (3010 s) ---- And finally, here's what I find very suspicious: it was nearly 9 hours since the last garbage collect ran (1607726912 - 1607695762). This is an instance that I used all day long, flittering back and forth between it and other work. It had both tons of interactive use, and tons of idle time. I don't think 9 hours between garbage collects sounds right. The last garbage collect before the long manual one also never printed an end message, which is confusing. I see no early returns in garbage_collect()... is there some macro that can trigger a return, or maybe something uses longjmp? Thanks, -Trevor From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 12 13:32:58 2020 Received: (at 43389) by debbugs.gnu.org; 12 Dec 2020 18:32:59 +0000 Received: from localhost ([127.0.0.1]:46448 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ko9hS-0000UW-Jd for submit@debbugs.gnu.org; Sat, 12 Dec 2020 13:32:58 -0500 Received: from eggs.gnu.org ([209.51.188.92]:43196) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ko9hO-0000TZ-PB for 43389@debbugs.gnu.org; Sat, 12 Dec 2020 13:32:55 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:48115) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ko9hI-0006rc-KH; Sat, 12 Dec 2020 13:32:48 -0500 Received: from [176.228.60.248] (port=4577 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1ko3Gg-0003Gl-BT; Sat, 12 Dec 2020 06:40:55 -0500 Date: Sat, 12 Dec 2020 13:40:38 +0200 Message-Id: <837dpn1ccp.fsf@gnu.org> From: Eli Zaretskii To: Trevor Bentley In-Reply-To: <87zh2jqnhi.fsf@mail.trevorbentley.com> (message from Trevor Bentley on Sat, 12 Dec 2020 12:20:57 +0100) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <83y2j0qb2v.fsf@gnu.org> <83o8jmu49z.fsf@gnu.org> <522e3cc0-c563-3308-7264-1b09cd5e264b@redhat.com> <87o8jltglg.fsf@mail.trevorbentley.com> <43b8f55b-d201-76e0-2d19-d97dec8798aa@redhat.com> <87im9ttfeg.fsf@mail.trevorbentley.com> <399d4681-940a-c782-b91e-750e62840cb6@redhat.com> <83pn40qkyb.fsf@gnu.org> <418751f6-41be-a5e2-908a-ea4196d5fb9b@redhat.com> <83y2inq2sp.fsf@gnu.org> <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83mtz3p7qy.fsf@gnu.org> <83lfenp78f.fsf@gnu.org> <83h7pbp5wh.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> <87sg8ts766.fsf@mail.trevorbentley.com> <87pn3usr13.fsf@mail.trevorbentley.com> <87eek0rmqa.fsf@mail.trevorbentley.com> <83zh2l33fv.fsf@gnu.org> <87zh2jqnhi.fsf@mail.trevorbentley.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, carlos@redhat.com, michael_heerdegen@web.de, monnier@iro.umontreal.ca X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Trevor Bentley > Cc: carlos@redhat.com, fweimer@redhat.com, 43389@debbugs.gnu.org, > bugs@gnu.support, dj@redhat.com, michael_heerdegen@web.de > Cc: > Date: Sat, 12 Dec 2020 12:20:57 +0100 > > Not only that, but I added printfs in emacs itself around the > garbage_collect() and gc_sweep() functions. Each line prints the > unix timestamp when it began, and the 'end' lines print the > duration since the start. You can see that the entire 50 minutes > was spent in gc_sweep(): I think this is expected if you have a lot of objects to sweep. > And finally, here's what I find very suspicious: it was nearly 9 > hours since the last garbage collect ran (1607726912 - > 1607695762). This is an instance that I used all day long, > flittering back and forth between it and other work. It had both > tons of interactive use, and tons of idle time. I don't think 9 > hours between garbage collects sounds right. It isn't. So it is now important to find out why this happens. Could it be that some of your packages plays with the value of GC threshold? > The last garbage collect before the long manual one also never > printed an end message, which is confusing. I see no early > returns in garbage_collect()... is there some macro that can > trigger a return, or maybe something uses longjmp? Not that I know of, no. From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 12 14:14:50 2020 Received: (at 43389) by debbugs.gnu.org; 12 Dec 2020 19:14:50 +0000 Received: from localhost ([127.0.0.1]:46562 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1koALy-0003oo-6w for submit@debbugs.gnu.org; Sat, 12 Dec 2020 14:14:50 -0500 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:33495) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1koALw-0003ob-T7 for 43389@debbugs.gnu.org; Sat, 12 Dec 2020 14:14:49 -0500 Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 81696440F18; Sat, 12 Dec 2020 14:14:43 -0500 (EST) Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id AD2A24404DE; Sat, 12 Dec 2020 14:14:41 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1607800481; bh=0ai4Ou4DlWS9MDSkI9Zub7yXwTSdvQwkg0f5lGCe7Rg=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=UlW1sJNoLysIERxklbBCga8Hy3IXeJIOE1N3WhFdG7gKPODlvV/mpaFEuseX245Xk rQSDEFx1F7ffCG7jo6PugFLxNyMnfcv5G0NBSX2JMMNLmdDMtvZOKDBTnmJt2Hq5PB +xu2WqXZu++P9kaVrCyAEeoPklMC/XmEcS4MVr4F6J2Tl9R2XMJCyONScX0oe4ZBx8 DhYUp9T0F2YZMTA3PWvaZ55ZfDteBn9EkdQpQqd2iKqXMxcdPWsW7xYdZRuzHpjtQa ogTz8Xjk3ctJ2gy0ql1UyDdOoIfE6a3pLWJ3uM4UMS7XtAxnYCXQUP2h1BtXLnqtJ/ h/VDqbAASIoVQ== Received: from alfajor (69-165-136-52.dsl.teksavvy.com [69.165.136.52]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 3B6B5120314; Sat, 12 Dec 2020 14:14:41 -0500 (EST) From: Stefan Monnier To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time Message-ID: References: <83y2j0qb2v.fsf@gnu.org> <87o8jltglg.fsf@mail.trevorbentley.com> <43b8f55b-d201-76e0-2d19-d97dec8798aa@redhat.com> <87im9ttfeg.fsf@mail.trevorbentley.com> <399d4681-940a-c782-b91e-750e62840cb6@redhat.com> <83pn40qkyb.fsf@gnu.org> <418751f6-41be-a5e2-908a-ea4196d5fb9b@redhat.com> <83y2inq2sp.fsf@gnu.org> <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83mtz3p7qy.fsf@gnu.org> <83lfenp78f.fsf@gnu.org> <83h7pbp5wh.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> <87sg8ts766.fsf@mail.trevorbentley.com> <87pn3usr13.fsf@mail.trevorbentley.com> <87eek0rmqa.fsf@mail.trevorbentley.com> <83zh2l33fv.fsf@gnu.org> <87zh2jqnhi.fsf@mail.trevorbentley.com> <837dpn1ccp.fsf@gnu.org> Date: Sat, 12 Dec 2020 14:14:39 -0500 In-Reply-To: <837dpn1ccp.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 12 Dec 2020 13:40:38 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.068 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, carlos@redhat.com, Trevor Bentley , michael_heerdegen@web.de X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) >> Not only that, but I added printfs in emacs itself around the >> garbage_collect() and gc_sweep() functions. Each line prints the >> unix timestamp when it began, and the 'end' lines print the >> duration since the start. You can see that the entire 50 minutes >> was spent in gc_sweep(): > > I think this is expected if you have a lot of objects to sweep. Actually, I'm surprised most of the time is spent in gc_sweep: mark_object is usually where most of the time is spent, so this suggests that the total heap size is *much* larger than the amount of live objects. Stefan From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 12 14:21:17 2020 Received: (at 43389) by debbugs.gnu.org; 12 Dec 2020 19:21:17 +0000 Received: from localhost ([127.0.0.1]:46577 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1koASC-0003zN-QE for submit@debbugs.gnu.org; Sat, 12 Dec 2020 14:21:17 -0500 Received: from eggs.gnu.org ([209.51.188.92]:38052) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1koASB-0003z8-FY for 43389@debbugs.gnu.org; Sat, 12 Dec 2020 14:21:15 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:49939) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1koAS5-0008Pa-I2; Sat, 12 Dec 2020 14:21:09 -0500 Received: from [176.228.60.248] (port=2155 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1koAS4-0001JK-4x; Sat, 12 Dec 2020 14:21:09 -0500 Date: Sat, 12 Dec 2020 21:20:52 +0200 Message-Id: <83pn3eesq3.fsf@gnu.org> From: Eli Zaretskii To: Stefan Monnier In-Reply-To: (message from Stefan Monnier on Sat, 12 Dec 2020 14:14:39 -0500) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <83y2j0qb2v.fsf@gnu.org> <87o8jltglg.fsf@mail.trevorbentley.com> <43b8f55b-d201-76e0-2d19-d97dec8798aa@redhat.com> <87im9ttfeg.fsf@mail.trevorbentley.com> <399d4681-940a-c782-b91e-750e62840cb6@redhat.com> <83pn40qkyb.fsf@gnu.org> <418751f6-41be-a5e2-908a-ea4196d5fb9b@redhat.com> <83y2inq2sp.fsf@gnu.org> <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83mtz3p7qy.fsf@gnu.org> <83lfenp78f.fsf@gnu.org> <83h7pbp5wh.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> <87sg8ts766.fsf@mail.trevorbentley.com> <87pn3usr13.fsf@mail.trevorbentley.com> <87eek0rmqa.fsf@mail.trevorbentley.com> <83zh2l33fv.fsf@gnu.org> <87zh2jqnhi.fsf@mail.trevorbentley.com> <837dpn1ccp.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, carlos@redhat.com, trevor@trevorbentley.com, michael_heerdegen@web.de X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Stefan Monnier > Cc: Trevor Bentley , carlos@redhat.com, > fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, > dj@redhat.com, michael_heerdegen@web.de > Date: Sat, 12 Dec 2020 14:14:39 -0500 > > >> Not only that, but I added printfs in emacs itself around the > >> garbage_collect() and gc_sweep() functions. Each line prints the > >> unix timestamp when it began, and the 'end' lines print the > >> duration since the start. You can see that the entire 50 minutes > >> was spent in gc_sweep(): > > > > I think this is expected if you have a lot of objects to sweep. > > Actually, I'm surprised most of the time is spent in gc_sweep: > mark_object is usually where most of the time is spent, so this suggests > that the total heap size is *much* larger than the amount of live objects. Sure. But isn't that the same as what I said, just from another POV? "A lot of objects to sweep" means there are many objects that aren't live and need to have their memory freed. Since GC wasn't run for many hours, having a lot of garbage to collect is expected, right? From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 12 14:46:30 2020 Received: (at 43389) by debbugs.gnu.org; 12 Dec 2020 19:46:31 +0000 Received: from localhost ([127.0.0.1]:46650 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1koAqc-0006lp-J5 for submit@debbugs.gnu.org; Sat, 12 Dec 2020 14:46:30 -0500 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:4869) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1koAqa-0006la-Q5 for 43389@debbugs.gnu.org; Sat, 12 Dec 2020 14:46:29 -0500 Received: from pmg1.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 32F581002B8; Sat, 12 Dec 2020 14:46:23 -0500 (EST) Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id D6946100236; Sat, 12 Dec 2020 14:46:21 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1607802381; bh=SUzgFWeEJixFauDpW1Tc+QIxO9gut6Z5Yu/UfiTnM6I=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=YOUQyLbPrZsU+D9ZcUl5bLCBcXmMxMQ0YxUlJruE5AZlmsg1WhzHof6JzM6JOrMn0 YhEL/meLLkFNujtHHZaKE+voUp50g9VjG6FEoEj3UPT0JzK62EtpiDjg0fi9INkTp/ EKWcU7AWJGztjzxKZ/sO3j+Qh2nJMt/6Iqo95VFYGoq1fgjY0lsMm3PTYxmKAC1UcA HuoPNHVQtseX5sv1g7fvWGSrw9M3meXCXfgCKow7WgDWmnoCe3vR8HAqOWgGvSTN0i aH4R4YpARSevGHFvVQiAYbtXEvRM3o7OnQIdVDSvPrMmHJ6ltoR+0MviTnUsXNM7ZX 1JKWUylN+4FAA== Received: from alfajor (69-165-136-52.dsl.teksavvy.com [69.165.136.52]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 738E71202FE; Sat, 12 Dec 2020 14:46:21 -0500 (EST) From: Stefan Monnier To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time Message-ID: References: <83y2j0qb2v.fsf@gnu.org> <43b8f55b-d201-76e0-2d19-d97dec8798aa@redhat.com> <87im9ttfeg.fsf@mail.trevorbentley.com> <399d4681-940a-c782-b91e-750e62840cb6@redhat.com> <83pn40qkyb.fsf@gnu.org> <418751f6-41be-a5e2-908a-ea4196d5fb9b@redhat.com> <83y2inq2sp.fsf@gnu.org> <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83mtz3p7qy.fsf@gnu.org> <83lfenp78f.fsf@gnu.org> <83h7pbp5wh.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> <87sg8ts766.fsf@mail.trevorbentley.com> <87pn3usr13.fsf@mail.trevorbentley.com> <87eek0rmqa.fsf@mail.trevorbentley.com> <83zh2l33fv.fsf@gnu.org> <87zh2jqnhi.fsf@mail.trevorbentley.com> <837dpn1ccp.fsf@gnu.org> <83pn3eesq3.fsf@gnu.org> Date: Sat, 12 Dec 2020 14:46:20 -0500 In-Reply-To: <83pn3eesq3.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 12 Dec 2020 21:20:52 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.078 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, carlos@redhat.com, trevor@trevorbentley.com, michael_heerdegen@web.de X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Sure. But isn't that the same as what I said, just from another POV? > "A lot of objects to sweep" means there are many objects that aren't > live and need to have their memory freed. > > Since GC wasn't run for many hours, having a lot of garbage to collect > is expected, right? Could be, but for tens of minutes? AFAIK gc_sweep shouldn't cause too much thrashing either (the sweep is a mostly sequential scan of memory, so even if the total heap is larger than your total RAM, it should be ~O(total heap size / bandwidth from swap partition)), so I can't imagine how we could spend tens of minutes doing gc_sweep (or maybe the time is spend in gc_sweep but doing something else than the sweep itself, e.g. handling weak pointers, or removing dead markers from marker lists, ... still seems hard to imagine spending tens of minutes, tho). Stefan From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 12 14:51:39 2020 Received: (at 43389) by debbugs.gnu.org; 12 Dec 2020 19:51:39 +0000 Received: from localhost ([127.0.0.1]:46691 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1koAvb-0006wm-Fe for submit@debbugs.gnu.org; Sat, 12 Dec 2020 14:51:39 -0500 Received: from eggs.gnu.org ([209.51.188.92]:48230) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1koAvZ-0006wY-Cc for 43389@debbugs.gnu.org; Sat, 12 Dec 2020 14:51:37 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:50736) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1koAvT-00024w-H6; Sat, 12 Dec 2020 14:51:31 -0500 Received: from [176.228.60.248] (port=4006 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1koAvS-0000rw-S6; Sat, 12 Dec 2020 14:51:31 -0500 Date: Sat, 12 Dec 2020 21:51:15 +0200 Message-Id: <83lfe2erbg.fsf@gnu.org> From: Eli Zaretskii To: Stefan Monnier In-Reply-To: (message from Stefan Monnier on Sat, 12 Dec 2020 14:46:20 -0500) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <83y2j0qb2v.fsf@gnu.org> <43b8f55b-d201-76e0-2d19-d97dec8798aa@redhat.com> <87im9ttfeg.fsf@mail.trevorbentley.com> <399d4681-940a-c782-b91e-750e62840cb6@redhat.com> <83pn40qkyb.fsf@gnu.org> <418751f6-41be-a5e2-908a-ea4196d5fb9b@redhat.com> <83y2inq2sp.fsf@gnu.org> <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83mtz3p7qy.fsf@gnu.org> <83lfenp78f.fsf@gnu.org> <83h7pbp5wh.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> <87sg8ts766.fsf@mail.trevorbentley.com> <87pn3usr13.fsf@mail.trevorbentley.com> <87eek0rmqa.fsf@mail.trevorbentley.com> <83zh2l33fv.fsf@gnu.org> <87zh2jqnhi.fsf@mail.trevorbentley.com> <837dpn1ccp.fsf@gnu.org> <83pn3eesq3.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, carlos@redhat.com, trevor@trevorbentley.com, michael_heerdegen@web.de X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Stefan Monnier > Cc: trevor@trevorbentley.com, carlos@redhat.com, fweimer@redhat.com, > 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, > michael_heerdegen@web.de > Date: Sat, 12 Dec 2020 14:46:20 -0500 > > > Sure. But isn't that the same as what I said, just from another POV? > > "A lot of objects to sweep" means there are many objects that aren't > > live and need to have their memory freed. > > > > Since GC wasn't run for many hours, having a lot of garbage to collect > > is expected, right? > > Could be, but for tens of minutes? If the system is paging, it could take that long, yes. > AFAIK gc_sweep shouldn't cause too much thrashing either (the sweep is > a mostly sequential scan of memory, so even if the total heap is larger > than your total RAM, it should be ~O(total heap size / bandwidth from > swap partition)), so I can't imagine how we could spend tens of minutes > doing gc_sweep (or maybe the time is spend in gc_sweep but doing > something else than the sweep itself, e.g. handling weak pointers, or > removing dead markers from marker lists, ... still seems hard to > imagine spending tens of minutes, tho). Does gc_sweep involve touching all the memory we free? From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 12 15:14:14 2020 Received: (at 43389) by debbugs.gnu.org; 12 Dec 2020 20:14:14 +0000 Received: from localhost ([127.0.0.1]:46750 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1koBHS-0001F6-AW for submit@debbugs.gnu.org; Sat, 12 Dec 2020 15:14:14 -0500 Received: from mail.trevorbentley.com ([37.187.5.80]:58681) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1koBHQ-0001Es-91 for 43389@debbugs.gnu.org; Sat, 12 Dec 2020 15:14:12 -0500 Received: from localhost (c188-150-0-48.bredband.comhem.se [188.150.0.48]) by mail.trevorbentley.com (Postfix) with ESMTPSA id 65DD5602F4; Sat, 12 Dec 2020 21:14:06 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mail.trevorbentley.com; s=mail; t=1607804046; bh=5dE1juXR3cttBBZMdlC+SPlV24kRBrSoodaDfzOTMUw=; h=From:To:Cc:Cc:Subject:In-Reply-To:References:Date:From; b=dMHH9mJH1xpe7Z8+I4cpYLUZEa2NDTu7lFBO77B4KNwZBgXvP4YcwGcRrQf1kIqBl 7+0isfdrAM+pRCFyTT+j3xdBKSzLBwXoNYgfGaFy1BS9ujBcOfZAuBSMO2LseaFYKu ZwiM3joKRRRI0EtUeeR1GlLumkukCT/tTwcZBPcY= From: Trevor Bentley To: Eli Zaretskii , Stefan Monnier Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time In-Reply-To: <83lfe2erbg.fsf@gnu.org> References: <83y2j0qb2v.fsf@gnu.org> <399d4681-940a-c782-b91e-750e62840cb6@redhat.com> <83pn40qkyb.fsf@gnu.org> <418751f6-41be-a5e2-908a-ea4196d5fb9b@redhat.com> <83y2inq2sp.fsf@gnu.org> <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83mtz3p7qy.fsf@gnu.org> <83lfenp78f.fsf@gnu.org> <83h7pbp5wh.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> <87sg8ts766.fsf@mail.trevorbentley.com> <87pn3usr13.fsf@mail.trevorbentley.com> <87eek0rmqa.fsf@mail.trevorbentley.com> <83zh2l33fv.fsf@gnu.org> <87zh2jqnhi.fsf@mail.trevorbentley.com> <837dpn1ccp.fsf@gnu.org> <83pn3eesq3.fsf@gnu.org> <83lfe2erbg.fsf@gnu.org> Date: Sat, 12 Dec 2020 21:14:05 +0100 Message-ID: <87wnxmrdde.fsf@mail.trevorbentley.com> MIME-Version: 1.0 Content-Type: text/plain; format=flowed X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, carlos@redhat.com, michael_heerdegen@web.de, X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii writes: >> Could be, but for tens of minutes? > > If the system is paging, it could take that long, yes. > >> AFAIK gc_sweep shouldn't cause too much thrashing either (the >> sweep is a mostly sequential scan of memory, so even if the >> total heap is larger than your total RAM, it should be ~O(total >> heap size / bandwidth from In my particular case, I have plenty of free memory. I assume nothing is paging to disk in any of my reports, though I haven't thought to explicitly check. -Trevor From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 12 17:17:36 2020 Received: (at 43389) by debbugs.gnu.org; 12 Dec 2020 22:17:36 +0000 Received: from localhost ([127.0.0.1]:47020 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1koDCp-0000QL-Mt for submit@debbugs.gnu.org; Sat, 12 Dec 2020 17:17:35 -0500 Received: from mout.web.de ([212.227.15.3]:39005) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1koDCo-0000Q5-6m for 43389@debbugs.gnu.org; Sat, 12 Dec 2020 17:17:34 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1607811409; bh=LPqjoXBJGHFHLw9e0sW1LB0FVUm6z+TGUAOu0PIlXNA=; h=X-UI-Sender-Class:From:To:Cc:Subject:References:Date:In-Reply-To; b=F5ZVTvVg11OnrgHvpeGibqcjrSV9e7J1onbAQI8xZp/5PKlpb/Oe+6P2BgRoJQv54 GIEssujVo+qIdPlu77FU+dVfI0pIxaosYmCsrlMa44PnUApzQKUvU0n61/RrO5F2xI A0ySvlaL2K6TMjr1ZgIkg4XmE5dbXrdbvMf6Lwo4= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Received: from drachen.dragon ([88.67.99.46]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1Mfc4q-1kCyhE3W4u-00gB5J; Sat, 12 Dec 2020 23:16:48 +0100 From: Michael Heerdegen To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <83y2j0qb2v.fsf@gnu.org> <87o8jltglg.fsf@mail.trevorbentley.com> <43b8f55b-d201-76e0-2d19-d97dec8798aa@redhat.com> <87im9ttfeg.fsf@mail.trevorbentley.com> <399d4681-940a-c782-b91e-750e62840cb6@redhat.com> <83pn40qkyb.fsf@gnu.org> <418751f6-41be-a5e2-908a-ea4196d5fb9b@redhat.com> <83y2inq2sp.fsf@gnu.org> <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83mtz3p7qy.fsf@gnu.org> <83lfenp78f.fsf@gnu.org> <83h7pbp5wh.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> <87sg8ts766.fsf@mail.trevorbentley.com> <87pn3usr13.fsf@mail.trevorbentley.com> <87eek0rmqa.fsf@mail.trevorbentley.com> <83zh2l33fv.fsf@gnu.org> <87zh2jqnhi.fsf@mail.trevorbentley.com> <837dpn1ccp.fsf@gnu.org> Date: Sat, 12 Dec 2020 23:16:46 +0100 In-Reply-To: <837dpn1ccp.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 12 Dec 2020 13:40:38 +0200") Message-ID: <87zh2i7jqp.fsf@web.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:W0icIgJvlEnTS6B3g6Wt0vPC8HDdJS8hIYUnyYZWJ6FhpJ1G8h5 GzSyS6loxIaMQ9LtUgkRC4Hqw8ecTZtRCORbc0atm0iN5RM0sfxbP80tBbn2uCCek++OsTa K7yHucaSaijZg6P5jU4t78V06eX9CYI//zaK9HWtBWGtJ1vRKohQhazG6fdPZe3Exi98dSO hB/LllA4MItsJczOlksHw== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:rVqtrHaKtDU=:wtx77d8Hzwi9ntjZwqFBS4 0HO6itr1u/0s6bl35Tzrt9n13rQ28eughWyZ2/MMtbkyWA7mK5g691Famv/f2fayacSQlbOiW FNO5a6fLy0LvcpfE5cFtM5BDTdwhNNnRz2chxFhzIg9CDKHi4uncPsSUKtWk6ysb/Iv0meatp SkF/4+E47rNp2KLi4gBY+vFV/vpUTLIQfUp11ioFee1Oc4w69DCPxJTGlsQC4q0ovkOobmA5y 5P0hwsWwjVw56c45x+EHKuDhjJckeKqyMUrEL1fxvoYKOmvqeWlFy2qQQsIyuEgkcxP8qYR40 Kp85MXHysxwb6Xw44XiwSFj7cdE9Y0vDlbAn3/Q7nM8FL6J58c6aWaZXtslT8QQGflk43NJuO TmTN+pKOgt3IEZfuJuSLJdAPQO2k0r+gFhxoqdoKYjSRFnILpm9ZYaXMBvcaqyvbH/DYV32aD or3teXFdY8BklpAyPMGgDA5jeF3TNmUqXPyOxt573EzoG2AXxt7oFC89YtNMaTe0MkLY2evkC UaTTZD6d7twOUz0peIkILV5+6ShgUvp0sqx8k+U24bvuGDT7SK1PnVdS82+UtyqOfrfF7zJvN dCFboAv1gq9QFPGJOPKnJeL4kzFx/NEvAZHx2sv2mhUeOKrz06wy9tirgWQEHNEiLBEJ+Y96+ nZZy5My8gQSbGmA73HZ2AE1ceRIoBwMFqHdGMCHVcFGvHEQEcHWwW1YGSCNITnK97hZO5DOdb soMKGULKbj2JEoG8Z8JD5X0MC/uKm40Rani4JDqF4QmiiX3lpZBSWg/vgZWtu05z5rrteFrfH /AMjKgwU7irwYI/6yh2uSBpqURSWgY2UzJ0kPVSxTVFqK+ld2X+qcIrXuunatIkpR+O4hXya5 DWBwQSHOvhta+aF2EnLk10DG3R5xK/v0vL+qRJ95o= X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, bugs@gnu.support, carlos@redhat.com, Trevor Bentley , monnier@iro.umontreal.ca X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Eli Zaretskii writes: > Could it be that some of your packages plays with the value of GC > threshold? Dunno if it matters, but `gnus-registry-save' binds it temporarily to a high value, and I once had experienced memory grow largely while using Gnus. Michael. From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 12 22:35:00 2020 Received: (at 43389) by debbugs.gnu.org; 13 Dec 2020 03:35:00 +0000 Received: from localhost ([127.0.0.1]:47233 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1koI9z-0000Pk-Nb for submit@debbugs.gnu.org; Sat, 12 Dec 2020 22:34:59 -0500 Received: from eggs.gnu.org ([209.51.188.92]:40884) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1koI9y-0000PW-0f for 43389@debbugs.gnu.org; Sat, 12 Dec 2020 22:34:58 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:57378) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1koI9r-0003jl-Pu; Sat, 12 Dec 2020 22:34:51 -0500 Received: from [176.228.60.248] (port=4410 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1koI9p-0005QT-FA; Sat, 12 Dec 2020 22:34:50 -0500 Date: Sun, 13 Dec 2020 05:34:35 +0200 Message-Id: <83eejue5v8.fsf@gnu.org> From: Eli Zaretskii To: Michael Heerdegen In-Reply-To: <87zh2i7jqp.fsf@web.de> (message from Michael Heerdegen on Sat, 12 Dec 2020 23:16:46 +0100) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <83y2j0qb2v.fsf@gnu.org> <87o8jltglg.fsf@mail.trevorbentley.com> <43b8f55b-d201-76e0-2d19-d97dec8798aa@redhat.com> <87im9ttfeg.fsf@mail.trevorbentley.com> <399d4681-940a-c782-b91e-750e62840cb6@redhat.com> <83pn40qkyb.fsf@gnu.org> <418751f6-41be-a5e2-908a-ea4196d5fb9b@redhat.com> <83y2inq2sp.fsf@gnu.org> <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83mtz3p7qy.fsf@gnu.org> <83lfenp78f.fsf@gnu.org> <83h7pbp5wh.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> <87sg8ts766.fsf@mail.trevorbentley.com> <87pn3usr13.fsf@mail.trevorbentley.com> <87eek0rmqa.fsf@mail.trevorbentley.com> <83zh2l33fv.fsf@gnu.org> <87zh2jqnhi.fsf@mail.trevorbentley.com> <837dpn1ccp.fsf@gnu.org> <87zh2i7jqp.fsf@web.de> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, bugs@gnu.support, carlos@redhat.com, trevor@trevorbentley.com, monnier@iro.umontreal.ca X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Michael Heerdegen > Cc: Trevor Bentley , monnier@iro.umontreal.ca, > carlos@redhat.com, fweimer@redhat.com, 43389@debbugs.gnu.org, > bugs@gnu.support, dj@redhat.com > Date: Sat, 12 Dec 2020 23:16:46 +0100 > > Eli Zaretskii writes: > > > Could it be that some of your packages plays with the value of GC > > threshold? > > Dunno if it matters, but `gnus-registry-save' binds it temporarily to a > high value I'd prefer very much that our core code never did that. From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 13 05:20:41 2020 Received: (at 43389) by debbugs.gnu.org; 13 Dec 2020 10:20:41 +0000 Received: from localhost ([127.0.0.1]:47461 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1koOUb-0006so-DG for submit@debbugs.gnu.org; Sun, 13 Dec 2020 05:20:41 -0500 Received: from mail.trevorbentley.com ([37.187.5.80]:34379) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1koOUZ-0006s9-0m for 43389@debbugs.gnu.org; Sun, 13 Dec 2020 05:20:39 -0500 Received: from localhost (c188-150-0-48.bredband.comhem.se [188.150.0.48]) by mail.trevorbentley.com (Postfix) with ESMTPSA id 1734D602DE; Sun, 13 Dec 2020 11:20:33 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mail.trevorbentley.com; s=mail; t=1607854833; bh=kzlKwGgGCn351D6OitbVWGniRvAxnTO6an4jUAI8/YA=; h=From:To:Cc:Cc:Subject:In-Reply-To:References:Date:From; b=NZe3b42TVBSKfUi0ytC/zCWgjo4nOHtEnSwVFxe+U6YB4aletUD067bC0FPNbQqoj qmnrKlvdTZ8nrQTJWVW0u444p4CJ3OfC0X98qz6phoo0wyxq9DIOIQgQIaynXoQmI4 SlvYIB1xKorzCu12+VCHKfXe0KbN7dyfVgsLanmE= From: Trevor Bentley To: Eli Zaretskii , Michael Heerdegen Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time In-Reply-To: <83eejue5v8.fsf@gnu.org> References: <83y2j0qb2v.fsf@gnu.org> <43b8f55b-d201-76e0-2d19-d97dec8798aa@redhat.com> <87im9ttfeg.fsf@mail.trevorbentley.com> <399d4681-940a-c782-b91e-750e62840cb6@redhat.com> <83pn40qkyb.fsf@gnu.org> <418751f6-41be-a5e2-908a-ea4196d5fb9b@redhat.com> <83y2inq2sp.fsf@gnu.org> <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83mtz3p7qy.fsf@gnu.org> <83lfenp78f.fsf@gnu.org> <83h7pbp5wh.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> <87sg8ts766.fsf@mail.trevorbentley.com> <87pn3usr13.fsf@mail.trevorbentley.com> <87eek0rmqa.fsf@mail.trevorbentley.com> <83zh2l33fv.fsf@gnu.org> <87zh2jqnhi.fsf@mail.trevorbentley.com> <837dpn1ccp.fsf@gnu.org> <87zh2i7jqp.fsf@web.de> <83eejue5v8.fsf@gnu.org> Date: Sun, 13 Dec 2020 11:20:32 +0100 Message-ID: <87tusqqa6n.fsf@mail.trevorbentley.com> MIME-Version: 1.0 Content-Type: text/plain; format=flowed X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com, carlos@redhat.com, monnier@iro.umontreal.ca, X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) >> Dunno if it matters, but `gnus-registry-save' binds it >> temporarily to a high value > > I'd prefer very much that our core code never did that. I'm not sure what that is, but I'm not calling it directly, and probably not indirectly either. Not doing any mail reading in the instances that are inflating. I print the gc variables in each of my log analyses, and they have always been the same: the default. I have one instance running that has clearly hit the problem. garbage_collect() never printed its "end" message, and there have been no further garbage collects in nearly 20 hours: ---- 1607783297: garbage_collect start 1607783297: gc_sweep start 1607783297: gc_sweep end (0 s) ---- Right now, I'm leaning towards this being the root cause. Something is causing a garbage collect to crash or hang or otherwise exit in some unknown way, and automatic garbage collection gets disabled until I manually retrigger it. Garbage collect never runs on other threads/forks, right? If it were hung forever inside garbage_collect(), I would expect the whole window to be frozen, but it is not. I'll add more printfs in garbage_collect() and try to figure out where it is exiting. -Trevor From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 13 10:31:06 2020 Received: (at 43389) by debbugs.gnu.org; 13 Dec 2020 15:31:06 +0000 Received: from localhost ([127.0.0.1]:49933 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1koTKz-0006hd-Px for submit@debbugs.gnu.org; Sun, 13 Dec 2020 10:31:06 -0500 Received: from eggs.gnu.org ([209.51.188.92]:43820) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1koTKw-0006h7-Gr for 43389@debbugs.gnu.org; Sun, 13 Dec 2020 10:31:04 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:36514) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1koTKq-0005K8-2L; Sun, 13 Dec 2020 10:30:56 -0500 Received: from [176.228.60.248] (port=4336 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1koTKp-0002rU-8r; Sun, 13 Dec 2020 10:30:55 -0500 Date: Sun, 13 Dec 2020 17:30:42 +0200 Message-Id: <833609ena5.fsf@gnu.org> From: Eli Zaretskii To: Trevor Bentley In-Reply-To: <87tusqqa6n.fsf@mail.trevorbentley.com> (message from Trevor Bentley on Sun, 13 Dec 2020 11:20:32 +0100) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <83y2j0qb2v.fsf@gnu.org> <43b8f55b-d201-76e0-2d19-d97dec8798aa@redhat.com> <87im9ttfeg.fsf@mail.trevorbentley.com> <399d4681-940a-c782-b91e-750e62840cb6@redhat.com> <83pn40qkyb.fsf@gnu.org> <418751f6-41be-a5e2-908a-ea4196d5fb9b@redhat.com> <83y2inq2sp.fsf@gnu.org> <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83mtz3p7qy.fsf@gnu.org> <83lfenp78f.fsf@gnu.org> <83h7pbp5wh.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> <87sg8ts766.fsf@mail.trevorbentley.com> <87pn3usr13.fsf@mail.trevorbentley.com> <87eek0rmqa.fsf@mail.trevorbentley.com> <83zh2l33fv.fsf@gnu.org> <87zh2jqnhi.fsf@mail.trevorbentley.com> <837dpn1ccp.fsf@gnu.org> <87zh2i7jqp.fsf@web.de> <83eejue5v8.fsf@gnu.org> <87tusqqa6n.fsf@mail.trevorbentley.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, bugs@gnu.support, michael_heerdegen@web.de, carlos@redhat.com, monnier@iro.umontreal.ca X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Trevor Bentley > Cc: monnier@iro.umontreal.ca, carlos@redhat.com, fweimer@redhat.com, > 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com > Cc: > Date: Sun, 13 Dec 2020 11:20:32 +0100 > > I have one instance running that has clearly hit the problem. > garbage_collect() never printed its "end" message, and there have > been no further garbage collects in nearly 20 hours: > > ---- > 1607783297: garbage_collect start 1607783297: gc_sweep start > 1607783297: gc_sweep end (0 s) ---- > > Right now, I'm leaning towards this being the root cause. > Something is causing a garbage collect to crash or hang or > otherwise exit in some unknown way, and automatic garbage > collection gets disabled until I manually retrigger it. > > Garbage collect never runs on other threads/forks, right? If you use packages or commands that create Lisp threads, I think GC can run from any of these Lisp threads. From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 13 14:34:19 2020 Received: (at 43389) by debbugs.gnu.org; 13 Dec 2020 19:34:19 +0000 Received: from localhost ([127.0.0.1]:50298 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1koX8N-00086L-3p for submit@debbugs.gnu.org; Sun, 13 Dec 2020 14:34:19 -0500 Received: from mail.trevorbentley.com ([37.187.5.80]:36968) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1koX8M-00085m-2x for 43389@debbugs.gnu.org; Sun, 13 Dec 2020 14:34:18 -0500 Received: from localhost (c188-150-0-48.bredband.comhem.se [188.150.0.48]) by mail.trevorbentley.com (Postfix) with ESMTPSA id BF83960F0A; Sun, 13 Dec 2020 20:34:11 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mail.trevorbentley.com; s=mail; t=1607888051; bh=cJjskamOjTtdQ9lBuj/bR+ySZUECdyuv48qxyqsZcG8=; h=From:To:Cc:Cc:Subject:In-Reply-To:References:Date:From; b=UBJj9nmnneIKYS16ZTc3By1VajLGDV0NI8TwswUcwmdksgCqz3+if+3k9iuDr1XN9 pzVy+REtBdf4FQ2y7u8JZEoaxXzBX9EeVQ8G1aGv3sYzvpZuy3ZKfzFKlhNZnarQY+ qOIPRQ1XG9UiyUpkG0+d96C3jhOkdIoqzfBHsX/0= From: Trevor Bentley To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time In-Reply-To: <833609ena5.fsf@gnu.org> References: <83y2j0qb2v.fsf@gnu.org> <399d4681-940a-c782-b91e-750e62840cb6@redhat.com> <83pn40qkyb.fsf@gnu.org> <418751f6-41be-a5e2-908a-ea4196d5fb9b@redhat.com> <83y2inq2sp.fsf@gnu.org> <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83mtz3p7qy.fsf@gnu.org> <83lfenp78f.fsf@gnu.org> <83h7pbp5wh.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> <87sg8ts766.fsf@mail.trevorbentley.com> <87pn3usr13.fsf@mail.trevorbentley.com> <87eek0rmqa.fsf@mail.trevorbentley.com> <83zh2l33fv.fsf@gnu.org> <87zh2jqnhi.fsf@mail.trevorbentley.com> <837dpn1ccp.fsf@gnu.org> <87zh2i7jqp.fsf@web.de> <83eejue5v8.fsf@gnu.org> <87tusqqa6n.fsf@mail.trevorbentley.com> <833609ena5.fsf@gnu.org> Date: Sun, 13 Dec 2020 20:34:11 +0100 Message-ID: <87r1ntqz4c.fsf@mail.trevorbentley.com> MIME-Version: 1.0 Content-Type: text/plain; format=flowed X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, bugs@gnu.support, michael_heerdegen@web.de, carlos@redhat.com, monnier@iro.umontreal.ca, X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii writes: >> Garbage collect never runs on other threads/forks, right? > > If you use packages or commands that create Lisp threads, I > think GC can run from any of these Lisp threads. Hmm, that makes it trickier. No clue if my default packages launch threads, but it's possible. I just hit the bug in one of my sessions: the call to unblock_input() in garbage_collect() never returns. But the session still completely works, so I'm not really sure what's going on here. -Trevor From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 13 14:39:08 2020 Received: (at 43389) by debbugs.gnu.org; 13 Dec 2020 19:39:08 +0000 Received: from localhost ([127.0.0.1]:50308 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1koXD1-0008Sq-Ty for submit@debbugs.gnu.org; Sun, 13 Dec 2020 14:39:08 -0500 Received: from eggs.gnu.org ([209.51.188.92]:37244) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1koXD0-0008S3-83 for 43389@debbugs.gnu.org; Sun, 13 Dec 2020 14:39:06 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:40708) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1koXCu-0007OD-CE; Sun, 13 Dec 2020 14:39:00 -0500 Received: from [176.228.60.248] (port=4613 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1koXCs-0003d6-NM; Sun, 13 Dec 2020 14:39:00 -0500 Date: Sun, 13 Dec 2020 21:38:46 +0200 Message-Id: <83pn3dcx89.fsf@gnu.org> From: Eli Zaretskii To: Trevor Bentley In-Reply-To: <87r1ntqz4c.fsf@mail.trevorbentley.com> (message from Trevor Bentley on Sun, 13 Dec 2020 20:34:11 +0100) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <83y2j0qb2v.fsf@gnu.org> <399d4681-940a-c782-b91e-750e62840cb6@redhat.com> <83pn40qkyb.fsf@gnu.org> <418751f6-41be-a5e2-908a-ea4196d5fb9b@redhat.com> <83y2inq2sp.fsf@gnu.org> <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83mtz3p7qy.fsf@gnu.org> <83lfenp78f.fsf@gnu.org> <83h7pbp5wh.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> <87sg8ts766.fsf@mail.trevorbentley.com> <87pn3usr13.fsf@mail.trevorbentley.com> <87eek0rmqa.fsf@mail.trevorbentley.com> <83zh2l33fv.fsf@gnu.org> <87zh2jqnhi.fsf@mail.trevorbentley.com> <837dpn1ccp.fsf@gnu.org> <87zh2i7jqp.fsf@web.de> <83eejue5v8.fsf@gnu.org> <87tusqqa6n.fsf@mail.trevorbentley.com> <833609ena5.fsf@gnu.org> <87r1ntqz4c.fsf@mail.trevorbentley.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, bugs@gnu.support, michael_heerdegen@web.de, carlos@redhat.com, monnier@iro.umontreal.ca X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Trevor Bentley > Cc: michael_heerdegen@web.de, monnier@iro.umontreal.ca, carlos@redhat.com, > fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com > Cc: > Date: Sun, 13 Dec 2020 20:34:11 +0100 > > >> Garbage collect never runs on other threads/forks, right? > > > > If you use packages or commands that create Lisp threads, I > > think GC can run from any of these Lisp threads. > > Hmm, that makes it trickier. No clue if my default packages > launch threads, but it's possible. Grep them for make-thread. > I just hit the bug in one of my sessions: the call to > unblock_input() in garbage_collect() never returns. If that ran in a thread, perhaps the thread died. > But the session still completely works, so I'm not really sure > what's going on here. As long as the main thread runs, you might indeed see nothing special. From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 13 14:59:42 2020 Received: (at 43389) by debbugs.gnu.org; 13 Dec 2020 19:59:42 +0000 Received: from localhost ([127.0.0.1]:50347 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1koXWw-0001YV-9t for submit@debbugs.gnu.org; Sun, 13 Dec 2020 14:59:42 -0500 Received: from mail.trevorbentley.com ([37.187.5.80]:37112) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1koXWv-0001Y0-Di for 43389@debbugs.gnu.org; Sun, 13 Dec 2020 14:59:41 -0500 Received: from localhost (c188-150-0-48.bredband.comhem.se [188.150.0.48]) by mail.trevorbentley.com (Postfix) with ESMTPSA id 4197960D0F; Sun, 13 Dec 2020 20:59:35 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mail.trevorbentley.com; s=mail; t=1607889575; bh=mUzBSF+99CrwNiPEUdrdVih8IL/k4rNE+BW+5H0ECas=; h=From:To:Cc:Cc:Subject:In-Reply-To:References:Date:From; b=WM0+OLxUr4Qqv1VGxk97yQiZdI1ZrEjJVL5PDLeNjYuaSHFHYtO5BD5apNw8hL4+n PuhgotsKh6EJR/SEuX9TxtSQ7EJdtfdXNvL8POj3czxUcSqpw/rrCXIKBZpLfinzMj znRSDyx8zt78vlV02ULjz1BDQXrn/FT/wL/LtVxg= From: Trevor Bentley To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time In-Reply-To: <83pn3dcx89.fsf@gnu.org> References: <83y2j0qb2v.fsf@gnu.org> <418751f6-41be-a5e2-908a-ea4196d5fb9b@redhat.com> <83y2inq2sp.fsf@gnu.org> <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83mtz3p7qy.fsf@gnu.org> <83lfenp78f.fsf@gnu.org> <83h7pbp5wh.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> <87sg8ts766.fsf@mail.trevorbentley.com> <87pn3usr13.fsf@mail.trevorbentley.com> <87eek0rmqa.fsf@mail.trevorbentley.com> <83zh2l33fv.fsf@gnu.org> <87zh2jqnhi.fsf@mail.trevorbentley.com> <837dpn1ccp.fsf@gnu.org> <87zh2i7jqp.fsf@web.de> <83eejue5v8.fsf@gnu.org> <87tusqqa6n.fsf@mail.trevorbentley.com> <833609ena5.fsf@gnu.org> <87r1ntqz4c.fsf@mail.trevorbentley.com> <83pn3dcx89.fsf@gnu.org> Date: Sun, 13 Dec 2020 20:59:34 +0100 Message-ID: <87mtyhqxy1.fsf@mail.trevorbentley.com> MIME-Version: 1.0 Content-Type: text/plain; format=flowed X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, bugs@gnu.support, michael_heerdegen@web.de, carlos@redhat.com, monnier@iro.umontreal.ca, X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) >> Hmm, that makes it trickier. No clue if my default packages >> launch threads, but it's possible. > > Grep them for make-thread. > >> I just hit the bug in one of my sessions: the call to >> unblock_input() in garbage_collect() never returns. > > If that ran in a thread, perhaps the thread died. > >> But the session still completely works, so I'm not really sure >> what's going on here. > > As long as the main thread runs, you might indeed see nothing > special. This was exactly my thought: a thread I'm not even aware of must be silently crashing and leaving GC in a bad state. But there's only a single case of 'make-thread' in my ~/.emacs.d/, and it's extremely unlikely that function ever runs ("lsp-download-install"). More importantly, I'm comparing (list-threads) in emacs and "info threads" in gdb, and the failed instance looks identical to the non-failed instances: a single emacs thread ("Main"), and three real threads ("emacs", "gmain", "gdbus"). garbage_collect() not present in any backtrace when interrupted. I'm at a loss for how it teleported out of that garbage_collect() call. Back to printf, I guess. Maybe there was a short-lived thread that isn't normally running... -Trevor From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 13 15:21:30 2020 Received: (at 43389) by debbugs.gnu.org; 13 Dec 2020 20:21:30 +0000 Received: from localhost ([127.0.0.1]:50437 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1koXru-0003Bl-77 for submit@debbugs.gnu.org; Sun, 13 Dec 2020 15:21:30 -0500 Received: from eggs.gnu.org ([209.51.188.92]:47034) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1koXrs-0003Ay-Al for 43389@debbugs.gnu.org; Sun, 13 Dec 2020 15:21:21 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:41218) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1koXrm-0005Zd-8u; Sun, 13 Dec 2020 15:21:14 -0500 Received: from [176.228.60.248] (port=3217 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1koXrl-00057y-Dm; Sun, 13 Dec 2020 15:21:13 -0500 Date: Sun, 13 Dec 2020 22:21:00 +0200 Message-Id: <83o8ixcv9v.fsf@gnu.org> From: Eli Zaretskii To: Trevor Bentley In-Reply-To: <87mtyhqxy1.fsf@mail.trevorbentley.com> (message from Trevor Bentley on Sun, 13 Dec 2020 20:59:34 +0100) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <83y2j0qb2v.fsf@gnu.org> <418751f6-41be-a5e2-908a-ea4196d5fb9b@redhat.com> <83y2inq2sp.fsf@gnu.org> <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83mtz3p7qy.fsf@gnu.org> <83lfenp78f.fsf@gnu.org> <83h7pbp5wh.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> <87sg8ts766.fsf@mail.trevorbentley.com> <87pn3usr13.fsf@mail.trevorbentley.com> <87eek0rmqa.fsf@mail.trevorbentley.com> <83zh2l33fv.fsf@gnu.org> <87zh2jqnhi.fsf@mail.trevorbentley.com> <837dpn1ccp.fsf@gnu.org> <87zh2i7jqp.fsf@web.de> <83eejue5v8.fsf@gnu.org> <87tusqqa6n.fsf@mail.trevorbentley.com> <833609ena5.fsf@gnu.org> <87r1ntqz4c.fsf@mail.trevorbentley.com> <83pn3dcx89.fsf@gnu.org> <87mtyhqxy1.fsf@mail.trevorbentley.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, bugs@gnu.support, michael_heerdegen@web.de, carlos@redhat.com, monnier@iro.umontreal.ca X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Trevor Bentley > Cc: michael_heerdegen@web.de, monnier@iro.umontreal.ca, carlos@redhat.com, > fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com > Cc: > Date: Sun, 13 Dec 2020 20:59:34 +0100 > > > As long as the main thread runs, you might indeed see nothing > > special. > > This was exactly my thought: a thread I'm not even aware of must > be silently crashing and leaving GC in a bad state. > > But there's only a single case of 'make-thread' in my ~/.emacs.d/, > and it's extremely unlikely that function ever runs > ("lsp-download-install"). > > More importantly, I'm comparing (list-threads) in emacs and "info > threads" in gdb, and the failed instance looks identical to the > non-failed instances: a single emacs thread ("Main"), and three > real threads ("emacs", "gmain", "gdbus"). garbage_collect() not > present in any backtrace when interrupted. > > I'm at a loss for how it teleported out of that garbage_collect() > call. Back to printf, I guess. Maybe there was a short-lived > thread that isn't normally running... Does thread-last-error return something non-nil? From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 13 15:41:50 2020 Received: (at 43389) by debbugs.gnu.org; 13 Dec 2020 20:41:50 +0000 Received: from localhost ([127.0.0.1]:50519 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1koYBh-0004k3-Na for submit@debbugs.gnu.org; Sun, 13 Dec 2020 15:41:49 -0500 Received: from mail.trevorbentley.com ([37.187.5.80]:37336) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1koYBf-0004jL-Mn for 43389@debbugs.gnu.org; Sun, 13 Dec 2020 15:41:47 -0500 Received: from localhost (c188-150-0-48.bredband.comhem.se [188.150.0.48]) by mail.trevorbentley.com (Postfix) with ESMTPSA id 48DEA60256; Sun, 13 Dec 2020 21:41:41 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mail.trevorbentley.com; s=mail; t=1607892101; bh=b6dv1HupdnzWoUYptGjiGxKowrS3YdEvclr3GRcdfAU=; h=From:To:Cc:Cc:Subject:In-Reply-To:References:Date:From; b=XcQTjeK838gNt1AYZRM8DnsTouSYLVrjb+L2f1vuR2UYgPBSeMiAaJIRjLA/63u+I P45ndGg7jy6G9gRyhXByfreEnsiDEc9DbSFPuxoqjy8ZM+P3292cSUbRY/ujwoMh9u wcaXAfTPtRXYO/rWK63usblG/bALF5L4dLjIKEZ0= From: Trevor Bentley To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time In-Reply-To: <83o8ixcv9v.fsf@gnu.org> References: <83y2j0qb2v.fsf@gnu.org> <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83mtz3p7qy.fsf@gnu.org> <83lfenp78f.fsf@gnu.org> <83h7pbp5wh.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> <87sg8ts766.fsf@mail.trevorbentley.com> <87pn3usr13.fsf@mail.trevorbentley.com> <87eek0rmqa.fsf@mail.trevorbentley.com> <83zh2l33fv.fsf@gnu.org> <87zh2jqnhi.fsf@mail.trevorbentley.com> <837dpn1ccp.fsf@gnu.org> <87zh2i7jqp.fsf@web.de> <83eejue5v8.fsf@gnu.org> <87tusqqa6n.fsf@mail.trevorbentley.com> <833609ena5.fsf@gnu.org> <87r1ntqz4c.fsf@mail.trevorbentley.com> <83pn3dcx89.fsf@gnu.org> <87mtyhqxy1.fsf@mail.trevorbentley.com> <83o8ixcv9v.fsf@gnu.org> Date: Sun, 13 Dec 2020 21:41:40 +0100 Message-ID: <87k0tlqvzv.fsf@mail.trevorbentley.com> MIME-Version: 1.0 Content-Type: text/plain; format=flowed X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, bugs@gnu.support, michael_heerdegen@web.de, carlos@redhat.com, monnier@iro.umontreal.ca, X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) > Does thread-last-error return something non-nil? Nope, nil in all instance, including the one in a weird state. I'm running one instance with printfs in some of the unblock_input() functions, and one in gdb with breakpoints on Fmake_thread, pthread_create, and emacs_abort. If you have other suggested probe points, I'm happy to test. Opening 10 emacses at a time seems to be going better for reproducing. Sometimes it triggers in an hour, sometimes in 3 days, but if I just flood the system with emacs processes I tend to hit it within a day. -Trevor From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 13 22:25:02 2020 Received: (at 43389) by debbugs.gnu.org; 14 Dec 2020 03:25:02 +0000 Received: from localhost ([127.0.0.1]:50795 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1koeTu-0003D9-L7 for submit@debbugs.gnu.org; Sun, 13 Dec 2020 22:25:02 -0500 Received: from eggs.gnu.org ([209.51.188.92]:36894) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1koeTt-0003Cc-NX for 43389@debbugs.gnu.org; Sun, 13 Dec 2020 22:25:02 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:46184) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1koeTn-0003H6-Hm; Sun, 13 Dec 2020 22:24:55 -0500 Received: from [176.228.60.248] (port=1212 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1koeTm-0000TF-N7; Sun, 13 Dec 2020 22:24:55 -0500 Date: Mon, 14 Dec 2020 05:24:43 +0200 Message-Id: <83mtyhcbno.fsf@gnu.org> From: Eli Zaretskii To: Trevor Bentley In-Reply-To: <87k0tlqvzv.fsf@mail.trevorbentley.com> (message from Trevor Bentley on Sun, 13 Dec 2020 21:41:40 +0100) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <83y2j0qb2v.fsf@gnu.org> <60253612-49f0-a1aa-b9e6-39cfef8d62b5@redhat.com> <83mtz3p7qy.fsf@gnu.org> <83lfenp78f.fsf@gnu.org> <83h7pbp5wh.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> <87sg8ts766.fsf@mail.trevorbentley.com> <87pn3usr13.fsf@mail.trevorbentley.com> <87eek0rmqa.fsf@mail.trevorbentley.com> <83zh2l33fv.fsf@gnu.org> <87zh2jqnhi.fsf@mail.trevorbentley.com> <837dpn1ccp.fsf@gnu.org> <87zh2i7jqp.fsf@web.de> <83eejue5v8.fsf@gnu.org> <87tusqqa6n.fsf@mail.trevorbentley.com> <833609ena5.fsf@gnu.org> <87r1ntqz4c.fsf@mail.trevorbentley.com> <83pn3dcx89.fsf@gnu.org> <87mtyhqxy1.fsf@mail.trevorbentley.com> <83o8ixcv9v.fsf@gnu.org> <87k0tlqvzv.fsf@mail.trevorbentley.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, bugs@gnu.support, michael_heerdegen@web.de, carlos@redhat.com, monnier@iro.umontreal.ca X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Trevor Bentley > Cc: michael_heerdegen@web.de, monnier@iro.umontreal.ca, carlos@redhat.com, > fweimer@redhat.com, 43389@debbugs.gnu.org, bugs@gnu.support, dj@redhat.com > Cc: > Date: Sun, 13 Dec 2020 21:41:40 +0100 > > > Does thread-last-error return something non-nil? > > Nope, nil in all instance, including the one in a weird state. Then it's unlikely that a thread died unnatural death. > I'm running one instance with printfs in some of the > unblock_input() functions, and one in gdb with breakpoints on > Fmake_thread, pthread_create, and emacs_abort. If you have other > suggested probe points, I'm happy to test. A breakpoint in watch_gc_cons_percentage, perhaps, to see if and when the threshold gets changed? From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 14 16:25:06 2020 Received: (at 43389) by debbugs.gnu.org; 14 Dec 2020 21:25:06 +0000 Received: from localhost ([127.0.0.1]:54717 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kovL7-0006Ae-PU for submit@debbugs.gnu.org; Mon, 14 Dec 2020 16:25:06 -0500 Received: from mail.trevorbentley.com ([37.187.5.80]:44289) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kovL6-00069z-1V for 43389@debbugs.gnu.org; Mon, 14 Dec 2020 16:25:04 -0500 Received: from localhost (c188-150-0-48.bredband.comhem.se [188.150.0.48]) by mail.trevorbentley.com (Postfix) with ESMTPSA id 628E860694; Mon, 14 Dec 2020 22:24:57 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mail.trevorbentley.com; s=mail; t=1607981097; bh=MFMtcsEMjrog7XnbVOuggW7KMuosBxlCxZoGrE+l2iI=; h=From:To:Cc:Cc:Subject:In-Reply-To:References:Date:From; b=ZWL9u7fFbcfGBIMjwFeQ0kFD7uOUtCZJBtOjV0b8FFvraiRlxrtdY2Y4yytPyxYN1 KCLELEidenKIOP/FrG/R9/LynBal442f9uyNnqBlf8di1uhwnWQhYnLg2T098/Dk8I Qk4uo3p77fVv3+6aTZ6mKLP+HWwDjJRlXqzwmtoo= From: Trevor Bentley To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time In-Reply-To: <83mtyhcbno.fsf@gnu.org> References: <83y2j0qb2v.fsf@gnu.org> <83lfenp78f.fsf@gnu.org> <83h7pbp5wh.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> <87sg8ts766.fsf@mail.trevorbentley.com> <87pn3usr13.fsf@mail.trevorbentley.com> <87eek0rmqa.fsf@mail.trevorbentley.com> <83zh2l33fv.fsf@gnu.org> <87zh2jqnhi.fsf@mail.trevorbentley.com> <837dpn1ccp.fsf@gnu.org> <87zh2i7jqp.fsf@web.de> <83eejue5v8.fsf@gnu.org> <87tusqqa6n.fsf@mail.trevorbentley.com> <833609ena5.fsf@gnu.org> <87r1ntqz4c.fsf@mail.trevorbentley.com> <83pn3dcx89.fsf@gnu.org> <87mtyhqxy1.fsf@mail.trevorbentley.com> <83o8ixcv9v.fsf@gnu.org> <87k0tlqvzv.fsf@mail.trevorbentley.com> <83mtyhcbno.fsf@gnu.org> Date: Mon, 14 Dec 2020 22:24:56 +0100 Message-ID: <87ft48qdw7.fsf@mail.trevorbentley.com> MIME-Version: 1.0 Content-Type: text/plain; format=flowed X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, bugs@gnu.support, michael_heerdegen@web.de, carlos@redhat.com, monnier@iro.umontreal.ca, X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) >> > Does thread-last-error return something non-nil? >> Nope, nil in all instance, including the one in a weird state. > > Then it's unlikely that a thread died unnatural death. > No, sure doesn't seem like it. Just hit it in an instance with more printfs, and it looks like it leaps right out of some sub-call of process_pending_signals(), continuing to run elsewhere without finishing garbage_collect(). To me, that means exactly one thing: longjmp. If something manages to longjmp out of garbage_collect() at that point, it leaves with consing_until_gc set to HI_THRESHOLD. This must explain why automatic GC stops running for hours or days, but manual GCs still work. I tried setting a breakpoint in longjmp, but it's called 3 times for every keypress! That's inconvenient. Running one single instance now with a conditional breakpoint on longjmp: it will break if longjmp is called while it's in unblock_input(). -Trevor From debbugs-submit-bounces@debbugs.gnu.org Wed Jan 20 07:02:34 2021 Received: (at 43389) by debbugs.gnu.org; 20 Jan 2021 12:02:34 +0000 Received: from localhost ([127.0.0.1]:53079 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l2CC2-0006et-3x for submit@debbugs.gnu.org; Wed, 20 Jan 2021 07:02:34 -0500 Received: from mail.trevorbentley.com ([37.187.5.80]:35329) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l2CBz-0006ec-2R for 43389@debbugs.gnu.org; Wed, 20 Jan 2021 07:02:32 -0500 Received: from localhost (c188-150-0-48.bredband.comhem.se [188.150.0.48]) by mail.trevorbentley.com (Postfix) with ESMTPSA id 6C5E1606E0; Wed, 20 Jan 2021 13:02:24 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mail.trevorbentley.com; s=mail; t=1611144144; bh=8CleTkDI/WZDTrPKRmLjufqksVJAOtXdEkSa5uQaI/U=; h=From:To:Cc:Cc:Subject:In-Reply-To:References:Date:From; b=hlcan/H1OmhyXLZbFv3NRJZgI92kvlWzDL6N8DzRjFJdyYF9CNUkbP2nDZfKApQwi 5V/VzO+C/g+RlAseM8WO1OUkS43r3bnKmMOgbKbP/qaNK7CDLuwAfry4kXg50MXpG2 3ogYEEu5j8TnCnhrLJwGh673QscuvdEcIiETjCC8= From: Trevor Bentley To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time In-Reply-To: <87ft48qdw7.fsf@mail.trevorbentley.com> References: <83y2j0qb2v.fsf@gnu.org> <83h7pbp5wh.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> <87sg8ts766.fsf@mail.trevorbentley.com> <87pn3usr13.fsf@mail.trevorbentley.com> <87eek0rmqa.fsf@mail.trevorbentley.com> <83zh2l33fv.fsf@gnu.org> <87zh2jqnhi.fsf@mail.trevorbentley.com> <837dpn1ccp.fsf@gnu.org> <87zh2i7jqp.fsf@web.de> <83eejue5v8.fsf@gnu.org> <87tusqqa6n.fsf@mail.trevorbentley.com> <833609ena5.fsf@gnu.org> <87r1ntqz4c.fsf@mail.trevorbentley.com> <83pn3dcx89.fsf@gnu.org> <87mtyhqxy1.fsf@mail.trevorbentley.com> <83o8ixcv9v.fsf@gnu.org> <87k0tlqvzv.fsf@mail.trevorbentley.com> <83mtyhcbno.fsf@gnu.org> <87ft48qdw7.fsf@mail.trevorbentley.com> Date: Wed, 20 Jan 2021 13:02:23 +0100 Message-ID: <87k0s7q0j4.fsf@mail.trevorbentley.com> MIME-Version: 1.0 Content-Type: text/plain; format=flowed X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, bugs@gnu.support, michael_heerdegen@web.de, carlos@redhat.com, monnier@iro.umontreal.ca, X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) > I tried setting a breakpoint in longjmp, but it's called 3 times > for every keypress! That's inconvenient. Running one single > instance now with a conditional breakpoint on longjmp: it will > break if longjmp is called while it's in unblock_input(). I disappeared for ages because... the problem disappeared. I went a month without reproducing it, despite putting a hold on upgrading both system and emacs packages while debugging. Very odd. But today it appeared again. And, for the first time, in a gdb session with breakpoints to confirm my theory. I believe I've found the underlying issue. If you have a look at this long backtrace, you can see that we are inside a garbage_collect call (frame #38). An X11 focus event comes in, triggering a bunch of GTK/GDK/X calls. Mysteriously, this leads to a maybe_quit() call which in turn calls longjmp(). longjmp jumps right out of the garbage collect, leaving it unfinished. Internally in garbage_collect, consing_until_gc was set to the HI_THRESHOLD upper-bound. It is left that way when longjmp leaps out of it, and no automatic garbage collect is ever performed again. This is the start of the ballooning memory. This also explains why my minimized emacs session never hits it and my work sessions hit it very often, and less often on weekends. It's triggered by focus events. I flitter around between windows constantly while working. I don't know emacs internals, so you'll have to figure out if this is X dependent (probably) and/or GTK dependent. It should be possible to come up with an easier way to reproduce it now. Backtrace: ----------- (gdb) bt #0 0x00007ffff5571230 in siglongjmp () at /usr/lib/libc.so.6 #1 0x00005555557bd38d in unwind_to_catch (catch=0x555555dfc320, type=NONLOCAL_EXIT_THROW, value=0x30) at eval.c:1181 #2 0x00005555557bd427 in Fthrow (tag=0xe75830, value=0x30) at eval.c:1198 #3 0x00005555557bdea7 in process_quit_flag () at eval.c:1526 #4 0x00005555557bdeef in maybe_quit () at eval.c:1547 #5 0x00005555557cbbb1 in Fassq (key=0xd0b0, alist=0x55555901c573) at fns.c:1609 #6 0x0000555555632b63 in window_parameter (w=0x555555f2d088, parameter=0xd0b0) at window.c:2262 #7 0x000055555563a075 in window_wants_tab_line (w=0x555555f2d088) at window.c:5410 #8 0x00005555555c22b1 in get_phys_cursor_geometry (w=0x555555f2d088, row=0x55555d9f3ef0, glyph=0x55555fd20e00, xp=0x7fffffff9c48, yp=0x7fffffff9c4c, heightp=0x7fffffff9c50) at xdisp.c:2650 #9 0x00005555556c1b12 in x_draw_hollow_cursor (w=0x555555f2d088, row=0x55555d9f3ef0) at xterm.c:9495 #10 0x00005555556c24f9 in x_draw_window_cursor (w=0x555555f2d088, glyph_row=0x55555d9f3ef0, x=32, y=678, cursor_type=HOLLOW_BOX_CURSOR, cursor_width=1, on_p=true, active_p=false) at xterm.c:9682 #11 0x000055555561a922 in display_and_set_cursor (w=0x555555f2d088, on=true, hpos=2, vpos=18, x=32, y=678) at xdisp.c:31738 #12 0x000055555561aa5b in update_window_cursor (w=0x555555f2d088, on=true) at xdisp.c:31773 #13 0x000055555561aabf in update_cursor_in_window_tree (w=0x555555f2d088, on_p=true) at xdisp.c:31791 #14 0x000055555561aaab in update_cursor_in_window_tree (w=0x55555907a490, on_p=true) at xdisp.c:31789 #15 0x000055555561aaab in update_cursor_in_window_tree (w=0x55555a514b68, on_p=true) at xdisp.c:31789 #16 0x000055555561ab37 in gui_update_cursor (f=0x555556625468, on_p=true) at xdisp.c:31805 #17 0x00005555556b9829 in x_frame_unhighlight (f=0x555556625468) at xterm.c:4490 #18 0x00005555556ba22d in x_frame_rehighlight (dpyinfo=0x55555626d6c0) at xterm.c:4852 #19 0x00005555556b98fc in x_new_focus_frame (dpyinfo=0x55555626d6c0, frame=0x0) at xterm.c:4520 #20 0x00005555556b9a3d in x_focus_changed (type=10, state=2, dpyinfo=0x55555626d6c0, frame=0x555556625468, bufp=0x7fffffffa0d0) at xterm.c:4554 #21 0x00005555556ba0a6 in x_detect_focus_change (dpyinfo=0x55555626d6c0, frame=0x555556625468, event=0x7fffffffa840, bufp=0x7fffffffa0d0) at xterm.c:4787 #22 0x00005555556c0235 in handle_one_xevent (dpyinfo=0x55555626d6c0, event=0x7fffffffa840, finish=0x555555c901d4 , hold_quit=0x7fffffffab50) at xterm.c:8810 #23 0x00005555556bde28 in event_handler_gdk (gxev=0x7fffffffa840, ev=0x55555cccf0c0, data=0x0) at xterm.c:7768 #24 0x00007ffff75f780f in () at /usr/lib/libgdk-3.so.0 #25 0x00007ffff75fb3cb in () at /usr/lib/libgdk-3.so.0 #26 0x00007ffff759f15b in gdk_display_get_event () at /usr/lib/libgdk-3.so.0 #27 0x00007ffff75fb104 in () at /usr/lib/libgdk-3.so.0 #28 0x00007ffff6fcb8f4 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0 #29 0x00007ffff701f821 in () at /usr/lib/libglib-2.0.so.0 #30 0x00007ffff6fca121 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #31 0x00007ffff784e2c7 in gtk_main_iteration () at /usr/lib/libgtk-3.so.0 #32 0x00005555556c1821 in XTread_socket (terminal=0x5555560b7460, hold_quit=0x7fffffffab50) at xterm.c:9395 #33 0x000055555570f3a2 in gobble_input () at keyboard.c:6890 #34 0x000055555570f894 in handle_async_input () at keyboard.c:7121 #35 0x000055555570f8dd in process_pending_signals () at keyboard.c:7139 #36 0x000055555570f9cf in unblock_input_to (level=0) at keyboard.c:7162 #37 0x000055555570fa4c in unblock_input () at keyboard.c:7187 #38 0x000055555578f49a in garbage_collect () at alloc.c:6121 #39 0x000055555578efe7 in maybe_garbage_collect () at alloc.c:5964 #40 0x00005555557bb292 in maybe_gc () at lisp.h:5041 #41 0x00005555557c12d6 in Ffuncall (nargs=2, args=0x7fffffffad68) at eval.c:2793 #42 0x000055555580f7d6 in exec_byte_code ... -------------- For breakpoints, I am doing the following: 1) make a global static variable in alloc.c: static int enable_gc_trace = 0; 2) in garbage_collect(), 'enable_gc_trace++' when it starts and 'enable_gc_trace--' when it ends. I just wrapped the call to unblock_input(), but you could widen that window. 3) run in gdb with conditional breakpoints on GC and longjmp functions: b siglongjmp if enable_gc_trace > 0 b internal_catch if enable_gc_trace > 0 b internal_catch_all if enable_gc_trace > 0 b maybe_garbage_collect if enable_gc_trace > 0 -Trevor From debbugs-submit-bounces@debbugs.gnu.org Wed Jan 20 07:08:54 2021 Received: (at 43389) by debbugs.gnu.org; 20 Jan 2021 12:08:54 +0000 Received: from localhost ([127.0.0.1]:53083 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l2CIA-0006nN-02 for submit@debbugs.gnu.org; Wed, 20 Jan 2021 07:08:54 -0500 Received: from mail.trevorbentley.com ([37.187.5.80]:35387) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l2CI7-0006n7-TR for 43389@debbugs.gnu.org; Wed, 20 Jan 2021 07:08:52 -0500 Received: from localhost (c188-150-0-48.bredband.comhem.se [188.150.0.48]) by mail.trevorbentley.com (Postfix) with ESMTPSA id C7A5D60842; Wed, 20 Jan 2021 13:08:45 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mail.trevorbentley.com; s=mail; t=1611144525; bh=FVdXQYrIbgqj26GF+rnrJYRqKi+QoEGEfL0j4kilSb8=; h=From:To:Cc:Cc:Subject:In-Reply-To:References:Date:From; b=Es5pZNV2/z4pdFRNNXZyn7LldTS53GfSdqPr78M06JycHPns6jTM/LOo9TWjRJhlk 7IDq0PqTdFTyJtFqsy6xc7ET/Yjtc+lLUGzXMC8StgRcmW21b46DAUO5d0pwYiry7Y nrMqH+6XcwrW9A1Bn359JyOMTEaJKi9XWgKM+mGU= From: Trevor Bentley To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time In-Reply-To: <87k0s7q0j4.fsf@mail.trevorbentley.com> References: <83y2j0qb2v.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> <87sg8ts766.fsf@mail.trevorbentley.com> <87pn3usr13.fsf@mail.trevorbentley.com> <87eek0rmqa.fsf@mail.trevorbentley.com> <83zh2l33fv.fsf@gnu.org> <87zh2jqnhi.fsf@mail.trevorbentley.com> <837dpn1ccp.fsf@gnu.org> <87zh2i7jqp.fsf@web.de> <83eejue5v8.fsf@gnu.org> <87tusqqa6n.fsf@mail.trevorbentley.com> <833609ena5.fsf@gnu.org> <87r1ntqz4c.fsf@mail.trevorbentley.com> <83pn3dcx89.fsf@gnu.org> <87mtyhqxy1.fsf@mail.trevorbentley.com> <83o8ixcv9v.fsf@gnu.org> <87k0tlqvzv.fsf@mail.trevorbentley.com> <83mtyhcbno.fsf@gnu.org> <87ft48qdw7.fsf@mail.trevorbentley.com> <87k0s7q0j4.fsf@mail.trevorbentley.com> Date: Wed, 20 Jan 2021 13:08:44 +0100 Message-ID: <87h7nbq08j.fsf@mail.trevorbentley.com> MIME-Version: 1.0 Content-Type: text/plain; format=flowed X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, bugs@gnu.support, michael_heerdegen@web.de, carlos@redhat.com, monnier@iro.umontreal.ca, X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) I'm incompetent at formatting e-mails. Have a link to the backtrace instead: https://trevorbentley.com/mtrace/backtrace.txt -Trevor From debbugs-submit-bounces@debbugs.gnu.org Wed Jan 20 09:53:19 2021 Received: (at 43389) by debbugs.gnu.org; 20 Jan 2021 14:53:19 +0000 Received: from localhost ([127.0.0.1]:53339 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l2ErH-0006cp-A1 for submit@debbugs.gnu.org; Wed, 20 Jan 2021 09:53:19 -0500 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:40193) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l2ErF-0006cd-JM for 43389@debbugs.gnu.org; Wed, 20 Jan 2021 09:53:18 -0500 Received: from pmg1.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 251DD101137; Wed, 20 Jan 2021 09:53:12 -0500 (EST) Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id AA32A1000DA; Wed, 20 Jan 2021 09:53:09 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1611154389; bh=XMa10L486h5VjAoBNwAMyaTmaQWxH4AhcbVvQDTk/7w=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=G1kie8/SeRuxo4CKRB7+Yo67/4Uz66UtzbTAtbCJBugJ6dUEpzAfXpiM7TakpDabF drNL/xFVkaCIDfpT083gS14tX2/S6/HuJLzqijVPvy4/eKQiDqLKrnjblxsB6seIa1 0iKZ9DVONwe862N+vpwSmffkxl+20jfrwatmD8z0OVZhnREPxMeLsyzarXDi9DMX4q 5B7OXMW1PAgpOICiqJpDVdS5mwMxqB6sbnyOkurw/nHbo/CZl/R7rFiBfS95KCWLDI bQtZzV4mt3ZN70bPhm0kQEHFegMtapJ7O4ndokyg+5koLRdZ0DM3GntVLAqUzy1wOR 8pTOxL0/M5z0Q== Received: from alfajor (unknown [45.72.224.181]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 5029C1204F0; Wed, 20 Jan 2021 09:53:09 -0500 (EST) From: Stefan Monnier To: Trevor Bentley Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time Message-ID: References: <83y2j0qb2v.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> <87sg8ts766.fsf@mail.trevorbentley.com> <87pn3usr13.fsf@mail.trevorbentley.com> <87eek0rmqa.fsf@mail.trevorbentley.com> <83zh2l33fv.fsf@gnu.org> <87zh2jqnhi.fsf@mail.trevorbentley.com> <837dpn1ccp.fsf@gnu.org> <87zh2i7jqp.fsf@web.de> <83eejue5v8.fsf@gnu.org> <87tusqqa6n.fsf@mail.trevorbentley.com> <833609ena5.fsf@gnu.org> <87r1ntqz4c.fsf@mail.trevorbentley.com> <83pn3dcx89.fsf@gnu.org> <87mtyhqxy1.fsf@mail.trevorbentley.com> <83o8ixcv9v.fsf@gnu.org> <87k0tlqvzv.fsf@mail.trevorbentley.com> <83mtyhcbno.fsf@gnu.org> <87ft48qdw7.fsf@mail.trevorbentley.com> <87k0s7q0j4.fsf@mail.trevorbentley.com> Date: Wed, 20 Jan 2021 09:53:08 -0500 In-Reply-To: <87k0s7q0j4.fsf@mail.trevorbentley.com> (Trevor Bentley's message of "Wed, 20 Jan 2021 13:02:23 +0100") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.062 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, bugs@gnu.support, michael_heerdegen@web.de, carlos@redhat.com, Eli Zaretskii X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > If you have a look at this long backtrace, you can see that we are inside > a garbage_collect call (frame #38). An X11 focus event comes in, triggering > a bunch of GTK/GDK/X calls. Mysteriously, this leads to a maybe_quit() call > which in turn calls longjmp(). longjmp jumps right out of the garbage > collect, leaving it unfinished. Indeed, thanks! > I don't know emacs internals, so you'll have to figure out if this is > X dependent (probably) and/or GTK dependent. It should be possible to come > up with an easier way to reproduce it now. The backtrace is clear enough, no need to reproduce it. The GC properly speaking is actually finished at that point, BTW (luckily: I think you'd have seen worse outcomes if that weren't the case ;-). I installed the simple patch below into `master. It should fix the immediate problem of failing to set consing_until_gc back to a sane value and it should also fix the other immediate problem of getting to `siglongjmp` from `unblock_input` via `window_parameter`. Eli, do you think it should go to `emacs-27`? > Backtrace: > ----------- > (gdb) bt > #0 0x00007ffff5571230 in siglongjmp () at /usr/lib/libc.so.6 > #1 0x00005555557bd38d in unwind_to_catch (catch=0x555555dfc320, type=NONLOCAL_EXIT_THROW, value=0x30) at eval.c:1181 > #2 0x00005555557bd427 in Fthrow (tag=0xe75830, value=0x30) at eval.c:1198 > #3 0x00005555557bdea7 in process_quit_flag () at eval.c:1526 > #4 0x00005555557bdeef in maybe_quit () at eval.c:1547 > #5 0x00005555557cbbb1 in Fassq (key=0xd0b0, alist=0x55555901c573) at fns.c:1609 > #6 0x0000555555632b63 in window_parameter (w=0x555555f2d088, parameter=0xd0b0) at window.c:2262 > #7 0x000055555563a075 in window_wants_tab_line (w=0x555555f2d088) at window.c:5410 > #8 0x00005555555c22b1 in get_phys_cursor_geometry (w=0x555555f2d088, row=0x55555d9f3ef0, glyph=0x55555fd20e00, xp=0x7fffffff9c48, yp=0x7fffffff9c4c, heightp=0x7fffffff9c50) at xdisp.c:2650 > #9 0x00005555556c1b12 in x_draw_hollow_cursor (w=0x555555f2d088, row=0x55555d9f3ef0) at xterm.c:9495 > #10 0x00005555556c24f9 in x_draw_window_cursor (w=0x555555f2d088, glyph_row=0x55555d9f3ef0, x=32, y=678, cursor_type=HOLLOW_BOX_CURSOR, cursor_width=1, on_p=true, active_p=false) at xterm.c:9682 > #11 0x000055555561a922 in display_and_set_cursor (w=0x555555f2d088, on=true, hpos=2, vpos=18, x=32, y=678) at xdisp.c:31738 > #12 0x000055555561aa5b in update_window_cursor (w=0x555555f2d088, on=true) at xdisp.c:31773 > #13 0x000055555561aabf in update_cursor_in_window_tree (w=0x555555f2d088, on_p=true) at xdisp.c:31791 > #14 0x000055555561aaab in update_cursor_in_window_tree (w=0x55555907a490, on_p=true) at xdisp.c:31789 > #15 0x000055555561aaab in update_cursor_in_window_tree (w=0x55555a514b68, on_p=true) at xdisp.c:31789 > #16 0x000055555561ab37 in gui_update_cursor (f=0x555556625468, on_p=true) at xdisp.c:31805 > #17 0x00005555556b9829 in x_frame_unhighlight (f=0x555556625468) at xterm.c:4490 > #18 0x00005555556ba22d in x_frame_rehighlight (dpyinfo=0x55555626d6c0) at xterm.c:4852 > #19 0x00005555556b98fc in x_new_focus_frame (dpyinfo=0x55555626d6c0, frame=0x0) at xterm.c:4520 > #20 0x00005555556b9a3d in x_focus_changed (type=10, state=2, dpyinfo=0x55555626d6c0, frame=0x555556625468, bufp=0x7fffffffa0d0) at xterm.c:4554 > #21 0x00005555556ba0a6 in x_detect_focus_change (dpyinfo=0x55555626d6c0, frame=0x555556625468, event=0x7fffffffa840, bufp=0x7fffffffa0d0) at xterm.c:4787 > #22 0x00005555556c0235 in handle_one_xevent (dpyinfo=0x55555626d6c0, event=0x7fffffffa840, finish=0x555555c901d4 , hold_quit=0x7fffffffab50) at xterm.c:8810 > #23 0x00005555556bde28 in event_handler_gdk (gxev=0x7fffffffa840, ev=0x55555cccf0c0, data=0x0) at xterm.c:7768 > #24 0x00007ffff75f780f in () at /usr/lib/libgdk-3.so.0 > #25 0x00007ffff75fb3cb in () at /usr/lib/libgdk-3.so.0 > #26 0x00007ffff759f15b in gdk_display_get_event () at /usr/lib/libgdk-3.so.0 > #27 0x00007ffff75fb104 in () at /usr/lib/libgdk-3.so.0 > #28 0x00007ffff6fcb8f4 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0 > #29 0x00007ffff701f821 in () at /usr/lib/libglib-2.0.so.0 > #30 0x00007ffff6fca121 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 > #31 0x00007ffff784e2c7 in gtk_main_iteration () at /usr/lib/libgtk-3.so.0 > #32 0x00005555556c1821 in XTread_socket (terminal=0x5555560b7460, hold_quit=0x7fffffffab50) at xterm.c:9395 > #33 0x000055555570f3a2 in gobble_input () at keyboard.c:6890 > #34 0x000055555570f894 in handle_async_input () at keyboard.c:7121 > #35 0x000055555570f8dd in process_pending_signals () at keyboard.c:7139 > #36 0x000055555570f9cf in unblock_input_to (level=0) at keyboard.c:7162 > #37 0x000055555570fa4c in unblock_input () at keyboard.c:7187 > #38 0x000055555578f49a in garbage_collect () at alloc.c:6121 > #39 0x000055555578efe7 in maybe_garbage_collect () at alloc.c:5964 > #40 0x00005555557bb292 in maybe_gc () at lisp.h:5041 > #41 0x00005555557c12d6 in Ffuncall (nargs=2, args=0x7fffffffad68) at eval.c:2793 > #42 0x000055555580f7d6 in exec_byte_code > ... -------------- Of course, there might be other places where we could get to `maybe_quit` from `XTread_socket`, given the enormous amount of code it can execute. :-( Stefan diff --git a/src/alloc.c b/src/alloc.c index c0a55e61b9..b86ed4ed26 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -6101,11 +6101,13 @@ garbage_collect (void) gc_in_progress = 0; - unblock_input (); - consing_until_gc = gc_threshold = consing_threshold (gc_cons_threshold, Vgc_cons_percentage, 0); + /* Unblock *after* re-setting `consing_until_gc` in case `unblock_input` + signals an error (see bug#43389). */ + unblock_input (); + if (garbage_collection_messages && NILP (Vmemory_full)) { if (message_p || minibuf_level > 0) diff --git a/src/window.c b/src/window.c index e025e0b082..eb16e2a433 100644 --- a/src/window.c +++ b/src/window.c @@ -2260,7 +2260,7 @@ DEFUN ("window-parameters", Fwindow_parameters, Swindow_parameters, Lisp_Object window_parameter (struct window *w, Lisp_Object parameter) { - Lisp_Object result = Fassq (parameter, w->window_parameters); + Lisp_Object result = assq_no_quit (parameter, w->window_parameters); return CDR_SAFE (result); } From debbugs-submit-bounces@debbugs.gnu.org Wed Jan 20 10:32:45 2021 Received: (at 43389) by debbugs.gnu.org; 20 Jan 2021 15:32:45 +0000 Received: from localhost ([127.0.0.1]:55947 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l2FTR-0008Hx-FU for submit@debbugs.gnu.org; Wed, 20 Jan 2021 10:32:45 -0500 Received: from eggs.gnu.org ([209.51.188.92]:54286) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l2FTB-0008HT-O9 for 43389@debbugs.gnu.org; Wed, 20 Jan 2021 10:32:44 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:52077) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l2FT4-0003sn-HS; Wed, 20 Jan 2021 10:32:22 -0500 Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:1848 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1l2FT0-0006tP-Uq; Wed, 20 Jan 2021 10:32:20 -0500 Date: Wed, 20 Jan 2021 17:32:32 +0200 Message-Id: <83im7r7hf3.fsf@gnu.org> From: Eli Zaretskii To: Stefan Monnier In-Reply-To: (message from Stefan Monnier on Wed, 20 Jan 2021 09:53:08 -0500) Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time References: <83y2j0qb2v.fsf@gnu.org> <83v9dpn9em.fsf@gnu.org> <87sg8ts766.fsf@mail.trevorbentley.com> <87pn3usr13.fsf@mail.trevorbentley.com> <87eek0rmqa.fsf@mail.trevorbentley.com> <83zh2l33fv.fsf@gnu.org> <87zh2jqnhi.fsf@mail.trevorbentley.com> <837dpn1ccp.fsf@gnu.org> <87zh2i7jqp.fsf@web.de> <83eejue5v8.fsf@gnu.org> <87tusqqa6n.fsf@mail.trevorbentley.com> <833609ena5.fsf@gnu.org> <87r1ntqz4c.fsf@mail.trevorbentley.com> <83pn3dcx89.fsf@gnu.org> <87mtyhqxy1.fsf@mail.trevorbentley.com> <83o8ixcv9v.fsf@gnu.org> <87k0tlqvzv.fsf@mail.trevorbentley.com> <83mtyhcbno.fsf@gnu.org> <87ft48qdw7.fsf@mail.trevorbentley.com> <87k0s7q0j4.fsf@mail.trevorbentley.com> X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 43389 Cc: fweimer@redhat.com, 43389@debbugs.gnu.org, dj@redhat.com, bugs@gnu.support, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Stefan Monnier > Cc: Eli Zaretskii , michael_heerdegen@web.de, > carlos@redhat.com, fweimer@redhat.com, 43389@debbugs.gnu.org, > bugs@gnu.support, dj@redhat.com > Date: Wed, 20 Jan 2021 09:53:08 -0500 > > > I don't know emacs internals, so you'll have to figure out if this is > > X dependent (probably) and/or GTK dependent. It should be possible to come > > up with an easier way to reproduce it now. > > The backtrace is clear enough, no need to reproduce it. Indeed. > I installed the simple patch below into `master. It should fix the > immediate problem of failing to set consing_until_gc back to a sane > value and it should also fix the other immediate problem of getting to > `siglongjmp` from `unblock_input` via `window_parameter`. > > Eli, do you think it should go to `emacs-27`? Definitely, thanks. From debbugs-submit-bounces@debbugs.gnu.org Wed Jan 20 10:40:42 2021 Received: (at 43389-done) by debbugs.gnu.org; 20 Jan 2021 15:40:42 +0000 Received: from localhost ([127.0.0.1]:55960 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l2Fb8-0008TR-AW for submit@debbugs.gnu.org; Wed, 20 Jan 2021 10:40:42 -0500 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:44747) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l2Fb6-0008TE-8w for 43389-done@debbugs.gnu.org; Wed, 20 Jan 2021 10:40:40 -0500 Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id C3F58440334; Wed, 20 Jan 2021 10:40:34 -0500 (EST) Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 5BAD144031D; Wed, 20 Jan 2021 10:40:33 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1611157233; bh=wMQ+lnhvZGhW7hcHEfzk5FH744jAWSh2JygiskUYevQ=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=V4xaxDOavDaJuwp9OtScJn3wZiMo6ZvZ6PR1UMvb9fW+9h1xOwswBIJTFNVn4mYzQ xzN37hut0yegGDuQt0ZkphCR3wE9npmHGjqwvj39BoinWldqlD5uoyH+V8iMRRZ/L9 GeP2h25QJzLPsVIKY226vJkYopBAEO6uQTU1OC91G7mCj6Fw6nNGXYolbchmWvvhra fz1E7JrhpBb6FXN1IBmA625Ybln13OaunqHHTRCj1du74i71vtNCA4cQIlp0/1Iq0u xE9qC2CIIDXUu+D7TM4uzfVfBqrTaEXL6JmeoHVJgB8/Y7ydOqeS+U22asSpYX6pXQ utab+WRU7+7pA== Received: from alfajor (unknown [45.72.224.181]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id EEDA71204FE; Wed, 20 Jan 2021 10:40:32 -0500 (EST) From: Stefan Monnier To: Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time Message-ID: References: <83y2j0qb2v.fsf@gnu.org> <87pn3usr13.fsf@mail.trevorbentley.com> <87eek0rmqa.fsf@mail.trevorbentley.com> <83zh2l33fv.fsf@gnu.org> <87zh2jqnhi.fsf@mail.trevorbentley.com> <837dpn1ccp.fsf@gnu.org> <87zh2i7jqp.fsf@web.de> <83eejue5v8.fsf@gnu.org> <87tusqqa6n.fsf@mail.trevorbentley.com> <833609ena5.fsf@gnu.org> <87r1ntqz4c.fsf@mail.trevorbentley.com> <83pn3dcx89.fsf@gnu.org> <87mtyhqxy1.fsf@mail.trevorbentley.com> <83o8ixcv9v.fsf@gnu.org> <87k0tlqvzv.fsf@mail.trevorbentley.com> <83mtyhcbno.fsf@gnu.org> <87ft48qdw7.fsf@mail.trevorbentley.com> <87k0s7q0j4.fsf@mail.trevorbentley.com> <83im7r7hf3.fsf@gnu.org> Date: Wed, 20 Jan 2021 10:40:31 -0500 In-Reply-To: <83im7r7hf3.fsf@gnu.org> (Eli Zaretskii's message of "Wed, 20 Jan 2021 17:32:32 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.039 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 43389-done Cc: fweimer@redhat.com, dj@redhat.com, bugs@gnu.support, michael_heerdegen@web.de, trevor@trevorbentley.com, carlos@redhat.com, 43389-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) >> Eli, do you think it should go to `emacs-27`? > Definitely, thanks. OK, done. Trevor: I marked this bug as closed under the assumption that this problem is solved, but of course, if it re-occurs feel free to re-open (ideally while running under GDB in a similar setup, so we get a clear backtrace again ;-) Stefan From debbugs-submit-bounces@debbugs.gnu.org Wed Jan 20 10:49:38 2021 Received: (at 43389-done) by debbugs.gnu.org; 20 Jan 2021 15:49:38 +0000 Received: from localhost ([127.0.0.1]:55980 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l2Fjm-0000Fa-8I for submit@debbugs.gnu.org; Wed, 20 Jan 2021 10:49:38 -0500 Received: from mail.trevorbentley.com ([37.187.5.80]:36762) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l2Fjk-0000FN-Ii for 43389-done@debbugs.gnu.org; Wed, 20 Jan 2021 10:49:37 -0500 Received: from localhost (c188-150-0-48.bredband.comhem.se [188.150.0.48]) by mail.trevorbentley.com (Postfix) with ESMTPSA id E60F0608B5; Wed, 20 Jan 2021 16:49:29 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mail.trevorbentley.com; s=mail; t=1611157770; bh=njEmat6v1ndBOWEyYEtrSNGLrdcXaBz8GZPQjDMbvIs=; h=From:To:Cc:Cc:Subject:In-Reply-To:References:Date:From; b=kOlRv7urZxvU/cZ6rrz1sJTyXV9e1LEo6r4pXkkFi3C0Qy+pY5NR9WwCQ2EdkJfeX 3Tnr+MKng7SEGjoZNa/6NOYoEfq+suXPq11uldgsRLKRzajXCWOk8PGR7faORDHEqE Ty3Z4IIjSk1GZ2ctmy39A4ZTm40dvaxJ9pJltYpc= From: Trevor Bentley To: Stefan Monnier , Eli Zaretskii Subject: Re: bug#43389: 28.0.50; Emacs memory leaks using hard disk all time In-Reply-To: References: <83y2j0qb2v.fsf@gnu.org> <87eek0rmqa.fsf@mail.trevorbentley.com> <83zh2l33fv.fsf@gnu.org> <87zh2jqnhi.fsf@mail.trevorbentley.com> <837dpn1ccp.fsf@gnu.org> <87zh2i7jqp.fsf@web.de> <83eejue5v8.fsf@gnu.org> <87tusqqa6n.fsf@mail.trevorbentley.com> <833609ena5.fsf@gnu.org> <87r1ntqz4c.fsf@mail.trevorbentley.com> <83pn3dcx89.fsf@gnu.org> <87mtyhqxy1.fsf@mail.trevorbentley.com> <83o8ixcv9v.fsf@gnu.org> <87k0tlqvzv.fsf@mail.trevorbentley.com> <83mtyhcbno.fsf@gnu.org> <87ft48qdw7.fsf@mail.trevorbentley.com> <87k0s7q0j4.fsf@mail.trevorbentley.com> <83im7r7hf3.fsf@gnu.org> Date: Wed, 20 Jan 2021 16:49:28 +0100 Message-ID: <87eeifpq0n.fsf@mail.trevorbentley.com> MIME-Version: 1.0 Content-Type: text/plain; format=flowed X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389-done Cc: fweimer@redhat.com, , dj@redhat.com, bugs@gnu.support, michael_heerdegen@web.de, carlos@redhat.com, 43389-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Stefan Monnier writes: > Trevor: I marked this bug as closed under the assumption that > this problem is solved, but of course, if it re-occurs feel free > to re-open (ideally while running under GDB in a similar setup, > so we get a clear backtrace again ;-) Agreed. And thanks to everyone for all of the help! I very much look forward to having long-lived emacs processes again :) -Trevor From debbugs-submit-bounces@debbugs.gnu.org Sat Feb 06 11:25:47 2021 Received: (at 43389) by debbugs.gnu.org; 6 Feb 2021 16:25:47 +0000 Received: from localhost ([127.0.0.1]:46354 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l8QP5-0000vd-A0 for submit@debbugs.gnu.org; Sat, 06 Feb 2021 11:25:47 -0500 Received: from smtp6.ctinetworks.com ([205.166.61.199]:44402) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l8QP4-0000vW-FF for 43389@debbugs.gnu.org; Sat, 06 Feb 2021 11:25:46 -0500 Received: from localhost (unknown [117.193.12.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: enometh@meer.net) by smtp6.ctinetworks.com (Postfix) with ESMTPSA id B847B800B3 for <43389@debbugs.gnu.org>; Sat, 6 Feb 2021 11:25:40 -0500 (EST) Date: Sat, 06 Feb 2021 21:55:39 +0530 (IST) Message-Id: <20210206.215539.1665079139633241050.enometh@meer.net> To: 43389@debbugs.gnu.org Subject: Re: bug#43395: closed From: Madhu In-Reply-To: References: X-Mailer: Mew version 6.8 on Emacs 28.0 Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-ctinetworks-Information: Please contact the ISP for more information X-ctinetworks-MailScanner-ID: B847B800B3.A6CB5 X-ctinetworks-VirusCheck: Found to be clean X-ctinetworks-SpamCheck: X-ctinetworks-Watermark: 1613492745.6516@l8zbOVGNavlofUqW4KL0hw X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) I think I am facing the problem again presently: GNU Emacs 28.0.50 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.24.24, cairo version 1.16.0) of 2021-01-21 (pgtk branch; i think the corresponding commit on master was 8b33b76eb9fb) PID %MEM VIRT SWAP RES CODE DATA SHR nMaj OOMs nDRT %CPU COMMAND 9912 17.8 81.8g 0 1.3g 2916 49.3g 10976 48k 732 0 0.0 emacs I was able to get a M-x memory-report and M-x memory-usage (88.7 MiB Overall Object Memory Usage) but I couldn't get a M-x malloc-info as this was started --daemon. Unfortunately I botched up and killed the emacs process when trying to open a file and redirect malloc_info to it in gdb. I didn't check gc-cons-threshold gc-cons-percentage but I did kill all buffers and did a few manual gc-s so i think those were normal. Were the paths leading to the code which was fixed understood? (on another note perhaps malloc_trim could be introduced into the gc via an optional path?) From unknown Sun Jun 15 01:05:48 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sun, 07 Mar 2021 12:24:07 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator From debbugs-submit-bounces@debbugs.gnu.org Sun Mar 21 11:52:07 2021 Received: (at control) by debbugs.gnu.org; 21 Mar 2021 15:52:07 +0000 Received: from localhost ([127.0.0.1]:55284 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lO0N5-0004fM-0k for submit@debbugs.gnu.org; Sun, 21 Mar 2021 11:52:07 -0400 Received: from smtp5.ctinetworks.com ([205.166.61.198]:38964) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lO0N0-0004fB-VX for control@debbugs.gnu.org; Sun, 21 Mar 2021 11:52:06 -0400 Received: from localhost (unknown [117.193.0.186]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: enometh@meer.net) by smtp5.ctinetworks.com (Postfix) with ESMTPSA id CB9FA1634BA for ; Sun, 21 Mar 2021 11:51:58 -0400 (EDT) Date: Sun, 21 Mar 2021 21:21:46 +0530 (IST) Message-Id: <20210321.212146.1574986842290048143.enometh@meer.net> To: control@debbugs.gnu.org Subject: unarchive 43389 From: Madhu X-Mailer: Mew version 6.8 on Emacs 28.0 Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-ctinetworks-Information: Please contact the ISP for more information X-ctinetworks-MailScanner-ID: CB9FA1634BA.A6046 X-ctinetworks-VirusCheck: Found to be clean X-ctinetworks-SpamCheck: X-ctinetworks-Watermark: 1617205922.10347@So6QX1AXDtJAKQBTssDNFA X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) unarchive 43389 From debbugs-submit-bounces@debbugs.gnu.org Sun Mar 21 11:57:21 2021 Received: (at 43389) by debbugs.gnu.org; 21 Mar 2021 15:57:21 +0000 Received: from localhost ([127.0.0.1]:55298 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lO0S9-0004nP-2e for submit@debbugs.gnu.org; Sun, 21 Mar 2021 11:57:21 -0400 Received: from smtp5.ctinetworks.com ([205.166.61.198]:39434) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lO0S6-0004nH-Sg for 43389@debbugs.gnu.org; Sun, 21 Mar 2021 11:57:19 -0400 Received: from localhost (unknown [117.193.0.186]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: enometh@meer.net) by smtp5.ctinetworks.com (Postfix) with ESMTPSA id 640961634BA for <43389@debbugs.gnu.org>; Sun, 21 Mar 2021 11:57:11 -0400 (EDT) Resent-Date: Sun, 21 Mar 2021 21:26:59 +0530 (IST) Resent-Message-Id: <20210321.212659.2117159753473590579.enometh@meer.net> Resent-To: 43389@debbugs.gnu.org Resent-From: Madhu Date: Sun, 21 Mar 2021 19:40:44 +0530 (IST) Message-Id: <20210321.194044.1221749597160780441.enometh@meer.net> To: 43389@debbugs.gnu.org Subject: Re: bug#43395: closed From: Madhu In-Reply-To: <20210206.215539.1665079139633241050.enometh@meer.net> References: <20210206.215539.1665079139633241050.enometh@meer.net> X-Mailer: Mew version 6.8 on Emacs 28.0 Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Sun_Mar_21_19_40_44_2021_045)--" Content-Transfer-Encoding: 7bit X-ctinetworks-Information: Please contact the ISP for more information X-ctinetworks-MailScanner-ID: 640961634BA.A4D6C X-ctinetworks-VirusCheck: Found to be clean X-ctinetworks-SpamCheck: X-ctinetworks-Watermark: 1617206238.16794@Ctuz13xnmlB/KT4tsrKbZQ X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 43389 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) ----Next_Part(Sun_Mar_21_19_40_44_2021_045)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit I think this dragon has not been put to sleep yet. I ran into the problem again - quite quickly within some 5 hours of emacs uptime GNU Emacs 28.0.50 (build 1, x86_64-pc-linux-gnu, Motif Version 2.3.8, cairo version 1.16.0) of 2021-03-08 (master commit a190bc9f3 - with the motif removal reverted.) PID USER PR NI VIRT RES %CPU %MEM TIME+ S COMMAND 21301 madhu 20 0 2988364 2.7g 0.0 36.7 5:04.01 S emacs USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND madhu 21301 1.9 36.7 2988364 2809536 pts/2 Ssl+ 14:06 5:03 /12/build/emacs/build-motif/src/emacs -nw A full gc does not release the resident memory. I had an emacs -nw session and one X emacsclient session. I was prompted for a passwd by mew in the gui frame, and the prompt appeared on the tty frame - which was where I entered the password. Then I noticed the cpu temperature was up, and and a Ctrl-G on emacs stopped that. I think the leak may have occured then but I didn't notice it until later. When I did notice it i killed all the buffers did a gc and ran the memory and malloc reports - which I'm attaching here - in case it gives any clues. The emacs command line was: TERM=xterm-256color MALLOC_ARENA_MAX=2 exec /12/build/emacs/build-motif/src/emacs -nw" > ~/emacs.log 2>&1 ----Next_Part(Sun_Mar_21_19_40_44_2021_045)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="memory-usage.txt" Garbage collection stats: ((conses 16 788433 262686) (symbols 48 72449 79) (strings 32 397265 20150) (string-bytes 1 26247796) (vectors 16 88641) (vector-slots 8 1961725 208444) (floats 8 1191 1377) (intervals 56 9514 5343) (buffers 992 8)) => 12.0MB (+ 4.01MB dead) in conses 3.32MB (+ 3.70kB dead) in symbols 12.1MB (+ 630kB dead) in strings 25.0MB in string-bytes 1.35MB in vectors 15.0MB (+ 1.59MB dead) in vector-slots 9.30kB (+ 10.8kB dead) in floats 520kB (+ 292kB dead) in intervals 7.75kB in buffers Total in lisp objects: 75.9MB (live 69.3MB, dead 6.51MB) Buffer ralloc memory usage: 8 buffers 16.2kB total (14.0kB in gaps) Size Gap Name 1277 753 memory-report.txt 670 1575 *Buffer Details* 274 5855 *Ibuffer* 103 1918 *Messages* 35 2002 *Echo Area 0* 0 2087 *Minibuf-1* 0 20 *Minibuf-0* 0 20 *Echo Area 1* ----Next_Part(Sun_Mar_21_19_40_44_2021_045)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="memory-report.txt" Estimated Emacs Memory Usage 69.3 MiB Overall Object Memory Usage 11.1 MiB Memory Used By Global Variables 6.6 MiB Reserved (But Unused) Object Memory 5.5 MiB Memory Used By Symbol Plists 61.7 KiB Total Buffer Memory Usage 1.2 KiB Total Image Cache Size Object Storage 37.2 MiB Strings 16.3 MiB Vectors 12.0 MiB Conses 3.3 MiB Symbols 514.2 KiB Intervals 9.3 KiB Floats 6.8 KiB Buffer-Objects Largest Buffers 31.5 KiB *Minibuf-1* 25.1 KiB *Ibuffer* 2.1 KiB *Echo Area 0* 1.3 KiB *Memory Report* 1.2 KiB *Messages* 0.3 KiB *Minibuf-0* 0.2 KiB *Echo Area 1* Largest Variables 1.4 MiB load-history 1.2 MiB $portage-category-package-names 951.6 KiB +lw-manual-data-7-1-0-0+ 574.5 KiB ivy--all-candidates 491.4 KiB command-history 296.5 KiB face-new-frame-defaults 282.5 KiB help-definition-prefixes 236.3 KiB obarray 143.1 KiB org-entities 137.5 KiB save-place-alist 92.5 KiB global-map 92.5 KiB widget-global-map 89.3 KiB bibtex-biblatex-entry-alist 84.4 KiB buffer-name-history 83.2 KiB lw::manual-symbols 82.2 KiB gnus-summary-mode-map 80.9 KiB coding-system-alist 79.0 KiB shortdoc--groups 77.3 KiB ivy-history 74.7 KiB ivy--virtual-buffers ----Next_Part(Sun_Mar_21_19_40_44_2021_045)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="malloc-info.txt" ----Next_Part(Sun_Mar_21_19_40_44_2021_045)---- From unknown Sun Jun 15 01:05:48 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Mon, 19 Apr 2021 11:24:06 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator