From mboxrd@z Thu Jan 1 00:00:00 1970 From: Torsten Wagner Subject: Re: [Feature Request] - Furigana - Yomigana - Ruby Date: Tue, 28 May 2013 19:36:24 +0200 Message-ID: References: <51A3E117.3000900@gmail.com> <51A4D087.5010901@googlemail.com> Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=001a11c2a4f24b28b604ddcab451 Return-path: Received: from eggs.gnu.org ([208.118.235.92]:51469) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UhNoy-0002VB-Af for emacs-orgmode@gnu.org; Tue, 28 May 2013 13:36:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UhNov-0001R2-Vo for emacs-orgmode@gnu.org; Tue, 28 May 2013 13:36:28 -0400 Received: from mail-ea0-x22f.google.com ([2a00:1450:4013:c01::22f]:45065) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UhNov-0001Qn-JO for emacs-orgmode@gnu.org; Tue, 28 May 2013 13:36:25 -0400 Received: by mail-ea0-f175.google.com with SMTP id h10so4700308eaj.6 for ; Tue, 28 May 2013 10:36:24 -0700 (PDT) In-Reply-To: <51A4D087.5010901@googlemail.com> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Tristan Nakagawa Cc: Org Mode Mailing List --001a11c2a4f24b28b604ddcab451 Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit Hi Tristan, don't get me wrong. Being married to a Chinese and lived in Japan for many years I know exactly what you are talking about ;) I just feel it needs some clean and well defined way how to implement all those different export features without cluttering the basic exporters. Somehow the same reason why we use a zillion of packages for LaTeX itself. I just got aware of that, by reading your post. Recently, we got new exporters thus, should be the next step to get/define modules for those exporters or even being able to write your own rules easily within the file? The 2 worst case scenarios IMHO... the exporters gets more and more extended getting harder to maintain and error prome people start forking the exporters html-cjk, html-hangul, html-netscape ;) Thus, I would love to hear what others might think is the most clean way to add your feature request and be prepared for the many many others in the future. Greetings Torsten On 28 May 2013 17:43, Tristan Nakagawa wrote: > Hi Torsten, > > Thanks for the input, > To have definable export rules would indeed be great, to increase > flexibility while keeping the base exporter simple and lightweight. > > I agree that this is somewhat specific, however, I believe that > globally, this is not unfrequent, and will become quite frequent soon: > > There is, for example, the ease of drafting and flexibility of output > (print quality pdf and epub-convertible html),so orgmode can be used so > well outside of the traditional latex-technical and science paper realms > for novels, books, blog-posts (org2blog). > > And imagining the number of people on this planet speaking Chinese and > japanese, Korean, Thai, and other languages I am not even aware of that > use rubys to help reading, the number of people learning these > languages, creating two-language blog-posts, textbooks, etc etc. > > It might take a while before all browsers support the tags (my Firefox > doesnt even yet), but for epub&pdf creation, this would already be great! > > > (Just to back up the feature-request beyond definately needed and > appreciated discussion about how and if to make the exporter more > modular or costumizable) .. =) > > best, > Tristan > > > > > On 2013-05-28 15:00, Torsten Wagner wrote: > > Hi Tristan, > > > > this feature request seems simple to implement on one side. However, it > > opens a question how to deal with those in general. > > \ruby{東} is a very specific command of the CJK package. > > If this get's implemented in the standard html exporter, other very > special > > commands might need to follow. That could easily go into a nightmare. I > do > > not have a detailed view how the exporters work now, thus, it is a > > interesting question I want to ask here: How should specific needs for > > exporting (like Tristans) be embedded in the future. > > > > People could fork exporters. Creating e.g. a HTML-CJK exporter. > > Even better would be to have exporter modules which could be loaded by > > users. > > > > #+HTML_MODULES CJK, > > > > However, I believe that for many users, the special cases are not very > > frequent and complex. Might it be possible to create a very simple syntax > > for exporting rules which could be either in those above modules or > > directly within the file written by the user themself? > > > > #+HTML_USER_RULE \ruby{$1}{$2}, $1 > ($2) > > <\ruby> > > > > Would like to hear what other think about that. > > > > Greetings > > > > Torsten > > > > > > > > On 28 May 2013 00:41, T.T.N. wrote: > > > >> Hi, > >> > >> So this is my first try to post to the mailing list. I Love Orgmode, you > >> guys are the best! > >> > >> I would like to use orgmode to capture japanese text to later export to > >> latex, html and epub. > >> For japanese symbols, sometimes the pronounciation is put in smaller > >> letters above the symbol to help the reader. > >> These are called ruby in general in typesetting (in japanese, they are > >> also called furigana/yomigana, which I put in the header so not > everybody > >> thinks of the programming language..) > >> http://en.wikipedia.org/wiki/**Furigana< > http://en.wikipedia.org/wiki/Furigana> > >> > >> In Latex, using CJK and ruby packages, This exports ok. > >> (A problem being that japanese text in headers doesn't. But i guess > that's > >> another (and rather Latex, not orgmode-specific) topic. > >> > >> Now, my feature request would be to make the html exporter interpret the > >> latex command > >> \ruby{symbol}{reading} > >> as: > >> symbol (reading**) <\ruby> > >> > >> as suggested here, for parentheses on non-ruby supporting browsers: > >> http://xahlee.info/js/html5_**ruby_tag.html< > http://xahlee.info/js/html5_ruby_tag.html> > >> > >> > >> For the org-mode file (you might see some blank squares if you have no > >> japanese support): > >> Here a minimal working example for export: > >> > >> ### > >> #+LATEX_HEADER: \usepackage[CJK, overlap]{ruby} > >> #+LATEX_HEADER: \usepackage{CJK} \end{CJK} > >> #+LATEX \begin{CJK}{UTF8}{min} > >> > >> "\ruby{東}{ひがし}アジア" means east asia in japanese > >> #+LATEX \end{CJK} > >> ### > >> > >> > >> All the best, and keep on rocking my world in plain text! =) > >> > >> > >> > >> > >> > >> > >> > > > > --001a11c2a4f24b28b604ddcab451 Content-Type: text/html; charset=ISO-2022-JP Content-Transfer-Encoding: base64 PGRpdiBkaXI9Imx0ciI+SGkgVHJpc3Rhbiw8ZGl2Pjxicj48L2Rpdj48ZGl2IHN0eWxlPmRvbiYj Mzk7dCBnZXQgbWUgd3JvbmcuIEJlaW5nIG1hcnJpZWQgdG8gYSBDaGluZXNlIGFuZCBsaXZlZCBp biBKYXBhbiBmb3IgbWFueSB5ZWFycyBJIGtub3cgZXhhY3RseSB3aGF0IHlvdSBhcmUgdGFsa2lu ZyBhYm91dCA7KTwvZGl2PjxkaXYgc3R5bGU+SSBqdXN0IGZlZWwgaXQgbmVlZHMgc29tZSBjbGVh biBhbmQgd2VsbCBkZWZpbmVkIHdheSBob3cgdG8gaW1wbGVtZW50IGFsbCB0aG9zZSBkaWZmZXJl bnQgZXhwb3J0IGZlYXR1cmVzIHdpdGhvdXQgY2x1dHRlcmluZyB0aGUgYmFzaWMgZXhwb3J0ZXJz LjwvZGl2Pg0KPGRpdiBzdHlsZT48YnI+PC9kaXY+PGRpdiBzdHlsZT5Tb21laG93IHRoZSBzYW1l IHJlYXNvbiB3aHkgd2UgdXNlIGEgemlsbGlvbiBvZiBwYWNrYWdlcyBmb3IgTGFUZVggaXRzZWxm LiZuYnNwOzwvZGl2PjxkaXYgc3R5bGU+SSBqdXN0IGdvdCBhd2FyZSBvZiB0aGF0LCBieSByZWFk aW5nIHlvdXIgcG9zdC4gUmVjZW50bHksIHdlIGdvdCBuZXcgZXhwb3J0ZXJzIHRodXMsIHNob3Vs ZCBiZSB0aGUgbmV4dCBzdGVwIHRvIGdldC9kZWZpbmUgbW9kdWxlcyBmb3IgdGhvc2UgZXhwb3J0 ZXJzIG9yIGV2ZW4gYmVpbmcgYWJsZSB0byB3cml0ZSB5b3VyIG93biBydWxlcyBlYXNpbHkgd2l0 aGluIHRoZSBmaWxlPzwvZGl2Pg0KPGRpdiBzdHlsZT48YnI+PC9kaXY+PGRpdiBzdHlsZT5UaGUg MiB3b3JzdCBjYXNlIHNjZW5hcmlvcyBJTUhPLi4uJm5ic3A7PC9kaXY+PGRpdiBzdHlsZT50aGUg ZXhwb3J0ZXJzIGdldHMgbW9yZSBhbmQgbW9yZSBleHRlbmRlZCBnZXR0aW5nIGhhcmRlciB0byBt YWludGFpbiBhbmQgZXJyb3IgcHJvbWU8L2Rpdj48ZGl2IHN0eWxlPnBlb3BsZSBzdGFydCBmb3Jr aW5nIHRoZSBleHBvcnRlcnMgaHRtbC1jamssIGh0bWwtaGFuZ3VsLCBodG1sLW5ldHNjYXBlIDsp PC9kaXY+DQo8ZGl2IHN0eWxlPjxicj48L2Rpdj48ZGl2IHN0eWxlPlRodXMsIEkgd291bGQgbG92 ZSB0byBoZWFyIHdoYXQgb3RoZXJzIG1pZ2h0IHRoaW5rIGlzIHRoZSBtb3N0IGNsZWFuIHdheSB0 byBhZGQgeW91ciBmZWF0dXJlIHJlcXVlc3QgYW5kIGJlIHByZXBhcmVkIGZvciB0aGUgbWFueSBt YW55IG90aGVycyBpbiB0aGUgZnV0dXJlLjwvZGl2PjxkaXYgc3R5bGU+PGJyPjwvZGl2PjxkaXYg c3R5bGU+DQpHcmVldGluZ3MmbmJzcDs8L2Rpdj48ZGl2IHN0eWxlPjxicj48L2Rpdj48ZGl2IHN0 eWxlPlRvcnN0ZW48L2Rpdj48ZGl2IHN0eWxlPjxicj48L2Rpdj48ZGl2IHN0eWxlPjxicj48L2Rp dj48ZGl2IHN0eWxlPjxicj48L2Rpdj48ZGl2IHN0eWxlPjxicj48L2Rpdj48ZGl2IHN0eWxlPjxi cj48L2Rpdj48ZGl2IHN0eWxlPiZuYnNwOzwvZGl2PjxkaXYgc3R5bGU+PGJyPjwvZGl2PjwvZGl2 PjxkaXYgY2xhc3M9ImdtYWlsX2V4dHJhIj4NCjxicj48YnI+PGRpdiBjbGFzcz0iZ21haWxfcXVv dGUiPk9uIDI4IE1heSAyMDEzIDE3OjQzLCBUcmlzdGFuIE5ha2FnYXdhIDxzcGFuIGRpcj0ibHRy Ij4mbHQ7PGEgaHJlZj0ibWFpbHRvOnRyaXN0YW4ubmFrYWdhd2FAZ21haWwuY29tIiB0YXJnZXQ9 Il9ibGFuayI+dHJpc3Rhbi5uYWthZ2F3YUBnbWFpbC5jb208L2E+Jmd0Ozwvc3Bhbj4gd3JvdGU6 PGJyPjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdpbjowIDAgMCAu OGV4O2JvcmRlci1sZWZ0OjFweCAjY2NjIHNvbGlkO3BhZGRpbmctbGVmdDoxZXgiPg0KSGkgVG9y c3Rlbiw8YnI+DQo8YnI+DQpUaGFua3MgZm9yIHRoZSBpbnB1dCw8YnI+DQpUbyBoYXZlIGRlZmlu YWJsZSBleHBvcnQgcnVsZXMgd291bGQgaW5kZWVkIGJlIGdyZWF0LCB0byBpbmNyZWFzZTxicj4N CmZsZXhpYmlsaXR5IHdoaWxlIGtlZXBpbmcgdGhlIGJhc2UgZXhwb3J0ZXIgc2ltcGxlIGFuZCBs aWdodHdlaWdodC48YnI+DQo8YnI+DQpJIGFncmVlIHRoYXQgdGhpcyBpcyBzb21ld2hhdCBzcGVj aWZpYywgaG93ZXZlciwgSSBiZWxpZXZlIHRoYXQ8YnI+DQpnbG9iYWxseSwgdGhpcyBpcyBub3Qg dW5mcmVxdWVudCwgYW5kIHdpbGwgYmVjb21lIHF1aXRlIGZyZXF1ZW50IHNvb246PGJyPg0KPGJy Pg0KVGhlcmUgaXMsIGZvciBleGFtcGxlLCB0aGUgZWFzZSBvZiBkcmFmdGluZyBhbmQgZmxleGli aWxpdHkgb2Ygb3V0cHV0PGJyPg0KKHByaW50IHF1YWxpdHkgcGRmIGFuZCBlcHViLWNvbnZlcnRp YmxlIGh0bWwpLHNvIG9yZ21vZGUgY2FuIGJlIHVzZWQgc288YnI+DQp3ZWxsIG91dHNpZGUgb2Yg dGhlIHRyYWRpdGlvbmFsIGxhdGV4LXRlY2huaWNhbCBhbmQgc2NpZW5jZSBwYXBlciByZWFsbXM8 YnI+DQpmb3Igbm92ZWxzLCBib29rcywgYmxvZy1wb3N0cyAob3JnMmJsb2cpLjxicj4NCjxicj4N CkFuZCBpbWFnaW5pbmcgdGhlIG51bWJlciBvZiBwZW9wbGUgb24gdGhpcyBwbGFuZXQgc3BlYWtp bmcgQ2hpbmVzZSBhbmQ8YnI+DQpqYXBhbmVzZSwgS29yZWFuLCBUaGFpLCBhbmQgb3RoZXIgbGFu Z3VhZ2VzIEkgYW0gbm90IGV2ZW4gYXdhcmUgb2YgdGhhdDxicj4NCnVzZSBydWJ5cyB0byBoZWxw IHJlYWRpbmcsIHRoZSBudW1iZXIgb2YgcGVvcGxlIGxlYXJuaW5nIHRoZXNlPGJyPg0KbGFuZ3Vh Z2VzLCBjcmVhdGluZyB0d28tbGFuZ3VhZ2UgYmxvZy1wb3N0cywgdGV4dGJvb2tzLCBldGMgZXRj Ljxicj4NCjxicj4NCkl0IG1pZ2h0IHRha2UgYSB3aGlsZSBiZWZvcmUgYWxsIGJyb3dzZXJzIHN1 cHBvcnQgdGhlIHRhZ3MgKG15IEZpcmVmb3g8YnI+DQpkb2VzbnQgZXZlbiB5ZXQpLCBidXQgZm9y IGVwdWImYW1wO3BkZiBjcmVhdGlvbiwgdGhpcyB3b3VsZCBhbHJlYWR5IGJlIGdyZWF0ITxicj4N Cjxicj4NCjxicj4NCihKdXN0IHRvIGJhY2sgdXAgdGhlIGZlYXR1cmUtcmVxdWVzdCBiZXlvbmQg ZGVmaW5hdGVseSBuZWVkZWQgYW5kPGJyPg0KYXBwcmVjaWF0ZWQgZGlzY3Vzc2lvbiBhYm91dCBo b3cgYW5kIGlmIHRvIG1ha2UgdGhlIGV4cG9ydGVyIG1vcmU8YnI+DQptb2R1bGFyIG9yIGNvc3R1 bWl6YWJsZSkgJm5ic3A7Li4gJm5ic3A7PSk8YnI+DQo8YnI+DQpiZXN0LDxicj4NClRyaXN0YW48 YnI+DQo8ZGl2PjxkaXYgY2xhc3M9Img1Ij48YnI+DQo8YnI+DQo8YnI+DQo8YnI+DQpPbiAyMDEz LTA1LTI4IDE1OjAwLCBUb3JzdGVuIFdhZ25lciB3cm90ZTo8YnI+DQomZ3Q7IEhpIFRyaXN0YW4s PGJyPg0KJmd0Ozxicj4NCiZndDsgdGhpcyBmZWF0dXJlIHJlcXVlc3Qgc2VlbXMgc2ltcGxlIHRv IGltcGxlbWVudCBvbiBvbmUgc2lkZS4gSG93ZXZlciwgaXQ8YnI+DQomZ3Q7IG9wZW5zIGEgcXVl c3Rpb24gaG93IHRvIGRlYWwgd2l0aCB0aG9zZSBpbiBnZW5lcmFsLjxicj4NCiZndDsgXHJ1Ynl7 GyRCRWwbKEJ9IGlzIGEgdmVyeSBzcGVjaWZpYyBjb21tYW5kIG9mIHRoZSBDSksgcGFja2FnZS48 YnI+DQomZ3Q7IElmIHRoaXMgZ2V0JiMzOTtzIGltcGxlbWVudGVkIGluIHRoZSBzdGFuZGFyZCBo dG1sIGV4cG9ydGVyLCBvdGhlciB2ZXJ5IHNwZWNpYWw8YnI+DQomZ3Q7IGNvbW1hbmRzIG1pZ2h0 IG5lZWQgdG8gZm9sbG93LiBUaGF0IGNvdWxkIGVhc2lseSBnbyBpbnRvIGEgbmlnaHRtYXJlLiBJ IGRvPGJyPg0KJmd0OyBub3QgaGF2ZSBhIGRldGFpbGVkIHZpZXcgaG93IHRoZSBleHBvcnRlcnMg d29yayBub3csIHRodXMsIGl0IGlzIGE8YnI+DQomZ3Q7IGludGVyZXN0aW5nIHF1ZXN0aW9uIEkg d2FudCB0byBhc2sgaGVyZTogSG93IHNob3VsZCBzcGVjaWZpYyBuZWVkcyBmb3I8YnI+DQomZ3Q7 IGV4cG9ydGluZyAobGlrZSBUcmlzdGFucykgYmUgZW1iZWRkZWQgaW4gdGhlIGZ1dHVyZS48YnI+ DQomZ3Q7PGJyPg0KJmd0OyBQZW9wbGUgY291bGQgZm9yayBleHBvcnRlcnMuIENyZWF0aW5nIGUu Zy4gYSBIVE1MLUNKSyBleHBvcnRlci48YnI+DQomZ3Q7IEV2ZW4gYmV0dGVyIHdvdWxkIGJlIHRv IGhhdmUgZXhwb3J0ZXIgbW9kdWxlcyB3aGljaCBjb3VsZCBiZSBsb2FkZWQgYnk8YnI+DQomZ3Q7 IHVzZXJzLjxicj4NCiZndDs8YnI+DQomZ3Q7ICMrSFRNTF9NT0RVTEVTIENKSyw8YnI+DQomZ3Q7 PGJyPg0KJmd0OyBIb3dldmVyLCBJIGJlbGlldmUgdGhhdCBmb3IgbWFueSB1c2VycywgdGhlIHNw ZWNpYWwgY2FzZXMgYXJlIG5vdCB2ZXJ5PGJyPg0KJmd0OyBmcmVxdWVudCBhbmQgY29tcGxleC4g TWlnaHQgaXQgYmUgcG9zc2libGUgdG8gY3JlYXRlIGEgdmVyeSBzaW1wbGUgc3ludGF4PGJyPg0K Jmd0OyBmb3IgZXhwb3J0aW5nIHJ1bGVzIHdoaWNoIGNvdWxkIGJlIGVpdGhlciBpbiB0aG9zZSBh Ym92ZSBtb2R1bGVzIG9yPGJyPg0KJmd0OyBkaXJlY3RseSB3aXRoaW4gdGhlIGZpbGUgd3JpdHRl biBieSB0aGUgdXNlciB0aGVtc2VsZj88YnI+DQomZ3Q7PGJyPg0KJmd0OyAjK0hUTUxfVVNFUl9S VUxFICZuYnNwOyBccnVieXskMX17JDJ9LCAmbHQ7cnVieSZndDsgJDEgJmx0O3JwJmd0OygmbHQ7 L3JwJmd0OyZsdDtydCZndDskMiZsdDsvcnQmZ3Q7Jmx0O3JwJmd0OykmbHQ7L3JwJmd0Ozxicj4N CiZndDsgJmx0O1xydWJ5Jmd0Ozxicj4NCiZndDs8YnI+DQomZ3Q7IFdvdWxkIGxpa2UgdG8gaGVh ciB3aGF0IG90aGVyIHRoaW5rIGFib3V0IHRoYXQuPGJyPg0KJmd0Ozxicj4NCiZndDsgR3JlZXRp bmdzPGJyPg0KJmd0Ozxicj4NCiZndDsgVG9yc3Rlbjxicj4NCiZndDs8YnI+DQomZ3Q7PGJyPg0K Jmd0Ozxicj4NCiZndDsgT24gMjggTWF5IDIwMTMgMDA6NDEsIFQuVC5OLiAmbHQ7PGEgaHJlZj0i bWFpbHRvOnRyaXN0YW4ubmFrYWdhd2FAZ21haWwuY29tIj50cmlzdGFuLm5ha2FnYXdhQGdtYWls LmNvbTwvYT4mZ3Q7IHdyb3RlOjxicj4NCiZndDs8YnI+DQomZ3Q7Jmd0OyBIaSw8YnI+DQomZ3Q7 Jmd0Ozxicj4NCiZndDsmZ3Q7IFNvIHRoaXMgaXMgbXkgZmlyc3QgdHJ5IHRvIHBvc3QgdG8gdGhl IG1haWxpbmcgbGlzdC4gSSBMb3ZlIE9yZ21vZGUsIHlvdTxicj4NCiZndDsmZ3Q7IGd1eXMgYXJl IHRoZSBiZXN0ITxicj4NCiZndDsmZ3Q7PGJyPg0KJmd0OyZndDsgSSB3b3VsZCBsaWtlIHRvIHVz ZSBvcmdtb2RlIHRvIGNhcHR1cmUgamFwYW5lc2UgdGV4dCB0byBsYXRlciBleHBvcnQgdG88YnI+ DQomZ3Q7Jmd0OyBsYXRleCwgaHRtbCBhbmQgZXB1Yi48YnI+DQomZ3Q7Jmd0OyBGb3IgamFwYW5l c2Ugc3ltYm9scywgc29tZXRpbWVzIHRoZSBwcm9ub3VuY2lhdGlvbiBpcyBwdXQgaW4gc21hbGxl cjxicj4NCiZndDsmZ3Q7IGxldHRlcnMgYWJvdmUgdGhlIHN5bWJvbCB0byBoZWxwIHRoZSByZWFk ZXIuPGJyPg0KJmd0OyZndDsgVGhlc2UgYXJlIGNhbGxlZCBydWJ5IGluIGdlbmVyYWwgaW4gdHlw ZXNldHRpbmcgKGluIGphcGFuZXNlLCB0aGV5IGFyZTxicj4NCiZndDsmZ3Q7IGFsc28gY2FsbGVk IGZ1cmlnYW5hL3lvbWlnYW5hLCB3aGljaCBJIHB1dCBpbiB0aGUgaGVhZGVyIHNvIG5vdCBldmVy eWJvZHk8YnI+DQomZ3Q7Jmd0OyB0aGlua3Mgb2YgdGhlIHByb2dyYW1taW5nIGxhbmd1YWdlLi4p PGJyPg0KPC9kaXY+PC9kaXY+Jmd0OyZndDsgPGEgaHJlZj0iaHR0cDovL2VuLndpa2lwZWRpYS5v cmcvd2lraS8qKkZ1cmlnYW5hIiB0YXJnZXQ9Il9ibGFuayI+aHR0cDovL2VuLndpa2lwZWRpYS5v cmcvd2lraS8qKkZ1cmlnYW5hPC9hPiZsdDs8YSBocmVmPSJodHRwOi8vZW4ud2lraXBlZGlhLm9y Zy93aWtpL0Z1cmlnYW5hIiB0YXJnZXQ9Il9ibGFuayI+aHR0cDovL2VuLndpa2lwZWRpYS5vcmcv d2lraS9GdXJpZ2FuYTwvYT4mZ3Q7PGJyPg0KDQo8ZGl2IGNsYXNzPSJpbSI+Jmd0OyZndDs8YnI+ DQomZ3Q7Jmd0OyBJbiBMYXRleCwgdXNpbmcgQ0pLIGFuZCBydWJ5IHBhY2thZ2VzLCBUaGlzIGV4 cG9ydHMgb2suPGJyPg0KJmd0OyZndDsgKEEgcHJvYmxlbSBiZWluZyB0aGF0IGphcGFuZXNlIHRl eHQgaW4gaGVhZGVycyBkb2VzbiYjMzk7dC4gQnV0IGkgZ3Vlc3MgdGhhdCYjMzk7czxicj4NCiZn dDsmZ3Q7IGFub3RoZXIgKGFuZCByYXRoZXIgTGF0ZXgsIG5vdCBvcmdtb2RlLXNwZWNpZmljKSB0 b3BpYy48YnI+DQomZ3Q7Jmd0Ozxicj4NCiZndDsmZ3Q7IE5vdywgbXkgZmVhdHVyZSByZXF1ZXN0 IHdvdWxkIGJlIHRvIG1ha2UgdGhlIGh0bWwgZXhwb3J0ZXIgaW50ZXJwcmV0IHRoZTxicj4NCiZn dDsmZ3Q7IGxhdGV4IGNvbW1hbmQ8YnI+DQomZ3Q7Jmd0OyBccnVieXtzeW1ib2x9e3JlYWRpbmd9 PGJyPg0KJmd0OyZndDsgYXM6PGJyPg0KPC9kaXY+Jmd0OyZndDsgJmx0O3J1YnkmZ3Q7IHN5bWJv bCAmbHQ7cnAmZ3Q7KCZsdDsvcnAmZ3Q7Jmx0O3J0Jmd0O3JlYWRpbmcmbHQ7L3J0Jmd0OyZsdDty cCZndDsqKikmbHQ7L3JwJmd0OyAmbHQ7XHJ1YnkmZ3Q7PGJyPg0KPGRpdiBjbGFzcz0iaW0iPiZn dDsmZ3Q7PGJyPg0KJmd0OyZndDsgYXMgc3VnZ2VzdGVkIGhlcmUsIGZvciBwYXJlbnRoZXNlcyBv biBub24tcnVieSBzdXBwb3J0aW5nIGJyb3dzZXJzOjxicj4NCjwvZGl2PiZndDsmZ3Q7IDxhIGhy ZWY9Imh0dHA6Ly94YWhsZWUuaW5mby9qcy9odG1sNV8qKnJ1YnlfdGFnLmh0bWwiIHRhcmdldD0i X2JsYW5rIj5odHRwOi8veGFobGVlLmluZm8vanMvaHRtbDVfKipydWJ5X3RhZy5odG1sPC9hPiZs dDs8YSBocmVmPSJodHRwOi8veGFobGVlLmluZm8vanMvaHRtbDVfcnVieV90YWcuaHRtbCIgdGFy Z2V0PSJfYmxhbmsiPmh0dHA6Ly94YWhsZWUuaW5mby9qcy9odG1sNV9ydWJ5X3RhZy5odG1sPC9h PiZndDs8YnI+DQoNCjxkaXYgY2xhc3M9IkhPRW5aYiI+PGRpdiBjbGFzcz0iaDUiPiZndDsmZ3Q7 PGJyPg0KJmd0OyZndDs8YnI+DQomZ3Q7Jmd0OyBGb3IgdGhlIG9yZy1tb2RlIGZpbGUgKHlvdSBt aWdodCBzZWUgc29tZSBibGFuayBzcXVhcmVzIGlmIHlvdSBoYXZlIG5vPGJyPg0KJmd0OyZndDsg amFwYW5lc2Ugc3VwcG9ydCk6PGJyPg0KJmd0OyZndDsgSGVyZSBhIG1pbmltYWwgd29ya2luZyBl eGFtcGxlIGZvciBleHBvcnQ6PGJyPg0KJmd0OyZndDs8YnI+DQomZ3Q7Jmd0OyAjIyM8YnI+DQom Z3Q7Jmd0OyAjK0xBVEVYX0hFQURFUjogXHVzZXBhY2thZ2VbQ0pLLCBvdmVybGFwXXtydWJ5fTxi cj4NCiZndDsmZ3Q7ICMrTEFURVhfSEVBREVSOiBcdXNlcGFja2FnZXtDSkt9IFxlbmR7Q0pLfTxi cj4NCiZndDsmZ3Q7ICMrTEFURVggXGJlZ2lue0NKS317VVRGOH17bWlufTxicj4NCiZndDsmZ3Q7 PGJyPg0KJmd0OyZndDsgJnF1b3Q7XHJ1Ynl7GyRCRWwbKEJ9exskQiRSJCwkNxsoQn0bJEIlIiU4 JSIbKEImcXVvdDsgbWVhbnMgZWFzdCBhc2lhIGluIGphcGFuZXNlPGJyPg0KJmd0OyZndDsgIytM QVRFWCBcZW5ke0NKS308YnI+DQomZ3Q7Jmd0OyAjIyM8YnI+DQomZ3Q7Jmd0Ozxicj4NCiZndDsm Z3Q7PGJyPg0KJmd0OyZndDsgQWxsIHRoZSBiZXN0LCBhbmQga2VlcCBvbiByb2NraW5nIG15IHdv cmxkIGluIHBsYWluIHRleHQhID0pPGJyPg0KJmd0OyZndDs8YnI+DQomZ3Q7Jmd0Ozxicj4NCiZn dDsmZ3Q7PGJyPg0KJmd0OyZndDs8YnI+DQomZ3Q7Jmd0Ozxicj4NCiZndDsmZ3Q7PGJyPg0KJmd0 OyZndDs8YnI+DQomZ3Q7PGJyPg0KPGJyPg0KPC9kaXY+PC9kaXY+PC9ibG9ja3F1b3RlPjwvZGl2 Pjxicj48L2Rpdj4NCg== --001a11c2a4f24b28b604ddcab451--