From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.tex.context/103713 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Arthur Reutenauer Newsgroups: gmane.comp.tex.context Subject: Re: optional hyphenation patterns in ancient Greek Date: Mon, 25 Mar 2019 15:09:52 +0100 Message-ID: <20190325140952.hp7yqojl72fiua3h@phare.normalesup.org> References: <427e465c-200d-786e-a0a8-13208b1c5662@gmx.es> Reply-To: Mailing list for ConTeXt users Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="zunh7pbif6mirwae" Content-Transfer-Encoding: 8bit Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="68086"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: NeoMutt/20170113 (1.7.2) To: Mailing list for ConTeXt users Original-X-From: ntg-context-bounces@ntg.nl Mon Mar 25 15:13:28 2019 Return-path: Envelope-to: gctc-ntg-context-518@m.gmane.org Original-Received: from zapf.boekplan.nl ([5.39.185.232] helo=zapf.ntg.nl) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1h8QLw-000Hb6-2i for gctc-ntg-context-518@m.gmane.org; Mon, 25 Mar 2019 15:13:28 +0100 Original-Received: from localhost (localhost [127.0.0.1]) by zapf.ntg.nl (Postfix) with ESMTP id 51FD5110471; Mon, 25 Mar 2019 15:12:59 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at zapf.boekplan.nl Original-Received: from zapf.ntg.nl ([127.0.0.1]) by localhost (zapf.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id BHkUp4sDL-Ox; Mon, 25 Mar 2019 15:12:58 +0100 (CET) Original-Received: from zapf.ntg.nl (localhost [127.0.0.1]) by zapf.ntg.nl (Postfix) with ESMTP id 70718110465; Mon, 25 Mar 2019 15:12:58 +0100 (CET) Original-Received: from localhost (localhost [127.0.0.1]) by zapf.ntg.nl (Postfix) with ESMTP id C9AF1110465 for ; Mon, 25 Mar 2019 15:12:57 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at zapf.boekplan.nl Original-Received: from zapf.ntg.nl ([127.0.0.1]) by localhost (zapf.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id llWctWl60ok5 for ; Mon, 25 Mar 2019 15:12:56 +0100 (CET) X-Greylist: delayed 183 seconds by postgrey-1.36 at zapf.ntg.nl; Mon, 25 Mar 2019 15:12:56 CET Original-Received: from nef.ens.fr (nef2.ens.fr [129.199.96.40]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by zapf.ntg.nl (Postfix) with ESMTPS id C24AE11045F for ; Mon, 25 Mar 2019 15:12:56 +0100 (CET) X-ENS-nef-client: 129.199.129.80 Original-Received: from phare.normalesup.org (phare.normalesup.org [129.199.129.80]) by nef.ens.fr (8.14.4/1.01.28121999) with ESMTP id x2PE9qT4020239 for ; Mon, 25 Mar 2019 15:09:52 +0100 Original-Received: by phare.normalesup.org (Postfix, from userid 1008) id 93651EB5B4; Mon, 25 Mar 2019 15:09:52 +0100 (CET) Content-Disposition: inline In-Reply-To: <427e465c-200d-786e-a0a8-13208b1c5662@gmx.es> X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.4.3 (nef.ens.fr [129.199.96.32]); Mon, 25 Mar 2019 15:09:52 +0100 (CET) X-BeenThere: ntg-context@ntg.nl X-Mailman-Version: 2.1.26 Precedence: list List-Id: mailing list for ConTeXt users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: ntg-context-bounces@ntg.nl Original-Sender: "ntg-context" Xref: news.gmane.org gmane.comp.tex.context:103713 Archived-At: --zunh7pbif6mirwae Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit Dear Pablo, Five months ago I sent you a private email with detailed explanations of how you can achieve that in ConTeXt. I suggest you go through that first before we start talking about a new pattern set. Here is the email, with a few updates (the paragraph quoted at the top is by myself). ---- Date: Thu, 25 Oct 2018 15:05:17 +0200 From: Arthur Reutenauer > In LuaTeX it’s now possible to inject patterns on the fly, at > typesetting time. I admit to not knowing if ConTeXt has a special way to > take advantage of that; it’s a simple command in pure LuaTeX. It would > also be necessary to change a few patterns in the current set, because > they would interact badly with 2γ1μ. More on that tomorrow. OK, so here goes. It is not possible to just use \patterns in the middle of a Mark IV run, because Hans deactivates it (in lang-ini.mkiv) -- clearly a remnant from Mark II, as in pdfTeX and XeTeX it would have resulted in an error; in ConTeXt it just becomes a no-op, which thus shadows LuaTeX’s behaviour that could actually have been useful. The situation in Mark IV is documented in languages-mkiv.pdf which is part of the distribution: Hans rewrote the whole hyphenation routine in Lua in 2014, and users can switch to it with \setuphyphenation[method=traditional] The idea behind the name is apparently that the Lua code mimics the “traditional” way implemented in the TeX engine, and Hans envisages that other methods can be written in the future (but this hasn’t happened yet). The non-Lua method is on by default and can be chosen explicitly with \setuphyphenation[method=default] but it is not possible to inject new patterns that way because of the above. With the Lua method activated, it becomes possible to add patterns on the fly with \registerhyphenationpattern[agr][2γ1μ] Some care should be taken when adding patterns to an existing set, since they can -- and in this case do -- interact with other patterns in the set. Here, I’ve found that this row of patterns (l. 516 of the master file, https://github.com/hyphenation/tex-hyphen/blob/82e5651/hyph-utf8/tex/generic/hyph-utf8/patterns/tex/hyph-grc.tex#L516): 4γμ' 4γμ’ 4γμʼ 4γμ᾽ 4γμ᾿ needs to be overridden with patterns such as γ2μ' γ2μ’ γ2μʼ γ2μ᾽ γ2μ᾿ otherwise the new pattern would allow breaks before the mu. The attached file puts everything together. ---- Best, Arthur --zunh7pbif6mirwae Content-Type: text/x-tex; charset=utf-8 Content-Disposition: attachment; filename="add-patterns-on-the-fly.tex" Content-Transfer-Encoding: 8bit \mainlanguage[agr] \definefont[linuxlibertine][name:linlibertineo] \starttext \hsize=1pt \linuxlibertine πρᾶγμα πράγματος \setuphyphenation[method=traditional] \registerhyphenationpattern[agr][2γ1μ γ2μ’] πρᾶγμα πράγματος πραγμ’ ἄτος % Without the second pattern above, we get the incorrect break πραγ-μ’ \stoptext --zunh7pbif6mirwae Content-Type: application/pdf Content-Disposition: attachment; filename="add-patterns-on-the-fly.pdf" Content-Transfer-Encoding: base64 JVBERi0xLjcKJdDUxdgKOSAwIG9iago8PC9MZW5ndGggMjQ2ICAgICAgIC9GaWx0ZXIvRmxh dGVEZWNvZGU+PgpzdHJlYW0KeF59kbtuwzAMRXd/hb6AuRRFUgKKDkacAJ29FV3bqf+/lnb8 AFI7g6RFV4fnCuknId07LGc/dpcbJ2Zqqmw1jd+J4wZizxWkYrDkBrLiLafxN32+AZrfv8aP iOpx1EHVPDkySS3KS07sBnHAqgEY5jdW2hKx6tSsNNkiGWJ9LBxedyEtMeUTQbQ/JWgjzurh OsuIbYTTSCnksLx5uERsCBc+HEpAuZrtDrv2RDtTZ51ai77Xwc61wVSKl93hQZi0XxA0ykX2 tv/HTDgbSD2Tocrm8VpbtRLX6v/+IghryXa9HjWmRcit8eqjQxT8RBvG7g+BepGPCmVuZHN0 cmVhbQplbmRvYmoKMTQgMCBvYmoKPDwvU3VidHlwZSAvWE1MIC9UeXBlIC9NZXRhZGF0YQov TGVuZ3RoIDIwNDggICAgICA+PgpzdHJlYW0KPD94cGFja2V0IGJlZ2luPSLvu7/vu78iIGlk PSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz48eDp4bXBtZXRhIHhtbG5zOng9ImFkb2Jl Om5zOm1ldGEvIj48cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkv MDIvMjItcmRmLXN5bnRheC1ucyMiPjxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHht bG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+PGRjOmZvcm1hdD5h cHBsaWNhdGlvbi9wZGY8L2RjOmZvcm1hdD48ZGM6Y3JlYXRvcj48cmRmOlNlcT48cmRmOmxp IHhtbDpsYW5nPSJ4LWRlZmF1bHQiLz48L3JkZjpTZXE+PC9kYzpjcmVhdG9yPjxkYzpkZXNj cmlwdGlvbj48cmRmOkFsdD48cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiLz48L3JkZjpB bHQ+PC9kYzpkZXNjcmlwdGlvbj48ZGM6dGl0bGU+PHJkZjpBbHQ+PHJkZjpsaSB4bWw6bGFu Zz0ieC1kZWZhdWx0Ij5hZGQtcGF0dGVybnMtb24tdGhlLWZseTwvcmRmOmxpPjwvcmRmOkFs dD48L2RjOnRpdGxlPjwvcmRmOkRlc2NyaXB0aW9uPjxyZGY6RGVzY3JpcHRpb24gcmRmOmFi b3V0PSIiIHhtbG5zOnBkZng9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGRmeC8xLjMvIj48cGRm eDpJRD5hZGQtcGF0dGVybnMtb24tdGhlLWZseTwvcGRmeDpJRD48cGRmeDpDb25UZVh0Lkpv Ym5hbWU+YWRkLXBhdHRlcm5zLW9uLXRoZS1mbHk8L3BkZng6Q29uVGVYdC5Kb2JuYW1lPjxw ZGZ4OkNvblRlWHQuVGltZT4yMDE5LTAzLTI1IDE0OjM0PC9wZGZ4OkNvblRlWHQuVGltZT48 cGRmeDpDb25UZVh0LlVybD53d3cucHJhZ21hLWFkZS5jb208L3BkZng6Q29uVGVYdC5Vcmw+ PHBkZng6Q29uVGVYdC5TdXBwb3J0PmNvbnRleHRnYXJkZW4ubmV0PC9wZGZ4OkNvblRlWHQu U3VwcG9ydD48cGRmeDpDb25UZVh0LlZlcnNpb24+MjAxOC4wNC4wNCAwMDo1MTwvcGRmeDpD b25UZVh0LlZlcnNpb24+PHBkZng6VGVYLlN1cHBvcnQ+dHVnLm9yZzwvcGRmeDpUZVguU3Vw cG9ydD48cGRmeDpMdWFUZVguVmVyc2lvbj4xLjA3PC9wZGZ4Okx1YVRlWC5WZXJzaW9uPjxw ZGZ4Okx1YVRlWC5GdW5jdGlvbmFsaXR5PjY2ODY8L3BkZng6THVhVGVYLkZ1bmN0aW9uYWxp dHk+PHBkZng6THVhVGVYLkx1YVZlcnNpb24+NS4yPC9wZGZ4Okx1YVRlWC5MdWFWZXJzaW9u PjxwZGZ4Okx1YVRlWC5QbGF0Zm9ybT5vc3gtNjQ8L3BkZng6THVhVGVYLlBsYXRmb3JtPjwv cmRmOkRlc2NyaXB0aW9uPjxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnht cD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+PHhtcDpDcmVhdGVEYXRlPjIwMTkt MDMtMjVUMTQ6MzQ6MjgrMDE6MDA8L3htcDpDcmVhdGVEYXRlPjx4bXA6Q3JlYXRvclRvb2w+ THVhVGVYIDEuMDcgNjY4NiArIENvblRlWHQgTWtJViAyMDE4LjA0LjA0IDAwOjUxPC94bXA6 Q3JlYXRvclRvb2w+PHhtcDpNb2RpZnlEYXRlPjIwMTktMDMtMjVUMTQ6MzQ6MjgrMDE6MDA8 L3htcDpNb2RpZnlEYXRlPjx4bXA6TWV0YWRhdGFEYXRlPjIwMTktMDMtMjVUMTQ6MzQ6Mjgr MDE6MDA8L3htcDpNZXRhZGF0YURhdGU+PC9yZGY6RGVzY3JpcHRpb24+PHJkZjpEZXNjcmlw dGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6cGRmPSJodHRwOi8vbnMuYWRvYmUuY29tL3BkZi8x LjMvIj48cGRmOktleXdvcmRzLz48cGRmOlByb2R1Y2VyPkx1YVRlWC0xLjA3PC9wZGY6UHJv ZHVjZXI+PHBkZjpUcmFwcGVkPkZhbHNlPC9wZGY6VHJhcHBlZD48L3JkZjpEZXNjcmlwdGlv bj48cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25z LmFkb2JlLmNvbS94YXAvMS4wL21tLyI+PHhtcE1NOkRvY3VtZW50SUQ+dXVpZDpjMWU4ODMz Zi00YTNhLTkxMDQtZTFmOS1iNDMxZjMzYmFmNzM8L3htcE1NOkRvY3VtZW50SUQ+PHhtcE1N Okluc3RhbmNlSUQ+dXVpZDpiNTM1OTlmMy00MzBhLWFhOGQtNjE2OC1lZWI2ZjJlZWVhNmQ8 L3htcE1NOkluc3RhbmNlSUQ+PC9yZGY6RGVzY3JpcHRpb24+PC9yZGY6UkRGPjwveDp4bXBt ZXRhPjw/eHBhY2tldCBlbmQ9InciPz4KZW5kc3RyZWFtCmVuZG9iagoxNiAwIG9iago8PC9M ZW5ndGggMjYgICAgICAgIC9GaWx0ZXIvRmxhdGVEZWNvZGU+PgpzdHJlYW0KeF5jYGKgFxBY IHyBqnYJYDENyTssALNbAawKZW5kc3RyZWFtCmVuZG9iagoxNyAwIG9iago8PC9TdWJ0eXBl L0NJREZvbnRUeXBlMEMvTGVuZ3RoIDIwNzQgICAgICAvRmlsdGVyL0ZsYXRlRGVjb2RlPj4K c3RyZWFtCnhevVZ7UFNnFr8h3OSTRlTi3anVJldrW1khoqGsdXzUOqurSxUr6vgcA9xgAJMA CW9DwiuRA4RXQCIPeUmVAmoQnyg+0YJo2+nW4r5868zWdWe7+116sXdv6G477W5n+oezd+b+ 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 PuG422xcMxY/FuGQo2JMjaymEswpBqXQUf5sJVp5/p9Wos5Rv6c2XyjblNhtGy1gK84rz+uv unwaPkb9iUejFf7eS+dEdqrsDeHqSLzjvUYeCIDJ7CMqu5pdureuGk92de496JJwOVXSH04h YWqcYkHVBV42rkzm1+XXJZMNvzRcLhv/L05GMAMKZW5kc3RyZWFtCmVuZG9iagoxOSAwIG9i ago8PC9MZW5ndGggNDM4ICAgICAgIC9GaWx0ZXIvRmxhdGVEZWNvZGU+PgpzdHJlYW0KeF59 ktFrqzAUxt/zV2QPhe7BGfWu2y1FmNqCl20da9ku902TY2+gRonxof/9TpK6wSgTBH85X76c 85nZ1csueBBdDUFyw+grDN2oOQT5U9WT2azo+NiCMs8AAsRUHZb0RXd8B4bO87IolTTXKC4V P44CJtVlUQYHqb4k9hw638Pf4N/7+59yHzxK9Shr0EYq2AbM+u6lOcLyJxVFA3rJgDqDN9CD 7NSSRjeMMVxYK5F3rR1sIOF5AhpOMzVSCX0Ogta2XxLFVEhuzuTWeIsJ2c2702CgLVXTkdWK hq9YHIw+uX6vSbjVArRUBzq/1CAKdmPfH8E2QxlJUyqgQV/M5blqgYY2m1JgVZrTxZC+NuxP PVDsFA0i3yrvBAx9xUFX6gBkheOzlK42+KQElPhWZ35X3Xg5CqbPKJlK/H+lndEajRiLixQp uc0sJQ+5o4U9hCVZ5Cn2lHjyyuysdC5Jhu3Y2sZRzhzdeZfcu9xFnmJPiadflm7XlqINc7S4 XzjKFo6KAilm0W83cN24/u3o9v99xsxHrTFj95Nd+DZFvIKf96DvervLve4CTXfY0nZDPgDz IP4eCmVuZHN0cmVhbQplbmRvYmoKMjIgMCBvYmoKPDwvTGVuZ3RoIDEyICAgICAgICAvRmls dGVyL0ZsYXRlRGVjb2RlPj4Kc3RyZWFtCnheY2CAAQUAACsAIQplbmRzdHJlYW0KZW5kb2Jq CjIzIDAgb2JqCjw8L1N1YnR5cGUvQ0lERm9udFR5cGUwQy9MZW5ndGggNTE3ICAgICAgIC9G aWx0ZXIvRmxhdGVEZWNvZGU+PgpzdHJlYW0KeF51UU1rE1EUfS9JG7WvVYsf1LSTa6miaGZi 4sa60pBKQhohjVCX087LZMh0Xpg3MXaj28pkTIOIGKjUQkMWARdduHLjStCFv8A/oK5c9GmK OoPgRryLcy7n3suFczCKRBDGeKpYyi4XMpcKiyW2plpXUokS1RumagfDrDgrZl0iiWkkZrCQ QiIeFhAZZkj4NYkczA8H0yP2j+HIDEK4ezTA3eOfyGzQfCNzAW2Rc+hQCGE0hST0Ff3EUTyO J/GZ/31Nycnk1Qyrr9uGXnUglUymLwd4DW7KkFdXa6zJawaolgZ5GRZlKLKmrxpwgVmwQquq WQFWgTJdhganNgfdZo06vyhDuWpwaDK7Bj7b1KQqpxo0LI3a4FQp3LqzVIYFZjlQMFapxSkk EgCcUqg6Tn1eUZyGLjNbVyr+DlfMP0tcCe4SC7eL5UQhl8kWl7Kyc9+BCrNBo45qmFz+x9q/ QpHZa6p5Q2MrNKdRyzGcdeRXKewb5lcIhTCO5Ia/Jty+2Ou/b+J99jEs5FN9M5reePYqLt5F d9xWU6rzu5W5mBXdeePuvo0fbEX1jYdpybRGvd4XdxAbfHYf9eITQaLHRIyc94NB130IRSfv bYtMd589fbI9KuXLpkIOu2Ssf+TD2IuWt9lqddotb69LyMvec6+z+djz2p02GRcPTnw/ffI3 Vni86gplbmRzdHJlYW0KZW5kb2JqCjI1IDAgb2JqCjw8L0xlbmd0aCAzNjIgICAgICAgL0Zp bHRlci9GbGF0ZURlY29kZT4+CnN0cmVhbQp4XoWST4uDMBDF7/kUs4dCe7DGlr0UEXZtC0L/ oWXpVZPRDWgiUQ9++02strBsWUEwM29+vnk6e7skzgdXGTrrJYUYG9Vphk54TGsym20V6yqU 7QmRI5+6zQYuWrEEW5iH0TaSol0YcSRZ2XGcVH+LPrEQ8imx74H5FW/OKd7dDqFzOMaqSqW3 cmIsujLVDrXsq2hL3PynBAOCVyAYQF+oG6HkBrwlpdQUdpKHqrJLNsQdtwF32i8XkusxFMis d+KtgAvWjqehxiqTlh1O+qbFKpK5Ir4PrllBNK3uB98L4p41Ry1kAfNXJo0o6eq6RGsIKAkC 4JgbtsnplFYIrs0q4qYr2v5laM+ha18jGMcG4t0tM8WxqVOGOpUFEt/EQAPw9+YKCEr+q0/v U1l+lxvB9Djyspx9p9py3leGQ+naGzhj3RJtPI8NWKe1sT9kOOxlzQmJj5hrVdv54R6+z/S7 2NN5T34ABfvf2AplbmRzdHJlYW0KZW5kb2JqCjEzIDAgb2JqCjw8L1R5cGUvT2JqU3RtL04g MTMvRmlyc3QgOTIvTGVuZ3RoIDEwNjIgICAgICAvRmlsdGVyL0ZsYXRlRGVjb2RlPj4Kc3Ry ZWFtCnherVVrT+M4FP3Or/C3KUKNH3FeCCFBO9V0tjColAFt1A9uYzqR2qRKXAH/fs91W+iI mWFXWkRqx/f4Ps6xb1ImWMJkIpmMmFKayZSFGiuSRRorgsUxBsnSUDCYU62YFPjXmqkYsDg9 klgKw4QpbAsTrKdwJsKjszM+eVlbfmMWlvfqytnKtSxDxDEf27beNHPbIjq9X9miNJf1cy7w GmVRoJIoyhBOBmmaJfGU95p6DQDLATiAiFdMlLIp45OmXH0IQ0oNkmHIHMHPzynVARKkAUxQ gDEfRMSCt/Obpp7fWpfzm/6AT+yzm2JTLnWOuoN0mkZZHsVRkEzTWL/O4jwSmtaSKNdp5mcp 1sIgYR7NIgU701qQjzTMtzOQl+ycyDgR+2kSJbmKkyCbTl+ppaT7tp035drVja/h2qws//v+ /utwcjIqq1E5s40rK/uND5Zm0TLtUZfEdVeKVLGuimIW+yMgVTTlF+2cuEkzzXtm/cWWix+O xTrhFIgsXaVjPnRmWc4vqsXSMsFvnV19Z0nIH3Z4rTIfZ1AubYjz5RntDfsgkcn4jXV/QAjI bzczRy+0Ivjnal4XZbXgwwIhS/fS/cIvTWs99JfVbbMrDGIC0+Y4uog55ZP6rirhzDLpj95W 7fdxkRxt3Ib/c6ifWacrQ9Xd0xXal/nSgpFh9Vgj1tguytY1L6xzUdQze8y/NYVtUBzr7Ks7 Rvnr9dKuiF9xjr+jPFW7U/Ox3Nfjzw+j3snoalyvTCVVFyE3S4MD8U5yrUjxFFc4zHDbpUpe FaeXQ8nT8EDyVPxS8ky+SR7KA8lVeCg5gv6B+n8h+W8rfCe7P1yHsiuvyn+T/feE/nThqCNu pUeH/P+kP2ycLUPr3FCv4n+VRZv7s0bdZw/qGdzEeuG7bLvraAz91JkCFiZ9hsybR2Zmly07 O2P8erNqfSull1vG+/hFDHZ+jiaKH4+/olvD71p7XVeYfLdNW9YV4zJIfAJH1NUn9sEFX+tZ hb7DOqYoumvjnG2qtltXXffDdh+XL8dUxRZKB71uHOvM6Yvw7BYGt6EKKusOQJOSnCkhs64I 0aBQxmmoDwB3zZJ1np6egnVjFivTNYUN5vXqALHPlrykARqxABPiNJKEaaxxKKVvHML0TymQ CFUkdahVeiLkJyE+7XF1w84e7eOjEHouRBIJEUshIo0R8ygVQgkhQqwpi5HmyW4txpweYGgk nJptRw1gDJ8x9hz6SuDX2wvYgNUZ7Lu9IQzeP2KRz9d4tGcfe7ff4+gxeJBnKCHqsP8nhSD3 R4TgO1hs5rZhndHGQM6uDEQCojB9E9ZtFkHdLGi5dPg87Ngj1mJijTJEdSDJM0kV00NsJqiQ GEmQOmH2DHk8YVA14bwNrMSkSIbKJo1Zr23B+MAsW3uE4/kP38yDpwplbmRzdHJlYW0KZW5k b2JqCjI5IDAgb2JqCjw8L1R5cGUvWFJlZi9JbmRleFswIDMwXS9TaXplIDMwL1dbMSAyIDFd L1Jvb3QgMjcgMCBSL0luZm8gMjggMCBSL0lEWzxDMzNBNUE5RjFGMUJERjQ1RDFBNEU5N0JE QUNCMzI3Mj4gPEMzM0E1QTlGMUYxQkRGNDVEMUE0RTk3QkRBQ0IzMjcyPl0vTGVuZ3RoIDg3 ICAgICAgICAvRmlsdGVyL0ZsYXRlRGVjb2RlPj4Kc3RyZWFtCnheFcjLCYAwEIThmbw00SBI QDzYkCfbEu3DwixEZw8f/84C/AAnXoJESYLPoVJATFB7CVK4AuRhP8f8gKXa7Tmf1iiJ7QLb a7vjsluzDDJyu/EDrRkMpQplbmRzdHJlYW0KZW5kb2JqCnN0YXJ0eHJlZgo3NTY0CiUlRU9G Cg== --zunh7pbif6mirwae Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSWYgeW91ciBxdWVzdGlvbiBpcyBvZiBpbnRlcmVz dCB0byBvdGhlcnMgYXMgd2VsbCwgcGxlYXNlIGFkZCBhbiBlbnRyeSB0byB0aGUgV2lraSEKCm1h aWxsaXN0IDogbnRnLWNvbnRleHRAbnRnLm5sIC8gaHR0cDovL3d3dy5udGcubmwvbWFpbG1hbi9s aXN0aW5mby9udGctY29udGV4dAp3ZWJwYWdlICA6IGh0dHA6Ly93d3cucHJhZ21hLWFkZS5ubCAv IGh0dHA6Ly9jb250ZXh0LmFhbmhldC5uZXQKYXJjaGl2ZSAgOiBodHRwczovL2JpdGJ1Y2tldC5v cmcvcGhnL2NvbnRleHQtbWlycm9yL2NvbW1pdHMvCndpa2kgICAgIDogaHR0cDovL2NvbnRleHRn YXJkZW4ubmV0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCg== --zunh7pbif6mirwae--