r1436 - in trunk: . groff

archaic at linuxfromscratch.org archaic at linuxfromscratch.org
Tue Mar 7 09:01:47 PST 2006


Author: archaic
Date: 2006-03-07 10:01:46 -0700 (Tue, 07 Mar 2006)
New Revision: 1436

Added:
   trunk/groff/
   trunk/groff/groff-1.18.1.1-debian_fixes-1.patch
Log:
Added lfs-style groff patch.

Added: trunk/groff/groff-1.18.1.1-debian_fixes-1.patch
===================================================================
--- trunk/groff/groff-1.18.1.1-debian_fixes-1.patch	                        (rev 0)
+++ trunk/groff/groff-1.18.1.1-debian_fixes-1.patch	2006-03-07 17:01:46 UTC (rev 1436)
@@ -0,0 +1,18888 @@
+Submitted By: Archaic (archaic -aT- linuxfromscratch -DoT- org)
+Date: 2006-03-07
+Initial Package Version: 1.18.1.1
+Origin: http://ftp.debian.org/debian/pool/main/g/groff/groff_1.18.1.1-11.diff.gz
+Upstream Status: This is a debian-specific patch
+Description: Adds the ascii8 and nippon devices to groff for man-db.
+
+--- groff-1.18.1.1.orig/README.jp
++++ groff-1.18.1.1/README.jp
+@@ -0,0 +1,142 @@
++
++                ÆüËܸìÂбþÈÇ groff-1.12 (jgroff-0.101)
++
++
++                                           ËÌÀî ¿®µü (Kitagawa Toshiyuki)
++                                                     tm-kita at kh.rim.or.jp
++
++                                           Ìø¸¶ ÎÉμ (Yanagihara Yoshiaki)
++                                                      yochi at debian.or.jp
++
++ GNU¤Îroff¥Õ¥©¡¼¥Þ¥Ã¥¿groff(version 1.12)¤ÎÆüËܸìÂбþ¤ò¹Ô¤Ê¤¤¤Þ¤·¤¿¡£
++ ¾å°Ì¸ß´¹¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢ÆüËܸì¤ò´Þ¤Þ¤Ê¤¤roff¥Ç¡¼¥¿¤Ï¥ª¥ê¥¸¥Ê¥ë¤É
++¤ª¤ê¤ÎÆ°ºî¤Ë¤Ê¤ê¤Þ¤¹¡£ÆüËܸ첽¤Ë´Ø¤¹¤ë½¤ÀµÉôʬ¤Ë¤Ä¤¤¤Æ¤ÎÃøºî¸¢¤ÏGNU
++General Public License Version 2 ¤Ë½¾¤¤¤Þ¤¹(¾ÜºÙ¤ÏCOPYING¤ò¸æÍ÷¤¯¤À¤µ¤¤)¡£
++
++ ÆüËܸìgroff(jgroff)¤Î¸½¥Ð¡¼¥¸¥ç¥ó¤Ï0.101(ºÇ½ª¦ÂÈÇ)¤Ç¤¹¡£¤³¤Î¥Ð¡¼¥¸¥ç¥ó
++¤Ç¤Ï°Ê²¼¤Î¥â¥¸¥å¡¼¥ë¤¬ÆüËܸ첽¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
++
++	groff	  ...	groff¥É¥é¥¤¥Ð
++ 	gtroff	  ...	groffËÜÂÎ
++	grotty	  ...	üËöÍѥݥ¹¥È¥×¥í¥»¥Ã¥µ
++	grops	  ...	PostScriptÍѥݥ¹¥È¥×¥í¥»¥Ã¥µ
++        grohtml   ...   HTMLÍѥݥ¹¥È¥×¥í¥»¥Ã¥µ(Thanks HANATAKA Shinya
++                                               <hanataka at abyss.rim.or.jp>)
++	grodvi	  ...	DVIÍѥݥ¹¥È¥×¥í¥»¥Ã¥µ (NTT JTeX or ASCIIÆüËܸìTeX)
++	gxditview ...	X¥¦¥£¥ó¥É¥¦Íѥݥ¹¥È¥×¥í¥»¥Ã¥µ
++	gtbl	  ...	tbl¥Þ¥¯¥íÍÑ¥×¥ê¥×¥í¥»¥Ã¥µ
++	gpic	  ...	pic¥Þ¥¯¥íÍÑ¥×¥ê¥×¥í¥»¥Ã¥µ
++	geqn	  ...	eqn¥Þ¥¯¥íÍÑ¥×¥ê¥×¥í¥»¥Ã¥µ
++	xtotroff  ...	X¤Î¥Õ¥©¥ó¥È¤«¤égroffÍÑ¥Õ¥©¥ó¥È¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹
++	            	¤ë¥Ä¡¼¥ë
++
++¡ô lj4¥Ý¥¹¥È¥×¥í¥»¥Ã¥µ¡¢bib´ØÏ¢¤Î¥³¥Þ¥ó¥É¤ÏÆüËܸì̤Âбþ¤Ç¤¹¡£
++
++
++¡ý ¥¤¥ó¥¹¥È¡¼¥ë
++
++ °Ê²¼¤Î´Ä¶­¤Çmake½ÐÍè¤ë¤³¤È¤ò³Îǧ¤·¤Æ¤¤¤Þ¤¹¡£
++
++	¡ù  FreeBSD 2.1.0-RELEASE
++	    XFree86-3.1.2, gcc 2.6.3
++
++	¡ù  Debian GNU/Linux 2.2
++
++	¡ù  NEC EWS/4800/310
++	    SVR4.2 Release9.1 Rev.B, X11R5, gcc 2.6.0
++
++ (1) ¥ª¥ê¥¸¥Ê¥ë¤ÈƱÍÍconfigure¤ò¼Â¹Ô¤·¤¿¸å¡¢make & install¤·¤Æ²¼¤µ¤¤¡£
++    ¾Ü¤·¤¯¤ÏINSTALL¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
++
++    *) grodvi¤ÏNTT JTeX·Á¼°¤Þ¤¿¤ÏASCIIÆüËܸìTeX·Á¼°¤ÎDVI¥Õ¥¡¥¤¥ë¤ò¥µ¥Ý¡¼
++       ¥È¤·¤Æ¤¤¤Þ¤¹¡£groff¤¬½ÐÎϤ¹¤ëDVI¥Õ¥¡¥¤¥ë¤òASCIIÆüËܸìTeX·Á¼°¤Ë
++       ¤·¤¿¤¤¾ì¹ç¤Ïconfigure --JTeX=ASCII¤È¤·¤Æ¤¯¤À¤µ¤¤¡£
++       --JTeX¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Ê¤«¤Ã¤¿¾ì¹ç¤ÏNTT JTeX·Á¼°¤Ë¤Ê¤ê¤Þ¤¹¡£
++
++ (2) groff¤Îmake¤Î¸å¡¢gxditview(groff¤ÎX¥¦¥£¥ó¥É¥¦Íѥݥ¹¥È¥×¥í¥»¥Ã¥µ)
++    ¤òmake¤·¤Þ¤¹¡£¥È¥Ã¥×¥Ç¥£¥ì¥¯¥È¥êľ²¼¤Îxditview¤Øcd¤·¤Æ¡¢
++
++	% xmkmf
++	% make depend
++	% make all
++	% make install install.man
++
++    ¤Ç¡¢¥¤¥ó¥¹¥È¡¼¥ë´°Î»¤Ç¤¹¡£
++
++
++¡ý »È¤¤Êý
++
++ groff¤Î-T¥ª¥×¥·¥ç¥ó¤Ë-Tnippon(üËöɽ¼¨)¤òÄɲä·¤¿°Ê³°¤Ï¥ª¥ê¥¸¥Ê¥ë¤Î¤Þ
++¤Þ¤Ç¤¹¡£
++°Ê²¼¤Ï»ÈÍÑÎã¡£
++
++ (£±)  groff -Tnippon -man groff.jman
++
++ ÆüËܸì¤ò´Þ¤àroff¥Õ¥¡¥¤¥ë(groff.jman)¤òman¥Þ¥¯¥í¤ò»È¤Ã¤Æ¥Õ¥©¡¼¥Þ¥Ã¥È¤·¡¢
++üËö¤Ëɽ¼¨¤·¤Þ¤¹¡£
++ 
++ (£²)  groff -Tps -man groff.jman
++
++ ÆüËܸì¤ò´Þ¤àroff¥Õ¥¡¥¤¥ë¤ò¥Õ¥©¡¼¥Þ¥Ã¥È¤·¡¢PostScript¤ËÊÑ´¹¤·¤Þ¤¹¡£
++
++ (£³)  groff -TX100 -man groff.jman
++
++ ÆüËܸì¤ò´Þ¤àroff¥Õ¥¡¥¤¥ë¤ò¥Õ¥©¡¼¥Þ¥Ã¥È¤·¡¢X¥¦¥£¥ó¥É¥¦¤Ëɽ¼¨¤·¤Þ¤¹¡£
++
++ (£´)  groff -Tdvi -man groff.jman
++
++ ÆüËܸì¤ò´Þ¤àroff¥Õ¥¡¥¤¥ë¤ò¥Õ¥©¡¼¥Þ¥Ã¥È¤·¡¢DVI¥Õ¥¡¥¤¥ë¤ò½ÐÎϤ·¤Þ¤¹¡£
++
++
++¡ý ÆüËܸ첽¤Ë¤Ä¤¤¤Æ
++
++¡¦ ÆüËܸìʸ»ú¥³¡¼¥É¤ÏÆüËܸìEUC(¤Î¥³¡¼¥É¥»¥Ã¥È1)¤Î¤ß¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£
++
++¡¦ ÆüËܸì¥Õ¥©¥ó¥È¤Ë¤Ä¤¤¤Æ¤Ï¡¢¥«¥ì¥ó¥È¥Õ¥©¥ó¥È¤¬¥Ü¡¼¥ë¥ÉÂΤλþ¤Ï¥´¥·¥Ã
++   ¥¯ÂΤˡ¢¤½¤ì°Ê³°¤Î¥Õ¥©¥ó¥È(¥í¡¼¥Þ¥ó¡¢¥¤¥¿¥ê¥Ã¥¯¡¢¥¤¥¿¥ê¥Ã¥¯¥Ü¡¼¥ë¥É
++   Åù)¤¬¥«¥ì¥ó¥È¥Õ¥©¥ó¥È¤Î»þ¤ÏÌÀÄ«ÂΤˡ¢¼«Æ°Åª¤ËÀÚ¤êÂؤï¤ê¤Þ¤¹¡£ÆüËܸì
++   ¥Õ¥©¥ó¥È¤òľÀÜ»ØÄꤹ¤ë¤³¤È¤Ï½ÐÍè¤Þ¤»¤ó¡£
++
++   (Ãí) ¥Õ¥©¥ó¥È¥Õ¥¡¥¤¥ë̾¤¬'B'¤Ç½ª¤Ã¤Æ¤¤¤ë¥Õ¥©¥ó¥È(B¡¢TB¡¢HNB¤Ê¤É)¤ò
++        ¥Ü¡¼¥ë¥É¥Õ¥©¥ó¥È¤È¤·¤Æ¤¤¤Þ¤¹¡£
++
++¡¦ ¹ÔƬ¡¢¤ª¤è¤Ó¹ÔËö¶Ø§¤ËÂбþ¤·¤Æ¤¤¤Þ¤¹¡£¤½¤ì¤¾¤ì¤Î¶Ø§ʸ»ú¤Ï¡¢
++
++   ¹ÔƬ¶Ø§ʸ»ú:	 ¡¢ ¡£¡¤¡¥¡¦¡§¡¨¡©¡ª¡Ë¡Í¡Ï¡Ñ¡×¡Ù¡Û
++			¤¡¤£¤¥¤§¤©¤Ã¤ã¤å¤ç¥¡¥£¥¥¥§¥©¥Ã¥ã¥å¥ç
++			. ? ! " ' ) ] * , : ; > }
++   ¹ÔËö¶Ø§ʸ»ú:	¡Ê ¡Ì¡Î¡Ð¡Ö¡Ø¡Ú
++
++   ¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹¡£
++
++¡¦ -Tps¤ò»ØÄꤷ¤¿¾ì¹ç¡¢EUCʸ»ú¤ÈASCIIʸ»ú¤Î´Ö¤Ë¤Ï¡¢Éý¤Î¶¹¤¤¶õÇò¤¬¼«Æ°
++   Ū¤ËÁÞÆþ¤µ¤ì¤Þ¤¹¡£¤³¤Î¶õÇò¤ÎÉý¤Ïdevps/DESC¤Îwcharkern¤Ç»ØÄꤷ¤Þ¤¹¡£
++   unitñ°Ì¤Ç¤¹¡£0¤ò»ØÄꤹ¤ë¤È¶õÇò¤ÏÁÞÆþ¤µ¤ì¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£
++
++¡¦ -Tps¤ò»ØÄꤷ¤¿¾ì¹ç¡¢EUCʸ»ú¤ÏASCIIʸ»ú¤ËÂФ·¤Æ¾¯¤·²¼¤²¤Æ½ÐÎϤµ¤ì¤Þ
++   ¤¹(¤½¤Î¤Þ¤Þ¤À¤ÈASCIIʸ»ú¤¬Íî¤Á¹þ¤ó¤Ç¸«¤¨¤ë¤¿¤á)¡£¤³¤Î²¼¤²Éý¤Ï
++   devps/DESC¤Îlowerwchar¤Ç»ØÄꤷ¤Þ¤¹¡£unitñ°Ì¤Ç¤¹¡£0¤ò»ØÄꤹ¤ë¤È»ú²¼
++   ¤²¤Ï¹Ô¤Ê¤ï¤ì¤Þ¤»¤ó¡£
++
++¡¦ ¥ª¥ê¥¸¥Ê¥ë¤Ç¤Ï²þ¹Ô¥³¡¼¥É¤Ï̵¾ò·ï¤Ë¥¹¥Ú¡¼¥¹Ê¸»ú¤ËÊÑ´¹¤µ¤ì¤Þ¤¹¤¬¡¢EUC
++   ʸ»ú¤Ç°Ï¤Þ¤ì¤¿²þ¹Ô¥³¡¼¥É¤Ï¥¹¥Ú¡¼¥¹¤ËÊÑ´¹¤»¤ºÌµ»ë¤¹¤ë¤è¤¦¤Ë¤·¤Þ¤·¤¿¡£
++
++¡¦ EUC¤Î¥¹¥Ú¡¼¥¹Ê¸»ú(0xa1a1)¤ÏASCII¤Î¥¹¥Ú¡¼¥¹Ê¸»ú¤È¤·¤Æ½èÍý¤µ¤ì¤Þ¤¹¡£
++
++
++¡ý ¼Õ¼­
++
++grodvi¤ÎASCIIÆüËܸìTeXÂбþ¤Ï¡¢±§ÅÔµÜÂç³Ø¤Î²£ÅĤµ¤ó¤¬¹Ô¤Ê¤Ã¤Æ¤¯¤À¤µ¤¤¤Þ
++¤·¤¿¡£grohtml¤ÎÆüËܸì(EUC)Âбþ¤Ï¡¢²Ö¿ó¿®ºÈ¤µ¤ó¤¬¹Ô¤Ã¤Æ¤¯¤ì¤Þ¤·¤¿¡£
++¤Þ¤¿¡¢Â¿¤¯¤ÎÊý¤«¤é¥Ð¥°¤Ë´Ø¤¹¤ëÊó¹ð¡¢½¤Àµ¥¤¥á¡¼¥¸¤òÁ÷¤Ã¤Æ夭¤Þ¤·¤¿¡£
++¸æ¶¨ÎϤ¯¤À¤µ¤Ã¤¿³§ÍͤˤϤȤƤⴶ¼Õ¤·¤Æ¤ª¤ê¤Þ¤¹¡£Í­Æñ¤¦¤´¤¶¤¤¤Þ¤·¤¿¡£
++
++
++¡ý ¤ª´ê¤¤
++
++¸½¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ïlj4¥Ý¥¹¥È¥×¥í¥»¥Ã¥µ¡¢bib´ØÏ¢¤Î¥³¥Þ¥ó¥É·²¤¬ÆüËܸ첽¤µ¤ì
++¤Æ¤ª¤ê¤Þ¤»¤ó¡£¤³¤ì¤é¤ÎÆüËܸ첽¤ò¹Ô¤Ã¤Æ¤¯¤À¤µ¤ëÊý¤òÊ罸Ãפ·¤Æ¤ª¤ê¤Þ¤¹¡£
++¤¼¤Ò¸æ¶¨ÎϤ¯¤À¤µ¤¤¡£¤Þ¤¿¡¢ÆüËܸìÂбþgroff¤Ë´Ø¤·¤Æ¸æ°Õ¸«¡¢¸æ´õ˾Åù¤ò
++À§Èó¤ªÊ¹¤«¤»¤¯¤À¤µ¤¤¡£º£¸å¤Î»²¹Í¤Ë¤µ¤»¤Æ夭¤Þ¤¹(¤â¤Á¤í¤ó¥Ð¥°Êó¹ð¤â
++´¿·Þ¤Ç¤¹¡ª)¡£
++°Ê¾å¤ÏE-Mail¤Ë¤Æ¡¢tm-kita at kh.rim.or.jp°¸¤Ë¤ªÁ÷¤ê¤¯¤À¤µ¤¤¡£
+--- groff-1.18.1.1.orig/src/include/config.hin
++++ groff-1.18.1.1/src/include/config.hin
+@@ -1,84 +1,96 @@
+-/* src/include/config.hin.  Generated automatically from configure.ac by autoheader.  */
++/* src/include/config.hin.  Generated from configure.ac by autoheader.  */
+ 
+ /* Define if your C++ doesn't understand `delete []'. */
+ #undef ARRAY_DELETE_NEEDS_SIZE
+ 
++/* Define if you want to use multibyte extension. */
++#undef ENABLE_MULTIBYTE
++
+ /* Define if you have a C++ <limits.h>. */
+ #undef HAVE_CC_LIMITS_H
+ 
+ /* Define if you have a C++ <osfcn.h>. */
+ #undef HAVE_CC_OSFCN_H
+ 
+-/* Define if you have the <dirent.h> header file. */
++/* Define to 1 if you have the <dirent.h> header file. */
+ #undef HAVE_DIRENT_H
+ 
+-/* Define if you have the `fmod' function. */
++/* Define to 1 if you have the `fmod' function. */
+ #undef HAVE_FMOD
+ 
+-/* Define if you have the `getcwd' function. */
++/* Define to 1 if you have the `getcwd' function. */
+ #undef HAVE_GETCWD
+ 
+-/* Define if you have the `getpagesize' function. */
++/* Define to 1 if you have the `getpagesize' function. */
+ #undef HAVE_GETPAGESIZE
+ 
+-/* Define if you have the `gettimeofday' function. */
++/* Define to 1 if you have the `gettimeofday' function. */
+ #undef HAVE_GETTIMEOFDAY
+ 
+-/* Define if you have the <limits.h> header file. */
++/* Define to 1 if you have the <inttypes.h> header file. */
++#undef HAVE_INTTYPES_H
++
++/* Define to 1 if you have the `isatty' function. */
++#undef HAVE_ISATTY
++
++/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
++#undef HAVE_LANGINFO_CODESET
++
++/* Define to 1 if you have the <limits.h> header file. */
+ #undef HAVE_LIMITS_H
+ 
+-/* Define if you have the <math.h> header file. */
++/* Define to 1 if you have the <math.h> header file. */
+ #undef HAVE_MATH_H
+ 
++/* Define to 1 if you have the <memory.h> header file. */
++#undef HAVE_MEMORY_H
++
+ /* Define if you have mkstemp(). */
+ #undef HAVE_MKSTEMP
+ 
+-/* Define if you have a working `mmap' system call. */
++/* Define to 1 if you have a working `mmap' system call. */
+ #undef HAVE_MMAP
+ 
+-/* Define if you have the `putenv' function. */
++/* Define to 1 if you have the `putenv' function. */
+ #undef HAVE_PUTENV
+ 
+-/* Define if you have the `rename' function. */
++/* Define to 1 if you have the `rename' function. */
+ #undef HAVE_RENAME
+ 
+-/* Define if you have the `snprintf' function. */
++/* Define to 1 if you have the `snprintf' function. */
+ #undef HAVE_SNPRINTF
+ 
+-/* Define if you have the `isatty' function. */
+-#undef HAVE_ISATTY
+-
+-/* Define if you have the <stdint.h> header file. */
++/* Define to 1 if you have the <stdint.h> header file. */
+ #undef HAVE_STDINT_H
+ 
+-/* Define if you have the <stdlib.h> header file. */
++/* Define to 1 if you have the <stdlib.h> header file. */
+ #undef HAVE_STDLIB_H
+ 
+-/* Define if you have the `strcasecmp' function. */
++/* Define to 1 if you have the `strcasecmp' function. */
+ #undef HAVE_STRCASECMP
+ 
+-/* Define if you have the `strerror' function. */
++/* Define to 1 if you have the `strerror' function. */
+ #undef HAVE_STRERROR
+ 
+-/* Define if you have the <strings.h> header file. */
++/* Define to 1 if you have the <strings.h> header file. */
+ #undef HAVE_STRINGS_H
+ 
+-/* Define if you have the <string.h> header file. */
++/* Define to 1 if you have the <string.h> header file. */
+ #undef HAVE_STRING_H
+ 
+-/* Define if you have the `strncasecmp' function. */
++/* Define to 1 if you have the `strncasecmp' function. */
+ #undef HAVE_STRNCASECMP
+ 
+-/* Define if you have the `strsep' function. */
++/* Define to 1 if you have the `strsep' function. */
+ #undef HAVE_STRSEP
+ 
+-/* Define if you have the `strtol' function. */
++/* Define to 1 if you have the `strtol' function. */
+ #undef HAVE_STRTOL
+ 
+ /* Define if <math.h> defines struct exception. */
+ #undef HAVE_STRUCT_EXCEPTION
+ 
+-/* Define if you have the <sys/dir.h> header file. */
++/* Define to 1 if you have the <sys/dir.h> header file. */
+ #undef HAVE_SYS_DIR_H
+ 
+ /* Define if you have sys_errlist in <errno.h> or in <stdio.h>. */
+@@ -87,10 +99,16 @@
+ /* Define if you have sysnerr in <errno.h> or <stdio.h>. */
+ #undef HAVE_SYS_NERR
+ 
+-/* Define if you have the <sys/time.h> header file. */
++/* Define to 1 if you have the <sys/stat.h> header file. */
++#undef HAVE_SYS_STAT_H
++
++/* Define to 1 if you have the <sys/time.h> header file. */
+ #undef HAVE_SYS_TIME_H
+ 
+-/* Define if you have the <unistd.h> header file. */
++/* Define to 1 if you have the <sys/types.h> header file. */
++#undef HAVE_SYS_TYPES_H
++
++/* Define to 1 if you have the <unistd.h> header file. */
+ #undef HAVE_UNISTD_H
+ 
+ /* Define if the host's encoding is EBCDIC. */
+@@ -120,6 +138,21 @@
+ /* Define if your C++ doesn't declare strncasecmp(). */
+ #undef NEED_DECLARATION_STRNCASECMP
+ 
++/* Define to the address where bug reports for this package should be sent. */
++#undef PACKAGE_BUGREPORT
++
++/* Define to the full name of this package. */
++#undef PACKAGE_NAME
++
++/* Define to the full name and version of this package. */
++#undef PACKAGE_STRING
++
++/* Define to the one symbol short name of this package. */
++#undef PACKAGE_TARNAME
++
++/* Define to the version of this package. */
++#undef PACKAGE_VERSION
++
+ /* Define if the printer's page size is A4. */
+ #undef PAGEA4
+ 
+@@ -129,7 +162,10 @@
+ /* Define if srand() returns void not int. */
+ #undef RET_TYPE_SRAND_IS_VOID
+ 
+-/* Define if `sys_siglist' is declared by <signal.h> or <unistd.h>. */
++/* Define to 1 if you have the ANSI C header files. */
++#undef STDC_HEADERS
++
++/* Define to 1 if `sys_siglist' is declared by <signal.h> or <unistd.h>. */
+ #undef SYS_SIGLIST_DECLARED
+ 
+ /* Define if your C++ compiler uses a traditional (Reiser) preprocessor. */
+--- groff-1.18.1.1.orig/src/include/encoding.h
++++ groff-1.18.1.1/src/include/encoding.h
+@@ -0,0 +1,175 @@
++// -*- C++ -*-
++/* Copyright (c) 2001 Fumitoshi UKAI <ukai at debian.or.jp>
++
++This file is part of groff.
++
++groff is free software; you can redistribute it and/or modify it under
++the terms of the GNU General Public License as published by the Free
++Software Foundation; either version 2, or (at your option) any later
++version.
++
++groff is distributed in the hope that it will be useful, but WITHOUT ANY
++WARRANTY; without even the implied warranty of MERCHANTABILITY or
++FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
++for more details.
++
++You should have received a copy of the GNU General Public License
++along with this program; if not, write to the Free Software
++Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
++
++#ifndef ENCODING_H
++#define ENCODING_H
++
++#include <config.h>
++
++#ifdef ENABLE_MULTIBYTE
++typedef int wchar;	// negative is used for charcode & index
++#else
++typedef char wchar;
++#endif
++
++#include <stdio.h>
++
++#ifdef __cplusplus
++class encoding_istream {
++public:
++  encoding_istream() {};
++  virtual ~encoding_istream() {};
++  virtual int getbyte() = 0;
++  virtual int peekbyte() = 0;
++  virtual void ungetbyte(int ch) = 0;
++};
++
++class encoding_istream_str: public encoding_istream {
++private:
++  const unsigned char *s;
++  int *i;
++  encoding_istream_str() {};
++public:
++  encoding_istream_str(const unsigned char *s0, int *i0) : s(s0), i(i0) {};
++  ~encoding_istream_str() {};
++  inline int getbyte() { return s[(*i)++]; };
++  inline int peekbyte() { return s[(*i)]; };
++  inline void ungetbyte(int ch) { --(*i); };
++};
++
++class encoding_istream_fp: public encoding_istream {
++private:
++  FILE *fp;
++public:
++  encoding_istream_fp(FILE *fp0) : fp(fp0) {};
++  ~encoding_istream_fp() {};
++  inline int getbyte() { return fgetc(fp); };
++  inline int peekbyte() { int ch = fgetc(fp); ungetc(ch, fp); return ch; };
++  inline void ungetbyte(int ch) { ungetc(ch, fp); };
++};
++
++class encoding_ostream {
++public:
++  encoding_ostream() {};
++  virtual ~encoding_ostream() {};
++  virtual void putbyte(unsigned char ch) = 0;
++};
++
++class encoding_ostream_str: public encoding_ostream {
++private:
++  unsigned char *s;
++  int *i;
++  int len;
++  encoding_ostream_str() {};
++public:
++  encoding_ostream_str(unsigned char *s0, int *i0, int max) : s(s0), i(i0), len(max) {};
++  ~encoding_ostream_str() {};
++  inline void putbyte(unsigned char ch) {
++    if (*i < len)
++      s[(*i)++] = ch;
++  }
++};
++
++class encoding_ostream_fp: public encoding_ostream {
++private:
++  FILE *fp;
++  const char *format;
++public:
++  encoding_ostream_fp(FILE *ofp, const char *fmt = "%c") : fp(ofp), format(fmt) {};
++  ~encoding_ostream_fp() {};
++  inline void putbyte(unsigned char ch) {
++    fprintf(fp, format, ch);
++  }
++};
++
++class encoding_handler {
++public:
++  encoding_handler() {};
++  virtual ~encoding_handler() {};
++
++  // name of this encoding_handler
++  virtual const char *name() { return ""; };
++
++  // check if this byte is byte in multibyte character in this encoding?
++  virtual int is_wchar_byte(unsigned char c) { return 0; };
++
++  // make new wchar from c0 (beginning of multibytes) and rest from `in'
++  virtual wchar make_wchar(unsigned char c0, encoding_istream& in) { 
++    return wchar(c0);
++  }
++  // make new wchar from c0 (beginning of multibytes) and rest from `fp'
++  virtual wchar make_wchar(unsigned char c0, FILE *fp) {
++    encoding_istream_fp in(fp);
++    return make_wchar(c0, in);
++  }
++  // make new wchar from c0 (beginning of multibtyes) and rest from
++  // s[*i], *i will be changed to point the byte of next character.
++  virtual wchar make_wchar(unsigned char c0, const unsigned char *s, int *i) {
++    encoding_istream_str in(s, i);
++    return make_wchar(c0, in);
++  }
++
++  // put wchar to outputstream
++  // returns number of bytes written
++  virtual int put_wchar(wchar wc, encoding_ostream& eos) {
++    eos.putbyte((unsigned char)wc);
++    return 1;
++  }
++  // put wchar to `fp' using `fmt'
++  // returns number of bytes written
++  virtual int put_wchar(wchar wc, FILE *fp, const char *fmt = "%c") {
++    encoding_ostream_fp out(fp, fmt);
++    return put_wchar(wc, out);
++  }
++  // put wchar to s[*i] (until maxlen)
++  // *i will be changed to point the byte of next character.
++  virtual int put_wchar(wchar wc, unsigned char *s, int *i, int maxlen) {
++    encoding_ostream_str out(s, i, maxlen);
++    return put_wchar(wc, out);
++  }
++
++  // maximum number of bytes of multibyte character in this encoding
++  virtual int max_wchar_len() { return 1; };
++
++};
++
++encoding_handler* select_input_encoding_handler(const char* encoding_name);
++encoding_handler* select_output_encoding_handler(const char* encoding_name);
++extern encoding_handler* input_encoding;
++extern encoding_handler* output_encoding;
++void init_encoding_handler();
++
++// check if wc is wchar?
++int is_wchar_code(wchar wc);
++
++// check if wc is wchar & can be represented in single byte?
++int is_wchar_singlebyte(wchar wc);
++
++// get singlebyte representation of wchar (if is_wchar_singlebyte(wc))
++unsigned char wchar_singlebyte(wchar wc);
++
++// get actual wide character code
++int wchar_code(wchar wc);
++
++// make wchar from wide character code
++int make_wchar(int w);
++
++#endif
++
++#endif /* ENCODING_H */
+--- groff-1.18.1.1.orig/src/include/lib.h
++++ groff-1.18.1.1/src/include/lib.h
+@@ -88,8 +88,15 @@
+ 
+ extern char invalid_char_table[];
+ 
++#include "encoding.h" /* XXX: ukai */
++
+ inline int invalid_input_char(int c)
+ {
++#ifdef ENABLE_MULTIBYTE
++  if (input_encoding->is_wchar_byte(c))
++      return 0;
++  else
++#endif
+   return c >= 0 && invalid_char_table[c];
+ }
+ 
+--- groff-1.18.1.1.orig/src/include/device.h
++++ groff-1.18.1.1/src/include/device.h
+@@ -18,4 +18,9 @@
+ with groff; see the file COPYING.  If not, write to the Free Software
+ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+ 
++#ifndef _DEVICE_H
++#define _DEVICE_H
++
+ extern const char *device;
++
++#endif /* _DEVICE_H */
+--- groff-1.18.1.1.orig/src/include/config.h
++++ groff-1.18.1.1/src/include/config.h
+@@ -0,0 +1,187 @@
++/* src/include/config.h.  Generated by configure.  */
++/* src/include/config.hin.  Generated from configure.ac by autoheader.  */
++
++/* Define if your C++ doesn't understand `delete []'. */
++/* #undef ARRAY_DELETE_NEEDS_SIZE */
++
++/* Define if you want to use multibyte extension. */
++#define ENABLE_MULTIBYTE 1
++
++/* Define if you have a C++ <limits.h>. */
++#define HAVE_CC_LIMITS_H 1
++
++/* Define if you have a C++ <osfcn.h>. */
++/* #undef HAVE_CC_OSFCN_H */
++
++/* Define to 1 if you have the <dirent.h> header file. */
++#define HAVE_DIRENT_H 1
++
++/* Define to 1 if you have the `fmod' function. */
++#define HAVE_FMOD 1
++
++/* Define to 1 if you have the `getcwd' function. */
++#define HAVE_GETCWD 1
++
++/* Define to 1 if you have the `getpagesize' function. */
++#define HAVE_GETPAGESIZE 1
++
++/* Define to 1 if you have the `gettimeofday' function. */
++#define HAVE_GETTIMEOFDAY 1
++
++/* Define to 1 if you have the <inttypes.h> header file. */
++#define HAVE_INTTYPES_H 1
++
++/* Define to 1 if you have the `isatty' function. */
++#define HAVE_ISATTY 1
++
++/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
++#define HAVE_LANGINFO_CODESET 1
++
++/* Define to 1 if you have the <limits.h> header file. */
++#define HAVE_LIMITS_H 1
++
++/* Define to 1 if you have the <math.h> header file. */
++#define HAVE_MATH_H 1
++
++/* Define to 1 if you have the <memory.h> header file. */
++#define HAVE_MEMORY_H 1
++
++/* Define if you have mkstemp(). */
++#define HAVE_MKSTEMP 1
++
++/* Define to 1 if you have a working `mmap' system call. */
++#define HAVE_MMAP 1
++
++/* Define to 1 if you have the `putenv' function. */
++#define HAVE_PUTENV 1
++
++/* Define to 1 if you have the `rename' function. */
++#define HAVE_RENAME 1
++
++/* Define to 1 if you have the `snprintf' function. */
++#define HAVE_SNPRINTF 1
++
++/* Define to 1 if you have the <stdint.h> header file. */
++#define HAVE_STDINT_H 1
++
++/* Define to 1 if you have the <stdlib.h> header file. */
++#define HAVE_STDLIB_H 1
++
++/* Define to 1 if you have the `strcasecmp' function. */
++#define HAVE_STRCASECMP 1
++
++/* Define to 1 if you have the `strerror' function. */
++#define HAVE_STRERROR 1
++
++/* Define to 1 if you have the <strings.h> header file. */
++#define HAVE_STRINGS_H 1
++
++/* Define to 1 if you have the <string.h> header file. */
++#define HAVE_STRING_H 1
++
++/* Define to 1 if you have the `strncasecmp' function. */
++#define HAVE_STRNCASECMP 1
++
++/* Define to 1 if you have the `strsep' function. */
++#define HAVE_STRSEP 1
++
++/* Define to 1 if you have the `strtol' function. */
++#define HAVE_STRTOL 1
++
++/* Define if <math.h> defines struct exception. */
++#define HAVE_STRUCT_EXCEPTION 1
++
++/* Define to 1 if you have the <sys/dir.h> header file. */
++#define HAVE_SYS_DIR_H 1
++
++/* Define if you have sys_errlist in <errno.h> or in <stdio.h>. */
++#define HAVE_SYS_ERRLIST 1
++
++/* Define if you have sysnerr in <errno.h> or <stdio.h>. */
++#define HAVE_SYS_NERR 1
++
++/* Define to 1 if you have the <sys/stat.h> header file. */
++#define HAVE_SYS_STAT_H 1
++
++/* Define to 1 if you have the <sys/time.h> header file. */
++#define HAVE_SYS_TIME_H 1
++
++/* Define to 1 if you have the <sys/types.h> header file. */
++#define HAVE_SYS_TYPES_H 1
++
++/* Define to 1 if you have the <unistd.h> header file. */
++#define HAVE_UNISTD_H 1
++
++/* Define if the host's encoding is EBCDIC. */
++/* #undef IS_EBCDIC_HOST */
++
++/* Define if localtime() takes a long * not a time_t *. */
++/* #undef LONG_FOR_TIME_T */
++
++/* Define if your C++ doesn't declare gettimeofday(). */
++/* #undef NEED_DECLARATION_GETTIMEOFDAY */
++
++/* Define if your C++ doesn't declare hypot(). */
++/* #undef NEED_DECLARATION_HYPOT */
++
++/* Define if your C++ doesn't declare pclose(). */
++/* #undef NEED_DECLARATION_PCLOSE */
++
++/* Define if your C++ doesn't declare popen(). */
++/* #undef NEED_DECLARATION_POPEN */
++
++/* Define if your C++ doesn't declare putenv(). */
++/* #undef NEED_DECLARATION_PUTENV */
++
++/* Define if your C++ doesn't declare strcasecmp(). */
++/* #undef NEED_DECLARATION_STRCASECMP */
++
++/* Define if your C++ doesn't declare strncasecmp(). */
++/* #undef NEED_DECLARATION_STRNCASECMP */
++
++/* Define to the address where bug reports for this package should be sent. */
++#define PACKAGE_BUGREPORT ""
++
++/* Define to the full name of this package. */
++#define PACKAGE_NAME ""
++
++/* Define to the full name and version of this package. */
++#define PACKAGE_STRING ""
++
++/* Define to the one symbol short name of this package. */
++#define PACKAGE_TARNAME ""
++
++/* Define to the version of this package. */
++#define PACKAGE_VERSION ""
++
++/* Define if the printer's page size is A4. */
++#define PAGEA4 1
++
++/* Define as the return type of signal handlers (`int' or `void'). */
++#define RETSIGTYPE void
++
++/* Define if srand() returns void not int. */
++#define RET_TYPE_SRAND_IS_VOID 1
++
++/* Define to 1 if you have the ANSI C header files. */
++#define STDC_HEADERS 1
++
++/* Define to 1 if `sys_siglist' is declared by <signal.h> or <unistd.h>. */
++#define SYS_SIGLIST_DECLARED 1
++
++/* Define if your C++ compiler uses a traditional (Reiser) preprocessor. */
++/* #undef TRADITIONAL_CPP */
++
++/* Define if the 0200 bit of the status returned by wait() indicates whether a
++   core image was produced for a process that was terminated by a signal. */
++/* #undef WCOREFLAG */
++
++/* Define if -D_POSIX_SOURCE is necessary. */
++/* #undef _POSIX_SOURCE */
++
++/* Define if you have ISC 3.x or 4.x. */
++/* #undef _SYSV3 */
++
++/* Define uintmax_t to `unsigned long' or `unsigned long long' if <inttypes.h>
++   does not exist. */
++/* #undef uintmax_t */
+--- groff-1.18.1.1.orig/src/include/printer.h
++++ groff-1.18.1.1/src/include/printer.h
+@@ -38,6 +38,8 @@
+ 
+ #include "color.h"
+ 
++#include "encoding.h"
++
+ struct environment {
+   int fontno;
+   int size;
+@@ -63,6 +65,9 @@
+   printer();
+   virtual ~printer();
+   void load_font(int i, const char *name);
++#ifdef	ENABLE_MULTIBYTE
++  void set_wchar_char(wchar c, char *s, int i0, int len, const environment *env, int *widthp = 0);
++#endif
+   void set_ascii_char(unsigned char c, const environment *env,
+ 		      int *widthp = 0);
+   void set_special_char(const char *nm, const environment *env,
+--- groff-1.18.1.1.orig/src/include/font.h
++++ groff-1.18.1.1/src/include/font.h
+@@ -18,11 +18,17 @@
+ with groff; see the file COPYING.  If not, write to the Free Software
+ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+ 
++#include "encoding.h"
++
+ typedef void (*FONT_COMMAND_HANDLER)(const char *, const char *,
+ 				     const char *, int);
+ 
+ struct font_kern_list;
+ struct font_char_metric;
++#ifdef ENABLE_MULTIBYTE
++struct fontset_list;
++struct font_wchar_metric;
++#endif
+ struct font_widths_cache;
+ 
+ class font {
+@@ -53,6 +59,9 @@
+   const char *get_special_device_encoding(int index);
+   const char *get_name();
+   const char *get_internal_name();
++#ifdef	ENABLE_MULTIBYTE
++  const char *get_subfont_name(int index);
++#endif
+ 
+   static int scan_papersize(const char *, const char **, double *, double *);
+ 
+@@ -62,6 +71,9 @@
+   static int load_desc();
+   static int name_to_index(const char *);
+   static int number_to_index(int);
++#ifdef	ENABLE_MULTIBYTE
++  static int wchar_index(wchar);
++#endif
+   static FONT_COMMAND_HANDLER
+     set_unknown_desc_command_handler(FONT_COMMAND_HANDLER);
+ 
+@@ -76,6 +88,11 @@
+   static int spare2;
+   static int sizescale;
+   static int tcommand;
++#ifdef	ENABLE_MULTIBYTE
++  // XXX: should be in charinfo or font_wchar_metric?
++  static int lowerwchar;
++  static int wcharkern;
++#endif
+   static int pass_filenames;
+   static int use_charnames_in_special;
+ 
+@@ -83,13 +100,27 @@
+   static const char **style_table;
+   static const char *family;
+   static int *sizes;
++#ifdef	ENABLE_MULTIBYTE
++  // fontsets - sub font list
++  static fontset_list *fontsets;
++  // get fontset for `wc' in current font `fname'
++  static int get_fontset_font(const char *fname, wchar wc);
++  // is the fontno's font load on demand?
++  static int is_on_demand(int fontno);
++#endif
+ private:
+   unsigned ligatures;
+   font_kern_list **kern_hash_table;
+   int space_width;
+-  short *ch_index;
++  short *ch_index;	/* XXX: this is used unless font_wchar_metric. */
+   int nindices;
+   font_char_metric *ch;
++#ifdef ENABLE_MULTIBYTE
++  // font metric for wchar
++  font_wchar_metric *wch;
++  // get font metric for wchar indexed by c
++  font_wchar_metric *get_font_wchar_metric(int c);
++#endif
+   int ch_used;
+   int ch_size;
+   int special;
+--- groff-1.18.1.1.orig/src/include/driver.h
++++ groff-1.18.1.1/src/include/driver.h
+@@ -27,6 +27,7 @@
+ #include <errno.h>
+ #include <assert.h>
+ #include <math.h>
++#include "encoding.h" // XXX: ukai
+ #include "errarg.h"
+ #include "error.h"
+ #include "font.h"
+--- groff-1.18.1.1.orig/src/libs/libdriver/input.cc
++++ groff-1.18.1.1/src/libs/libdriver/input.cc
+@@ -250,6 +250,7 @@
+ 
+ #include "driver.h"
+ #include "device.h"
++#include "encoding.h"
+ 
+ #include <stdlib.h>
+ #include <errno.h>
+@@ -1439,6 +1440,19 @@
+   char *subcmd_str = get_string_arg();
+   char subcmd = subcmd_str[0];
+   switch (subcmd) {
++#ifdef ENABLE_MULTIBYTE
++  case 'e':			// x encoding: select encoding
++    {
++      char *str_arg = get_string_arg();
++      if (str_arg == 0)
++	warning("empty argument for `x encoding' command");
++      else {
++	select_input_encoding_handler(str_arg);
++	delete str_arg;
++      }
++      break;
++    }
++#endif
+   case 'f':			// x font: mount font
+     {
+       IntArg n = get_integer_arg();
+@@ -1517,7 +1531,7 @@
+   return stopped;
+ }
+ 
+-
++////////////////////////////////////////////////////////////////
+ /**********************************************************************
+                      exported part (by driver.h)
+  **********************************************************************/
+@@ -1625,6 +1639,18 @@
+     if (str_arg[0] != 'i')
+       fatal("the third command must be `x init'");
+     delete str_arg;
++#ifdef ENABLE_MULTIBYTE
++    Char c = get_char();
++    while (is_space_or_tab(c) && c != Char('\n') && c != Char(EOF))
++	c = get_char();
++    unget_char(c);
++    if (c != Char('\n') && c != Char(EOF)) {
++	const char *tmp_encoding = get_string_arg();
++	if (tmp_encoding && *tmp_encoding)
++	    select_input_encoding_handler(tmp_encoding);
++	delete tmp_encoding;
++    }
++#endif
+     skip_line_x();
+   }
+ 
+@@ -1763,6 +1789,18 @@
+ 	size_t i = 0;
+ 	while ((c = str_arg[i++]) != '\0') {
+ 	  EnvInt w;
++#ifdef	ENABLE_MULTIBYTE
++ 	  if (input_encoding->is_wchar_byte(c)) {
++	    int i0 = i - 1;
++ 	    wchar wc = input_encoding->make_wchar(c, (const unsigned char *)str_arg, (int *)&i);
++ 	    if (is_wchar_code(wc)) {
++	      /* XXX: singlebyte check? */
++ 	      pr->set_wchar_char(wc, str_arg, i0, i - i0, current_env, &w);
++ 	    } else {
++ 	      pr->set_ascii_char((unsigned char) c, current_env, &w);
++ 	    }
++ 	  } else
++#endif
+ 	  pr->set_ascii_char((unsigned char) c, current_env, &w);
+ 	  current_env->hpos += w;
+ 	}
+--- groff-1.18.1.1.orig/src/libs/libdriver/printer.cc
++++ groff-1.18.1.1/src/libs/libdriver/printer.cc
+@@ -27,6 +27,7 @@
+ */
+ 
+ #include "driver.h"
++#include "encoding.h"
+ 
+ printer *pr = 0;
+ 
+@@ -138,6 +139,24 @@
+   }
+ }
+ 
++#ifdef	ENABLE_MULTIBYTE
++void printer::set_wchar_char(wchar c, char *s, int i0, int len, const environment *env, int *widthp)
++{
++  unsigned char *buf = new unsigned char[len+1];
++  memset(buf, 0, len+1);
++  memcpy(buf, s+i0, len);
++  font *f;
++  int w;
++  int i = set_char_and_width((const char *)buf, env, &w, &f);
++  if (i != -1) {
++      set_char(c, f, env, w, (const char *)buf);
++      if (widthp)
++	  *widthp = w;
++  }
++  delete [] buf;
++}
++#endif
++
+ void printer::set_special_char(const char *nm, const environment *env,
+ 			       int *widthp)
+ {
+--- groff-1.18.1.1.orig/src/libs/libgroff/fontfile.cc
++++ groff-1.18.1.1/src/libs/libgroff/fontfile.cc
+@@ -24,6 +24,7 @@
+ #include <assert.h>
+ #include <stdlib.h>
+ #include <errno.h>
++#include "encoding.h" // XXX: ukai
+ #include "font.h"
+ #include "searchpath.h"
+ #include "device.h"
+@@ -36,6 +37,10 @@
+ int font::res = 0;
+ int font::hor = 1;
+ int font::vert = 1;
++#ifdef	ENABLE_MULTIBYTE
++int font::lowerwchar = 0;
++int font::wcharkern = 0;
++#endif
+ int font::unitwidth = 0;
+ int font::paperwidth = 0;
+ int font::paperlength = 0;
+--- groff-1.18.1.1.orig/src/libs/libgroff/font.cc
++++ groff-1.18.1.1/src/libs/libgroff/font.cc
+@@ -25,6 +25,7 @@
+ #include <assert.h>
+ #include <math.h>
+ #include <stdlib.h>
++#include "encoding.h" // XXX: ukai
+ #include "errarg.h"
+ #include "error.h"
+ #include "cset.h"
+@@ -43,8 +44,39 @@
+   int italic_correction;
+   int subscript_correction;
+   char *special_device_coding;
++#ifdef ENABLE_MULTIBYTE
++  char *subfont_name;
++#endif
+ };
+ 
++#ifdef ENABLE_MULTIBYTE
++struct fontset_list {
++  struct fontset_list *next;
++  char *primary_font_name;
++  int fontset_font;
++  wchar start_code;
++  wchar end_code;
++  int on_demand;
++};
++
++fontset_list *font::fontsets = NULL;
++
++struct font_wchar_metric {
++  struct font_wchar_metric *next;
++  char type;
++  int start_code;
++  int end_code;
++  int width;
++  int height;
++  int depth;
++  int pre_math_space;
++  int italic_correction;
++  int subscript_correction;
++  char *special_device_coding;
++  char *subfont_name;
++};
++#endif
++
+ struct font_kern_list {
+   int i1;
+   int i2;
+@@ -149,7 +181,11 @@
+ 
+ font::font(const char *s)
+ : ligatures(0), kern_hash_table(0), space_width(0), ch_index(0), nindices(0),
+-  ch(0), ch_used(0), ch_size(0), special(0), widths_cache(0)
++  ch(0), 
++#ifdef ENABLE_MULTIBYTE
++  wch(0),
++#endif
++  ch_used(0), ch_size(0), special(0), widths_cache(0)
+ {
+   name = new char[strlen(s) + 1];
+   strcpy(name, s);
+@@ -183,6 +219,17 @@
+     widths_cache = widths_cache->next;
+     delete tem;
+   }
++#ifdef ENABLE_MULTIBYTE
++  struct font_wchar_metric *wcp, *nwcp;
++  for (wcp = wch; wcp != NULL; wcp = nwcp) {
++    nwcp = wcp->next;
++    if (wcp->special_device_coding)
++      delete [] wcp->special_device_coding;
++    if (wcp->subfont_name)
++      delete [] wcp->subfont_name;
++    delete wcp;
++  }
++#endif
+ }
+ 
+ static int scale_round(int n, int x, int y)
+@@ -244,6 +291,11 @@
+ 
+ int font::contains(int c)
+ {
++#ifdef ENABLE_MULTIBYTE
++  font_wchar_metric *wcp = get_font_wchar_metric(c);
++  if (wcp != NULL)
++    return 1;
++#endif
+   return c >= 0 && c < nindices && ch_index[c] >= 0;
+ }
+ 
+@@ -266,8 +318,31 @@
+   a_delete width;
+ }
+ 
++#ifdef ENABLE_MULTIBYTE
++struct font_wchar_metric *
++font::get_font_wchar_metric(int c)
++{
++  /* XXX: c is font index, not char code... */
++  /* XXX: we assume wchar_code == font index code for wchars */
++  /* XXX: does really code conflicts with index? */
++  struct font_wchar_metric *wcp;
++  for (wcp = wch; wcp != NULL; wcp = wcp->next) {
++    if (wcp->start_code <= wchar_code(c) && wchar_code(c) <= wcp->end_code) {
++      return wcp;
++    }
++  }
++  return NULL;
++}
++#endif
++
+ int font::get_width(int c, int point_size)
+ {
++#ifdef ENABLE_MULTIBYTE
++  font_wchar_metric *wcp = get_font_wchar_metric(c);
++  if (wcp != NULL) {
++    return scale(wcp->width, point_size);
++  }
++#endif
+   assert(c >= 0 && c < nindices);
+   int i = ch_index[c];
+   assert(i >= 0);
+@@ -299,30 +374,60 @@
+ 
+ int font::get_height(int c, int point_size)
+ {
++#ifdef ENABLE_MULTIBYTE
++  font_wchar_metric *wcp = get_font_wchar_metric(c);
++  if (wcp != NULL) {
++    return scale(wcp->height, point_size);
++  }
++#endif
+   assert(c >= 0 && c < nindices && ch_index[c] >= 0);
+   return scale(ch[ch_index[c]].height, point_size);
+ }
+ 
+ int font::get_depth(int c, int point_size)
+ {
++#ifdef ENABLE_MULTIBYTE
++  font_wchar_metric *wcp = get_font_wchar_metric(c);
++  if (wcp != NULL) {
++    return scale(wcp->depth, point_size);
++  }
++#endif
+   assert(c >= 0 && c < nindices && ch_index[c] >= 0);
+   return scale(ch[ch_index[c]].depth, point_size);
+ }
+ 
+ int font::get_italic_correction(int c, int point_size)
+ {
++#ifdef ENABLE_MULTIBYTE
++  font_wchar_metric *wcp = get_font_wchar_metric(c);
++  if (wcp != NULL) {
++    return scale(wcp->italic_correction, point_size);
++  }
++#endif
+   assert(c >= 0 && c < nindices && ch_index[c] >= 0);
+   return scale(ch[ch_index[c]].italic_correction, point_size);
+ }
+ 
+ int font::get_left_italic_correction(int c, int point_size)
+ {
++#ifdef ENABLE_MULTIBYTE
++  font_wchar_metric *wcp = get_font_wchar_metric(c);
++  if (wcp != NULL) {
++    return scale(wcp->pre_math_space, point_size);
++  }
++#endif
+   assert(c >= 0 && c < nindices && ch_index[c] >= 0);
+   return scale(ch[ch_index[c]].pre_math_space, point_size);
+ }
+ 
+ int font::get_subscript_correction(int c, int point_size)
+ {
++#ifdef ENABLE_MULTIBYTE
++  font_wchar_metric *wcp = get_font_wchar_metric(c);
++  if (wcp != NULL) {
++    return scale(wcp->subscript_correction, point_size);
++  }
++#endif
+   assert(c >= 0 && c < nindices && ch_index[c] >= 0);
+   return scale(ch[ch_index[c]].subscript_correction, point_size);
+ }
+@@ -371,12 +476,24 @@
+ 
+ int font::get_character_type(int c)
+ {
++#ifdef ENABLE_MULTIBYTE
++  font_wchar_metric *wcp = get_font_wchar_metric(c);
++  if (wcp != NULL) {
++    return wcp->type;
++  }
++#endif
+   assert(c >= 0 && c < nindices && ch_index[c] >= 0);
+   return ch[ch_index[c]].type;
+ }
+ 
+ int font::get_code(int c)
+ {
++#ifdef ENABLE_MULTIBYTE
++  font_wchar_metric *wcp = get_font_wchar_metric(c);
++  if (wcp != NULL) {
++    return c;
++  }
++#endif
+   assert(c >= 0 && c < nindices && ch_index[c] >= 0);
+   return ch[ch_index[c]].code;
+ }
+@@ -393,10 +510,26 @@
+ 
+ const char *font::get_special_device_encoding(int c)
+ {
++#ifdef ENABLE_MULTIBYTE
++  font_wchar_metric *wcp = get_font_wchar_metric(c);
++  if (wcp != NULL)
++    return wcp->special_device_coding;
++#endif
+   assert(c >= 0 && c < nindices && ch_index[c] >= 0);
+   return( ch[ch_index[c]].special_device_coding );
+ }
+ 
++#ifdef	ENABLE_MULTIBYTE
++const char *font::get_subfont_name(int c)
++{
++  font_wchar_metric *wcp = get_font_wchar_metric(c);
++  if (wcp != NULL)
++    return wcp->subfont_name;
++  assert(c >= 0 && c < nindices && ch_index[c] >= 0);
++  return ch[ch_index[c]].subfont_name;
++}
++#endif
++
+ void font::alloc_ch_index(int index)
+ {
+   if (nindices == 0) {
+@@ -554,9 +687,11 @@
+   return 0;
+ }
+ 
++
+ // If the font can't be found, then if not_found is non-NULL, it will be set
+ // to 1 otherwise a message will be printed.
+ 
++
+ int font::load(int *not_found)
+ {
+   char *path;
+@@ -570,7 +705,7 @@
+   }
+   text_file t(fp, path);
+   t.skip_comments = 1;
+-  char *p;
++  char *p = NULL;
+   for (;;) {
+     if (!t.next()) {
+       t.error("missing charset command");
+@@ -681,6 +816,9 @@
+     }
+     else if (strcmp(command, "charset") == 0) {
+       had_charset = 1;
++#ifdef ENABLE_MULTIBYTE
++      int had_range = 0;
++#endif
+       int last_index = -1;
+       for (;;) {
+ 	if (!t.next()) {
+@@ -695,6 +833,11 @@
+ 	  command = nm;
+ 	  break;
+ 	}
++#ifdef ENABLE_MULTIBYTE
++	int start_code = 0;
++	int end_code = 0;
++	int nrange = sscanf(nm, "u%X..u%X", &start_code, &end_code);
++#endif
+ 	if (p[0] == '"') {
+ 	  if (last_index == -1) {
+ 	    t.error("first charset entry is duplicate");
+@@ -711,7 +854,64 @@
+ 	  }
+ 	  copy_entry(index, last_index);
+ 	}
++#ifdef ENABLE_MULTIBYTE
++	else if (nrange == 2) {
++	  had_range = 1;
++	  font_wchar_metric *wcp = new font_wchar_metric;
++	  wcp->start_code = start_code;
++	  wcp->end_code = end_code;
++	  wcp->height = 0;
++	  wcp->depth = 0;
++	  wcp->pre_math_space = 0;
++	  wcp->italic_correction = 0;
++	  wcp->subscript_correction = 0;
++	  int nparms = sscanf(p, "%d,%d,%d,%d,%d,%d",
++			      &wcp->width, &wcp->height, &wcp->depth,
++			      &wcp->italic_correction,
++			      &wcp->pre_math_space,
++			      &wcp->subscript_correction);
++	  if (nparms < 1) {
++	    t.error("bad width for `%1'", nm);
++	    return 0;
++	  }
++	  p = strtok(0, WS);
++	  if (p == 0) {
++	    t.error("missing character type for `%1'", nm);
++	    return 0;
++	  }
++	  int type;
++	  if (sscanf(p, "%d", &type) != 1) {
++	    t.error("bad character type for `%1'", nm);
++	    return 0;
++	  }
++	  if (type < 0 || type > 255) {
++	    t.error("character type `%1' out of range", type);
++	    return 0;
++	  }
++	  wcp->type = type;
++
++	  p = strtok(0, WS);
++	  if ((p == 0) || (strcmp(p, "--") == 0)) {
++	    wcp->subfont_name = NULL;
++	  } else {
++	    wcp->subfont_name = new char[strlen(p) + 1];
++	    strcpy(wcp->subfont_name, p);
++	  }
++
++	  p = strtok(0, WS);
++	  if ((p == NULL) || (strcmp(p, "--") == 0)) {
++	    wcp->special_device_coding = NULL;
++	  } else {
++	    wcp->special_device_coding = new char[strlen(p) + 1];
++	    strcpy(wcp->special_device_coding, p);
++	  }
++	  wcp->next = wch;
++	  wch = wcp;
++	  p = NULL;
++	}
++#endif
+ 	else {
++	  
+ 	  font_char_metric metric;
+ 	  metric.height = 0;
+ 	  metric.depth = 0;
+@@ -747,6 +947,16 @@
+ 	    t.error("missing code for `%1'", nm);
+ 	    return 0;
+ 	  }
++#ifdef	ENABLE_MULTIBYTE
++	  char *subp = strchr(p, ':');
++	  if (subp) {
++	    *subp++ = '\0';
++	    metric.subfont_name = new char[strlen(subp) + 1];
++	    strcpy(metric.subfont_name, subp);
++	  } else {
++	    metric.subfont_name = NULL;
++	  }
++#endif
+ 	  char *ptr;
+ 	  metric.code = (int)strtol(p, &ptr, 0);
+ 	  if (metric.code == 0 && ptr == p) {
+@@ -777,7 +987,11 @@
+ 	  }
+ 	}
+       }
++#ifdef ENABLE_MULTIBYTE
++      if (!had_range && last_index == -1) {
++#else
+       if (last_index == -1) {
++#endif
+ 	t.error("I didn't seem to find any characters");
+ 	return 0;
+       }
+@@ -811,6 +1025,11 @@
+   { "biggestfont", &font::biggestfont },
+   { "spare2", &font::spare2 },
+   { "sizescale", &font::sizescale }
++#ifdef	ENABLE_MULTIBYTE
++  ,
++  { "lowerwchar", &font::lowerwchar },
++  { "wcharkern", &font::wcharkern }
++#endif
+   };
+ 
+ int font::load_desc()
+@@ -981,6 +1200,67 @@
+       tcommand = 1;
+     else if (strcmp("use_charnames_in_special", p) == 0)
+       use_charnames_in_special = 1;
++#ifdef	ENABLE_MULTIBYTE
++    else if (strcmp("fontset", p) == 0) {
++      /* fontset <primary-fontname> <fontname> <code>..<code> [ondemand] */
++      p = strtok(0, WS);
++      if (p == NULL) {
++	t.error("no primary font for fontset");
++	return 0;
++      }
++      char *pfont = NULL;
++      if (strcmp(p, "-") != 0) {
++	pfont = new char[strlen(p)+1];
++	strcpy(pfont, p);
++      }
++      p = strtok(0, WS);
++      if (p == NULL) {
++	t.error("no fontset font for `%1'", 
++		pfont ? pfont : "-");
++	return 0;
++      }
++      int fontset_font = 0;
++      for (int i = 0; i < nfonts; i++) {
++	if (strcmp(p, font_name_table[i]) == 0) {
++	  fontset_font = i;
++	  break;
++	}
++      }
++      if (fontset_font == nfonts) {
++	t.error("fontset font `%1' for font `%2' not defined", 
++		p, pfont ? pfont : "-");
++	return 0;
++      }
++      p = strtok(0, WS);
++      if (p == NULL) {
++	t.error("no range for fontset font `%1' for font `%2'",
++		font_name_table[fontset_font],
++		pfont ? pfont : "-");
++	return 0;
++      }
++      wchar start_code = 0;
++      wchar end_code = 0;
++      int nparms = sscanf(p, "%x..%x", &start_code, &end_code);
++      if (nparms != 2) {
++	t.error("invalid range format `%1'", p);
++	return 0;
++      }
++      p = strtok(0, WS);
++      int on_demand = 0;
++      if (p != NULL && strcmp(p, "ondemand") == 0) {
++	on_demand = 1;
++      }
++      /* XXX */
++      fontset_list *fl = new fontset_list;
++      fl->primary_font_name = pfont;
++      fl->fontset_font = fontset_font;
++      fl->start_code = start_code;
++      fl->end_code = end_code;
++      fl->on_demand = on_demand;
++      fl->next = fontsets;
++      fontsets = fl;
++    }
++#endif
+     else if (strcmp("charset", p) == 0)
+       break;
+     else if (unknown_desc_command_handler) {
+@@ -1020,6 +1300,39 @@
+   return 1;
+ }      
+ 
++#ifdef ENABLE_MULTIBYTE
++int
++font::get_fontset_font(const char *fname, wchar wc) {
++  fontset_list *fl;
++  int avail_fontno = -1;
++  wc = wchar_code(wc);
++  for (fl = fontsets; fl != NULL; fl = fl->next) {
++    if (fl->primary_font_name == NULL) {
++      if (fl->start_code <= wc && wc <= fl->end_code) {
++	avail_fontno = fl->fontset_font;
++      }
++    }
++    else if (fname && strcmp(fl->primary_font_name, fname) == 0) {
++      if (fl->start_code <= wc && wc <= fl->end_code) {
++	return fl->fontset_font;
++      }
++    }
++  }
++  return avail_fontno;
++}
++
++int
++font::is_on_demand(int fontno) {
++  fontset_list *fl;
++  for (fl = fontsets; fl != NULL; fl = fl->next) {
++    if (fl->fontset_font == fontno) {
++      return fl->on_demand;
++    }
++  }
++  return 0;
++}
++#endif
++
+ void font::handle_unknown_font_command(const char *, const char *,
+ 				       const char *, int)
+ {
+--- groff-1.18.1.1.orig/src/libs/libgroff/searchpath.cc
++++ groff-1.18.1.1/src/libs/libgroff/searchpath.cc
+@@ -19,6 +19,7 @@
+ with groff; see the file COPYING.  If not, write to the Free Software
+ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+ 
++#include "encoding.h"
+ #include "lib.h"
+ 
+ #include <stdlib.h>
+--- groff-1.18.1.1.orig/src/libs/libgroff/nametoindex.cc
++++ groff-1.18.1.1/src/libs/libgroff/nametoindex.cc
+@@ -24,6 +24,7 @@
+ #include <ctype.h>
+ #include <assert.h>
+ #include <stdlib.h>
++#include "encoding.h" // XXX: ukai
+ #include "errarg.h"
+ #include "error.h"
+ #include "font.h"
+@@ -37,6 +38,9 @@
+   character_indexer();
+   ~character_indexer();
+   int ascii_char_index(unsigned char);
++#ifdef	ENABLE_MULTIBYTE
++  int wchar_index(wchar);
++#endif
+   int named_char_index(const char *);
+   int numbered_char_index(int);
+ private:
+@@ -68,6 +72,13 @@
+   return ascii_index[c];
+ }
+ 
++#ifdef	ENABLE_MULTIBYTE
++int character_indexer::wchar_index(wchar wc)
++{
++  return wc; /* XXX: wchar code == index */
++}
++#endif
++
+ int character_indexer::numbered_char_index(int n)
+ {
+   if (n >= 0 && n < NSMALL) {
+@@ -103,6 +114,30 @@
+ int font::name_to_index(const char *s)
+ {
+   assert(s != 0 && s[0] != '\0' && s[0] != ' ');
++#ifdef	ENABLE_MULTIBYTE
++ {
++   int i = 1;
++   wchar wc = input_encoding->make_wchar(s[0], (const unsigned char *)s, &i);
++   /* XXX 
++    * if wchar can be represented in single byte (<256),
++    * it should be the same as char<wc>.
++    */
++   if (is_wchar_singlebyte(wc)) {
++       return indexer.ascii_char_index(wchar_singlebyte(wc));
++   }
++   if (is_wchar_code(wc)) {
++    return indexer.wchar_index(wc);
++   }
++   /* XXX: uA1A1 and \xa1a1 are synonyms */
++   if (s[0] == 'u') {
++     char *res;
++     long n = strtol(s + 1, &res, 16);
++     if (res != s + 1 && *res == '\0') {
++       return indexer.wchar_index(n);
++     }
++   }
++ }
++#endif
+   if (s[1] == '\0')
+     return indexer.ascii_char_index(s[0]);
+   /* char128 and \200 are synonyms */
+@@ -115,3 +150,9 @@
+   return indexer.named_char_index(s);
+ }
+ 
++#ifdef	ENABLE_MULTIBYTE
++int font::wchar_index(wchar wc)
++{
++  return indexer.wchar_index(wc);
++}
++#endif
+--- groff-1.18.1.1.orig/src/libs/libgroff/encoding.cc
++++ groff-1.18.1.1/src/libs/libgroff/encoding.cc
+@@ -0,0 +1,441 @@
++// -*- C++ -*-
++/* Copyright (C) 2001 Fumitoshi UKAI <ukai at debian.or.jp>
++
++This file is part of groff.
++
++groff is free software; you can redistribute it and/or modify it under
++the terms of the GNU General Public License as published by the Free
++Software Foundation; either version 2, or (at your option) any later
++version.
++
++groff is distributed in the hope that it will be useful, but WITHOUT ANY
++WARRANTY; without even the implied warranty of MERCHANTABILITY or
++FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
++for more details.
++
++You should have received a copy of the GNU General Public License
++along with this program; if not, write to the Free Software
++Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
++
++#include "encoding.h"
++#include "device.h"
++
++#include <string.h>
++#ifdef ENABLE_MULTIBYTE
++#include <locale.h>
++#include <wchar.h>
++#ifdef HAVE_LANGINFO_CODESET
++#include <langinfo.h>
++#else
++#include <stdlib.h>
++#endif
++#endif
++
++class ascii8_handler : public encoding_handler {
++  // encoding handler for 8bit ascii
++  // no multibyte support
++public:
++  ascii8_handler() {}
++  ~ascii8_handler() {}
++
++  const char *name() { return "C"; }; /* ??? */
++
++  inline int is_wchar_byte(unsigned char c) { return 0; }
++  inline wchar make_wchar(unsigned char c0, encoding_istream& eis) {
++    return wchar(c0);
++  }
++  inline int put_wchar(wchar wc, encoding_ostream& eos) {
++    eos.putbyte((unsigned char)wchar_code(wc));
++    return 1;
++  }
++  inline int max_wchar_len() { return 1; };
++
++};
++
++#ifdef ENABLE_MULTIBYTE
++class utf8_handler: public encoding_handler {
++public:
++  utf8_handler() { } 
++  ~utf8_handler() { }
++
++  const char *name() { return "UTF-8"; };
++
++  inline int is_wchar_byte(unsigned char c) {
++    return (c >= 0x80);
++  }
++
++  /*
++   0000 0000-0000 007F   0xxxxxxx
++   0000 0080-0000 07FF   110xxxxx 10xxxxxx
++   0000 0800-0000 FFFF   1110xxxx 10xxxxxx 10xxxxxx
++
++   0001 0000-001F FFFF   11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
++   0020 0000-03FF FFFF   111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
++   0400 0000-7FFF FFFF   1111110x 10xxxxxx ... 10xxxxxx
++  */
++
++  inline wchar make_wchar(unsigned char c0, encoding_istream& eis) {
++    wchar wc = 0;
++    int count = 0;
++    if (! is_wchar_byte(c0)) {
++      return c0;
++    }
++    if ((c0 & 0xFC) == 0xFC) {
++      wc = c0 & 0x01;
++      count = 5;
++    } else if ((c0 & 0xF8) == 0xF8) {
++      wc = c0 & 0x03;
++      count = 4;
++    } else if ((c0 & 0xF0) == 0xF0) {
++      wc = c0 & 0x07;
++      count = 3;
++    } else if ((c0 & 0xE0) == 0xE0) {
++      wc = c0 & 0x0F;
++      count = 2;
++    } else if ((c0 & 0xC0) == 0xC0) {
++      wc = c0 & 0x1F;
++      count = 1;
++    }
++    for (; count > 0; count--) {
++      wc <<= 6;
++      int c1 = eis.getbyte();
++      if (! is_wchar_byte(c1)) {
++	/* illegal utf8 sequence? */
++      }
++      wc |= (c1 & 0x3F);
++    }
++    return -wc;	// XXX: negative
++  }
++
++  inline int put_wchar(wchar wc, encoding_ostream& eos) {
++    int count = 0;
++    if (! is_wchar_code(wc)) {
++      eos.putbyte(wc);
++      return 1;
++    }
++    wc = -wc;	// XXX: negative -> character code
++
++    if (wc < 0x800) {
++      count = 1; eos.putbyte((wc >> 6) | 0xC0);
++    } else if (wc < 0x10000) {
++      count = 2; eos.putbyte((wc >> 12) | 0xE0);
++    } else if (wc < 0x200000) {
++      count = 3; eos.putbyte((wc >> 18) | 0xF0);
++    } else if (wc < 0x4000000) {
++      count = 4; eos.putbyte((wc >> 24) | 0xf8);
++    } else if (wc <= 0x7fffffff) {
++      count = 5; eos.putbyte((wc >> 30) | 0xFC);
++    }
++    for (int i = 0; i < count; i++) {
++      eos.putbyte(((wc >> 6 * (count - i - 1)) & 0x3f) | 0x80);
++    }
++    return count;
++  }
++  inline int max_wchar_len() { return 6; }; /* XXX 3?*/
++
++};
++
++#define USE_ICONV
++#ifdef USE_ICONV
++#include <iconv.h>
++#include <errno.h>
++
++class iconv_handler : public encoding_handler {
++private:
++  iconv_t icd, ocd;
++  const char *encoding_name;
++  static iconv_handler *ih_header;
++
++public:
++  iconv_handler *next;
++
++  static iconv_handler *new_iconv_handler(const char *ename) {
++    iconv_handler *ip;
++    // if already created, use it.
++    for (ip = ih_header; ip != NULL; ip = ip->next) {
++      if (strcmp(ip->name(), ename) == 0) {
++	return ip;
++      }
++    }
++    // not found, create new one.
++    ip = new iconv_handler(ename);
++    ip->next = ih_header;
++    ih_header = ip;
++    return ip;
++  }
++  iconv_handler(const char *ename) : encoding_name(ename) {
++    // internal code is UCS-2BE
++    icd = iconv_open("UCS-2BE", encoding_name);
++    ocd = iconv_open(encoding_name, "UCS-2BE");
++  };
++  ~iconv_handler() {};
++
++  const char *name() { return encoding_name; };
++
++  inline int is_wchar_byte(unsigned char c) {
++    return (c >= 0x80); /* ??? */
++  }
++
++  inline wchar make_wchar(unsigned char c0, encoding_istream& eis) {
++    wchar wc = 0;
++    char inbuf[8], outbuf[8];
++    char *inp, *outp;
++    size_t inbytesleft, outbytesleft;
++    int i = 0;
++    
++    if (! is_wchar_byte(c0)) {
++      return c0;
++    }
++    for (inbuf[i++] = c0; ;inbuf[i++] = eis.getbyte()) {
++      inbytesleft = i;
++      outbytesleft = sizeof(outbuf);
++      inp = inbuf;
++      outp = outbuf;
++      size_t r = iconv(icd, &inp, &inbytesleft, &outp, &outbytesleft);
++      if (r == (size_t)-1) {
++	if (errno == EILSEQ) {
++	  /* illegal sequence? */
++	  return '?';
++	} else if (errno == EINVAL) {
++	  /* incomplete sequence? */
++	  continue;
++	} else if (errno == E2BIG) {
++	  /* no room to output? */
++	  return '?';
++	}
++      }
++      /* ok */
++      /* UCS-2 is 2 bytes */
++      wc = ((outbuf[0] & 0x0ff) << 8) | (outbuf[1] & 0x0ff);
++      return -wc;	// XXX: negative
++    }
++  }
++
++
++  inline int put_wchar(wchar wc, encoding_ostream& eos) {
++    char inbuf[4], outbuf[4];
++    char *inp, *outp;
++    size_t inbytesleft, outbytesleft;
++
++    if (!is_wchar_code(wc)) {
++      eos.putbyte(wc & 0x0ff);
++      return 1;
++    }
++    wc = -wc;	// XXX: negative -> character code
++
++    inbuf[0] = (wc >> 8) & 0x0ff;
++    inbuf[1] = (wc >> 0) & 0x0ff;
++    inbuf[2] = 0;
++    inbytesleft = 2;
++    outbytesleft = 4;
++    inp = inbuf;
++    outp = outbuf;
++    size_t r = iconv(ocd, &inp, &inbytesleft, &outp, &outbytesleft);
++    if (r == (size_t)-1) {
++      if (errno == EILSEQ) {
++	/* illegal sequence? */;
++      } else if (errno == EINVAL) {
++	/* incomplete sequence? */;
++      } else if (errno == E2BIG) {
++	/* no room to output? */;
++      }
++      eos.putbyte('?');
++      return 1;
++    }
++    char *op = outbuf;
++    int n = 0;
++    for (; op < outp; op++, n++) {
++      eos.putbyte(*op & 0x0ff);
++    }
++    return outp - outbuf;
++  }
++  inline int max_wchar_len() { return 6; }; /* XXX */
++
++};
++#else
++class euc_handler : public encoding_handler {
++  static const int WCTABLE_OFFSET = 0xa1;
++  static const int WCTABLE_SIZE = 94;
++  static const int EUCMASK = 0x8080;
++
++public:
++  euc_handler() {}
++  ~euc_handler() {};
++
++  const char *name() { return "EUC-JP"; };
++
++  inline int is_wchar_byte(unsigned char c) {
++    return (c >= 0xa1 && c <= 0xfe);
++  }
++
++  inline wchar make_wchar(unsigned char c0, encoding_istream& eis) {
++    wchar wc;
++    if (! is_wchar_byte(c0)) {
++      return c0;
++    }
++    int c1 = eis.peekbyte();
++    if (! is_wchar_byte(c1)) {
++      eis.ungetbyte(c1);
++      return c0;
++    }
++    c1 = eis.getbyte();
++    wc = (c0 & 0xff) << 8;
++    wc |= (c1 & 0xff);
++
++    if (wc == 0xa1a1)
++      return ' ';
++    return -wc;
++  }
++
++  inline int put_wchar(wchar wc, encoding_ostream& eos) {
++    if (is_wchar_code(wc)) {
++      wc = -wc;
++      eos.putbyte((wc >> 8) & 0x0ff);
++      eos.putbyte((wc >> 0) & 0x0ff);
++      return 2;    
++    } else {
++      eos.putbyte(wc & 0x0ff);
++      return 1;
++    }
++  }
++  inline int max_wchar_len() { return 2; }; /* XXX */
++};
++#endif /* USE_ICONV */
++#endif
++
++static ascii8_handler ascii8;
++#ifdef ENABLE_MULTIBYTE
++static utf8_handler utf8;
++#ifdef USE_ICONV
++iconv_handler *iconv_handler::ih_header = NULL;
++#else
++static euc_handler eucjp;
++#endif
++#endif
++
++encoding_handler *input_encoding = &ascii8;
++encoding_handler *output_encoding = &ascii8;
++
++static void
++new_encoding_handler(encoding_handler **eptr, const char *encoding_name)
++{
++  if (!encoding_name) {
++    *eptr = &ascii8;
++    return;
++  }
++#ifdef ENABLE_MULTIBYTE
++  if (strcmp(encoding_name, "UTF-8") == 0) {
++    *eptr = &utf8;
++    return;
++  }
++#ifdef USE_ICONV
++  if (strcmp(encoding_name, "C") != 0) {
++    *eptr = iconv_handler::new_iconv_handler(encoding_name);
++    return;
++  }
++#else
++  // printf("encoding request: [%s]\n", encoding_name);
++  if (strcmp(encoding_name, "EUC-JP") == 0) {
++    // printf("encoding: [EUC-JP]\n");
++    *eptr = &eucjp;
++    return;
++  }
++#endif
++#endif
++  // default
++  *eptr = &ascii8;
++  return;
++}
++
++encoding_handler *
++select_input_encoding_handler(const char *encoding_name)
++{
++  new_encoding_handler(&input_encoding, encoding_name);
++  return input_encoding;
++}
++
++encoding_handler *
++select_output_encoding_handler(const char *encoding_name)
++{
++  new_encoding_handler(&output_encoding, encoding_name);
++  return output_encoding;
++}
++
++void
++init_encoding_handler()
++{
++#ifdef ENABLE_MULTIBYTE
++  const char *locale, *charset;
++  // groff 1 defines ISO-8859-1 as the input encoding, so this is required
++  // for compatibility. groff 2 will define UTF-8 (or possibly officially
++  // allow it to be switchable?)
++  select_input_encoding_handler("ISO-8859-1");
++  select_output_encoding_handler("C");
++
++  locale = setlocale(LC_ALL, "");
++  if (locale == NULL ||
++      strcmp(locale, "C") == 0 || strcmp(locale, "POSIX") == 0) {
++    return;
++  }
++  /* check LC_CTYPE is C or POSIX */
++  locale = setlocale(LC_CTYPE, NULL);
++  if (strcmp(locale, "C") == 0 || strcmp(locale, "POSIX") == 0) {
++    return;
++  }
++  /* otherwise */
++#if HAVE_LANGINFO_CODESET
++  charset = nl_langinfo(CODESET);
++#else
++  charset = strchr(locale, '.');
++  if (charset)
++    ++charset;
++  else
++    charset = "";
++#endif
++  if (strncmp(locale, "ja", 2) == 0 || strncmp(locale, "zh", 2) == 0 ||
++      (strncmp(locale, "ko", 2) == 0 && strcmp(charset, "UTF-8") == 0)) {
++    select_input_encoding_handler(charset);
++    select_output_encoding_handler(charset);
++  } else if ((!device || strcmp(device, "ascii8") == 0)) {
++    select_input_encoding_handler(NULL);
++    select_output_encoding_handler(NULL);
++  }
++#endif
++  return;
++}
++
++int
++is_wchar_code(wchar wc)
++{
++  return (wc < 0);
++}
++
++int
++is_wchar_singlebyte(wchar wc)
++{
++    return ((-256 < wc) && (wc < 0));
++}
++
++unsigned char
++wchar_singlebyte(wchar wc)
++{
++    if (wc >= 0)
++	return (unsigned char)wc;
++    else
++	return (unsigned char)-wc;
++}
++
++int
++wchar_code(wchar wc)
++{
++    if (wc >= 0)
++	return wc;
++    else
++	return -wc;
++}
++
++int
++make_wchar(int w)
++{
++    return -w;
++}
+--- groff-1.18.1.1.orig/src/libs/libgroff/Makefile.sub
++++ groff-1.18.1.1/src/libs/libgroff/Makefile.sub
+@@ -6,6 +6,7 @@
+   color.$(OBJEXT) \
+   cset.$(OBJEXT) \
+   device.$(OBJEXT) \
++  encoding.$(OBJEXT) \
+   errarg.$(OBJEXT) \
+   error.$(OBJEXT) \
+   fatal.$(OBJEXT) \
+@@ -45,6 +46,7 @@
+   $(srcdir)/color.cc \
+   $(srcdir)/cset.cc \
+   $(srcdir)/device.cc \
++  $(srcdir)/encoding.cc \
+   $(srcdir)/errarg.cc \
+   $(srcdir)/error.cc \
+   $(srcdir)/fatal.cc \
+--- groff-1.18.1.1.orig/src/libs/libgroff/tmpfile.cc
++++ groff-1.18.1.1/src/libs/libgroff/tmpfile.cc
+@@ -24,6 +24,7 @@
+ #include <errno.h>
+ #include <stdlib.h>
+ 
++#include "encoding.h"
+ #include "posix.h"
+ #include "errarg.h"
+ #include "error.h"
+--- groff-1.18.1.1.orig/src/utils/tfmtodit/tfmtodit.cc
++++ groff-1.18.1.1/src/utils/tfmtodit/tfmtodit.cc
+@@ -650,7 +650,7 @@
+ gives the groff name of the character, `i' gives its index in
+ the encoding, which is filled in later  (-1 if it does not appear). */
+ 
+-struct {
++struct S {
+   const char *ch;
+   int i;
+ } lig_chars[] = {
+@@ -670,7 +670,7 @@
+ 
+ // Each possible ligature appears in this table.
+ 
+-struct {
++struct S2 {
+   unsigned char c1, c2, res;
+   const char *ch;
+ } lig_table[] = {
+--- groff-1.18.1.1.orig/src/preproc/eqn/eqn.y
++++ groff-1.18.1.1/src/preproc/eqn/eqn.y
+@@ -21,6 +21,7 @@
+ #include <string.h>
+ #include <stdlib.h>
+ 
++#include "encoding.h" /* XXX */
+ #include "lib.h"
+ #include "box.h"
+ extern int non_empty_flag;
+--- groff-1.18.1.1.orig/src/preproc/eqn/lex.cc
++++ groff-1.18.1.1/src/preproc/eqn/lex.cc
+@@ -23,6 +23,7 @@
+ #include "eqn_tab.h"
+ #include "stringclass.h"
+ #include "ptable.h"
++#include "encoding.h"
+ 
+ struct definition {
+   char is_macro;
+@@ -375,6 +376,11 @@
+ 	lex_error("invalid input character code %1", c);
+       else {
+ 	line += char(c);
++#ifdef	ENABLE_MULTIBYTE
++	if (input_encoding->is_wchar_byte(c)) {
++	  line += char(getc(fp));
++	}
++#endif
+ 	if (c == '\n') 
+ 	  break;
+       }
+--- groff-1.18.1.1.orig/src/preproc/eqn/main.cc
++++ groff-1.18.1.1/src/preproc/eqn/main.cc
+@@ -258,6 +258,7 @@
+   program_name = argv[0];
+   static char stderr_buf[BUFSIZ];
+   setbuf(stderr, stderr_buf);
++  init_encoding_handler();
+   int opt;
+   int load_startup_file = 1;
+   static const struct option long_options[] = {
+--- groff-1.18.1.1.orig/src/preproc/eqn/text.cc
++++ groff-1.18.1.1/src/preproc/eqn/text.cc
+@@ -21,13 +21,20 @@
+ #include "eqn.h"
+ #include "pbox.h"
+ #include "ptable.h"
++#include "encoding.h"
+ 
+ class char_box : public simple_box {
+   unsigned char c;
++#ifdef	ENABLE_MULTIBYTE
++  wchar wc;
++#endif
+   char next_is_italic;
+   char prev_is_italic;
+ public:
+   char_box(unsigned char);
++#ifdef	ENABLE_MULTIBYTE
++  char_box(unsigned char, wchar);
++#endif
+   void debug_print();
+   void output();
+   int is_char();
+@@ -165,11 +172,22 @@
+ }
+ 
+ char_box::char_box(unsigned char cc)
+-: c(cc), next_is_italic(0), prev_is_italic(0)
++: c(cc),
++#ifdef	ENABLE_MULTIBYTE
++  wc(cc),
++#endif
++  next_is_italic(0), prev_is_italic(0)
+ {
+   spacing_type = char_table[c].spacing_type;
+ }
+ 
++#ifdef	ENABLE_MULTIBYTE
++char_box::char_box(unsigned char cc, wchar wc)
++: c(cc), wc(wc), next_is_italic(0), prev_is_italic(0)
++{
++}
++#endif
++
+ void char_box::hint(unsigned flags)
+ {
+   if (flags & HINT_PREV_IS_ITALIC)
+@@ -188,7 +206,11 @@
+   if (c == '\\')
+     fputs("\\e", stdout);
+   else
++#ifdef	ENABLE_MULTIBYTE
++    output_encoding->put_wchar(wc, stdout);
++#else
+     putchar(c);
++#endif
+   if (!next_is_italic)
+     fputs("\\/", stdout);
+   else
+@@ -497,6 +519,14 @@
+       break;
+     default:
+     normal_char:
++#ifdef	ENABLE_MULTIBYTE
++      if (input_encoding->is_wchar_byte(c)) {
++        int i = 1;
++	wchar wc = input_encoding->make_wchar(c, (unsigned char *)s, &i);
++	b = new char_box('A', wc); // char_info of wc is same the 'A'.
++	s += i;
++      } else
++#endif
+       b = new char_box(c);
+       break;
+     }
+--- groff-1.18.1.1.orig/src/preproc/eqn/box.cc
++++ groff-1.18.1.1/src/preproc/eqn/box.cc
+@@ -80,7 +80,7 @@
+ 
+ int nroff = 0;			// should we grok ndefine or tdefine?
+ 
+-struct {
++struct S {
+   const char *name;
+   int *ptr;
+ } param_table[] = {
+--- groff-1.18.1.1.orig/src/preproc/html/pre-html.cc
++++ groff-1.18.1.1/src/preproc/html/pre-html.cc
+@@ -63,6 +63,10 @@
+ #define DEFAULT_IMAGE_RES        100   // number of pixels per inch resolution
+ #define IMAGE_BOARDER_PIXELS       0
+ #define INLINE_LEADER_CHAR      '\\'
++#define A4_LENGTH             841890   // taken from devps/Makefile.sub
++#define LETTER_LENGTH         792000   // taken from devps/Makefile.sub
++#define A4_OFFSET                  0
++#define LETTER_OFFSET             50   // 50/72 of an inch
+ 
+ #define TRANSPARENT  "-background white -transparent white"
+ #define MIN_ALPHA_BITS             0
+@@ -104,6 +108,7 @@
+ static char *macroset_template= NULL;           // image template passed to troff by -D
+ static int   troff_arg        = 0;              // troff arg index
+ static char *image_dir        = NULL;           // user specified image directory
++static char *gsPaper          = NULL;           // the paper size that gs must use
+ static int   textAlphaBits    = MAX_ALPHA_BITS;
+ static int   graphicAlphaBits = MAX_ALPHA_BITS;
+ static char *antiAlias        = NULL;           // antialias arguments we pass to gs.
+@@ -211,6 +216,54 @@
+ }
+ 
+ /*
++ *  get_papersize - returns an integer determining the paper length from
++ *  devps/DESC
++ */
++
++static int get_papersize (void)
++{
++  char *pathp;
++  FILE *f;
++  int res;
++  f = font_path.open_file("devps/DESC", &pathp);
++  if (f == 0)
++    fatal("can't open devps/DESC");
++  while (get_line(f)) {
++    int n = sscanf(linebuf, "paperlength %d", &res);
++    if (n >= 1) {
++      fclose(f);
++      return res;
++    }
++    if (!strncmp(linebuf, "papersize", 9)) {
++      double length;
++      char *p = linebuf + 9;
++      while (*p == ' ' || *p == '\t')
++        p++;
++      for (p = strtok(p, " \t"); p; p = strtok(0, " \t")) {
++        if (font::scan_papersize(p, 0, &length, 0)) {
++          fclose(f);
++          return int(length * postscriptRes + 0.5);
++        }
++      }
++      fatal("bad argument to `papersize' keyword in devps/DESC");
++    }
++  }
++  fatal("can't find `papersize' or `paperlength' keyword in devps/DESC");
++  return 0;
++}
++
++/*
++ *  determine_vertical_offset - works out the default vertical offset from
++ *                              the page length
++ */
++
++static void determine_vertical_offset (void)
++{
++  vertical_offset = ((A4_LENGTH-get_papersize())*72)/postscriptRes;
++  gsPaper = "-sPAPERSIZE=a4";
++}
++
++/*
+  *  html_system - a wrapper for system()
+  */
+ 
+@@ -1469,6 +1522,7 @@
+   int ok=1;
+ 
+   postscriptRes = get_resolution();
++  determine_vertical_offset();
+   i = scanArguments(argc, argv);
+   setupAntiAlias();
+   checkImageDir();
+--- groff-1.18.1.1.orig/src/preproc/grn/hdb.cc
++++ groff-1.18.1.1/src/preproc/grn/hdb.cc
+@@ -115,7 +115,6 @@
+     type = DBGetType(string);	/* interpret element type */
+     if (type < 0) {		/* no more data */
+       done = TRUE;
+-      (void) fclose(file);
+     } else {
+ #ifdef UW_FASTSCAN
+       (void) xscanf(file, &x, &y);		/* always one point */
+--- groff-1.18.1.1.orig/src/preproc/refer/command.cc
++++ groff-1.18.1.1/src/preproc/refer/command.cc
+@@ -632,7 +632,7 @@
+ ? means that the previous argument is optional, * means that the
+ previous argument can occur any number of times. */
+ 
+-struct {
++struct S {
+   const char *name;
+   command_t func;
+   const char *arg_types;
+--- groff-1.18.1.1.orig/src/devices/grotty/grotty.man
++++ groff-1.18.1.1/src/devices/grotty/grotty.man
+@@ -50,7 +50,9 @@
+ command
+ with a
+ .BR \-Tascii ,
+-.B \-Tlatin1
++.BR \-Tascii8 ,
++.BR \-Tlatin1 ,
++.B \-Tnippon
+ or
+ .B \-Tutf8
+ option on ASCII based systems, and with
+@@ -235,8 +237,10 @@
+ .I name
+ is the name of the device, usually
+ .BR ascii ,
++.BR ascii8 ,
+ .BR latin1 ,
+ .BR utf8 ,
++.B  nippon
+ or
+ .BR cp1047 .
+ .TP
+@@ -315,10 +319,20 @@
+ device.
+ .
+ .TP
++.B @FONTDIR@/devascii8/DESC
++Device description file for
++.B ascii8
++device.
++.TP
+ .B @FONTDIR@/devlatin1/DESC
+ Device description file for
+ .B latin1
+ device.
++.TP
++.B @FONTDIR@/devnippon/DESC
++Device description file for
++.B nippon
++device.
+ .
+ .TP
+ .BI @FONTDIR@/devlatin1/ F
+--- groff-1.18.1.1.orig/src/devices/grotty/tty.cc
++++ groff-1.18.1.1/src/devices/grotty/tty.cc
+@@ -20,6 +20,7 @@
+ 
+ #include "driver.h"
+ #include "device.h"
++#include "encoding.h"
+ 
+ extern "C" const char *Version_string;
+ 
+@@ -51,8 +52,18 @@
+   HDRAW_MODE = 0x08,
+   CU_MODE = 0x10,
+   COLOR_CHANGE = 0x20
++#ifdef ENABLE_MULTIBYTE
++  , WCHAR_MODE = 0x100
++#endif
+ };
+ 
++#ifdef ENABLE_MULTIBYTE
++# ifdef putchar
++#  undef putchar
++# endif
++#define putchar(wc)	output_encoding->put_wchar((wc), stdout)
++#endif
++
+ // Mode to use for bold-underlining.
+ static unsigned char bold_underline_mode = BOLD_MODE|UNDERLINE_MODE;
+ 
+@@ -89,6 +100,7 @@
+   static tty_font *load_tty_font(const char *);
+ };
+ 
++
+ tty_font *tty_font::load_tty_font(const char *s)
+ {
+   tty_font *f = new tty_font(s);
+@@ -98,8 +110,26 @@
+   }
+   const char *num = f->get_internal_name();
+   long n;
++#ifdef ENABLE_MULTIBYTE
++  if (num != 0) {
++    n = strtol(num, 0, 0);
++    switch (n) {
++    case 1:
++      f->mode = int(UNDERLINE_MODE);
++      break;
++    case 2:
++    case 5:
++      f->mode = int(BOLD_MODE);
++      break;
++    case 3:
++      f->mode = int(BOLD_MODE|UNDERLINE_MODE);
++      break;
++    }
++  }
++#else
+   if (num != 0 && (n = strtol(num, 0, 0)) != 0)
+     f->mode = int(n & (BOLD_MODE|UNDERLINE_MODE));
++#endif
+   if (!underline_flag)
+     f->mode &= ~UNDERLINE_MODE;
+   if (!bold_flag)
+@@ -135,6 +165,9 @@
+   short hpos;
+   unsigned int code;
+   unsigned char mode;
++#ifdef ENABLE_MULTIBYTE
++  short cols;
++#endif
+   unsigned char back_color_idx;
+   unsigned char fore_color_idx;
+   void *operator new(size_t);
+@@ -184,7 +217,7 @@
+   void make_underline();
+   void make_bold(unsigned int);
+   unsigned char color_to_idx(color *col);
+-  void add_char(unsigned int, int, int, color *, color *, unsigned char);
++  void add_char(unsigned int, int, int, color *, color *, font *, unsigned char);
+ public:
+   tty_printer(const char *device);
+   ~tty_printer();
+@@ -193,7 +226,7 @@
+   void special(char *arg, const environment *env, char type);
+   void change_color(const environment *env);
+   void change_fill_color(const environment *env);
+-  void put_char(unsigned int);
++  int put_char(unsigned int);
+   void put_color(unsigned char, int);
+   void begin_page(int) { }
+   void end_page(int page_length);
+@@ -203,6 +236,10 @@
+ tty_printer::tty_printer(const char *device) : cached_v(0)
+ {
+   is_utf8 = !strcmp(device, "utf8");
++#ifdef ENABLE_MULTIBYTE
++  if (is_utf8)
++      select_output_encoding_handler("UTF-8");
++#endif
+   tty_colors[0].set_rgb(0,			// black
+  			0,
+ 			0);
+@@ -242,8 +279,18 @@
+ void tty_printer::make_underline()
+ {
+   if (old_drawing_scheme) {
++#if 0 /* def ENABLE_MULTIBYTE XXX: not necessary? */
++    if ((p->mode & WCHAR_MODE)) {
++	putchar('_'); putchar('_');
++	putchar('\b'); putchar('\b');
++    } else {
++	putchar('_');
++	putchar('\b');
++    }
++#else
+     putchar('_');
+     putchar('\b');
++#endif
+   }
+   else {
+     if (!is_underline) {
+@@ -285,17 +332,25 @@
+ void tty_printer::set_char(int i, font *f, const environment *env,
+ 			   int w, const char *name)
+ {
++#ifdef ENABLE_MULTIBYTE
++  if (is_wchar_code(i)) {
++    add_char(wchar_code(i), env->hpos, env->vpos, env->col, env->fill, 
++	     f, ((tty_font *)f)->get_mode());
++    return;
++  }
++#endif
+   if (w != font::hor)
+     fatal("width of character not equal to horizontal resolution");
+   add_char(f->get_code(i),
+ 	   env->hpos, env->vpos,
+ 	   env->col, env->fill,
+-	   ((tty_font *)f)->get_mode());
++	   f, ((tty_font *)f)->get_mode());
+ }
+ 
+ void tty_printer::add_char(unsigned int c,
+ 			   int h, int v,
+ 			   color *fore, color *back,
++			   font *curfont,
+ 			   unsigned char mode)
+ {
+ #if 0
+@@ -338,6 +393,16 @@
+   g->code = c;
+   g->fore_color_idx = color_to_idx(fore);
+   g->back_color_idx = color_to_idx(back);
++#ifdef ENABLE_MULTIBYTE
++  if (is_wchar_code(c))
++    mode |= WCHAR_MODE;
++  if (curfont && curfont->contains(c)) {
++      int gw0 = curfont->get_space_width(font::unitwidth);
++      int gw = curfont->get_width(c, font::unitwidth);
++      g->cols = gw/gw0;
++  } else
++      g->cols = 1;	/* XXX */
++#endif
+   g->mode = mode;
+ 
+   // The list will be reversed later.  After reversal, it must be in
+@@ -357,7 +422,7 @@
+ void tty_printer::special(char *arg, const environment *env, char type)
+ {
+   if (type == 'u') {
+-    add_char(*arg - '0', env->hpos, env->vpos, env->col, env->fill, CU_MODE);
++    add_char(*arg - '0', env->hpos, env->vpos, env->col, env->fill, get_font_from_index(env->fontno), CU_MODE);
+     return;
+   }
+   if (type != 'p')
+@@ -395,12 +460,12 @@
+ 
+ void tty_printer::change_color(const environment *env)
+ {
+-  add_char(0, env->hpos, env->vpos, env->col, env->fill, COLOR_CHANGE);
++  add_char(0, env->hpos, env->vpos, env->col, env->fill, get_font_from_index(env->fontno), COLOR_CHANGE);
+ }
+ 
+ void tty_printer::change_fill_color(const environment *env)
+ {
+-  add_char(0, env->hpos, env->vpos, env->col, env->fill, COLOR_CHANGE);
++  add_char(0, env->hpos, env->vpos, env->col, env->fill, get_font_from_index(env->fontno), COLOR_CHANGE);
+ }
+ 
+ void tty_printer::draw(int code, int *p, int np, const environment *env)
+@@ -420,7 +485,7 @@
+       len = -len;
+     }
+     while (len >= 0) {
+-      add_char('|', env->hpos, v, env->col, env->fill, VDRAW_MODE);
++      add_char('|', env->hpos, v, env->col, env->fill, get_font_from_index(env->fontno), VDRAW_MODE);
+       len -= font::vert;
+       v += font::vert;
+     }
+@@ -434,18 +499,24 @@
+       len = -len;
+     }
+     while (len >= 0) {
+-      add_char('-', h, env->vpos, env->col, env->fill, HDRAW_MODE);
++      add_char('-', h, env->vpos, env->col, env->fill, get_font_from_index(env->fontno), HDRAW_MODE);
+       len -= font::hor;
+       h += font::hor;
+     }
+   }
+ }
+ 
+-void tty_printer::put_char(unsigned int wc)
++int tty_printer::put_char(unsigned int wc)
+ {
++#ifdef ENABLE_MULTIBYTE
++  if (wc >= 0x80) {
++    return output_encoding->put_wchar(make_wchar(wc), stdout);
++  }
++#else
+   if (is_utf8 && wc >= 0x80) {
+     char buf[6 + 1];
+     int count;
++    int len;
+     char *p = buf;
+     if (wc < 0x800)
+       count = 1, *p = (unsigned char)((wc >> 6) | 0xc0);
+@@ -458,14 +529,18 @@
+     else if (wc <= 0x7fffffff)
+       count = 5, *p = (unsigned char)((wc >> 30) | 0xfC);
+     else
+-      return;
++      return 0;
++    len = count;
+     do *++p = (unsigned char)(((wc >> (6 * --count)) & 0x3f) | 0x80);
+       while (count > 0);
+     *++p = '\0';
+     putstring(buf);
++    return len;
+   }
++#endif
+   else
+     putchar(wc);
++  return 1;
+ }
+ 
+ void tty_printer::put_color(unsigned char color_index, int back)
+@@ -629,7 +704,11 @@
+ 	}
+       }
+       put_char(p->code);
++#ifdef ENABLE_MULTIBYTE
++      hpos += p->cols;
++#else
+       hpos++;
++#endif
+     }
+     if (!old_drawing_scheme
+ 	&& (is_bold || is_underline
+@@ -667,6 +746,7 @@
+   if (getenv("GROFF_NO_SGR"))
+     old_drawing_scheme = 1;
+   setbuf(stderr, stderr_buf);
++  init_encoding_handler();
+   int c;
+   static const struct option long_options[] = {
+     { "help", no_argument, 0, CHAR_MAX + 1 },
+--- groff-1.18.1.1.orig/src/devices/grops/ps.cc
++++ groff-1.18.1.1/src/devices/grops/ps.cc
+@@ -24,6 +24,7 @@
+ #include "cset.h"
+ #include "nonposix.h"
+ #include "paper.h"
++#include "encoding.h"
+ 
+ #include "ps.h"
+ #include <time.h>
+@@ -193,12 +194,23 @@
+   return *this;
+ }
+ 
++#ifdef ENABLE_MULTIBYTE
++ps_output &ps_output::put_string(const wchar *s, int n)
++#else
+ ps_output &ps_output::put_string(const char *s, int n)
++#endif
+ {
+   int len = 0;
+   int i;
+   for (i = 0; i < n; i++) {
++#ifdef ENABLE_MULTIBYTE
++    wchar wc = s[i];
++    char c = 0;
++    if (is_wchar_singlebyte(wc))
++      c = wchar_singlebyte(wc);
++#else
+     char c = s[i];
++#endif
+     if (is_ascii(c) && csprint(c)) {
+       if (c == '(' || c == ')' || c == '\\')
+ 	len += 2;
+@@ -224,8 +236,13 @@
+ 	putc('\n', fp);
+ 	col = 0;
+       }
++#ifdef	ENABLE_MULTIBYTE
++      int nb = output_encoding->put_wchar(s[i], fp, "%02x");
++      col += nb * 2;
++#else
+       fprintf(fp, "%02x", s[i] & 0377);
+       col += 2;
++#endif
+     }
+     putc('>', fp);
+     col++;
+@@ -396,6 +413,9 @@
+   int encoding_index;
+   char *encoding;
+   char *reencoded_name;
++#ifdef ENABLE_MULTIBYTE
++  char *encodingname;
++#endif
+   ~ps_font();
+   void handle_unknown_font_command(const char *command, const char *arg,
+ 				   const char *filename, int lineno);
+@@ -414,6 +434,9 @@
+ 
+ ps_font::ps_font(const char *nm)
+ : font(nm), encoding_index(-1), encoding(0), reencoded_name(0)
++#ifdef ENABLE_MULTIBYTE
++  , encodingname(0)
++#endif
+ {
+ }
+ 
+@@ -421,6 +444,9 @@
+ {
+   a_delete encoding;
+   a_delete reencoded_name;
++#ifdef ENABLE_MULTIBYTE
++  a_delete encodingname;
++#endif
+ }
+ 
+ void ps_font::handle_unknown_font_command(const char *command, const char *arg,
+@@ -433,6 +459,15 @@
+     else
+       encoding = strsave(arg);
+   }
++#ifdef ENABLE_MULTIBYTE
++  if (strcmp(command, "encodingname") == 0) {
++    if (arg == 0)
++      error_with_file_and_line(filename, lineno,
++			       "`encodingname' command requires an argument");
++    else
++      encodingname = strsave(arg);
++  }
++#endif
+ }
+ 
+ static void handle_unknown_desc_command(const char *command, const char *arg,
+@@ -487,7 +522,11 @@
+   int paper_length;
+   int equalise_spaces;
+   enum { SBUF_SIZE = 256 };
++#ifdef	ENABLE_MULTIBYTE
++  wchar sbuf[SBUF_SIZE];
++#else
+   char sbuf[SBUF_SIZE];
++#endif
+   int sbuf_len;
+   int sbuf_start_hpos;
+   int sbuf_vpos;
+@@ -606,7 +645,11 @@
+ {
+   if (i == space_char_index || invis_count > 0)
+     return;
++#ifdef	ENABLE_MULTIBYTE
++  wchar code = f->get_code(i);
++#else
+   unsigned char code = f->get_code(i);
++#endif
+   style sty(f, env->size, env->height, env->slant);
+   if (sty.slant != 0) {
+     if (sty.slant > 80 || sty.slant < -80) {
+@@ -763,6 +806,14 @@
+     if (sty == defined_styles[i]) {
+       sprintf(buf, "F%d", i);
+       out.put_symbol(buf);
++#ifdef ENABLE_MULTIBYTE
++      char *encodingname = ((ps_font *)sty.f)->encodingname;
++      if (encodingname != 0) {
++	select_output_encoding_handler(encodingname);
++      } else {
++	select_output_encoding_handler("LATIN1");
++      }
++#endif
+       return;
+     }
+   if (ndefined_styles >= MAX_DEFINED_STYLES)
+@@ -772,6 +823,14 @@
+   const char *psname = sty.f->get_internal_name();
+   if (psname == 0)
+     fatal("no internalname specified for font `%1'", sty.f->get_name());
++#ifdef ENABLE_MULTIBYTE
++  char *encodingname = ((ps_font *)sty.f)->encodingname;
++  if (encodingname != 0) {
++    select_output_encoding_handler(encodingname);
++  } else {
++    select_output_encoding_handler("LATIN1");
++  }
++#endif
+   char *encoding = ((ps_font *)sty.f)->encoding;
+   if (encoding != 0) {
+     char *s = ((ps_font *)sty.f)->reencoded_name;
+@@ -1555,6 +1614,7 @@
+   string env;
+   static char stderr_buf[BUFSIZ];
+   setbuf(stderr, stderr_buf);
++  init_encoding_handler();
+   int c;
+   static const struct option long_options[] = {
+     { "help", no_argument, 0, CHAR_MAX + 1 },
+--- groff-1.18.1.1.orig/src/devices/grops/ps.h
++++ groff-1.18.1.1/src/devices/grops/ps.h
+@@ -18,10 +18,16 @@
+ with groff; see the file COPYING.  If not, write to the Free Software
+ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+ 
++#include "encoding.h" // XXX
++
+ class ps_output {
+ public:
+   ps_output(FILE *, int max_line_length);
++#ifdef	ENABLE_MULTIBYTE
++  ps_output &put_string(const wchar *, int);
++#else
+   ps_output &put_string(const char *, int);
++#endif
+   ps_output &put_number(int);
+   ps_output &put_fix_number(int);
+   ps_output &put_float(double);
+--- groff-1.18.1.1.orig/src/devices/grohtml/html.h
++++ groff-1.18.1.1/src/devices/grohtml/html.h
+@@ -49,6 +49,9 @@
+ class simple_output {
+ public:
+   simple_output(FILE *, int max_line_length);
++#ifdef ENABLE_MULTIBYTE
++  simple_output &put_string(const wchar *, int);
++#endif
+   simple_output &put_string(const char *, int);
+   simple_output &put_string(const char *s);
+   simple_output &put_string(const string &s);
+--- groff-1.18.1.1.orig/src/devices/grohtml/post-html.cc
++++ groff-1.18.1.1/src/devices/grohtml/post-html.cc
+@@ -29,6 +29,7 @@
+ #include "html.h"
+ #include "html-text.h"
+ #include "html-table.h"
++#include "encoding.h" // XXX: ukai
+ 
+ #include <time.h>
+ 
+@@ -280,6 +281,9 @@
+ public:
+   char_buffer();
+   ~char_buffer();
++#ifdef ENABLE_MULTIBYTE
++  char  *add_string(const wchar *, unsigned int);
++#endif
+   char  *add_string(const char *, unsigned int);
+   char  *add_string(const string &);
+ private:
+@@ -301,6 +305,43 @@
+   }
+ }
+ 
++#ifdef ENABLE_MULTIBYTE
++char *char_buffer::add_string (const wchar *s, unsigned int length)
++{
++  int i=0;
++  unsigned int old_used;
++
++  if (tail == 0) {
++    tail = new char_block;
++    head = tail;
++  } else {
++    if (tail->used + length*2 + 1 > char_block::SIZE) {
++      tail->next = new char_block;
++      tail       = tail->next;
++    }
++  }
++  // at this point we have a tail which is ready for the string.
++  if (tail->used + length*2 + 1 > char_block::SIZE) {
++    fatal("need to increase char_block::SIZE");
++  }
++
++  old_used = tail->used;
++  do {
++    length -= output_encoding->put_wchar(s[i], (unsigned char *)tail->buffer, &tail->used, length*2);
++    i++;
++  } while (length>0);
++
++  // add terminating nul character
++
++  tail->buffer[tail->used] = '\0';
++  tail->used++;
++
++  // and return start of new string
++
++  return( &tail->buffer[old_used] );
++}
++#endif
++
+ char *char_buffer::add_string (const char *s, unsigned int length)
+ {
+   int i=0;
+@@ -320,6 +361,7 @@
+   }
+ 
+   old_used = tail->used;
++  /* XXX: encoding - ukai */
+   do {
+     tail->buffer[tail->used] = s[i];
+     tail->used++;
+@@ -1917,6 +1959,15 @@
+ 
+     current_paragraph->do_para(&html, "", indentation, pageoffset, linelength);
+   }
++#if 0 // def ENABLE_MULTIBYTE /* XXX */
++  else if (strcmp(fontname, "M") == 0) {
++    current_paragraph->done_bold();
++    current_paragraph->done_italic();
++    current_paragraph->done_tt();
++  } else if (strcmp(fontname, "G") == 0) {
++    current_paragraph->do_bold();
++  }
++#endif
+ }
+ 
+ void html_printer::determine_header_level (int level)
+@@ -2948,6 +2999,11 @@
+     current_paragraph->done_italic();
+     current_paragraph->done_tt();
+   }
++#ifdef ENABLE_MULTIBYTE
++  else if (strcmp(fontname, "G") == 0) {
++    current_paragraph->done_bold();
++  }
++#endif
+ }
+ 
+ /*
+@@ -2992,6 +3048,15 @@
+     current_paragraph->do_italic();
+     current_paragraph->do_bold();
+   }
++#ifdef ENABLE_MULTIBYTE
++  else if (strcmp(fontname, "M") == 0) {
++    current_paragraph->done_bold();
++    current_paragraph->done_italic();
++    current_paragraph->done_tt();
++  } else if (strcmp(fontname, "G") == 0) {
++    current_paragraph->do_bold();
++  }
++#endif
+ }
+ 
+ /*
+@@ -3331,7 +3396,23 @@
+ 
+   last_sbuf_length = sbuf.length();
+   if (html_glyph == NULL)
++#ifdef ENABLE_MULTIBYTE
++    {
++      if (is_wchar_code(code)) {
++	int mblen = output_encoding->max_wchar_len();
++	unsigned char *wbuf = new unsigned char[mblen];
++	int i = 0, j = 0;
++	output_encoding->put_wchar(code, wbuf, &j, mblen);
++	for (i = 0; i < j; i++) {
++	  sbuf += wbuf[i];
++	}
++      }
++      else
++	sbuf += ((char)code);
++    }
++#else
+     sbuf += ((char)code);
++#endif
+   else
+     sbuf += html_glyph;
+ }
+@@ -3445,12 +3526,12 @@
+     return;
+   
+   flush_sbuf();
++  sbuf_style = sty; /* XXX? */
+   add_to_sbuf(i, name);
+   sbuf_end_hpos = env->hpos + w;
+   sbuf_start_hpos = env->hpos;
+   sbuf_prev_hpos = env->hpos;
+   sbuf_vpos = env->vpos;
+-  sbuf_style = sty;
+   sbuf_kern = 0;
+ }
+ 
+@@ -3659,6 +3740,7 @@
+   program_name = argv[0];
+   static char stderr_buf[BUFSIZ];
+   setbuf(stderr, stderr_buf);
++  init_encoding_handler();
+   int c;
+   static const struct option long_options[] = {
+     { "help", no_argument, 0, CHAR_MAX + 1 },
+--- groff-1.18.1.1.orig/src/devices/grodvi/dvi.cc
++++ groff-1.18.1.1/src/devices/grodvi/dvi.cc
+@@ -21,6 +21,7 @@
+ 
+ #include "driver.h"
+ #include "nonposix.h"
++#include "encoding.h" 
+ 
+ extern "C" const char *Version_string;
+ 
+@@ -104,6 +105,9 @@
+ struct output_font {
+   dvi_font *f;
+   int point_size;
++#ifdef	ENABLE_MULTIBYTE
++  const char *sf;		// subfont name
++#endif
+   output_font() : f(0) { }
+ };
+ 
+@@ -121,6 +125,9 @@
+   output_font output_font_table[FONTS_MAX];
+   font *cur_font;
+   int cur_point_size;
++#ifdef ENABLE_MULTIBYTE
++  const char *cur_subfont;
++#endif
+   color cur_color;
+   int pushed;
+   int pushed_h;
+@@ -341,9 +348,18 @@
+   if (*env->col != cur_color)
+     set_color(env->col);
+   int code = f->get_code(index);
++#ifdef ENABLE_MULTIBYTE
++  const char *sf = f->get_subfont_name(index);
++  if (env->size != cur_point_size || f != cur_font ||
++     (sf != cur_subfont && strcmp(sf, cur_subfont))) {
++#else
+   if (env->size != cur_point_size || f != cur_font) {
++#endif
+     cur_font = f;
+     cur_point_size = env->size;
++#ifdef ENABLE_MULTIBYTE
++    cur_subfont = sf;
++#endif
+     int i;
+     for (i = 0;; i++) {
+       if (i >= FONTS_MAX) {
+@@ -352,9 +368,16 @@
+       if (output_font_table[i].f == 0) {
+ 	output_font_table[i].f = (dvi_font *)cur_font;
+ 	output_font_table[i].point_size = cur_point_size;
++#ifdef	ENABLE_MULTIBYTE
++	output_font_table[i].sf = cur_subfont;
++#endif
+ 	define_font(i);
+       }
+       if (output_font_table[i].f == cur_font
++#ifdef	ENABLE_MULTIBYTE
++	  && (output_font_table[i].sf == cur_subfont ||
++	      strcmp(output_font_table[i].sf, cur_subfont) == 0)
++#endif
+ 	  && output_font_table[i].point_size == cur_point_size)
+ 	break;
+     }
+@@ -398,7 +421,13 @@
+   out4(f->checksum);
+   out4(output_font_table[i].point_size*RES_7227);
+   out4(int((double(f->design_size)/(1<<20))*RES_7227*100 + .5));
++#ifdef	ENABLE_MULTIBYTE
++  const char *nm;
++  if (!(nm = output_font_table[i].sf))
++    nm = f->get_internal_name();
++#else
+   const char *nm = f->get_internal_name();
++#endif
+   out1(0);
+   out_string(nm);
+ }
+@@ -889,6 +918,7 @@
+   program_name = argv[0];
+   static char stderr_buf[BUFSIZ];
+   setbuf(stderr, stderr_buf);
++  init_encoding_handler();
+   int c;
+   static const struct option long_options[] = {
+     { "help", no_argument, 0, CHAR_MAX + 1 },
+--- groff-1.18.1.1.orig/src/xditview/encoding.h
++++ groff-1.18.1.1/src/xditview/encoding.h
+@@ -0,0 +1,31 @@
++// -*- C++ -*-
++/* Copyright (c) 2001 Fumitoshi UKAI <ukai at debian.or.jp>
++
++This file is part of groff.
++
++groff is free software; you can redistribute it and/or modify it under
++the terms of the GNU General Public License as published by the Free
++Software Foundation; either version 2, or (at your option) any later
++version.
++
++groff is distributed in the hope that it will be useful, but WITHOUT ANY
++WARRANTY; without even the implied warranty of MERCHANTABILITY or
++FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
++for more details.
++
++You should have received a copy of the GNU General Public License
++along with this program; if not, write to the Free Software
++Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
++
++#ifndef ENCODING_H
++#define ENCODING_H
++
++#include "config.h"
++
++#ifdef ENABLE_MULTIBYTE
++typedef unsigned int wchar;
++#else
++typedef char wchar;
++#endif
++
++#endif
+--- groff-1.18.1.1.orig/src/xditview/lex.c
++++ groff-1.18.1.1/src/xditview/lex.c
+@@ -2,8 +2,10 @@
+ #include <X11/IntrinsicP.h>
+ #include <X11/StringDefs.h>
+ #include <stdio.h>
++#include "config.h"
+ #include "DviP.h"
+ 
++int
+ DviGetAndPut(dw, cp)
+     DviWidget	dw;
+     int		*cp;
+@@ -67,6 +69,7 @@
+ 	return Buffer;
+ } 
+ 
++int
+ GetNumber(dw)
+ 	DviWidget	dw;
+ {
+@@ -90,6 +93,98 @@
+ 		DviUngetC(dw, c);
+ 	return i;
+ }
++
++#ifdef ENABLE_MULTIBYTE
++#include <locale.h>
++#include <langinfo.h>
++#include <iconv.h>
++#include <errno.h>
++
++static iconv_t icd;
++void
++DviInitLocale()
++{
++	char *enc;
++	setlocale(LC_ALL, "");
++	enc = nl_langinfo(CODESET);
++	icd = iconv_open("UCS-2BE", enc);
++}
++
++int
++DviGetCharacter(dw, cp)
++	DviWidget	dw;
++	char   *cp;
++{
++	char inbuf[8];
++	char outbuf[8];
++	char *inp, *outp;
++	size_t inbytesleft, outbytesleft = 8;
++	int i = 0;
++	int j;
++	int wc = 0;
++	int c;
++	size_t r;
++
++	while (wc == 0) {
++		DviGetC(dw, &c);
++		if (c == EOF)
++			return EOF;
++		inbuf[i++] = c;
++		inbytesleft = i;
++		outbytesleft = BUFSIZ;
++		inp = inbuf;
++		outp = outbuf;
++		r = iconv(icd, &inp, &inbytesleft, &outp, &outbytesleft);
++		if (r == (size_t)-1) {
++			if (errno == EILSEQ) {
++				/* illegal sequence */
++			} else if (errno == EINVAL) {
++				/* incomplete sequence */
++				continue;
++			} else if (errno == E2BIG) {
++				/* no room to output? */
++				
++			}
++			DviUngetC(dw, c);
++		}
++		/* ok - pass inbuf to cp */
++		for (j = 0; j < i; j++) {
++			cp[j] = inbuf[j];
++		}
++		cp[j] = '\0';
++		return i;
++	}
++	/* NOT REACHED */
++}
++
++int
++DviWCharP(char *name, int *wc)
++{
++	char outbuf[BUFSIZ];
++	char *inp, *outp;
++	int inbytesleft, outbytesleft;
++	size_t r;
++	*wc = 0;
++	inp = name;
++	inbytesleft = strlen(name);
++	outp = outbuf;
++	outbytesleft = sizeof(outbuf)-1;
++	r = iconv(icd, &inp, &inbytesleft, &outp, &outbytesleft);
++	if (r < 0) {
++		return 0;
++	}
++	/* UCS-2 check */
++	if (outbuf + 2 != outp) {
++		return 0;
++	}
++	for (inp = outbuf; inp < outp; inp++) {
++		*wc <<= 8;
++		*wc |= (*inp) & 0x0ff;
++	}
++	return 1;
++}
++
++#endif
+ 	
+ /*
+ Local Variables:
+--- groff-1.18.1.1.orig/src/xditview/Dvi.c
++++ groff-1.18.1.1/src/xditview/Dvi.c
+@@ -4,6 +4,8 @@
+ #endif /* lint */
+ #endif /* SABER */
+ 
++#include "config.h"
++
+ /*
+  * Dvi.c - Dvi display widget
+  *
+@@ -49,6 +51,8 @@
+ NBI	-adobe-new century schoolbook-bold-i-normal--*-100-*-*-*-*-iso8859-1\n\
+ S	-adobe-symbol-medium-r-normal--*-100-*-*-*-*-adobe-fontspecific\n\
+ SS	-adobe-symbol-medium-r-normal--*-100-*-*-*-*-adobe-fontspecific\n\
++M	-misc-fixed-medium-r-normal--*-100-*-*-*-*-jisx0208.1983-0\n\
++G	-misc-fixed-medium-r-normal--*-100-*-*-*-*-jisx0208.1983-0\
+ ";
+ 
+ #define offset(field) XtOffset(DviWidget, field)
+@@ -94,6 +98,20 @@
+ 
+ static void		SaveToFile ();
+ 
++/* font.c */
++extern void ParseFontMap();
++extern void DestroyFontMap();
++extern void ForgetFonts();
++
++/* page.c */
++extern void DestroyFileMap();
++extern int SearchPagePosition();
++extern void FileSeek();
++extern void ForgetPagePositions();
++
++/* parse.c */
++extern int ParseInput();
++
+ DviClassRec dviClassRec = {
+ {
+ 	&widgetClassRec,		/* superclass		  */	
+@@ -406,6 +424,7 @@
+ 	return ret;
+ }
+ 
++void
+ SetDevice (dw, name)
+ 	DviWidget	dw;
+ 	char 		*name;
+@@ -559,6 +578,9 @@
+ 	DviWidgetClass super = (DviWidgetClass) wc->core_class.superclass;
+ 	if (wc->command_class.save == InheritSaveToFile)
+ 		wc->command_class.save = super->command_class.save;
++#ifdef ENABLE_MULTIBYTE
++	DviInitLocale();
++#endif
+ }
+ 	
+ /*
+--- groff-1.18.1.1.orig/src/xditview/parse.c
++++ groff-1.18.1.1/src/xditview/parse.c
+@@ -9,15 +9,49 @@
+ #include <X11/StringDefs.h>
+ #include <stdio.h>
+ #include <ctype.h>
++#include "config.h"
+ #include "DviP.h"
++#include "encoding.h"
+ 
+ static int StopSeen = 0;
+-static ParseDrawFunction(), ParseDeviceControl();
+-static push_env(), pop_env();
++static void ParseDrawFunction(), ParseDeviceControl();
++static void push_env(), pop_env();
++
++/* draw.c */
++extern int PutCharacter();
++extern int PutNumberedCharacter();
++extern void HorizontalGoto();
++extern void Word();
++extern void VerticalGoto();
++extern void VerticalMove();
++extern void FlushCharCache();
++extern void Newline();
++extern void DrawLine();
++extern void DrawCircle();
++extern void DrawFilledCircle();
++extern void DrawEllipse();
++extern void DrawFilledEllipse();
++extern void DrawArc();
++extern void DrawPolygon();
++extern void DrawFilledPolygon();
++extern void DrawSpline();
++
++/* Dvi.c */
++extern void SetDevice();
++
++/* page.c */
++extern void RememberPagePosition();
++
++/* font.c */
++extern void SetFontPosition();
++
++/* lex.c */
++extern int GetNumber();
+ 
+ #define HorizontalMove(dw, delta)	((dw)->dvi.state->x += (delta))
+ 
+ 
++int
+ ParseInput(dw)
+     register DviWidget	dw;
+ {
+@@ -57,11 +91,17 @@
+ 					   DviGetC(dw,&otherc)-'0');
+ 			/* fall through */
+ 		case 'c':	/* single ascii character */
++#ifdef ENABLE_MULTIBYTE
++			DviGetCharacter(dw, Buffer);
++			if (Buffer[0] == ' ')
++			    break;
++#else
+ 			DviGetC(dw,&c);
+ 		    	if (c == ' ')
+ 			    break;
+ 			Buffer[0] = c;
+ 			Buffer[1] = '\0';
++#endif
+ 			(void) PutCharacter (dw, Buffer);
+ 			break;
+ 		case 'C':
+@@ -69,10 +109,15 @@
+ 			(void) PutCharacter (dw, Buffer);
+ 			break;
+ 		case 't':
++#ifdef ENABLE_MULTIBYTE
++			while (DviGetCharacter(dw, Buffer) != EOF
++			       && Buffer[0] != ' ' && Buffer[0] != '\n') {
++#else
+ 			Buffer[1] = '\0';
+ 			while (DviGetC (dw, &c) != EOF
+ 			       && c != ' ' && c != '\n') {
+ 				Buffer[0] = c;
++#endif
+ 				HorizontalMove (dw, PutCharacter (dw, Buffer));
+ 			}
+ 			break;
+@@ -158,7 +203,7 @@
+ 	}
+ }
+ 
+-static
++static void
+ push_env(dw)
+ 	DviWidget	dw;
+ {
+@@ -177,7 +222,7 @@
+ 	dw->dvi.state = new;
+ }
+ 
+-static
++static void
+ pop_env(dw)
+ 	DviWidget	dw;
+ {
+@@ -188,7 +233,7 @@
+ 	XtFree ((char *) old);
+ }
+ 
+-static
++static void
+ InitTypesetter (dw)
+ 	DviWidget	dw;
+ {
+@@ -200,7 +245,7 @@
+ 
+ #define DRAW_ARGS_MAX 128
+ 
+-static
++static void
+ ParseDrawFunction(dw, buf)
+ DviWidget	dw;
+ char		*buf;
+@@ -284,13 +329,12 @@
+ 	}
+ } 
+ 
+-static
++static void
+ ParseDeviceControl(dw)				/* Parse the x commands */
+ 	DviWidget	dw;
+ {
+         char str[20], str1[50];
+ 	int c, n;
+-	extern int LastPage, CurrentPage;
+ 
+ 	GetWord (dw, str, 20);
+ 	switch (str[0]) {			/* crude for now */
+--- groff-1.18.1.1.orig/src/xditview/DviChar.c
++++ groff-1.18.1.1/src/xditview/DviChar.c
+@@ -5,7 +5,10 @@
+  * font indexes and back
+  */
+ 
+-#include   "DviChar.h"
++#include <stdlib.h>
++#include "config.h"
++#include "DviChar.h"
++#include "encoding.h"
+ 
+ extern char *xmalloc();
+ 
+@@ -21,7 +24,7 @@
+ static int	standard_maps_loaded = 0;
+ static void	load_standard_maps ();
+ static int	hash_name ();
+-static		dispose_hash(), compute_hash();
++static void	dispose_hash(), compute_hash();
+ 
+ DviCharNameMap *
+ DviFindMap (encoding)
+@@ -58,7 +61,7 @@
+ 	compute_hash (map);
+ }
+ 
+-static
++static void
+ dispose_hash (map)
+ 	DviCharNameMap	*map;
+ {
+@@ -88,7 +91,7 @@
+ 	return i;
+ }
+ 
+-static
++static void
+ compute_hash (map)
+ 	DviCharNameMap	*map;
+ {
+@@ -120,7 +123,10 @@
+ {
+ 	int		i;
+ 	DviCharNameHash	*h;
+-
++#ifdef ENABLE_MULTIBYTE
++	if (map->char_index)
++	    return (*map->char_index)(map, name);
++#endif
+ 	i = hash_name (name) % DVI_HASH_SIZE;
+ 	for (h = map->buckets[i]; h; h=h->next)
+ 		if (!strcmp (h->name, name))
+@@ -128,9 +134,47 @@
+ 	return -1;
+ }
+ 
++#ifdef ENABLE_MULTIBYTE
++#include <X11/Xlib.h>
++void
++DviChar2XChar2b(int c, XChar2b *xc)
++{
++    /* XXX: can we assume 'c' is EUC-JP ? */
++	xc->byte1 = (c >> 8) & 0x7f;
++	xc->byte2 = (c) &0x7f;
++	return;
++}
++
++int
++DviCharIndexJISX0208_1983(map, name)
++	DviCharNameMap	*map;
++	char		*name;
++{
++    /* XXX: can we assume name points EUC-JP chars? */
++	unsigned char ub = *name, lb = *(name + 1);
++	int wc;
++	wc = (name[0] & 0xff) << 8;
++	wc |= (name[1] & 0xff);
++	return(wc);
++}
++
++static DviCharNameMap JISX0208_1983_0_map = {
++	"jisx0208.1983-0",
++	0,
++	DviChar2XChar2b,
++	DviCharIndexJISX0208_1983,
++{
++{	"DummyEntry",		/* 0 */},
++}};
++#endif
++
+ static DviCharNameMap ISO8859_1_map = {
+ 	"iso8859-1",
+ 	0,
++#ifdef ENABLE_MULTIBYTE
++	0,
++	0,
++#endif
+ {
+ {	0,			/* 0 */},
+ {	0,			/* 1 */},
+@@ -393,6 +437,10 @@
+ static DviCharNameMap Adobe_Symbol_map = {
+ 	"adobe-fontspecific",
+ 	1,
++#ifdef ENABLE_MULTIBYTE
++	0,
++	0,
++#endif
+ {
+ {	0,					/* 0 */},
+ {	0,					/* 1 */},
+@@ -659,4 +707,7 @@
+ 	standard_maps_loaded = 1;
+ 	DviRegisterMap (&ISO8859_1_map);
+ 	DviRegisterMap (&Adobe_Symbol_map);
++#ifdef ENABLE_MULTIBYTE
++	DviRegisterMap (&JISX0208_1983_0_map);
++#endif
+ }
+--- groff-1.18.1.1.orig/src/xditview/config.h
++++ groff-1.18.1.1/src/xditview/config.h
+@@ -0,0 +1,4 @@
++#ifndef _config_h
++#include "../include/config.h"
++#define _config_h
++#endif
+--- groff-1.18.1.1.orig/src/xditview/XFontName.c
++++ groff-1.18.1.1/src/xditview/XFontName.c
+@@ -225,6 +225,7 @@
+ 	return True;
+ }
+ 
++Bool
+ XCopyFontName (name1, name2, fontNameAttributes)
+ 	XFontName	*name1, *name2;
+ 	unsigned int	fontNameAttributes;
+--- groff-1.18.1.1.orig/src/xditview/GXditview.ad
++++ groff-1.18.1.1/src/xditview/GXditview.ad
+@@ -55,3 +55,25 @@
+ GXditview.promptShell.promptDialog.cancel.label: Cancel
+ GXditview.promptShell.promptDialog.cancel.translations: #override \
+ 	<BtnUp>:	Cancel() unset()
++
++GXditview*fontMap: \
++TR	-adobe-times-medium-r-normal--*-100-*-*-*-*-iso8859-1\n\
++TI	-adobe-times-medium-i-normal--*-100-*-*-*-*-iso8859-1\n\
++TB	-adobe-times-bold-r-normal--*-100-*-*-*-*-iso8859-1\n\
++TBI	-adobe-times-bold-i-normal--*-100-*-*-*-*-iso8859-1\n\
++CR	-adobe-courier-medium-r-normal--*-100-*-*-*-*-iso8859-1\n\
++CI	-adobe-courier-medium-o-normal--*-100-*-*-*-*-iso8859-1\n\
++CB	-adobe-courier-bold-r-normal--*-100-*-*-*-*-iso8859-1\n\
++CBI	-adobe-courier-bold-o-normal--*-100-*-*-*-*-iso8859-1\n\
++HR	-adobe-helvetica-medium-r-normal--*-100-*-*-*-*-iso8859-1\n\
++HI	-adobe-helvetica-medium-o-normal--*-100-*-*-*-*-iso8859-1\n\
++HB	-adobe-helvetica-bold-r-normal--*-100-*-*-*-*-iso8859-1\n\
++HBI	-adobe-helvetica-bold-o-normal--*-100-*-*-*-*-iso8859-1\n\
++NR	-adobe-new century schoolbook-medium-r-normal--*-100-*-*-*-*-iso8859-1\n\
++NI	-adobe-new century schoolbook-medium-i-normal--*-100-*-*-*-*-iso8859-1\n\
++NB	-adobe-new century schoolbook-bold-r-normal--*-100-*-*-*-*-iso8859-1\n\
++NBI	-adobe-new century schoolbook-bold-i-normal--*-100-*-*-*-*-iso8859-1\n\
++S	-adobe-symbol-medium-r-normal--*-100-*-*-*-*-adobe-fontspecific\n\
++SS	-adobe-symbol-medium-r-normal--*-100-*-*-*-*-adobe-fontspecific\n\
++M	-misc-fixed-medium-r-normal--*-100-*-*-*-*-jisx0208.1983-0\n\
++G	-misc-fixed-medium-r-normal--*-100-*-*-*-*-jisx0208.1983-0
+--- groff-1.18.1.1.orig/src/xditview/GXditview-ad.h
++++ groff-1.18.1.1/src/xditview/GXditview-ad.h
+@@ -50,3 +50,24 @@
+ "GXditview.promptShell.promptDialog.cancel.label: Cancel",
+ "GXditview.promptShell.promptDialog.cancel.translations: #override \
+ 	<BtnUp>:	Cancel() unset()",
++"GXditview*fontMap: \
++TR	-adobe-times-medium-r-normal--*-100-*-*-*-*-iso8859-1\\n\
++TI	-adobe-times-medium-i-normal--*-100-*-*-*-*-iso8859-1\\n\
++TB	-adobe-times-bold-r-normal--*-100-*-*-*-*-iso8859-1\\n\
++TBI	-adobe-times-bold-i-normal--*-100-*-*-*-*-iso8859-1\\n\
++CR	-adobe-courier-medium-r-normal--*-100-*-*-*-*-iso8859-1\\n\
++CI	-adobe-courier-medium-o-normal--*-100-*-*-*-*-iso8859-1\\n\
++CB	-adobe-courier-bold-r-normal--*-100-*-*-*-*-iso8859-1\\n\
++CBI	-adobe-courier-bold-o-normal--*-100-*-*-*-*-iso8859-1\\n\
++HR	-adobe-helvetica-medium-r-normal--*-100-*-*-*-*-iso8859-1\\n\
++HI	-adobe-helvetica-medium-o-normal--*-100-*-*-*-*-iso8859-1\\n\
++HB	-adobe-helvetica-bold-r-normal--*-100-*-*-*-*-iso8859-1\\n\
++HBI	-adobe-helvetica-bold-o-normal--*-100-*-*-*-*-iso8859-1\\n\
++NR	-adobe-new century schoolbook-medium-r-normal--*-100-*-*-*-*-iso8859-1\\n\
++NI	-adobe-new century schoolbook-medium-i-normal--*-100-*-*-*-*-iso8859-1\\n\
++NB	-adobe-new century schoolbook-bold-r-normal--*-100-*-*-*-*-iso8859-1\\n\
++NBI	-adobe-new century schoolbook-bold-i-normal--*-100-*-*-*-*-iso8859-1\\n\
++S	-adobe-symbol-medium-r-normal--*-100-*-*-*-*-adobe-fontspecific\\n\
++SS	-adobe-symbol-medium-r-normal--*-100-*-*-*-*-adobe-fontspecific\\n\
++M	-misc-fixed-medium-r-normal--*-100-*-*-*-*-jisx0208.1983-0\\n\
++G	-misc-fixed-medium-r-normal--*-100-*-*-*-*-jisx0208.1983-0",
+--- groff-1.18.1.1.orig/src/xditview/DviP.h
++++ groff-1.18.1.1/src/xditview/DviP.h
+@@ -8,6 +8,7 @@
+ 
+ #ifndef _XtDviP_h
+ #define _XtDviP_h
++#include "config.h"
+ 
+ #include "Dvi.h"
+ #include "DviChar.h"
+@@ -89,9 +90,17 @@
+ #define DVI_CHAR_CACHE_SIZE	1024
+ 
+ typedef struct _dviCharCache {
++#ifdef ENABLE_MULTIBYTE
++	XTextItem16	cache[DVI_TEXT_CACHE_SIZE];
++#else
+ 	XTextItem	cache[DVI_TEXT_CACHE_SIZE];
++#endif
+ 	char		adjustable[DVI_TEXT_CACHE_SIZE];
++#ifdef ENABLE_MULTIBYTE
++	XChar2b		char_cache[DVI_CHAR_CACHE_SIZE];
++#else
+ 	char		char_cache[DVI_CHAR_CACHE_SIZE];
++#endif
+ 	int		index;
+ 	int		max;
+ 	int		char_index;
+@@ -182,6 +191,7 @@
+ 	int		word_flag;
+ } DviPart;
+ 
++extern int DviGetAndPut();
+ #define DviGetIn(dw,cp)\
+     (dw->dvi.tmpFile ? (\
+ 	DviGetAndPut (dw, cp) \
+@@ -228,6 +238,11 @@
+ extern DeviceFont	*QueryDeviceFont ();
+ 
+ extern char *GetWord(), *GetLine();
++
++#ifdef ENABLE_MULTIBYTE
++extern void DviInitLocale();
++extern int DviGEtCharacter();
++#endif
+ #endif /* _XtDviP_h */
+ 
+ 
+--- groff-1.18.1.1.orig/src/xditview/device.c
++++ groff-1.18.1.1/src/xditview/device.c
+@@ -2,10 +2,12 @@
+ 
+ #include <stdio.h>
+ #include <ctype.h>
++#include <stdlib.h>
+ 
+ #include <X11/Xos.h>
+ #include <X11/Intrinsic.h>
+ 
++#include "config.h"
+ #include "device.h"
+ 
+ #ifndef FONTPATH
+@@ -48,6 +50,9 @@
+     Device *dev;
+     struct charinfo *char_table[CHAR_TABLE_SIZE];
+     struct charinfo *code_table[256];
++#ifdef ENABLE_MULTIBYTE
++    struct charrange *range;
++#endif
+ };
+ 
+ struct charinfo {
+@@ -71,6 +76,15 @@
+ static struct charinfo *add_char();
+ static int read_charset_section();
+ static char *canonicalize_name();
++#ifdef ENABLE_MULTIBYTE
++struct charrange {
++	struct charrange *next;
++	int width;
++	int start_code;
++	int end_code;
++};
++static void add_charrange();
++#endif
+ 
+ static
+ Device *new_device(name)
+@@ -256,6 +270,9 @@
+ 	f->char_table[i] = 0;
+     for (i = 0; i < 256; i++)
+ 	f->code_table[i] = 0;
++#ifdef ENABLE_MULTIBYTE
++    f->range = 0;
++#endif
+     return f;
+ }
+ 
+@@ -267,6 +284,15 @@
+ 
+     if (!f)
+ 	return;
++#ifdef ENABLE_MULTIBYTE
++    {
++	struct charrange *cp, *cp2;
++	for (cp = f->range; cp != NULL; cp = cp2) {
++		cp2 = cp->next;
++		XtFree((char *)cp);
++	}
++    }
++#endif
+     XtFree(f->name);
+     for (i = 0; i < CHAR_TABLE_SIZE; i++) {
+ 	struct charinfo *ptr = f->char_table[i];
+@@ -342,6 +368,20 @@
+ {
+     struct charinfo *p;
+ 
++#ifdef ENABLE_MULTIBYTE
++    int wc;
++    extern DviWCharP();
++    if (DviWCharP(name, &wc)) {
++	    struct charrange *rp;
++	    for (rp = f->range; rp != NULL; rp = rp->next) {
++		    if (rp->start_code <= wc && wc <= rp->end_code) {
++			    *widthp = scale_round(rp->width, ps, 
++						  f->dev->unitwidth);
++			    return 1;
++		    }
++	    }
++    }
++#endif
+     name = canonicalize_name(name);
+     for (p = f->char_table[hash_name(name) % CHAR_TABLE_SIZE];; p = p->next) {
+ 	if (!p)
+@@ -424,6 +464,22 @@
+     return ci;
+ }
+ 
++#ifdef ENABLE_MULTIBYTE
++static void
++add_charrange(f, width, start_code, end_code)
++    DeviceFont *f;
++    int width, start_code, end_code;
++{
++	struct charrange *ci;
++	ci = (struct charrange *)XtMalloc(sizeof(struct charrange));
++	ci->start_code = start_code;
++	ci->end_code = end_code;
++	ci->width = width;
++	ci->next = f->range;
++	f->range = ci;
++}
++#endif
++
+ /* Return non-zero for success. */
+ 
+ static
+@@ -439,11 +495,31 @@
+ 	int width;
+ 	int code;
+ 	char *p;
++#ifdef ENABLE_MULTIBYTE
++	int scode, ecode;
++#endif
+ 
+ 	current_lineno++;
+ 	name = strtok(buf, WS);
+ 	if (!name)
+ 	    continue;		/* ignore blank lines */
++#ifdef ENABLE_MULTIBYTE
++	if (sscanf(name, "u%X..u%X", &scode, &ecode) == 2) {
++		p = strtok((char *)0, WS);
++		if (!p)
++			break;
++		if (sscanf(p, "%d", &width) != 1) {
++			error("bad width field");
++			return 0;
++		}
++		p = strtok((char *)0, WS);
++		if (!p) {
++			error("missing type field");
++			return 0;
++		}
++		add_charrange(f, width, scode, ecode); 
++	} else {
++#endif
+ 	p = strtok((char *)0, WS);
+ 	if (!p)			/* end of charset section */
+ 	    break;
+@@ -479,6 +555,9 @@
+ 	    }
+ 	    last_charinfo = add_char(f, name, width, code);
+ 	}
++#ifdef ENABLE_MULTIBYTE
++	}
++#endif
+     }
+     return 1;
+ }
+@@ -559,7 +638,7 @@
+ FILE *open_device_file(device_name, file_name, result)
+      char *device_name, *file_name, **result;
+ {
+-  char *buf, *path;
++  char *buf;
+   FILE *fp;
+ 
+   buf = XtMalloc(3 + strlen(device_name) + 1 + strlen(file_name) + 1);
+--- groff-1.18.1.1.orig/src/xditview/page.c
++++ groff-1.18.1.1/src/xditview/page.c
+@@ -28,6 +28,7 @@
+ 	return m;
+ }
+ 
++void
+ DestroyFileMap (m)
+ 	DviFileMap	*m;
+ {
+@@ -39,6 +40,7 @@
+ 	}
+ }
+ 
++void
+ ForgetPagePositions (dw)
+ 	DviWidget	dw;
+ {
+@@ -46,6 +48,7 @@
+ 	dw->dvi.file_map = 0;
+ }
+ 
++void
+ RememberPagePosition(dw, number)
+ 	DviWidget	dw;
+ 	int		number;
+@@ -64,6 +67,7 @@
+ 		m->position = ftell (dw->dvi.file);
+ }
+ 
++int
+ SearchPagePosition (dw, number)
+ 	DviWidget	dw;
+ 	int		number;
+@@ -75,6 +79,7 @@
+ 	return m->position;
+ }
+ 
++void
+ FileSeek(dw, position)
+ DviWidget	dw;
+ long		position;
+--- groff-1.18.1.1.orig/src/xditview/FontMap.jisx0208
++++ groff-1.18.1.1/src/xditview/FontMap.jisx0208
+@@ -0,0 +1,2 @@
++M	-misc-fixed-medium-r-normal--*-100-*-*-*-*-jisx0208.1983-0
++G	-misc-fixed-medium-r-normal--*-100-*-*-*-*-jisx0208.1983-0
+--- groff-1.18.1.1.orig/src/xditview/xditview.c
++++ groff-1.18.1.1/src/xditview/xditview.c
+@@ -46,6 +46,7 @@
+ #include <X11/Xaw/SimpleMenu.h>
+ #include <X11/Xaw/SmeBSB.h>
+ 
++#include <stdlib.h>
+ #include <signal.h>
+ 
+ #include "Dvi.h"
+@@ -101,7 +102,7 @@
+  * Report the syntax for calling xditview.
+  */
+ 
+-static
++static void
+ Syntax(call)
+ 	char *call;
+ {
+@@ -126,12 +127,12 @@
+     char    *name;
+     void    (*function)();
+ } menuEntries[] = {
+-    "nextPage",	    NextPage,
+-    "previousPage", PreviousPage,
+-    "selectPage",   SelectPage,
+-    "print",	    Print,
+-    "openFile",	    OpenFile,
+-    "quit",	    Quit,
++    {"nextPage",    NextPage},
++    {"previousPage",PreviousPage},
++    {"selectPage",  SelectPage},
++    {"print",	    Print},
++    {"openFile",    OpenFile},
++    {"quit",	    Quit},
+ };
+ 
+ static void	NextPageAction(), PreviousPageAction(), SelectPageAction();
+@@ -139,17 +140,18 @@
+ static void	AcceptAction(), CancelAction();
+ static void	PrintAction();
+ static void	RerasterizeAction();
++static void     MakePrompt();
+ 
+ XtActionsRec xditview_actions[] = {
+-    "NextPage",	    NextPageAction,
+-    "PreviousPage", PreviousPageAction,
+-    "SelectPage",   SelectPageAction,
+-    "Print",	    PrintAction,
+-    "OpenFile",	    OpenFileAction,
+-    "Rerasterize",  RerasterizeAction,
+-    "Quit",	    QuitAction,
+-    "Accept",	    AcceptAction,
+-    "Cancel",	    CancelAction,
++    {"NextPage",     NextPageAction},
++    {"PreviousPage", PreviousPageAction},
++    {"SelectPage",   SelectPageAction},
++    {"Print",	     PrintAction},
++    {"OpenFile",     OpenFileAction},
++    {"Rerasterize",  RerasterizeAction},
++    {"Quit",	     QuitAction},
++    {"Accept",	     AcceptAction},
++    {"Cancel",	     CancelAction},
+ };
+ 
+ #define MenuNextPage		0
+@@ -318,6 +320,7 @@
+ 
+ static char fileBuf[1024];
+ 
++static void
+ ResetMenuEntry (entry)
+     Widget  entry;
+ {
+@@ -516,6 +519,7 @@
+     CancelAction (widget, event, params, num_params);
+ }
+ 
++static void
+ MakePrompt(centerw, prompt, func, def)
+ Widget	centerw;
+ char *prompt;
+--- groff-1.18.1.1.orig/src/xditview/xtotroff.c
++++ groff-1.18.1.1/src/xditview/xtotroff.c
+@@ -2,6 +2,7 @@
+  * xtotroff
+  *
+  * convert X font metrics into troff font metrics
++ * XXX: ENABLE_MULTIBYTE may not work yet
+  */
+ 
+ #include	<X11/Xlib.h>
+@@ -10,6 +11,7 @@
+ #include	<unistd.h>
+ #include	<stdlib.h>
+ #include	<fcntl.h>
++#include	"config.h"
+ #include	"XFontName.h"
+ #include	"DviChar.h"
+ 
+@@ -171,6 +173,47 @@
+ 			fprintf (out, "spacewidth %d\n", w);
+ 	}
+ 	fprintf (out, "charset\n");
++#if 0 /* def	ENABLE_MULTIBYTE */
++	if (fi->min_byte1 != 0 || fi->max_byte1 != 0) {
++		/*
++		 * 2 byte code font.
++		 */
++		int N;
++		int D = fi->max_char_or_byte2 -	fi->min_char_or_byte2 + 1;
++		int max = (fi->max_byte1 - fi->min_byte1 + 1) *
++			(fi->max_char_or_byte2 - fi->min_char_or_byte2 + 1);
++		unsigned byte1;
++		unsigned byte2;
++		unsigned int euc_code;
++
++		for (N = 0; N < max; N++) {
++			byte1 = N / D + fi->min_byte1;
++			byte2 = N % D + fi->min_char_or_byte2;
++			euc_code = ((byte1 << 8) | byte2) & 0xffff | 0x8080;
++			wid = fi->max_bounds.width;
++			fputc(byte1 & 0xff | 0x80, out);/* output EUC code */
++			fputc(byte2 & 0xff | 0x80, out);/* output EUC code */
++			fprintf (out, "\t%d", wid);
++			if (groff_flag) {
++				int	param[5];
++				param[0] = fi->max_bounds.ascent;
++				param[1] = fi->max_bounds.descent;
++				param[2] = 0 /* charRBearing (fi, c) - wid */;
++				param[3] = 0 /* charLBearing (fi, c) */;
++				param[4] = 0; /* XXX */
++				for (j = 0; j < 5; j++)
++					if (param[j] < 0)
++						param[j] = 0;
++				for (j = 4; j >= 0; j--)
++					if (param[j] != 0)
++						break;
++				for (k = 0; k <= j; k++)
++					fprintf (out, ",%d", param[k]);
++			}
++			fprintf (out, "\t0\t%#x\n", euc_code);
++		}
++	} else
++#endif /* ENABLE_MULTIBYTE */
+ 	for (c = fi->min_char_or_byte2; c <= fi->max_char_or_byte2; c++) {
+ 		char *name = DviCharName (char_map,c,0);
+ 		if (charExists (fi, c) && (groff_flag || name)) {
+--- groff-1.18.1.1.orig/src/xditview/DviChar.h
++++ groff-1.18.1.1/src/xditview/DviChar.h
+@@ -10,6 +10,8 @@
+  * CharSetRegistry from the CharSetEncoding
+  */
+ 
++#include "config.h"
++
+ # define DVI_MAX_SYNONYMS	10
+ # define DVI_MAP_SIZE		256
+ # define DVI_HASH_SIZE		256
+@@ -23,6 +25,10 @@
+ typedef struct _dviCharNameMap {
+     char		*encoding;
+     int			special;
++#ifdef ENABLE_MULTIBYTE
++    void (*char2XChar2b)(/* int c, XChar2b *xc */);
++    int (*char_index)(/* struct _dviCharNameMap *map, char *name */);
++#endif
+     char		*dvi_names[DVI_MAP_SIZE][DVI_MAX_SYNONYMS];
+     DviCharNameHash	*buckets[DVI_HASH_SIZE];
+ } DviCharNameMap;
+--- groff-1.18.1.1.orig/src/xditview/draw.c
++++ groff-1.18.1.1/src/xditview/draw.c
+@@ -10,6 +10,7 @@
+ #include <stdio.h>
+ #include <ctype.h>
+ #include <math.h>
++#include "config.h"
+ 
+ /* math.h on a Sequent doesn't define M_PI, apparently */
+ #ifndef M_PI
+@@ -17,6 +18,7 @@
+ #endif
+ 
+ #include "DviP.h"
++#include "encoding.h" /* XXX */
+ 
+ #define DeviceToX(dw, n) ((int)((n) * (dw)->dvi.scale_factor + .5))
+ #define XPos(dw) (DeviceToX((dw), (dw)->dvi.state->x - \
+@@ -25,6 +27,10 @@
+ 
+ static int FakeCharacter();
+ 
++/* font.c */
++extern int MaxFontPosition();
++
++void
+ HorizontalMove(dw, delta)
+ 	DviWidget	dw;
+ 	int		delta;
+@@ -32,6 +38,7 @@
+ 	dw->dvi.state->x += delta;
+ }
+ 
++void
+ HorizontalGoto(dw, NewPosition)
+ 	DviWidget	dw;
+ 	int		NewPosition;
+@@ -39,6 +46,7 @@
+ 	dw->dvi.state->x = NewPosition;
+ }
+ 
++void
+ VerticalMove(dw, delta)
+ 	DviWidget	dw;
+ 	int		delta;
+@@ -46,6 +54,7 @@
+ 	dw->dvi.state->y += delta;
+ }
+ 
++void
+ VerticalGoto(dw, NewPosition)
+ 	DviWidget	dw;
+ 	int		NewPosition;
+@@ -53,6 +62,7 @@
+ 	dw->dvi.state->y = NewPosition;
+ }
+ 
++void
+ AdjustCacheDeltas (dw)
+ 	DviWidget	dw;
+ {
+@@ -94,14 +104,21 @@
+ 		}
+ }
+ 
++void
+ FlushCharCache (dw)
+ 	DviWidget	dw;
+ {
+ 	if (dw->dvi.cache.char_index != 0) {
+ 		AdjustCacheDeltas (dw);
++#ifdef ENABLE_MULTIBYTE
++		XDrawText16 (XtDisplay (dw), XtWindow (dw), dw->dvi.normal_GC,
++			   dw->dvi.cache.start_x, dw->dvi.cache.start_y,
++			   dw->dvi.cache.cache, dw->dvi.cache.index + 1);
++#else
+ 		XDrawText (XtDisplay (dw), XtWindow (dw), dw->dvi.normal_GC,
+ 			   dw->dvi.cache.start_x, dw->dvi.cache.start_y,
+ 			   dw->dvi.cache.cache, dw->dvi.cache.index + 1);
++#endif
+ 	}	
+ 	dw->dvi.cache.index = 0;
+ 	dw->dvi.cache.max = DVI_TEXT_CACHE_SIZE;
+@@ -115,6 +132,7 @@
+ 	dw->dvi.cache.start_y = dw->dvi.cache.y = YPos (dw);
+ }
+ 
++void
+ Newline (dw)
+ 	DviWidget	dw;
+ {
+@@ -123,6 +141,7 @@
+ 	dw->dvi.word_flag = 0;
+ }
+ 
++void
+ Word (dw)
+ 	DviWidget	dw;
+ {
+@@ -135,7 +154,6 @@
+     :\
+ 	(fi)->max_bounds.width\
+ )
+- 
+ 
+ static
+ int charExists (fi, c)
+@@ -152,14 +170,25 @@
+ 		|| p->ascent != 0 || p->descent != 0 || p->attributes != 0);
+ }
+ 
+-static
++static void
++#ifdef ENABLE_MULTIBYTE
++DoCharacter (dw, c, wid, char2xchar2b)
++#else
+ DoCharacter (dw, c, wid)
++#endif
+ 	DviWidget dw;
+ 	int c;
+ 	int wid;    /* width in device units */
++#ifdef ENABLE_MULTIBYTE
++	void (*char2xchar2b)();
++#endif
+ {
+ 	register XFontStruct	*font;
++#ifdef ENABLE_MULTIBYTE
++	register XTextItem16	*text;
++#else
+ 	register XTextItem	*text;
++#endif
+ 	int	x, y;
+ 	
+ 	x = XPos(dw);
+@@ -225,9 +254,25 @@
+ 			text->font = None;
+ 		dw->dvi.cache.x += text->delta;
+ 	}
++#ifdef ENABLE_MULTIBYTE
++	if (charExists(font, c) || char2xchar2b) {
++#else
+ 	if (charExists(font, c)) {
++#endif
+ 		int w;
++#ifdef ENABLE_MULTIBYTE
++		if (char2xchar2b) {
++		    (*char2xchar2b)(c,
++				    &dw->dvi.cache.char_cache[dw->dvi.cache.char_index++]);
++		} else {
++			dw->dvi.cache.char_cache[dw->dvi.cache.char_index].
++				byte1 =	(unsigned char)'\0';
++			dw->dvi.cache.char_cache[dw->dvi.cache.char_index++].
++				byte2 =	(unsigned char)c;
++		}
++#else
+ 		dw->dvi.cache.char_cache[dw->dvi.cache.char_index++] = (char) c;
++#endif
+ 		++text->nchars;
+ 		w = charWidth(font, c);
+ 		dw->dvi.cache.x += w;
+@@ -291,7 +336,11 @@
+ 	if (map)
+ 		c = DviCharIndex (map, buf);
+ 	if (c >= 0)
++#ifdef ENABLE_MULTIBYTE
++		DoCharacter (dw, c, wid, map->char2XChar2b);
++#else
+ 		DoCharacter (dw, c, wid);
++#endif
+ 	else
+ 		(void) FakeCharacter (dw, buf, wid);
+ 	dw->dvi.state->font_number = prevFont;
+@@ -345,6 +394,7 @@
+ 	return 1;
+ }
+ 
++void
+ PutNumberedCharacter (dw, c)
+ 	DviWidget dw;
+ 	int c;
+@@ -368,7 +418,11 @@
+ 				   dw->dvi.state->font_size, c, &wid))
+ 		return;
+ 	if (dw->dvi.native) {
++#ifdef ENABLE_MULTIBYTE
++		DoCharacter (dw, c, wid, NULL);
++#else
+ 		DoCharacter (dw, c, wid);
++#endif
+ 		return;
+ 	}
+ 	map = QueryFontMap (dw, dw->dvi.state->font_number);
+@@ -379,7 +433,11 @@
+ 	     name = device_name_for_code ((DeviceFont *)0, c)) {
+ 		int code = DviCharIndex (map, name);
+ 		if (code >= 0) {
++#ifdef ENABLE_MULTIBYTE
++			DoCharacter (dw, code, wid, map->char2XChar2b);
++#else
+ 			DoCharacter (dw, code, wid);
++#endif
+ 			break;
+ 		}
+ 		if (FakeCharacter (dw, name, wid))
+@@ -387,13 +445,14 @@
+ 	}
+ }
+ 
++void
+ ClearPage (dw)
+ 	DviWidget	dw;
+ {
+ 	XClearWindow (XtDisplay (dw), XtWindow (dw));
+ }
+ 
+-static
++static void
+ setGC (dw)
+ 	DviWidget	dw;
+ {
+@@ -417,7 +476,7 @@
+ 	}
+ }
+ 
+-static
++static void
+ setFillGC (dw)
+ 	DviWidget	dw;
+ {
+@@ -444,6 +503,7 @@
+ 	}
+ }
+ 
++void
+ DrawLine (dw, x, y)
+ 	DviWidget	dw;
+ 	int		x, y;
+@@ -459,6 +519,7 @@
+ 		   xp + DeviceToX (dw, x), yp + DeviceToX (dw, y));
+ }
+ 
++void
+ DrawCircle (dw, diam)
+ 	DviWidget	dw;
+ 	int		diam;
+@@ -473,6 +534,7 @@
+ 		  d, d, 0, 64*360);
+ }
+ 
++void
+ DrawFilledCircle (dw, diam)
+ 	DviWidget	dw;
+ 	int		diam;
+@@ -490,6 +552,7 @@
+ 		  d, d, 0, 64*360);
+ }
+ 
++void
+ DrawEllipse (dw, a, b)
+ 	DviWidget	dw;
+ 	int		a, b;
+@@ -501,6 +564,7 @@
+ 		  DeviceToX (dw, a), DeviceToX (dw, b), 0, 64*360);
+ }
+ 
++void
+ DrawFilledEllipse (dw, a, b)
+ 	DviWidget	dw;
+ 	int		a, b;
+@@ -515,6 +579,7 @@
+ 		  DeviceToX (dw, a), DeviceToX (dw, b), 0, 64*360);
+ }
+ 
++void
+ DrawArc (dw, x0, y0, x1, y1)
+ 	DviWidget	dw;
+ 	int		x0, y0, x1, y1;
+@@ -541,6 +606,7 @@
+ 		  rad*2, rad*2, angle1, angle2);
+ }
+ 
++void
+ DrawPolygon (dw, v, n)
+ 	DviWidget	dw;
+ 	int		*v;
+@@ -572,7 +638,7 @@
+ 	XtFree((char *)p);
+ }
+ 
+-
++void
+ DrawFilledPolygon (dw, v, n)
+ 	DviWidget	dw;
+ 	int		*v;
+@@ -608,7 +674,7 @@
+ 
+ #define POINTS_MAX 10000
+ 
+-static
++static void
+ appendPoint(points, pointi, x, y)
+ 	XPoint	*points;
+ 	int	*pointi;
+@@ -623,7 +689,7 @@
+ 
+ #define FLATNESS 1
+ 
+-static
++static void
+ flattenCurve(points, pointi, x2, y2, x3, y3, x4, y4)
+ 	XPoint	*points;
+ 	int	*pointi;
+@@ -659,7 +725,7 @@
+ 	}
+ }
+ 
+-
++void
+ DrawSpline (dw, v, n)
+ 	DviWidget	dw;
+ 	int		*v;
+--- groff-1.18.1.1.orig/src/xditview/font.c
++++ groff-1.18.1.1/src/xditview/font.c
+@@ -9,10 +9,16 @@
+ #include <X11/StringDefs.h>
+ #include <stdio.h>
+ #include <ctype.h>
++#include <stdlib.h>
+ #include "DviP.h"
+ #include "XFontName.h"
+ 
+-static DisposeFontSizes();
++static void DisposeFontSizes();
++void DestroyFontMap();
++
++/* XFontName.c */
++extern Bool XParseFontName();
++extern Bool XFormatFontName();
+ 
+ static char *
+ savestr (s)
+@@ -115,7 +121,7 @@
+ # define SizePosition		8
+ # define EncodingPosition	13
+ 
+-static
++static int
+ ConvertFontNameToSize (n)
+ 	char	*n;
+ {
+@@ -191,7 +197,7 @@
+ 	return sizes;
+ }
+ 
+-static
++static void
+ DisposeFontSizes (dw, fs)
+ 	DviWidget	dw;
+ 	DviFontSizeList	*fs;
+@@ -263,6 +269,7 @@
+ 	return f;
+ }
+ 
++void
+ ForgetFonts (dw)
+ 	DviWidget dw;
+ {
+@@ -322,6 +329,7 @@
+ }
+ #endif
+ 
++void
+ ParseFontMap (dw)
+ 	DviWidget	dw;
+ {
+@@ -357,6 +365,7 @@
+ 	dw->dvi.font_map = fm;
+ }
+ 
++void
+ DestroyFontMap (font_map)
+ 	DviFontMap	*font_map;
+ {
+@@ -374,6 +383,7 @@
+ 
+ /* ARGSUSED */
+ 
++void
+ SetFontPosition (dw, position, dvi_name, extra)
+ 	DviWidget	dw;
+ 	int		position;
+--- groff-1.18.1.1.orig/src/roff/troff/charinfo.h
++++ groff-1.18.1.1/src/roff/troff/charinfo.h
+@@ -29,9 +29,16 @@
+   macro *mac;
+   unsigned char special_translation;
+   unsigned char hyphenation_code;
++#ifdef ENABLE_MULTIBYTE
++  unsigned short flags;
++#else
+   unsigned char flags;
++#endif
+   unsigned char ascii_code;
+   unsigned char asciify_code;
++#ifdef ENABLE_MULTIBYTE
++  wchar wchar_code;
++#endif
+   char not_found;
+   char transparent_translate;	// non-zero means translation applies
+ 				// to transparent throughput
+@@ -47,6 +54,11 @@
+     OVERLAPS_VERTICALLY = 16,
+     TRANSPARENT = 32,
+     NUMBERED = 64
++#ifdef	ENABLE_MULTIBYTE
++    ,
++    DONT_BREAK_BEFORE = 0x100,	// 256, pre kinsoku
++    DONT_BREAK_AFTER = 0x200	// 512, post kinsoku
++#endif
+     };
+   enum {
+     TRANSLATE_NONE,
+@@ -74,7 +86,11 @@
+   int get_translation_input();
+   charinfo *get_translation(int = 0);
+   void set_translation(charinfo *, int, int);
++#ifdef ENABLE_MULTIBYTE
++  void set_flags(unsigned short);
++#else
+   void set_flags(unsigned char);
++#endif
+   void set_special_translation(int, int);
+   int get_special_translation(int = 0);
+   macro *set_macro(macro *, int = 0);
+@@ -84,6 +100,12 @@
+   int get_number();
+   int numbered();
+   int is_fallback();
++#ifdef	ENABLE_MULTIBYTE
++  wchar get_wchar_code();
++  void set_wchar_code(wchar);
++  int cannot_break_before(); // pre kinsoku
++  int cannot_break_after(); // post kinsoku
++#endif
+   symbol *get_symbol();
+ };
+ 
+@@ -131,6 +153,18 @@
+   return fallback;
+ }
+ 
++#ifdef	ENABLE_MULTIBYTE
++inline int charinfo::cannot_break_before()
++{
++  return flags & DONT_BREAK_BEFORE;
++}
++
++inline int charinfo::cannot_break_after()
++{
++  return flags & DONT_BREAK_AFTER;
++}
++#endif
++
+ inline charinfo *charinfo::get_translation(int transparent_throughput)
+ {
+   return (transparent_throughput && !transparent_translate
+@@ -153,7 +187,18 @@
+   return (translate_input ? asciify_code : 0);
+ }
+ 
++#ifdef	ENABLE_MULTIBYTE
++inline wchar charinfo::get_wchar_code()
++{
++  return wchar_code;
++}
++#endif
++
++#ifdef	ENABLE_MULTIBYTE
++inline void charinfo::set_flags(unsigned short c)
++#else
+ inline void charinfo::set_flags(unsigned char c)
++#endif
+ {
+   flags = c;
+ }
+--- groff-1.18.1.1.orig/src/roff/troff/troff.h
++++ groff-1.18.1.1/src/roff/troff/troff.h
+@@ -28,6 +28,7 @@
+ #include <stdlib.h>
+ #include <errno.h>
+ 
++#include "encoding.h"
+ #include "assert.h"
+ #include "color.h"
+ #include "device.h"
+--- groff-1.18.1.1.orig/src/roff/troff/env.cc
++++ groff-1.18.1.1/src/roff/troff/env.cc
+@@ -32,6 +32,7 @@
+ #include "charinfo.h"
+ #include "macropath.h"
+ #include "input.h"
++#include "font.h" // ENABLE_MULTIBYTE only?
+ #include <math.h>
+ 
+ symbol default_family("T");
+@@ -264,6 +265,13 @@
+ void environment::add_char(charinfo *ci)
+ {
+   int s;
++#ifdef ENABLE_MULTIBYTE
++  int fontno = get_font(); // current font #
++  int fontset_font = get_fontset_fontno(fontno, ci->get_wchar_code());
++  if (fontno >= 0 && fontno != fontset_font) {
++    change_curfont(fontset_font);
++  }
++#endif
+   if (interrupted)
+     ;
+   // don't allow fields in dummy environments
+@@ -286,11 +294,95 @@
+   else {
+     if (line == 0)
+       start_line();
++#ifdef	ENABLE_MULTIBYTE
++    /* 
++     * XXX: NEED REWRITE TO BE MORE GENERIC
++     * This code is based on jgroff
++     * about kerning between ASCII and EUC-JP 
++     */
++    if (!ci->get_wchar_code()) {
++      /*
++       * This node is a ASCII character node.
++       */
++      if (!pre_char_is_ascii && enable_wcharkern && !hwkern.is_zero()) {
++	/*
++	 * Insert a little space node between EUC and ASCII.
++	 */
++	word_space_node *ws;
++
++	if (ci->ends_sentence() || ci->transparent() || ci->cannot_break_before())
++	  ws = new unbreakable_space_node(hwkern.to_units(), get_fill_color());
++	else
++	  ws = new word_space_node(hwkern.to_units(),
++				   get_fill_color(),
++				   new width_list(env_space_width(this),
++						  env_sentence_space_width(this)));
++	curenv->add_node(ws);
++      }
++      pre_char_is_ascii = 1;
++      pre_wchar_cannot_break_after = 0;
++    } else {
++      /*
++       * This node is a EUC charcater node.
++       */
++      if (!pre_char_is_ascii && line->get_node_type() == NODE_NEWLINE_SPACE) {
++	/*
++	 * remove a newline-node.
++	 */
++	node *ns_node = line;
++	line = line->next;
++	width_total -= ns_node->width();
++	space_total -= ns_node->nspaces();
++	delete ns_node;
++      }
++
++      if (!pre_wchar_cannot_break_after && !ci->cannot_break_before()) {
++	/*
++	 * add a zero-width-space-node before EUC charcater node.
++	 */
++	add_node(new kword_space_node(get_fill_color()));
++	met_with_kword_space = 1;
++      }
++      pre_wchar_cannot_break_after = ci->cannot_break_after();
++
++      if (pre_char_is_ascii && enable_wcharkern && !hwkern.is_zero()) {
++	/*
++	 * Insert a little space node between ASCII and EUC.
++	 */
++	unbreakable_space_node *ws =
++	  new unbreakable_space_node(hwkern.to_units(), get_fill_color());
++	curenv->add_node(ws);
++      }
++      pre_char_is_ascii = 0;
++
++      if (!vlower.is_zero()) {
++	/*
++	 * Lower a EUC charcater node.
++	 */
++	curenv->add_node(new vmotion_node(vlower.to_units(), 
++					  get_fill_color())); // lower
++      }
++    }
++#endif
+     if (ci != hyphen_indicator_char)
+       line = line->add_char(ci, this, &width_total, &space_total);
+     else
+       line = line->add_discretionary_hyphen();
++#ifdef	ENABLE_MULTIBYTE
++    enable_wcharkern = 1;
++    if (!vlower.is_zero() && ci->get_wchar_code()) {
++      /*
++       * Raise a EUC charcater node.
++       */
++      curenv->add_node(new vmotion_node(-vlower.to_units(), 
++					get_fill_color())); // raise
++    }
++#endif
+   }
++#ifdef ENABLE_MULTIBYTE
++  if (fontset_font >= 0 && fontno != fontset_font)
++      change_curfont(fontno); /* restore saved font # */
++#endif
+ }
+ 
+ node *environment::make_char_node(charinfo *ci)
+@@ -394,7 +486,11 @@
+     width_total += x;
+     return;
+   }
++#ifdef ENABLE_MULTIBYTE
++  add_node(new newline_space_node(x, get_fill_color())); // This node may be removed
++#else
+   add_node(new word_space_node(x, get_fill_color(), w));
++#endif
+   possibly_break_line(0, spread_flag);
+   spread_flag = 0;
+ }
+@@ -480,6 +576,35 @@
+     warning(WARN_FONT, "bad font number");
+ }
+ 
++#ifdef	ENABLE_MULTIBYTE
++void environment::change_curfont(symbol nm)
++{
++  int n = symbol_fontno(nm);
++  if (n < 0) {
++    n = next_available_font_position();
++    if (!mount_font(n, nm))
++      return;
++  }
++  fontno = n;
++}
++
++void environment::change_curfont(int n)
++{
++  if (is_good_fontno(n))
++    fontno = n;
++  else
++    error("bad font number");
++}
++
++void environment::set_encoding(symbol enc)
++{
++  if (enc.is_null() || enc.is_empty())
++    return;
++  select_input_encoding_handler(enc.contents());
++  select_output_encoding_handler(enc.contents());
++}
++#endif /* ENABLE_MULTIBYTE */
++
+ void environment::set_family(symbol fam)
+ {
+   if (interrupted)
+@@ -649,6 +774,16 @@
+   control_char('.'),
+   no_break_control_char('\''),
+   hyphen_indicator_char(0)
++#ifdef	ENABLE_MULTIBYTE
++  ,
++  stretch_threshold(0),
++  pre_wchar_cannot_break_after(0),
++  pre_char_is_ascii(-1),
++  enable_wcharkern(0),
++  met_with_kword_space(0),
++  hwkern(font::wcharkern),
++  vlower(font::lowerwchar)
++#endif
+ {
+   prev_family = family = lookup_family(default_family);
+   prev_fontno = fontno = 1;
+@@ -739,6 +874,16 @@
+   control_char(e->control_char),
+   no_break_control_char(e->no_break_control_char),
+   hyphen_indicator_char(e->hyphen_indicator_char)
++#ifdef	ENABLE_MULTIBYTE
++  ,
++  stretch_threshold(e->stretch_threshold),
++  pre_wchar_cannot_break_after(0),
++  pre_char_is_ascii(-1),
++  enable_wcharkern(0),
++  met_with_kword_space(0),
++  hwkern(font::wcharkern),
++  vlower(font::lowerwchar)
++#endif
+ {
+ }
+ 
+@@ -1781,6 +1926,9 @@
+   target_text_length = line_length - saved_indent;
+   width_total = H0;
+   space_total = 0;
++#ifdef	ENABLE_MULTIBYTE
++  enable_wcharkern = 0;
++#endif
+ }
+ 
+ hunits environment::get_hyphenation_space()
+@@ -1819,6 +1967,23 @@
+   skip_line();
+ }
+ 
++#ifdef ENABLE_MULTIBYTE
++void stretch_threshold_request()
++{
++  int n;
++  if (has_arg() && get_integer(&n)) {
++      if (n < 0 || n > 100) {
++	  warning(WARN_RANGE, "stretch threshold value %1 out of range", n);
++      } else {
++	  curenv->stretch_threshold = n;
++      }
++  } else {
++      curenv->stretch_threshold = 0;
++  }
++  skip_line();
++}
++#endif
++
+ breakpoint *environment::choose_breakpoint()
+ {
+   hunits x = width_total;
+@@ -2014,6 +2179,30 @@
+ 	     // When a macro follows a paragraph in fill mode, the
+ 	     // current line should not be empty.
+ 	     || (width_total - line->width()) > target_text_length)) {
++#ifdef ENABLE_MULTIBYTE
++    if (met_with_kword_space) {
++      node *linep = line;
++      node *prep = 0;
++      while (linep->next) {
++	if (linep->next->get_node_type() == NODE_GLYPH)
++	  prep = 0;
++	else if (linep->next->get_node_type() == NODE_KWORD_SPACE)
++	  prep = linep;
++        linep = linep->next;
++      }
++      if (prep) {
++        /*
++         * delete a kword_space_node which is in the top of line.
++         */
++        linep = prep->next;
++        prep->next = linep->next;
++        width_total -= linep->width();
++        space_total -= linep->nspaces();
++        delete linep;
++      }
++      met_with_kword_space = 0;
++    }
++#endif
+     hyphenate_line(start_here);
+     breakpoint *bp = choose_breakpoint();
+     if (bp == 0)
+@@ -2026,6 +2215,15 @@
+     bp->nd->split(bp->index, &pre, &post);
+     *ndp = post;
+     hunits extra_space_width = H0;
++#ifdef ENABLE_MULTIBYTE
++    int sv_adjust_mode = adjust_mode;
++    if (stretch_threshold) {
++	int ratio = bp->width * 100 / target_text_length;
++	if (ratio < stretch_threshold) {
++	    adjust_mode = ADJUST_LEFT;
++	}
++    }
++#endif
+     switch(adjust_mode) {
+     case ADJUST_BOTH:
+       if (bp->nspaces != 0)
+@@ -2041,6 +2239,9 @@
+       saved_indent += target_text_length - bp->width;
+       break;
+     }
++#ifdef ENABLE_MULTIBYTE
++    adjust_mode = sv_adjust_mode;
++#endif
+     distribute_space(pre, bp->nspaces, extra_space_width);
+     hunits output_width = bp->width + extra_space_width;
+     input_line_start -= output_width;
+@@ -3237,6 +3438,9 @@
+   init_request("hys", hyphenation_space_request);
+   init_request("hym", hyphenation_margin_request);
+   init_request("pvs", post_vertical_spacing);
++#ifdef ENABLE_MULTIBYTE
++  init_request("stt", stretch_threshold_request);
++#endif
+   init_int_env_reg(".f", get_font);
+   init_int_env_reg(".b", get_bold);
+   init_hunits_env_reg(".i", get_indent);
+--- groff-1.18.1.1.orig/src/roff/troff/node.h
++++ groff-1.18.1.1/src/roff/troff/node.h
+@@ -20,6 +20,8 @@
+ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+ 
+ 
++#include "config.h"
++
+ struct hyphen_list {
+   unsigned char hyphen;
+   unsigned char breakable;
+@@ -31,6 +33,9 @@
+ void hyphenate(hyphen_list *, unsigned);
+ 
+ enum hyphenation_type { HYPHEN_MIDDLE, HYPHEN_BOUNDARY, HYPHEN_INHIBIT };
++#ifdef	ENABLE_MULTIBYTE
++enum node_type {NODE_GLYPH, NODE_KWORD_SPACE, NODE_NEWLINE_SPACE, NODE_ANOTHER};
++#endif
+ 
+ class ascii_output_file;
+ 
+@@ -106,6 +111,9 @@
+ 
+   virtual int same(node *) = 0;
+   virtual const char *type() = 0;
++#ifdef	ENABLE_MULTIBYTE
++  virtual node_type get_node_type();
++#endif
+ };
+ 
+ inline node::node()
+@@ -212,6 +220,24 @@
+   int force_tprint();
+ };
+ 
++#ifdef	ENABLE_MULTIBYTE
++class kword_space_node : public word_space_node {
++public:
++  kword_space_node(color *, node * = 0);
++  node *copy();
++  const char *type();
++  node_type get_node_type();
++};
++
++class newline_space_node : public word_space_node {
++public:
++  newline_space_node(hunits, color *, node * = 0);
++  node *copy();
++  const char *type();
++  node_type get_node_type();
++};
++#endif
++
+ class unbreakable_space_node : public word_space_node {
+   unbreakable_space_node(hunits, int, color *, node * = 0);
+ public:
+@@ -538,6 +564,9 @@
+ node *copy_node_list(node *);
+ 
+ int get_bold_fontno(int f);
++#ifdef ENABLE_MULTIBYTE
++int get_fontset_fontno(int f, wchar wc);
++#endif
+ 
+ inline hyphen_list::hyphen_list(unsigned char code, hyphen_list *p)
+ : hyphen(0), breakable(0), hyphenation_code(code), next(p)
+@@ -595,3 +624,4 @@
+ 
+ font_family *lookup_family(symbol);
+ symbol get_font_name(int, environment *);
++
+--- groff-1.18.1.1.orig/src/roff/troff/env.h
++++ groff-1.18.1.1/src/roff/troff/env.h
+@@ -213,6 +213,15 @@
+   unsigned char control_char;
+   unsigned char no_break_control_char;
+   charinfo *hyphen_indicator_char;
++#ifdef	ENABLE_MULTIBYTE
++  int stretch_threshold;
++  int pre_wchar_cannot_break_after;
++  int pre_char_is_ascii;
++  int enable_wcharkern;
++  int met_with_kword_space;
++  hunits hwkern;
++  vunits vlower;
++#endif
+   
+   environment(symbol);
+   environment(const environment *);	// for temporary environment
+@@ -279,6 +288,10 @@
+   void wrap_up_tab();
+   void set_font(int);
+   void set_font(symbol);
++#ifdef	ENABLE_MULTIBYTE
++  void change_curfont(int);
++  void change_curfont(symbol);
++#endif
+   void set_family(symbol);
+   void set_size(int);
+   void set_char_height(int);
+@@ -309,6 +322,9 @@
+   const char *get_point_size_string();
+   const char *get_requested_point_size_string();
+   void output_pending_lines();
++#ifdef ENABLE_MULTIBYTE
++  void set_encoding(symbol);
++#endif
+   
+   friend void title_length();
+   friend void space_size();
+@@ -347,6 +363,9 @@
+ #ifdef WIDOW_CONTROL
+   friend void widow_control_request();
+ #endif /* WIDOW_CONTROL */
++#ifdef	ENABLE_MULTIBYTE
++  friend void stretch_threshold_request();
++#endif
+ 
+   friend void do_divert(int append, int boxing);
+ };
+--- groff-1.18.1.1.orig/src/roff/troff/input.cc
++++ groff-1.18.1.1/src/roff/troff/input.cc
+@@ -35,6 +35,7 @@
+ #include "macropath.h"
+ #include "defs.h"
+ #include "input.h"
++#include "encoding.h" // XXX: ukai
+ 
+ // Needed for getpid() and isatty()
+ #include "posix.h"
+@@ -89,6 +90,11 @@
+ charinfo *charset_table[256];
+ unsigned char hpf_code_table[256];
+ 
++#ifdef	ENABLE_MULTIBYTE
++charinfo *wcharset_table_entry(wchar wc);
++
++#endif /* ENABLE_MULTIBYTE */
++
+ static int warning_mask = DEFAULT_WARNING_MASK;
+ static int inhibit_errors = 0;
+ static int ignoring = 0;
+@@ -148,6 +154,20 @@
+ input_iterator *make_temp_iterator(const char *);
+ const char *input_char_description(int);
+ 
++#ifdef ENABLE_MULTIBYTE
++static void
++select_encoding()
++{
++    symbol e = get_long_name(1);
++    if (e.is_null()) {
++	skip_line();
++	return;
++    }
++    curenv->set_encoding(e);
++    skip_line();
++    
++}
++#endif
+ 
+ void set_escape_char()
+ {
+@@ -1524,6 +1544,19 @@
+   type = TOKEN_NEWLINE;
+ }
+ 
++#ifdef ENABLE_MULTIBYTE
++class encoding_istream_input : public encoding_istream {
++private:
++  node **np;
++public:
++  encoding_istream_input(node **n) : np(n) {};
++  ~encoding_istream_input() {};
++  int getbyte() { return input_stack::get(np); };
++  int peekbyte() { return input_stack::peek(); };
++  void ungetbyte(int ch) { return; };
++};
++#endif
++
+ void token::next()
+ {
+   if (nd) {
+@@ -1533,6 +1566,10 @@
+   units x;
+   for (;;) {
+     node *n;
++#ifdef ENABLE_MULTIBYTE
++    encoding_istream_input einput(&n);
++#endif
++
+     int cc = input_stack::get(&n);
+     if (cc != escape_char || escape_char == 0) {
+     handle_normal_char:
+@@ -1686,8 +1723,22 @@
+ 	}
+ 	return;
+       default:
++#ifdef	ENABLE_MULTIBYTE
++	wc = input_encoding->make_wchar(cc, einput);
++	if (is_wchar_code(wc)) {
++	  type = TOKEN_WCHAR;
++	  c = 0;
++	} else if (wc == ' ') {
++	  type = TOKEN_SPACE;
++	  c = cc;
++	} else {
++	  type = TOKEN_CHAR;
++	  c = cc;
++	}
++#else
+ 	type = TOKEN_CHAR;
+ 	c = cc;
++#endif
+ 	return;
+       }
+     }
+@@ -2057,6 +2108,10 @@
+   switch(type) {
+   case TOKEN_CHAR:
+     return c == t.c;
++#ifdef	ENABLE_MULTIBYTE
++  case TOKEN_WCHAR:
++    return wc == t.wc;
++#endif
+   case TOKEN_SPECIAL:
+     return nm == t.nm;
+   case TOKEN_NUMBERED_CHAR:
+@@ -2563,6 +2618,27 @@
+ 	}
+ 	break;
+       }
++#ifdef	ENABLE_MULTIBYTE
++    case token::TOKEN_WCHAR:
++      {
++	wchar wch = tok.wc;
++
++	if (possibly_handle_first_page_transition())
++	  ;
++	else {
++	  for (;;) {
++	    curenv->add_char(wcharset_table_entry(wch));
++	    tok.next();
++	    if (tok.type != token::TOKEN_WCHAR)
++	      break;
++	    wch = tok.wc;
++	  }
++	  suppress_next = 1;
++	  bol = 0;
++	}
++	break;
++      }
++#endif	/* ENABLE_MULTIBYTE */
+     case token::TOKEN_TRANSPARENT:
+       {
+ 	if (bol) {
+@@ -6018,6 +6094,10 @@
+ {
+   if (type == TOKEN_CHAR)
+     return charset_table[c];
++#ifdef	ENABLE_MULTIBYTE
++  if (type == TOKEN_WCHAR)
++    return wcharset_table_entry(wc);
++#endif
+   if (type == TOKEN_SPECIAL)
+     return get_charinfo(nm);
+   if (type == TOKEN_NUMBERED_CHAR)
+@@ -6070,6 +6150,11 @@
+   case TOKEN_CHAR:
+     *pp = (*pp)->add_char(charset_table[c], curenv, &w, &s);
+     break;
++#ifdef	ENABLE_MULTIBYTE
++  case TOKEN_WCHAR:
++    *pp = (*pp)->add_char(wcharset_table_entry(wc), curenv, &w, &s);
++    break;
++#endif
+   case TOKEN_DUMMY:
+     n = new dummy_node;
+     break;
+@@ -6142,6 +6227,11 @@
+   case TOKEN_CHAR:
+     curenv->add_char(charset_table[c]);
+     break;
++#ifdef	ENABLE_MULTIBYTE
++  case TOKEN_WCHAR:
++    curenv->add_char(wcharset_table_entry(wc));
++    break;
++#endif
+   case TOKEN_DUMMY:
+     curenv->add_node(new dummy_node);
+     break;
+@@ -6900,6 +6990,7 @@
+   if (!safer_flag)
+     mac_path = &macro_path;
+   set_string(".T", device);
++  init_encoding_handler();
+   init_charset_table();
+   init_hpf_code_table();
+   if (!font::load_desc())
+@@ -6924,6 +7015,9 @@
+     // In the DESC file a font name of 0 (zero) means leave this
+     // position empty.
+     if (strcmp(font::font_name_table[i], "0") != 0)
++#ifdef ENABLE_MULTIBYTE
++      if (!font::is_on_demand(i))
++#endif
+       mount_font(j, symbol(font::font_name_table[i]));
+   curdiv = topdiv = new top_level_diversion;
+   if (nflag)
+@@ -7081,6 +7175,9 @@
+   init_request("ecs", save_escape_char);
+   init_request("el", else_request);
+   init_request("em", end_macro);
++#ifdef ENABLE_MULTIBYTE
++  init_request("encoding", select_encoding);
++#endif
+   init_request("eo", escape_off);
+   init_request("ex", exit_request);
+   init_request("fchar", define_fallback_character);
+@@ -7533,12 +7630,92 @@
+ 
+ dictionary charinfo_dictionary(501);
+ 
++#ifdef ENABLE_MULTIBYTE
++struct charinfo_list {
++  struct charinfo_list *next;
++  charinfo *ci;
++} *wcharset_table = NULL;
++
++/* XXX: use more efficient method? */
++static charinfo*
++lookup_wcharset_table(wchar wc)
++{
++  struct charinfo_list *cl;
++  for (cl = wcharset_table; cl; cl = cl->next) {
++    if (cl->ci && cl->ci->get_wchar_code() == wc)
++      return cl->ci;
++  }
++  return NULL;
++}
++
++static void
++add_wcharset_table(charinfo *ci)
++{
++  struct charinfo_list *cl = new struct charinfo_list;
++  cl->next = wcharset_table;
++  cl->ci = ci;
++  wcharset_table = cl;
++}
++
++charinfo *wcharset_table_entry(wchar wc)
++{
++  if (! is_wchar_code(wc))
++    return NULL;
++  charinfo *cp = lookup_wcharset_table(wc);
++  if (cp == NULL) {
++    int i = wchar_code(wc);
++    char buf[16];
++    if (i > 0x100)
++      sprintf(buf, "u%04X", i);
++    else {
++      cp = get_charinfo_by_number(i);
++      if (cp != NULL)
++	return cp;
++      sprintf(buf, "char%d", i); // ???
++    }
++    symbol nm = symbol(buf);
++    cp = new charinfo(nm);
++    (void)charinfo_dictionary.lookup(nm, cp);
++    cp->set_wchar_code(wc);
++    add_wcharset_table(cp);
++  }
++  return cp;
++}
++
++static charinfo *
++wchar_charinfo(symbol nm)
++{
++  const char *p = nm.contents();
++  if (*p != 'u') {
++    return NULL;
++  }
++  char *pp;
++  wchar wc = make_wchar(strtol(p + 1, &pp, 16));
++  if (pp < p + 5)
++      return NULL;
++  charinfo *cp = lookup_wcharset_table(wc);
++  if (cp)
++    return cp;
++  /* create on demand */
++  cp = new charinfo(nm);
++  cp->set_wchar_code(wc);
++  add_wcharset_table(cp);
++  return cp;
++}
++#endif
++
+ charinfo *get_charinfo(symbol nm)
+ {
+   void *p = charinfo_dictionary.lookup(nm);
+   if (p != 0)
+     return (charinfo *)p;
++#ifdef ENABLE_MULTIBYTE
++  charinfo *cp = wchar_charinfo(nm);
++  if (cp == NULL)
++    cp = new charinfo(nm);
++#else
+   charinfo *cp = new charinfo(nm);
++#endif
+   (void)charinfo_dictionary.lookup(nm, cp);
+   return cp;
+ }
+@@ -7548,6 +7725,9 @@
+ charinfo::charinfo(symbol s)
+ : translation(0), mac(0), special_translation(TRANSLATE_NONE),
+   hyphenation_code(0), flags(0), ascii_code(0), asciify_code(0),
++#ifdef ENABLE_MULTIBYTE
++  wchar_code(0),
++#endif
+   not_found(0), transparent_translate(1), translate_input(0),
+   fallback(0), nm(s)
+ {
+@@ -7592,6 +7772,14 @@
+   asciify_code = c;
+ }
+ 
++#ifdef ENABLE_MULTIBYTE
++void charinfo::set_wchar_code(wchar wc)
++{
++  wchar_code = wc;
++  index = wc; /* XXX: wchar code == index */
++}
++#endif
++
+ macro *charinfo::set_macro(macro *m, int f)
+ {
+   macro *tem = mac;
+@@ -7647,6 +7835,13 @@
+ int font::name_to_index(const char *nm)
+ {
+   charinfo *ci;
++#ifdef	ENABLE_MULTIBYTE
++  int i = 1;
++  wchar wc = input_encoding->make_wchar(nm[0], (const unsigned char *)nm, &i);
++  if (is_wchar_code(wc)) {
++    ci = wcharset_table_entry(wc);
++  } else
++#endif
+   if (nm[1] == 0)
+     ci = charset_table[nm[0] & 0xff];
+   else if (nm[0] == '\\' && nm[2] == 0)
+@@ -7663,3 +7858,10 @@
+ {
+   return get_charinfo_by_number(n)->get_index();
+ }
++
++#ifdef	ENABLE_MULTIBYTE
++int font::wchar_index(wchar wc)
++{
++  return(wcharset_table_entry(wc)->get_index());
++}
++#endif
+--- groff-1.18.1.1.orig/src/roff/troff/token.h
++++ groff-1.18.1.1/src/roff/troff/token.h
+@@ -28,12 +28,18 @@
+   symbol nm;
+   node *nd;
+   unsigned char c;
++#ifdef	ENABLE_MULTIBYTE
++  wchar wc;
++#endif
+   int val;
+   units dim;
+   enum token_type {
+     TOKEN_BACKSPACE,
+     TOKEN_BEGIN_TRAP,
+     TOKEN_CHAR,			// a normal printing character
++#ifdef	ENABLE_MULTIBYTE
++    TOKEN_WCHAR,		// a multibyte character
++#endif
+     TOKEN_DUMMY,		// \&
+     TOKEN_EMPTY,		// this is the initial value
+     TOKEN_END_TRAP,
+--- groff-1.18.1.1.orig/src/roff/troff/troff.man
++++ groff-1.18.1.1/src/roff/troff/troff.man
+@@ -22,6 +22,10 @@
+ A copy of the Free Documentation License is included as a file called
+ FDL in the main directory of the groff source package.
+ ..
++.ig
++A copy of the GNU Free Documentation License is also available in this
++Debian package as /usr/share/doc/groff-base/copyright.
++..
+ .
+ .
+ .\" --------------------------------------------------------------------
+--- groff-1.18.1.1.orig/src/roff/troff/node.cc
++++ groff-1.18.1.1/src/roff/troff/node.cc
+@@ -38,6 +38,7 @@
+ #include "input.h"
+ #include "div.h"
+ #include "geometry.h"
++#include "encoding.h"
+ 
+ #include "nonposix.h"
+ 
+@@ -745,8 +746,15 @@
+   int current_font_number;
+   symbol *font_position;
+   int nfont_positions;
++#ifdef ENABLE_MULTIBYTE
++  const char *current_encoding;
++#endif
+   enum { TBUF_SIZE = 256 };
++#ifdef	ENABLE_MULTIBYTE
++  wchar tbuf[TBUF_SIZE];
++#else
+   char tbuf[TBUF_SIZE];
++#endif
+   int tbuf_len;
+   int tbuf_kern;
+   int begun_page;
+@@ -756,6 +764,9 @@
+   void put(int i);
+   void put(unsigned int i);
+   void put(const char *s);
++#ifdef	ENABLE_MULTIBYTE
++  void putw(const wchar wc);
++#endif
+   void set_font(tfont *tf);
+   void flush_tbuf();
+ public:
+@@ -799,6 +810,13 @@
+   putc(c, fp);
+ }
+ 
++#ifdef	ENABLE_MULTIBYTE
++inline void troff_output_file::putw(wchar wc)
++{
++  output_encoding->put_wchar(wc, fp);
++}
++#endif
++
+ inline void troff_output_file::put(unsigned char c)
+ {
+   putc(c, fp);
+@@ -956,7 +974,11 @@
+   check_output_limits(hpos, vpos - current_size);
+ 
+   for (int i = 0; i < tbuf_len; i++)
++#ifdef ENABLE_MULTIBYTE
++    putw(tbuf[i]);
++#else
+     put(tbuf[i]);
++#endif
+   put('\n');
+   tbuf_len = 0;
+ }
+@@ -988,7 +1010,13 @@
+     flush_tbuf();
+     set_font(tf);
+   }
++#ifdef ENABLE_MULTIBYTE
++  wchar c = ci->get_wchar_code();
++  if (c == '\0')
++    c = ci->get_ascii_code();
++#else
+   char c = ci->get_ascii_code();
++#endif
+   if (c == '\0') {
+     flush_tbuf();
+     do_motion();
+@@ -1014,7 +1042,8 @@
+   }
+   else if (tcommand_flag) {
+     if (tbuf_len > 0 && hpos == output_hpos && vpos == output_vpos
+-	&& gcol == current_glyph_color && fcol == current_fill_color
++	&& (!gcol || gcol == current_glyph_color)
++	&& (!fcol || fcol == current_fill_color)
+ 	&& kk == tbuf_kern
+ 	&& tbuf_len < TBUF_SIZE) {
+       check_charinfo(tf, ci);
+@@ -1039,17 +1068,26 @@
+     check_charinfo(tf, ci);
+     // check_output_limits(output_hpos, output_vpos);
+     if (vpos == output_vpos
+-	&& gcol == current_glyph_color && fcol == current_fill_color
++	&& (!gcol || gcol == current_glyph_color)
++	&& (!fcol || fcol == current_fill_color)
+ 	&& n > 0 && n < 100 && !force_motion) {
+       put(char(n/10 + '0'));
+       put(char(n%10 + '0'));
++#ifdef ENABLE_MULTIBYTE
++      putw(c);
++#else
+       put(c);
++#endif
+       output_hpos = hpos;
+     }
+     else {
+       do_motion();
+       put('c');
++#ifdef ENABLE_MULTIBYTE
++      putw(c);
++#else
+       put(c);
++#endif
+     }
+     hpos += w.to_units() + kk;
+   }
+@@ -1063,7 +1101,13 @@
+     return;
+   if (tf != current_tfont)
+     set_font(tf);
++#ifdef	ENABLE_MULTIBYTE
++  wchar c = ci->get_wchar_code();
++  if (c == '\0')
++    c = ci->get_ascii_code();
++#else
+   char c = ci->get_ascii_code();
++#endif
+   if (c == '\0') {
+     do_motion();
+     glyph_color(gcol);
+@@ -1087,11 +1131,16 @@
+   else {
+     int n = hpos - output_hpos;
+     if (vpos == output_vpos
+-	&& gcol == current_glyph_color && fcol == current_fill_color
++	&& (!gcol || gcol == current_glyph_color)
++	&& (!fcol || fcol == current_fill_color)
+ 	&& n > 0 && n < 100) {
+       put(char(n/10 + '0'));
+       put(char(n%10 + '0'));
++#ifdef ENABLE_MULTIBYTE
++      putw(c);
++#else
+       put(c);
++#endif
+       output_hpos = hpos;
+     }
+     else {
+@@ -1099,13 +1148,26 @@
+       glyph_color(gcol);
+       fill_color(fcol);
+       put('c');
++#ifdef ENABLE_MULTIBYTE
++      putw(c);
++#else
+       put(c);
++#endif
+     }
+   }
+ }
+ 
+ void troff_output_file::set_font(tfont *tf)
+ {
++#ifdef ENABLE_MULTIBYTE
++  /* XXX */
++  if (current_encoding != output_encoding->name()) {
++    put("x encoding ");
++    put(output_encoding->name());
++    put('\n');
++    current_encoding = output_encoding->name();
++  }
++#endif
+   if (current_tfont == tf)
+     return;
+   int n = tf->get_input_position();
+@@ -1162,7 +1224,7 @@
+ 
+ void troff_output_file::fill_color(color *col)
+ {
+-  if ((current_fill_color == col) || !color_flag)
++  if (!col || current_fill_color == col || !color_flag)
+     return;
+   flush_tbuf();
+   put("DF");
+@@ -1210,7 +1272,7 @@
+ 
+ void troff_output_file::glyph_color(color *col)
+ {
+-  if ((current_glyph_color == col) || !color_flag)
++  if (!col || current_glyph_color == col || !color_flag)
+     return;
+   flush_tbuf();
+   put("m");
+@@ -1497,7 +1559,17 @@
+   put(' ');
+   put(vresolution);
+   put('\n');
++#ifdef ENABLE_MULTIBYTE
++  current_encoding = output_encoding->name();
++  put("x init");
++  if (current_encoding && *current_encoding != '\0') {
++      put(' ');
++      put(current_encoding);
++  }
++  put('\n');
++#else
+   put("x init\n");
++#endif
+ }
+ 
+ /* output_file */
+@@ -1777,6 +1849,9 @@
+   int same(node *);
+   const char *type();
+   int force_tprint();
++#ifdef	ENABLE_MULTIBYTE
++  node_type get_node_type();
++#endif
+ };
+ 
+ glyph_node *glyph_node::free_list = 0;
+@@ -1802,6 +1877,9 @@
+   int same(node *);
+   const char *type();
+   int force_tprint();
++#ifdef	ENABLE_MULTIBYTE
++  node_type get_node_type();
++#endif
+ };
+ 
+ class kern_pair_node : public node {
+@@ -5225,6 +5303,55 @@
+   return 0;
+ }
+ 
++#ifdef	ENABLE_MULTIBYTE
++kword_space_node::kword_space_node(color *c, node *x) : word_space_node(0, c, new width_list(0, 0), x)
++{}
++
++node *kword_space_node::copy()
++{
++    return new kword_space_node(col);
++}
++newline_space_node::newline_space_node(hunits d, color *c, node *x) : word_space_node(d, c, new width_list(0, 0), x)
++{}
++
++node *newline_space_node::copy()
++{
++    return new newline_space_node(n, col);
++}
++
++const char *kword_space_node::type()
++{
++  return "kword_space_node";
++}
++const char *newline_space_node::type()
++{
++  return "newline_space_node";
++}
++
++node_type node::get_node_type()
++{
++    return NODE_ANOTHER;
++}
++node_type glyph_node::get_node_type()
++{
++    return NODE_GLYPH;
++}
++
++node_type ligature_node::get_node_type()
++{
++    return NODE_ANOTHER;
++}
++
++node_type kword_space_node::get_node_type()
++{
++    return NODE_KWORD_SPACE;
++}
++node_type newline_space_node::get_node_type()
++{
++    return NODE_NEWLINE_SPACE;
++}
++#endif
++
+ int unbreakable_space_node::same(node *nd)
+ {
+   return n == ((unbreakable_space_node *)nd)->n
+@@ -5625,6 +5752,28 @@
+     return 0;
+ }
+ 
++#ifdef ENABLE_MULTIBYTE
++int get_fontset_fontno(int n, wchar wc)
++{
++  if (n >= 0 && n < font_table_size && font_table[n] != 0) {
++    /* XXX: external_name should be used? */
++    int fn = font::get_fontset_font(font_table[n]->get_name().contents(), wc);
++    if (fn >= 0) {
++      symbol nm(font::font_name_table[fn]);
++      int nn = symbol_fontno(nm);
++      if (nn < 0) {
++	nn = next_available_font_position();
++	if (!mount_font(nn, nm)) {
++	  return -1; /* XXX */
++	}
++      }
++      return nn;
++    }
++  }
++  return n;
++}
++#endif
++
+ hunits env_digit_width(environment *env)
+ {
+   node *n = make_glyph_node(charset_table['0'], env);
+--- groff-1.18.1.1.orig/src/roff/nroff/nroff.sh
++++ groff-1.18.1.1/src/roff/nroff/nroff.sh
+@@ -12,6 +12,8 @@
+     T=-Tlatin1 ;;
+   IBM-1047)
+     T=-Tcp1047 ;;
++  EUC-JP)
++    T=-Tnippon ;;
+   *)
+     case "${LC_ALL-${LC_CTYPE-${LANG}}}" in
+       *.UTF-8)
+@@ -20,6 +22,8 @@
+         T=-Tlatin1 ;;
+       *.IBM-1047)
+         T=-Tcp1047 ;;
++      ja_JP.ujis | ja_JP.eucJP)
++	T=-Tnippon ;;
+       *)
+         case "$LESSCHARSET" in
+           utf-8)
+@@ -28,8 +32,10 @@
+             T=-Tlatin1 ;;
+           cp1047)
+             T=-Tcp1047 ;;
++          japanese)
++	    T=-Tnippon ;;
+           *)
+-            T=-Tascii ;;
++            T=-Tascii8 ;;
+           esac ;;
+      esac ;;
+ esac
+@@ -52,7 +58,7 @@
+       exit 1 ;;
+     -[iptSUC] | -[mrno]*)
+       opts="$opts $1" ;;
+-    -Tascii | -Tlatin1 | -Tutf8 | -Tcp1047)
++    -Tascii | -Tlatin1 | -Tutf8 | -Tcp1047 | -Tascii8 | -Tnippon)
+       T=$1 ;;
+     -T*)
+       # ignore other devices
+--- groff-1.18.1.1.orig/src/roff/nroff/nroff.man
++++ groff-1.18.1.1/src/roff/nroff/nroff.man
+@@ -53,8 +53,10 @@
+ command using groff.
+ Only 
+ .BR ascii ,
++.BR ascii8 ,
+ .BR latin1 ,
+ .BR utf8 ,
++.BR nippon ,
+ and
+ .B cp1047
+ are valid arguments for the
+--- groff-1.18.1.1.orig/src/roff/groff/groff.cc
++++ groff-1.18.1.1/src/roff/groff/groff.cc
+@@ -107,6 +107,7 @@
+   program_name = argv[0];
+   static char stderr_buf[BUFSIZ];
+   setbuf(stderr, stderr_buf);
++  init_encoding_handler();
+   assert(NCOMMANDS <= MAX_COMMANDS);
+   string Pargs, Largs, Fargs;
+   int vflag = 0;
+--- groff-1.18.1.1.orig/src/roff/groff/groff.man
++++ groff-1.18.1.1/src/roff/groff/groff.man
+@@ -15,6 +15,10 @@
+ A copy of the Free Documentation License is included as a file called
+ FDL in the main directory of the groff source package.
+ ..
++.ig
++A copy of the GNU Free Documentation License is also available in this
++Debian package as /usr/share/doc/groff-base/copyright.
++..
+ .
+ .\" --------------------------------------------------------------------
+ .\" Setup
+@@ -118,7 +122,7 @@
+ .c --------------------------------------------------------------------
+ .c ShortOpt ([char [punct]])
+ .c
+-.c `-c' somwhere in the text 
++.c `-c' somewhere in the text 
+ .c second arg is punctuation
+ .c
+ .de ShortOpt
+@@ -130,7 +134,7 @@
+ .c --------------------------------------------------------------------
+ .c LongOpt  ([name [punct]])
+ .c
+-.c `--name' somwhere in the text 
++.c `--name' somewhere in the text 
+ .c second arg is punctuation
+ .c
+ .de LongOpt
+@@ -314,7 +318,7 @@
+ .B groff
+ program allows to control the whole
+ .I groff
+-system by comand line options.
++system by command line options.
+ .
+ This is a great simplification in comparison to the classical case (which
+ uses pipes only).
+@@ -610,7 +614,7 @@
+ .
+ .
+ .\" --------------------------------------------------------------------
+-.SS Tranparent Options
++.SS Transparent Options
+ .\" --------------------------------------------------------------------
+ .
+ The following options are transparently handed over to the formatter
+@@ -695,7 +699,7 @@
+ is much easier than
+ .IR "classical roff" .
+ .
+-This section gives an overview of the parts that consitute the groff
++This section gives an overview of the parts that constitute the groff
+ system.
+ .
+ It complements
+@@ -948,6 +952,10 @@
+ Text output using the EBCDIC code page IBM cp1047 (e.g. OS/390 Unix).
+ .
+ .TP
++.B nippon
++Text output using the Japanese-EUC character set.
++.
++.TP
+ .B dvi
+ TeX DVI format.
+ .
+@@ -956,6 +964,12 @@
+ HTML output.
+ .
+ .TP
++.B ascii8
++For typewriter-like devices.  Unlike
++.BR ascii ,
++this device is 8 bit clean.  This device is intended to be used
++for codesets other than ASCII and ISO-8859-1.
++.TP
+ .B latin1
+ Text output using the ISO Latin-1 (ISO 8859-1) character set; see
+ .BR iso_8859_1 (7).
+@@ -1031,7 +1045,7 @@
+ .
+ .P
+ Today, most printing or drawing hardware is handled by the operating
+-system, by device drivers, or by software interfaces, usally accepting
++system, by device drivers, or by software interfaces, usually accepting
+ PostScript.
+ .
+ Consequently, there isn't an urgent need for more hardware device
+--- groff-1.18.1.1.orig/font/devX75/DESC
++++ groff-1.18.1.1/font/devX75/DESC
+@@ -1,5 +1,17 @@
+ styles R I B BI
+-fonts 6 0 0 0 0 0 S
++fonts 8 0 0 0 0 0 S M G
++fontset B G 2E00..9FFF
++fontset CB G 2E00..9FFF
++fontset HB G 2E00..9FFF
++fontset NB G 2E00..9FFF
++fontset TB G 2E00..9FFF
++fontset - M 2E00..9FFF
++fontset B G FF00..FFEF
++fontset CB G FF00..FFEF
++fontset HB G FF00..FFEF
++fontset NB G FF00..FFEF
++fontset TB G FF00..FFEF
++fontset - M FF00..FFEF
+ sizes 8 10 12 14 18 24 0
+ res 75
+ X11
+--- groff-1.18.1.1.orig/font/devX75/M.proto
++++ groff-1.18.1.1/font/devX75/M.proto
+@@ -0,0 +1,6 @@
++name M
++spacewidth 2
++charset
++u2E00..u9FFF 10 0
++uFF00..uFFEF 10 0
++
+--- groff-1.18.1.1.orig/font/devX75/Makefile.sub
++++ groff-1.18.1.1/font/devX75/Makefile.sub
+@@ -1,2 +1,13 @@
+ DEV=X75
+-DEVFILES=DESC TR TI TB TBI CR CI CB CBI HR HI HB HBI NR NI NB NBI S
++DEVFILES=DESC TR TI TB TBI CR CI CB CBI HR HI HB HBI NR NI NB NBI S M G
++CLEANADD=M G
++
++M: M.proto
++	@echo Making M
++	@-rm -f M
++	@cat $(srcdir)/M.proto > M
++
++G: M
++	@echo Making G
++	@-rm -f G
++	@sed -e 's/name M/name G/' M > G
+--- groff-1.18.1.1.orig/font/devlbp/Makefile.sub
++++ groff-1.18.1.1/font/devlbp/Makefile.sub
+@@ -13,9 +13,9 @@
+ 	-rm -f DESC
+ 	cat $(srcdir)/DESC.in >>DESC
+ 	if test "$(PAGE)" = A4; then \
+-	  echo "papersize a4" >>DESC; \
++	  echo "papersize /etc/papersize a4" >>DESC; \
+ 	else \
+-	  echo "papersize letter" >>DESC; \
++	  echo "papersize /etc/papersize letter" >>DESC; \
+ 	fi
+ 	test -z '$(LBPPRINT)' || echo print '$(LBPPRINT)' >>DESC
+ 
+--- groff-1.18.1.1.orig/font/devascii/Makefile.sub
++++ groff-1.18.1.1/font/devascii/Makefile.sub
+@@ -12,8 +12,8 @@
+ 	@-rm -f $@
+ 	@(charwidth=`expr $(RES) / $(CPI)` ; \
+  	 sed -e "s/^name [A-Z]*$$/name $@/" \
+-	     -e "s/^\\([^	]*\\)	[0-9]+	/\\1	$$charwidth	/" \
+-	     -e "s/^spacewidth [0-9]+$$/spacewidth $$charwidth/" \
++	     -e "s/^\\([^	]*\\)	[0-9][0-9]*	/\\1	$$charwidth	/" \
++	     -e "s/^spacewidth [0-9][0-9]*$$/spacewidth $$charwidth/" \
+ 	     -e "s/^internalname .*$$/internalname $@/" \
+ 	     -e "/^internalname/s/BI/3/" \
+ 	     -e "/^internalname/s/B/2/" \
+--- groff-1.18.1.1.orig/font/devascii8/Makefile.sub
++++ groff-1.18.1.1/font/devascii8/Makefile.sub
+@@ -0,0 +1,31 @@
++DEV=ascii8
++FONTS=R I B BI
++DEVFILES=$(FONTS) DESC
++CLEANADD=$(FONTS) DESC
++
++RES=240
++CPI=10
++LPI=6
++
++$(FONTS): R.proto
++	@echo Making $@
++	@-rm -f $@
++	@(charwidth=`expr $(RES) / $(CPI)` ; \
++ 	 sed -e "s/^name [A-Z]*$$/name $@/" \
++	     -e "s/^\\([^	]*\\)	[0-9][0-9]*	/\\1	$$charwidth	/" \
++	     -e "s/^spacewidth [0-9][0-9]*$$/spacewidth $$charwidth/" \
++	     -e "s/^internalname .*$$/internalname $@/" \
++	     -e "/^internalname/s/BI/3/" \
++	     -e "/^internalname/s/B/2/" \
++	     -e "/^internalname/s/I/1/" \
++	     -e "/^internalname .*[^ 0-9]/d" \
++	     $(srcdir)/R.proto >$@)
++
++DESC: DESC.proto
++	@echo Making $@
++	@-rm -f $@
++	@sed -e "s/^res .*$$/res $(RES)/" \
++	    -e "s/^hor .*$$/hor `expr $(RES) / $(CPI)`/" \
++	    -e "s/^vert .*$$/vert `expr $(RES) / $(LPI)`/" \
++	    -e "s/^fonts .*$$/fonts `set $(FONTS); echo $$#` $(FONTS)/" \
++	    $(srcdir)/DESC.proto >$@
+--- groff-1.18.1.1.orig/font/devascii8/R.proto
++++ groff-1.18.1.1/font/devascii8/R.proto
+@@ -0,0 +1,262 @@
++name R
++internalname 0
++spacewidth 24
++charset
++!	24	0	0041
++"	24	0	0042
++dq	"
++lq	"
++rq	"
++#	24	0	0043
++sh	"
++$	24	0	0044
++Do	"
++%	24	0	0045
++&	24	0	0046
++'	24	0	0047
++aa	"
++fm	"
++aq	"
++cq	"
++(	24	0	0050
++)	24	0	0051
++*	24	0	0052
++**	"
+++	24	0	0053
++pl	"
++,	24	0	0054
++\-	24	0	0055
++hy	"
++-	"
++mi	"
++en	"
++.	24	0	0056
++/	24	0	0057
++sl	"
++f/	"
++0	24	0	0060
++1	24	0	0061
++2	24	0	0062
++3	24	0	0063
++4	24	0	0064
++5	24	0	0065
++6	24	0	0066
++7	24	0	0067
++8	24	0	0070
++9	24	0	0071
++:	24	0	0072
++;	24	0	0073
++<	24	0	0074
++la	"
++fo	"
++=	24	0	0075
++eq	"
++>	24	0	0076
++ra	"
++fc	"
++?	24	0	0077
++@	24	0	0100
++at	"
++A	24	0	0101
++*A	"
++B	24	0	0102
++*B	"
++C	24	0	0103
++D	24	0	0104
++E	24	0	0105
++*E	"
++F	24	0	0106
++G	24	0	0107
++H	24	0	0110
++*Y	"
++I	24	0	0111
++*I	"
++J	24	0	0112
++K	24	0	0113
++*K	"
++L	24	0	0114
++M	24	0	0115
++*M	"
++N	24	0	0116
++*N	"
++O	24	0	0117
++ci	"
++*O	"
++P	24	0	0120
++*R	"
++Q	24	0	0121
++R	24	0	0122
++S	24	0	0123
++T	24	0	0124
++*T	"
++U	24	0	0125
++V	24	0	0126
++W	24	0	0127
++X	24	0	0130
++*X	"
++Y	24	0	0131
++*U	"
++Z	24	0	0132
++*Z	"
++[	24	0	0133
++lB	"
++\	24	0	0134
++rs	"
++]	24	0	0135
++rB	"
++a^	24	0	0136
++^	"
++ha	"
++_	24	0	0137
++ru	"
++ul	"
++`	24	0	0140
++oq	"
++ga	"
++a	24	0	0141
++b	24	0	0142
++c	24	0	0143
++d	24	0	0144
++e	24	0	0145
++f	24	0	0146
++g	24	0	0147
++h	24	0	0150
++i	24	0	0151
++.i	"
++j	24	0	0152
++k	24	0	0153
++l	24	0	0154
++m	24	0	0155
++n	24	0	0156
++o	24	0	0157
++*o	"
++p	24	0	0160
++q	24	0	0161
++r	24	0	0162
++s	24	0	0163
++t	24	0	0164
++u	24	0	0165
++v	24	0	0166
++w	24	0	0167
++x	24	0	0170
++mu	"
++y	24	0	0171
++z	24	0	0172
++lC	24	0	0173
++{	"
++ba	24	0	0174
++or	"
++bv	"
++br	"
++|	"
++lb	"
++lc	"
++lf	"
++lk	"
++lt	"
++rb	"
++rc	"
++rf	"
++rk	"
++rt	"
++rC	24	0	0175
++}	"
++a~	24	0	0176
++~	"
++ap	"
++ti	"
++char161	24	0	0241
++char162	24	0	0242
++char163	24	0	0243
++char164	24	0	0244
++char165	24	0	0245
++char166	24	0	0246
++char167	24	0	0247
++char168	24	0	0250
++char169	24	0	0251
++char170	24	0	0252
++char171	24	0	0253
++char172	24	0	0254
++char173	24	0	0255 
++char174	24	0	0256
++char175	24	0	0257
++char176	24	0	0260
++char177	24	0	0261
++char178	24	0	0262
++char179	24	0	0263
++char180	24	0	0264
++char181	24	0	0265
++char182	24	0	0266
++char183	24	0	0267
++char184	24	0	0270
++char185	24	0	0271
++char186	24	0	0272
++char187	24	0	0273
++char188	24	0	0274
++char189	24	0	0275
++char190	24	0	0276
++char191	24	0	0277
++char192	24	0	0300
++char193	24	0	0301
++char194	24	0	0302
++char195	24	0	0303
++char196	24	0	0304
++char197	24	0	0305
++char198	24	0	0306
++char199	24	0	0307
++char200	24	0	0310
++char201	24	0	0311
++char202	24	0	0312
++char203	24	0	0313
++char204	24	0	0314
++char205	24	0	0315
++char206	24	0	0316
++char207	24	0	0317
++char208	24	0	0320
++char209	24	0	0321
++char210	24	0	0322
++char211	24	0	0323
++char212	24	0	0324
++char213	24	0	0325
++char214	24	0	0326
++char215	24	0	0327
++char216	24	0	0330
++char217	24	0	0331
++char218	24	0	0332
++char219	24	0	0333
++char220	24	0	0334
++char221	24	0	0335
++char222	24	0	0336
++char223	24	0	0337
++char224	24	0	0340
++char225	24	0	0341
++char226	24	0	0342
++char227	24	0	0343
++char228	24	0	0344
++char229	24	0	0345
++char230	24	0	0346
++char231	24	0	0347
++char232	24	0	0350
++char233	24	0	0351
++char234	24	0	0352
++char235	24	0	0353
++char236	24	0	0354
++char237	24	0	0355
++char238	24	0	0356
++char239	24	0	0357
++char240	24	0	0360
++char241	24	0	0361
++char242	24	0	0362
++char243	24	0	0363
++char244	24	0	0364
++char245	24	0	0365
++char246	24	0	0366
++char247	24	0	0367
++char248	24	0	0370
++char249	24	0	0371
++char250	24	0	0372
++char251	24	0	0373
++char252	24	0	0374
++char253	24	0	0375
++char254	24	0	0376
++char255	24	0	0377
+--- groff-1.18.1.1.orig/font/devascii8/DESC.proto
++++ groff-1.18.1.1/font/devascii8/DESC.proto
+@@ -0,0 +1,8 @@
++res 240
++hor 24
++vert 40
++unitwidth 10
++sizes 10 0
++fonts 4 R I B BI
++tcommand
++postpro grotty
+--- groff-1.18.1.1.orig/font/devX100/DESC
++++ groff-1.18.1.1/font/devX100/DESC
+@@ -1,5 +1,17 @@
+ styles R I B BI
+-fonts 6 0 0 0 0 0 S
++fonts 8 0 0 0 0 0 S M G
++fontset B G 2E00..9FFF
++fontset CB G 2E00..9FFF
++fontset HB G 2E00..9FFF
++fontset NB G 2E00..9FFF
++fontset TB G 2E00..9FFF
++fontset - M 2E00..9FFF
++fontset B G FF00..FFEF
++fontset CB G FF00..FFEF
++fontset HB G FF00..FFEF
++fontset NB G FF00..FFEF
++fontset TB G FF00..FFEF
++fontset - M FF00..FFEF
+ sizes 8 10 12 14 18 24 0
+ res 100
+ X11
+--- groff-1.18.1.1.orig/font/devX100/M.proto
++++ groff-1.18.1.1/font/devX100/M.proto
+@@ -0,0 +1,5 @@
++name M
++spacewidth 3
++charset
++u2E00..u9FFF 20 0
++uFF00..uFFEF 20 0
+--- groff-1.18.1.1.orig/font/devX100/Makefile.sub
++++ groff-1.18.1.1/font/devX100/Makefile.sub
+@@ -1,2 +1,13 @@
+ DEV=X100
+-DEVFILES=DESC TR TI TB TBI CR CI CB CBI HR HI HB HBI NR NI NB NBI S
++DEVFILES=DESC TR TI TB TBI CR CI CB CBI HR HI HB HBI NR NI NB NBI S M G
++CLEANADD=M G
++
++M: M.proto
++	@echo Making M
++	@-rm -f M
++	@cat $(srcdir)/M.proto > M
++
++G: M
++	@echo Making G
++	@-rm -f G
++	@sed -e 's/name M/name G/' M > G
+--- groff-1.18.1.1.orig/font/devX100-12/DESC
++++ groff-1.18.1.1/font/devX100-12/DESC
+@@ -1,5 +1,17 @@
+ styles R I B BI
+-fonts 6 0 0 0 0 0 S
++fonts 8 0 0 0 0 0 S M G
++fontset B G 2E00..9FFF
++fontset CB G 2E00..9FFF
++fontset HB G 2E00..9FFF
++fontset NB G 2E00..9FFF
++fontset TB G 2E00..9FFF
++fontset - M 2E00..9FFF
++fontset B G FF00..FFEF
++fontset CB G FF00..FFEF
++fontset HB G FF00..FFEF
++fontset NB G FF00..FFEF
++fontset TB G FF00..FFEF
++fontset - M FF00..FFEF
+ sizes 8 10 12 14 18 24 0
+ res 100
+ X11
+--- groff-1.18.1.1.orig/font/devX100-12/M.proto
++++ groff-1.18.1.1/font/devX100-12/M.proto
+@@ -0,0 +1,5 @@
++name M
++spacewidth 4
++charset
++u2E00..u9FFF 20 0
++uFF00..uFFEF 20 0
+--- groff-1.18.1.1.orig/font/devX100-12/Makefile.sub
++++ groff-1.18.1.1/font/devX100-12/Makefile.sub
+@@ -1,2 +1,14 @@
+ DEV=X100-12
+-DEVFILES=DESC TR TI TB TBI CR CI CB CBI HR HI HB HBI NR NI NB NBI S
++DEVFILES=DESC TR TI TB TBI CR CI CB CBI HR HI HB HBI NR NI NB NBI S M G
++CLEANADD=M G
++
++M: M.proto
++	@echo Making M
++	@-rm -f M
++	@cat $(srcdir)/M.proto > M
++
++G: M
++	@echo Making G
++	@-rm -f G
++	@sed -e 's/name M/name G/' M > G
++
+--- groff-1.18.1.1.orig/font/devlj4/Makefile.sub
++++ groff-1.18.1.1/font/devlj4/Makefile.sub
+@@ -22,9 +22,9 @@
+ 	echo "unitwidth `expr 7620000 / $(LJ4RES)`" >>DESC
+ 	cat $(srcdir)/DESC.in >>DESC
+ 	if test "$(PAGE)" = A4; then \
+-	  echo "papersize a4" >>DESC; \
++	  echo "papersize /etc/papersize a4" >>DESC; \
+ 	else \
+-	  echo "papersize letter" >>DESC; \
++	  echo "papersize /etc/papersize letter" >>DESC; \
+ 	fi
+ 	test -z '$(LJ4PRINT)' || echo print '$(LJ4PRINT)' >>DESC
+ 
+--- groff-1.18.1.1.orig/font/devnippon/M.proto
++++ groff-1.18.1.1/font/devnippon/M.proto
+@@ -0,0 +1,6 @@
++name M
++internalname 4
++spacewidth 48
++charset
++u2E00..u9FFF 48 0
++uFF00..uFFEF 48 0
+--- groff-1.18.1.1.orig/font/devnippon/Makefile.sub
++++ groff-1.18.1.1/font/devnippon/Makefile.sub
+@@ -0,0 +1,48 @@
++DEV=nippon
++FONTS=R I B BI
++WFONTS=M G
++ALLFONTS=$(FONTS) $(WFONTS)
++DEVFILES=$(ALLFONTS) DESC
++CLEANADD=$(ALLFONTS) DESC
++
++RES=240
++CPI=10
++LPI=6
++
++$(FONTS): R.proto
++	@echo Making $@
++	@-rm -f $@
++	@(charwidth=`expr $(RES) / $(CPI)` ; \
++ 	 sed -e "s/^name [A-Z]*$$/name $@/" \
++	     -e "s/^\\([^	]*\\)	[0-9][0-9]*	/\\1	$$charwidth	/" \
++	     -e "s/^spacewidth [0-9][0-9]*$$/spacewidth $$charwidth/" \
++	     -e "s/^internalname .*$$/internalname $@/" \
++	     -e "/^internalname/s/BI/3/" \
++	     -e "/^internalname/s/B/2/" \
++	     -e "/^internalname/s/I/1/" \
++	     -e "/^internalname .*[^ 0-9]/d" \
++	     $(srcdir)/R.proto >$@)
++
++M: M.proto
++	@echo Making M
++	@-rm -f M
++	@(wcharwidth=`expr $(RES) / $(CPI) \* 2` ; \
++	  spacewidth=`expr $(RES) / $(CPI)` ; \
++	  sed -e "s/^spacewidth [0-9][0-9]*$$/spacewidth $$spacewidth/" \
++	      -e "s/^u\\([0-9A-F]*\\)..u\\([0-9A-F]*\\) [0-9][0-9]*/u\\1..u\\2 $$wcharwidth/" \
++	  $(srcdir)/M.proto > $@)
++
++G: M
++	@echo Making G
++	@-rm -f G
++	@sed -e 's/name M/name G/' \
++	    -e 's/internalname 4/internalname 5/' M > G
++		
++DESC: DESC.proto
++	@echo Making $@
++	@-rm -f $@
++	@sed -e "s/^res .*$$/res $(RES)/" \
++	    -e "s/^hor .*$$/hor `expr $(RES) / $(CPI)`/" \
++	    -e "s/^vert .*$$/vert `expr $(RES) / $(LPI)`/" \
++	    -e "s/^fonts .*$$/fonts `set $(ALLFONTS); echo $$#` $(ALLFONTS)/" \
++	    $(srcdir)/DESC.proto >$@
+--- groff-1.18.1.1.orig/font/devnippon/R.proto
++++ groff-1.18.1.1/font/devnippon/R.proto
+@@ -0,0 +1,167 @@
++name R
++internalname 0
++spacewidth 24
++charset
++!	24	0	0041
++"	24	0	0042
++dq	"
++lq	"
++rq	"
++#	24	0	0043
++sh	"
++$	24	0	0044
++Do	"
++%	24	0	0045
++&	24	0	0046
++'	24	0	0047
++aa	"
++fm	"
++aq	"
++cq	"
++(	24	0	0050
++)	24	0	0051
++*	24	0	0052
++**	"
+++	24	0	0053
++pl	"
++,	24	0	0054
++\-	24	0	0055
++hy	"
++-	"
++mi	"
++en	"
++.	24	0	0056
++/	24	0	0057
++sl	"
++f/	"
++0	24	0	0060
++1	24	0	0061
++2	24	0	0062
++3	24	0	0063
++4	24	0	0064
++5	24	0	0065
++6	24	0	0066
++7	24	0	0067
++8	24	0	0070
++9	24	0	0071
++:	24	0	0072
++;	24	0	0073
++<	24	0	0074
++la	"
++fo	"
++=	24	0	0075
++eq	"
++>	24	0	0076
++ra	"
++fc	"
++?	24	0	0077
++@	24	0	0100
++at	"
++A	24	0	0101
++*A	"
++B	24	0	0102
++*B	"
++C	24	0	0103
++D	24	0	0104
++E	24	0	0105
++*E	"
++F	24	0	0106
++G	24	0	0107
++H	24	0	0110
++*Y	"
++I	24	0	0111
++*I	"
++J	24	0	0112
++K	24	0	0113
++*K	"
++L	24	0	0114
++M	24	0	0115
++*M	"
++N	24	0	0116
++*N	"
++O	24	0	0117
++ci	"
++*O	"
++P	24	0	0120
++*R	"
++Q	24	0	0121
++R	24	0	0122
++S	24	0	0123
++T	24	0	0124
++*T	"
++U	24	0	0125
++V	24	0	0126
++W	24	0	0127
++X	24	0	0130
++*X	"
++Y	24	0	0131
++*U	"
++Z	24	0	0132
++*Z	"
++[	24	0	0133
++lB	"
++\	24	0	0134
++rs	"
++]	24	0	0135
++rB	"
++a^	24	0	0136
++^	"
++ha	"
++_	24	0	0137
++ru	"
++ul	"
++`	24	0	0140
++oq	"
++ga	"
++a	24	0	0141
++b	24	0	0142
++c	24	0	0143
++d	24	0	0144
++e	24	0	0145
++f	24	0	0146
++g	24	0	0147
++h	24	0	0150
++i	24	0	0151
++.i	"
++j	24	0	0152
++k	24	0	0153
++l	24	0	0154
++m	24	0	0155
++n	24	0	0156
++o	24	0	0157
++*o	"
++p	24	0	0160
++q	24	0	0161
++r	24	0	0162
++s	24	0	0163
++t	24	0	0164
++u	24	0	0165
++v	24	0	0166
++w	24	0	0167
++x	24	0	0170
++mu	"
++y	24	0	0171
++z	24	0	0172
++lC	24	0	0173
++{	"
++ba	24	0	0174
++or	"
++bv	"
++br	"
++|	"
++lb	"
++lc	"
++lf	"
++lk	"
++lt	"
++rb	"
++rc	"
++rf	"
++rk	"
++rt	"
++rC	24	0	0175
++}	"
++a~	24	0	0176
++~	"
++ap	"
++ti	"
+--- groff-1.18.1.1.orig/font/devnippon/DESC.proto
++++ groff-1.18.1.1/font/devnippon/DESC.proto
+@@ -0,0 +1,12 @@
++res 240
++hor 24
++vert 40
++unitwidth 10
++sizes 10 0
++fonts 6 R I B BI M G
++fontset B G 2E00..9FFF
++fontset - M 2E00..9FFF
++fontset B G FF00..FFEF
++fontset - M FF00..FFEF
++tcommand
++postpro grotty
+--- groff-1.18.1.1.orig/font/devps/M.proto
++++ groff-1.18.1.1/font/devps/M.proto
+@@ -0,0 +1,9 @@
++name M
++internalname Ryumin-Light-EUC-H
++spacewidth 250
++encodingname EUC-JP
++charset
++u2E00..u9FFF 1000 3
++uFF00..uFF5F 1000 3
++uFF60..uFF9F 500 3
++uFFA0..uFFEF 1000 3
+--- groff-1.18.1.1.orig/font/devps/DESC.in
++++ groff-1.18.1.1/font/devps/DESC.in
+@@ -1,11 +1,33 @@
+ res 72000
+ hor 1
+ vert 1
++lowerwchar 300
++wcharkern 400
+ sizescale 1000
+ unitwidth 1000
+ sizes 1000-10000000 0
+ styles R I B BI
+ family T
+-fonts 9 0 0 0 0 0 SS S ZD ZDR
++fonts 11 0 0 0 0 0 SS S ZD ZDR M G
++fontset B G 2E00..9FFF
++fontset AB G 2E00..9FFF
++fontset BMB G 2E00..9FFF
++fontset CB G 2E00..9FFF
++fontset HB G 2E00..9FFF
++fontset HNB G 2E00..9FFF
++fontset NB G 2E00..9FFF
++fontset PB G 2E00..9FFF
++fontset TB G 2E00..9FFF
++fontset - M 2E00..9FFF
++fontset B G FF00..FFEF
++fontset AB G FF00..FFEF
++fontset BMB G FF00..FFEF
++fontset CB G FF00..FFEF
++fontset HB G FF00..FFEF
++fontset HNB G FF00..FFEF
++fontset NB G FF00..FFEF
++fontset PB G FF00..FFEF
++fontset TB G FF00..FFEF
++fontset - M FF00..FFEF
+ tcommand
+ postpro grops
+--- groff-1.18.1.1.orig/font/devps/Makefile.sub
++++ groff-1.18.1.1/font/devps/Makefile.sub
+@@ -2,23 +2,23 @@
+ DISTFILES=text.enc download \
+   S ZD ZDR SS AB ABI AI AR BMB BMBI BMI BMR \
+   CB CBI CI CR HB HBI HI HR HNB HNBI HNI HNR \
+-  NB NBI NI NR PB PBI PI PR TB TBI TI TR ZCMI
++  NB NBI NI NR PB PBI PI PR TB TBI TI TR ZCMI M G
+ PSFILES=prologue symbolsl.pfa zapfdr.pfa
+ DEVGENFILES=generate/Makefile generate/afmname generate/dingbats.map \
+   generate/dingbats.rmap generate/lgreekmap generate/symbol.sed \
+   generate/symbolchars generate/symbolsl.afm generate/textmap
+ DEVFILES=DESC $(PSFILES) $(DISTFILES) $(DEVGENFILES)
+ 
+-CLEANADD=DESC $(PSFILES)
++CLEANADD=DESC $(PSFILES) M G
+ 
+ DESC: DESC.in
+ 	-rm -f DESC
+ 	cat $(srcdir)/DESC.in >DESC
+ 	echo broken $(BROKEN_SPOOLER_FLAGS) >>DESC
+ 	if test "$(PAGE)" = A4; then \
+-	  echo "papersize a4" >>DESC; \
++	  echo "papersize /etc/papersize a4" >>DESC; \
+ 	else \
+-	  echo "papersize letter" >>DESC; \
++	  echo "papersize /etc/papersize letter" >>DESC; \
+ 	fi
+ 	test -z '$(PSPRINT)' ||	echo print '$(PSPRINT)' >>DESC
+ 
+@@ -33,3 +33,14 @@
+ $(PSFILES):
+ 	-rm -f $@
+ 	sed -f $(srcdir)/psstrip.sed $? >$@
++
++M: M.proto
++	@echo Making M
++	@-rm -f M
++	@cp M.proto M
++
++G: M
++	@echo Making G
++	@-rm -f G
++	@sed -e 's/name M/name G/' \
++	    -e 's/internalname Ryumin-Light-EUC-H/internalname GothicBBB-Medium-EUC-H/' M > G
+--- groff-1.18.1.1.orig/font/devutf8/M.proto
++++ groff-1.18.1.1/font/devutf8/M.proto
+@@ -0,0 +1,6 @@
++name M
++internalname 4
++spacewidth 48
++charset
++u2E00..u9FFF 48 0
++uFF00..uFFEF 48 0
+--- groff-1.18.1.1.orig/font/devutf8/Makefile.sub
++++ groff-1.18.1.1/font/devutf8/Makefile.sub
+@@ -1,7 +1,8 @@
+ DEV=utf8
+ FONTS=R I B BI
+-DEVFILES=$(FONTS) DESC
+-CLEANADD=$(FONTS) DESC
++WFONTS=M G
++DEVFILES=$(FONTS) $(WFONTS) DESC
++CLEANADD=$(FONTS) $(WFONTS) DESC
+ 
+ RES=240
+ CPI=10
+@@ -12,8 +13,8 @@
+ 	@-rm -f $@
+ 	@(charwidth=`expr $(RES) / $(CPI)` ; \
+  	 sed -e "s/^name [A-Z]*$$/name $@/" \
+-	     -e "s/^\\([^	]*\\)	[0-9]+	/\\1	$$charwidth	/" \
+-	     -e "s/^spacewidth [0-9]+$$/spacewidth $$charwidth/" \
++	     -e "s/^\\([^	]*\\)	[0-9][0-9]*	/\\1	$$charwidth	/" \
++	     -e "s/^spacewidth [0-9][0-9]*$$/spacewidth $$charwidth/" \
+ 	     -e "s/^internalname .*$$/internalname $@/" \
+ 	     -e "/^internalname/s/BI/3/" \
+ 	     -e "/^internalname/s/B/2/" \
+@@ -21,12 +22,27 @@
+ 	     -e "/^internalname .*[^ 0-9]/d" \
+ 	     $(srcdir)/R.proto >$@)
+ 
++M: M.proto
++	@echo Making M
++	@-rm -f M
++	(wcharwidth=`expr $(RES) / $(CPI) \* 2` ; \
++	  spacewidth=`expr $(RES) / $(CPI)` ; \
++	  sed -e "s/^spacewidth [0-9][0-9]*$$/spacewidth $$spacewidth/" \
++	      -e "s/^u\\([0-9A-F]*\\)..u\\([0-9A-F]*\\) [0-9][0-9]*/u\\1..u\\2 $$wcharwidth/" \
++	  $(srcdir)/M.proto > $@)
++
++G: M
++	@echo Making G
++	@-rm -f G
++	@sed -e 's/name M/name G/' \
++	    -e 's/internalname 4/internalname 5/' M > G
++
+ DESC: DESC.proto
+ 	@echo Making $@
+ 	@-rm -f $@
+ 	@sed -e "s/^res .*$$/res $(RES)/" \
+ 	    -e "s/^hor .*$$/hor `expr $(RES) / $(CPI)`/" \
+ 	    -e "s/^vert .*$$/vert `expr $(RES) / $(LPI)`/" \
+-	    -e "s/^fonts .*$$/fonts `set $(FONTS); echo $$#` $(FONTS)/" \
++	    -e "s/^fonts .*$$/fonts `set $(FONTS) $(WFONTS); echo $$#` $(FONTS) $(WFONTS)/" \
+ 	    $(srcdir)/DESC.proto >$@
+ 
+--- groff-1.18.1.1.orig/font/devutf8/DESC.proto
++++ groff-1.18.1.1/font/devutf8/DESC.proto
+@@ -3,6 +3,10 @@
+ vert 40
+ unitwidth 10
+ sizes 10 0
+-fonts 4 R I B BI
++fonts 6 R I B BI M G
++fontset B G 2E00..9FFF
++fontset B G FF00..FFEF
++fontset - M 2E00..9FFF
++fontset - M FF00..FFEF
+ tcommand
+ postpro grotty
+--- groff-1.18.1.1.orig/font/devhtml/M.proto
++++ groff-1.18.1.1/font/devhtml/M.proto
+@@ -0,0 +1,5 @@
++name M
++spacewidth 16
++charset
++u2E00..u9FFF 16,14,2 0
++uFF00..uFFEF 16,14,2 0
+--- groff-1.18.1.1.orig/font/devhtml/Makefile.sub
++++ groff-1.18.1.1/font/devhtml/Makefile.sub
+@@ -1,8 +1,10 @@
+ DEV=html
+ PROTOFONTS=R I B BI CR CI CB CBI
+ FONTS=$(PROTOFONTS) S
+-DEVFILES=$(FONTS) DESC
+-CLEANADD=$(FONTS) DESC
++WFONTS=M G
++ALLFONTS=$(FONTS) $(WFONTS)
++DEVFILES=$(ALLFONTS) DESC
++CLEANADD=$(ALLFONTS) DESC
+ 
+ RES=240
+ CPI=10
+@@ -13,8 +15,8 @@
+ 	@-rm -f $@
+ 	@(charwidth=`expr $(RES) / $(CPI)` ; \
+  	 sed -e "s/^name [A-Z]*$$/name $@/" \
+-	     -e "s/^\\([^	]*\\)	[0-9]+	/\\1	$$charwidth	/" \
+-	     -e "s/^spacewidth [0-9]+$$/spacewidth $$charwidth/" \
++	     -e "s/^\\([^	]*\\)	[0-9][0-9]*	/\\1	$$charwidth	/" \
++	     -e "s/^spacewidth [0-9][0-9]*$$/spacewidth $$charwidth/" \
+ 	     -e "s/^internalname .*$$/internalname $@/" \
+ 	     -e "/^internalname/s/CR/4/" \
+ 	     -e "/^internalname/s/BI/3/" \
+@@ -29,6 +31,19 @@
+ 	@sed -e "s/^res .*$$/res $(RES)/" \
+ 	    -e "s/^hor .*$$/hor `expr $(RES) / $(CPI)`/" \
+ 	    -e "s/^vert .*$$/vert `expr $(RES) / $(LPI)`/" \
+-	    -e "s/^fonts .*$$/fonts `set $(FONTS); echo $$#` $(FONTS)/" \
++	    -e "s/^fonts .*$$/fonts `set $(ALLFONTS); echo $$#` $(ALLFONTS)/" \
+ 	    $(srcdir)/DESC.proto >$@
+ 
++M: M.proto
++	@echo Making M
++	@-rm -f M
++	@(wcharwidth=`expr $(RES) / $(CPI) \* 2`; \
++	  spacewidth=`expr $(RES) / $(CPI)`; \
++	 sed -e "s/^u\\([0-9A-F]*\\)..u\\([0-9A-F]*\\) [0-9][0-9]*/u\\1..u\\2 $$wcharwidth/" \
++	     -e "s/^spacewidth [0-9][0-9]*$$/spacewidth $$spacewidth/" \
++	   $(srcdir)/M.proto > $@)
++
++G: M
++	@echo Making G
++	@-rm -f G
++	@sed -e 's/name M/name G/' M > G
+--- groff-1.18.1.1.orig/font/devhtml/DESC.proto
++++ groff-1.18.1.1/font/devhtml/DESC.proto
+@@ -3,7 +3,11 @@
+ vert 40
+ unitwidth 10
+ sizes 6 8 10 12 14 16 18 0
+-fonts 9 R I B BI CR CI CB CBI S
++fonts 11 R I B BI CR CI CB CBI S M G
++fontset B G 2E00..9FFF
++fontset - M 2E00..9FFF
++fontset B G FF00..FFEF
++fontset - M FF00..FFEF
+ tcommand
+ html
+ postpro post-grohtml
+--- groff-1.18.1.1.orig/font/devX75-12/DESC
++++ groff-1.18.1.1/font/devX75-12/DESC
+@@ -1,5 +1,17 @@
+ styles R I B BI
+-fonts 6 0 0 0 0 0 S
++fonts 8 0 0 0 0 0 S M G
++fontset B G 2E00..9FFF
++fontset CB G 2E00..9FFF
++fontset HB G 2E00..9FFF
++fontset NB G 2E00..9FFF
++fontset TB G 2E00..9FFF
++fontset - M 2E00..9FFF
++fontset B G FF00..FFEF
++fontset CB G FF00..FFEF
++fontset HB G FF00..FFEF
++fontset NB G FF00..FFEF
++fontset TB G FF00..FFEF
++fontset - M FF00..FFEF
+ sizes 8 10 12 14 18 24 0
+ res 75
+ X11
+--- groff-1.18.1.1.orig/font/devX75-12/M.proto
++++ groff-1.18.1.1/font/devX75-12/M.proto
+@@ -0,0 +1,5 @@
++name M
++spacewidth 2
++charset
++u2E00..u9FFF 12 0
++uFF00..uFFEF 12 0
+--- groff-1.18.1.1.orig/font/devX75-12/Makefile.sub
++++ groff-1.18.1.1/font/devX75-12/Makefile.sub
+@@ -1,2 +1,13 @@
+ DEV=X75-12
+-DEVFILES=DESC TR TI TB TBI CR CI CB CBI HR HI HB HBI NR NI NB NBI S
++DEVFILES=DESC TR TI TB TBI CR CI CB CBI HR HI HB HBI NR NI NB NBI S M G
++CLEANADD=M G
++
++M: M.proto
++	@echo Making M
++	@-rm -f M
++	@cat $(srcdir)/M.proto > M
++
++G: M
++	@echo Making G
++	@-rm -f G
++	@sed -e 's/name M/name G/' M > G
+--- groff-1.18.1.1.orig/font/devdvi/M.proto-NTT
++++ groff-1.18.1.1/font/devdvi/M.proto-NTT
+@@ -0,0 +1,6882 @@
++name M
++internalname dmj10
++checksum 0
++designsize 10485760
++charset
++¡¡	F	1:0
++¡¢	F	2:0
++¡£	F	3:0
++¡¤	F	4:0
++¡¥	F	5:0
++¡¦	F	6:0
++¡§	F	7:0
++¡¨	F	8:0
++¡©	F	9:0
++¡ª	F	10:0
++¡«	F	11:0
++¡¬	F	12:0
++¡­	F	13:0
++¡®	F	14:0
++¡¯	F	15:0
++¡°	F	16:0
++¡±	F	17:0
++¡²	F	18:0
++¡³	F	19:0
++¡´	F	20:0
++¡µ	F	21:0
++¡¶	F	22:0
++¡·	F	23:0
++¡¸	F	24:0
++¡¹	F	25:0
++¡º	F	26:0
++¡»	F	27:0
++¡¼	F	28:0
++¡½	F	29:0
++¡¾	F	30:0
++¡¿	F	31:0
++¡À	F	32:0
++¡Á	F	33:0
++¡Â	F	34:0
++¡Ã	F	35:0
++¡Ä	F	36:0
++¡Å	F	37:0
++¡Æ	F	38:0
++¡Ç	F	39:0
++¡È	F	40:0
++¡É	F	41:0
++¡Ê	F	42:0
++¡Ë	F	43:0
++¡Ì	F	44:0
++¡Í	F	45:0
++¡Î	F	46:0
++¡Ï	F	47:0
++¡Ð	F	48:0
++¡Ñ	F	49:0
++¡Ò	F	50:0
++¡Ó	F	51:0
++¡Ô	F	52:0
++¡Õ	F	53:0
++¡Ö	F	54:0
++¡×	F	55:0
++¡Ø	F	56:0
++¡Ù	F	57:0
++¡Ú	F	58:0
++¡Û	F	59:0
++¡Ü	F	60:0
++¡Ý	F	61:0
++¡Þ	F	62:0
++¡ß	F	63:0
++¡à	F	64:0
++¡á	F	65:0
++¡â	F	66:0
++¡ã	F	67:0
++¡ä	F	68:0
++¡å	F	69:0
++¡æ	F	70:0
++¡ç	F	71:0
++¡è	F	72:0
++¡é	F	73:0
++¡ê	F	74:0
++¡ë	F	75:0
++¡ì	F	76:0
++¡í	F	77:0
++¡î	F	78:0
++¡ï	F	79:0
++¡ð	F	80:0
++¡ñ	F	81:0
++¡ò	F	82:0
++¡ó	F	83:0
++¡ô	F	84:0
++¡õ	F	85:0
++¡ö	F	86:0
++¡÷	F	87:0
++¡ø	F	88:0
++¡ù	F	89:0
++¡ú	F	90:0
++¡û	F	91:0
++¡ü	F	92:0
++¡ý	F	93:0
++¡þ	F	94:0
++¢¡	F	101:0
++¢¢	F	102:0
++¢£	F	103:0
++¢¤	F	104:0
++¢¥	F	105:0
++¢¦	F	106:0
++¢§	F	107:0
++¢¨	F	108:0
++¢©	F	109:0
++¢ª	F	110:0
++¢«	F	111:0
++¢¬	F	112:0
++¢­	F	113:0
++¢®	F	114:0
++¢º	F	126:0
++¢»	F	127:0
++¢¼	F	128:0
++¢½	F	129:0
++¢¾	F	130:0
++¢¿	F	131:0
++¢À	F	132:0
++¢Á	F	133:0
++¢Ê	F	142:0
++¢Ë	F	143:0
++¢Ì	F	144:0
++¢Í	F	145:0
++¢Î	F	146:0
++¢Ï	F	147:0
++¢Ð	F	148:0
++¢Ü	F	160:0
++¢Ý	F	161:0
++¢Þ	F	162:0
++¢ß	F	163:0
++¢à	F	164:0
++¢á	F	165:0
++¢â	F	166:0
++¢ã	F	167:0
++¢ä	F	168:0
++¢å	F	169:0
++¢æ	F	170:0
++¢ç	F	171:0
++¢è	F	172:0
++¢é	F	173:0
++¢ê	F	174:0
++¢ò	F	182:0
++¢ó	F	183:0
++¢ô	F	184:0
++¢õ	F	185:0
++¢ö	F	186:0
++¢÷	F	187:0
++¢ø	F	188:0
++¢ù	F	189:0
++¢þ	F	194:0
++£°	F	48:1
++£±	F	49:1
++£²	F	50:1
++£³	F	51:1
++£´	F	52:1
++£µ	F	53:1
++£¶	F	54:1
++£·	F	55:1
++£¸	F	56:1
++£¹	F	57:1
++£Á	F	65:1
++£Â	F	66:1
++£Ã	F	67:1
++£Ä	F	68:1
++£Å	F	69:1
++£Æ	F	70:1
++£Ç	F	71:1
++£È	F	72:1
++£É	F	73:1
++£Ê	F	74:1
++£Ë	F	75:1
++£Ì	F	76:1
++£Í	F	77:1
++£Î	F	78:1
++£Ï	F	79:1
++£Ð	F	80:1
++£Ñ	F	81:1
++£Ò	F	82:1
++£Ó	F	83:1
++£Ô	F	84:1
++£Õ	F	85:1
++£Ö	F	86:1
++£×	F	87:1
++£Ø	F	88:1
++£Ù	F	89:1
++£Ú	F	90:1
++£á	F	97:1
++£â	F	98:1
++£ã	F	99:1
++£ä	F	100:1
++£å	F	101:1
++£æ	F	102:1
++£ç	F	103:1
++£è	F	104:1
++£é	F	105:1
++£ê	F	106:1
++£ë	F	107:1
++£ì	F	108:1
++£í	F	109:1
++£î	F	110:1
++£ï	F	111:1
++£ð	F	112:1
++£ñ	F	113:1
++£ò	F	114:1
++£ó	F	115:1
++£ô	F	116:1
++£õ	F	117:1
++£ö	F	118:1
++£÷	F	119:1
++£ø	F	120:1
++£ù	F	121:1
++£ú	F	122:1
++¤¡	F	1:2
++¤¢	F	2:2
++¤£	F	3:2
++¤¤	F	4:2
++¤¥	F	5:2
++¤¦	F	6:2
++¤§	F	7:2
++¤¨	F	8:2
++¤©	F	9:2
++¤ª	F	10:2
++¤«	F	11:2
++¤¬	F	12:2
++¤­	F	13:2
++¤®	F	14:2
++¤¯	F	15:2
++¤°	F	16:2
++¤±	F	17:2
++¤²	F	18:2
++¤³	F	19:2
++¤´	F	20:2
++¤µ	F	21:2
++¤¶	F	22:2
++¤·	F	23:2
++¤¸	F	24:2
++¤¹	F	25:2
++¤º	F	26:2
++¤»	F	27:2
++¤¼	F	28:2
++¤½	F	29:2
++¤¾	F	30:2
++¤¿	F	31:2
++¤À	F	32:2
++¤Á	F	33:2
++¤Â	F	34:2
++¤Ã	F	35:2
++¤Ä	F	36:2
++¤Å	F	37:2
++¤Æ	F	38:2
++¤Ç	F	39:2
++¤È	F	40:2
++¤É	F	41:2
++¤Ê	F	42:2
++¤Ë	F	43:2
++¤Ì	F	44:2
++¤Í	F	45:2
++¤Î	F	46:2
++¤Ï	F	47:2
++¤Ð	F	48:2
++¤Ñ	F	49:2
++¤Ò	F	50:2
++¤Ó	F	51:2
++¤Ô	F	52:2
++¤Õ	F	53:2
++¤Ö	F	54:2
++¤×	F	55:2
++¤Ø	F	56:2
++¤Ù	F	57:2
++¤Ú	F	58:2
++¤Û	F	59:2
++¤Ü	F	60:2
++¤Ý	F	61:2
++¤Þ	F	62:2
++¤ß	F	63:2
++¤à	F	64:2
++¤á	F	65:2
++¤â	F	66:2
++¤ã	F	67:2
++¤ä	F	68:2
++¤å	F	69:2
++¤æ	F	70:2
++¤ç	F	71:2
++¤è	F	72:2
++¤é	F	73:2
++¤ê	F	74:2
++¤ë	F	75:2
++¤ì	F	76:2
++¤í	F	77:2
++¤î	F	78:2
++¤ï	F	79:2
++¤ð	F	80:2
++¤ñ	F	81:2
++¤ò	F	82:2
++¤ó	F	83:2
++¥¡	F	1:3
++¥¢	F	2:3
++¥£	F	3:3
++¥¤	F	4:3
++¥¥	F	5:3
++¥¦	F	6:3
++¥§	F	7:3
++¥¨	F	8:3
++¥©	F	9:3
++¥ª	F	10:3
++¥«	F	11:3
++¥¬	F	12:3
++¥­	F	13:3
++¥®	F	14:3
++¥¯	F	15:3
++¥°	F	16:3
++¥±	F	17:3
++¥²	F	18:3
++¥³	F	19:3
++¥´	F	20:3
++¥µ	F	21:3
++¥¶	F	22:3
++¥·	F	23:3
++¥¸	F	24:3
++¥¹	F	25:3
++¥º	F	26:3
++¥»	F	27:3
++¥¼	F	28:3
++¥½	F	29:3
++¥¾	F	30:3
++¥¿	F	31:3
++¥À	F	32:3
++¥Á	F	33:3
++¥Â	F	34:3
++¥Ã	F	35:3
++¥Ä	F	36:3
++¥Å	F	37:3
++¥Æ	F	38:3
++¥Ç	F	39:3
++¥È	F	40:3
++¥É	F	41:3
++¥Ê	F	42:3
++¥Ë	F	43:3
++¥Ì	F	44:3
++¥Í	F	45:3
++¥Î	F	46:3
++¥Ï	F	47:3
++¥Ð	F	48:3
++¥Ñ	F	49:3
++¥Ò	F	50:3
++¥Ó	F	51:3
++¥Ô	F	52:3
++¥Õ	F	53:3
++¥Ö	F	54:3
++¥×	F	55:3
++¥Ø	F	56:3
++¥Ù	F	57:3
++¥Ú	F	58:3
++¥Û	F	59:3
++¥Ü	F	60:3
++¥Ý	F	61:3
++¥Þ	F	62:3
++¥ß	F	63:3
++¥à	F	64:3
++¥á	F	65:3
++¥â	F	66:3
++¥ã	F	67:3
++¥ä	F	68:3
++¥å	F	69:3
++¥æ	F	70:3
++¥ç	F	71:3
++¥è	F	72:3
++¥é	F	73:3
++¥ê	F	74:3
++¥ë	F	75:3
++¥ì	F	76:3
++¥í	F	77:3
++¥î	F	78:3
++¥ï	F	79:3
++¥ð	F	80:3
++¥ñ	F	81:3
++¥ò	F	82:3
++¥ó	F	83:3
++¥ô	F	84:3
++¥õ	F	85:3
++¥ö	F	86:3
++¦¡	F	1:4
++¦¢	F	2:4
++¦£	F	3:4
++¦¤	F	4:4
++¦¥	F	5:4
++¦¦	F	6:4
++¦§	F	7:4
++¦¨	F	8:4
++¦©	F	9:4
++¦ª	F	10:4
++¦«	F	11:4
++¦¬	F	12:4
++¦­	F	13:4
++¦®	F	14:4
++¦¯	F	15:4
++¦°	F	16:4
++¦±	F	17:4
++¦²	F	18:4
++¦³	F	19:4
++¦´	F	20:4
++¦µ	F	21:4
++¦¶	F	22:4
++¦·	F	23:4
++¦¸	F	24:4
++¦Á	F	33:4
++¦Â	F	34:4
++¦Ã	F	35:4
++¦Ä	F	36:4
++¦Å	F	37:4
++¦Æ	F	38:4
++¦Ç	F	39:4
++¦È	F	40:4
++¦É	F	41:4
++¦Ê	F	42:4
++¦Ë	F	43:4
++¦Ì	F	44:4
++¦Í	F	45:4
++¦Î	F	46:4
++¦Ï	F	47:4
++¦Ð	F	48:4
++¦Ñ	F	49:4
++¦Ò	F	50:4
++¦Ó	F	51:4
++¦Ô	F	52:4
++¦Õ	F	53:4
++¦Ö	F	54:4
++¦×	F	55:4
++¦Ø	F	56:4
++§¡	F	1:5
++§¢	F	2:5
++§£	F	3:5
++§¤	F	4:5
++§¥	F	5:5
++§¦	F	6:5
++§§	F	7:5
++§¨	F	8:5
++§©	F	9:5
++§ª	F	10:5
++§«	F	11:5
++§¬	F	12:5
++§­	F	13:5
++§®	F	14:5
++§¯	F	15:5
++§°	F	16:5
++§±	F	17:5
++§²	F	18:5
++§³	F	19:5
++§´	F	20:5
++§µ	F	21:5
++§¶	F	22:5
++§·	F	23:5
++§¸	F	24:5
++§¹	F	25:5
++§º	F	26:5
++§»	F	27:5
++§¼	F	28:5
++§½	F	29:5
++§¾	F	30:5
++§¿	F	31:5
++§À	F	32:5
++§Á	F	33:5
++§Ñ	F	49:5
++§Ò	F	50:5
++§Ó	F	51:5
++§Ô	F	52:5
++§Õ	F	53:5
++§Ö	F	54:5
++§×	F	55:5
++§Ø	F	56:5
++§Ù	F	57:5
++§Ú	F	58:5
++§Û	F	59:5
++§Ü	F	60:5
++§Ý	F	61:5
++§Þ	F	62:5
++§ß	F	63:5
++§à	F	64:5
++§á	F	65:5
++§â	F	66:5
++§ã	F	67:5
++§ä	F	68:5
++§å	F	69:5
++§æ	F	70:5
++§ç	F	71:5
++§è	F	72:5
++§é	F	73:5
++§ê	F	74:5
++§ë	F	75:5
++§ì	F	76:5
++§í	F	77:5
++§î	F	78:5
++§ï	F	79:5
++§ð	F	80:5
++§ñ	F	81:5
++¨¡	F	1:6
++¨¢	F	2:6
++¨£	F	3:6
++¨¤	F	4:6
++¨¥	F	5:6
++¨¦	F	6:6
++¨§	F	7:6
++¨¨	F	8:6
++¨©	F	9:6
++¨ª	F	10:6
++¨«	F	11:6
++¨¬	F	12:6
++¨­	F	13:6
++¨®	F	14:6
++¨¯	F	15:6
++¨°	F	16:6
++¨±	F	17:6
++¨²	F	18:6
++¨³	F	19:6
++¨´	F	20:6
++¨µ	F	21:6
++¨¶	F	22:6
++¨·	F	23:6
++¨¸	F	24:6
++¨¹	F	25:6
++¨º	F	26:6
++¨»	F	27:6
++¨¼	F	28:6
++¨½	F	29:6
++¨¾	F	30:6
++¨¿	F	31:6
++¨À	F	32:6
++°¡	F	0:a
++°¢	F	1:a
++°£	F	2:a
++°¤	F	3:a
++°¥	F	4:a
++°¦	F	5:a
++°§	F	6:a
++°¨	F	7:a
++°©	F	8:a
++°ª	F	9:a
++°«	F	10:a
++°¬	F	11:a
++°­	F	12:a
++°®	F	13:a
++°¯	F	14:a
++°°	F	15:a
++°±	F	16:a
++°²	F	17:a
++°³	F	18:a
++°´	F	19:a
++°µ	F	20:a
++°¶	F	21:a
++°·	F	22:a
++°¸	F	23:a
++°¹	F	24:a
++°º	F	25:a
++°»	F	26:a
++°¼	F	27:a
++°½	F	28:a
++°¾	F	29:a
++°¿	F	30:a
++°À	F	31:a
++°Á	F	32:a
++°Â	F	33:a
++°Ã	F	34:a
++°Ä	F	35:a
++°Å	F	36:a
++°Æ	F	37:a
++°Ç	F	38:a
++°È	F	39:a
++°É	F	40:a
++°Ê	F	41:a
++°Ë	F	42:a
++°Ì	F	43:a
++°Í	F	44:a
++°Î	F	45:a
++°Ï	F	46:a
++°Ð	F	47:a
++°Ñ	F	48:a
++°Ò	F	49:a
++°Ó	F	50:a
++°Ô	F	51:a
++°Õ	F	52:a
++°Ö	F	53:a
++°×	F	54:a
++°Ø	F	55:a
++°Ù	F	56:a
++°Ú	F	57:a
++°Û	F	58:a
++°Ü	F	59:a
++°Ý	F	60:a
++°Þ	F	61:a
++°ß	F	62:a
++°à	F	63:a
++°á	F	64:a
++°â	F	65:a
++°ã	F	66:a
++°ä	F	67:a
++°å	F	68:a
++°æ	F	69:a
++°ç	F	70:a
++°è	F	71:a
++°é	F	72:a
++°ê	F	73:a
++°ë	F	74:a
++°ì	F	75:a
++°í	F	76:a
++°î	F	77:a
++°ï	F	78:a
++°ð	F	79:a
++°ñ	F	80:a
++°ò	F	81:a
++°ó	F	82:a
++°ô	F	83:a
++°õ	F	84:a
++°ö	F	85:a
++°÷	F	86:a
++°ø	F	87:a
++°ù	F	88:a
++°ú	F	89:a
++°û	F	90:a
++°ü	F	91:a
++°ý	F	92:a
++°þ	F	93:a
++±¡	F	94:a
++±¢	F	95:a
++±£	F	96:a
++±¤	F	97:a
++±¥	F	98:a
++±¦	F	99:a
++±§	F	100:a
++±¨	F	101:a
++±©	F	102:a
++±ª	F	103:a
++±«	F	104:a
++±¬	F	105:a
++±­	F	106:a
++±®	F	107:a
++±¯	F	108:a
++±°	F	109:a
++±±	F	110:a
++±²	F	111:a
++±³	F	112:a
++±´	F	113:a
++±µ	F	114:a
++±¶	F	115:a
++±·	F	116:a
++±¸	F	117:a
++±¹	F	118:a
++±º	F	119:a
++±»	F	120:a
++±¼	F	121:a
++±½	F	122:a
++±¾	F	123:a
++±¿	F	124:a
++±À	F	125:a
++±Á	F	126:a
++±Â	F	127:a
++±Ã	F	128:a
++±Ä	F	129:a
++±Å	F	130:a
++±Æ	F	131:a
++±Ç	F	132:a
++±È	F	133:a
++±É	F	134:a
++±Ê	F	135:a
++±Ë	F	136:a
++±Ì	F	137:a
++±Í	F	138:a
++±Î	F	139:a
++±Ï	F	140:a
++±Ð	F	141:a
++±Ñ	F	142:a
++±Ò	F	143:a
++±Ó	F	144:a
++±Ô	F	145:a
++±Õ	F	146:a
++±Ö	F	147:a
++±×	F	148:a
++±Ø	F	149:a
++±Ù	F	150:a
++±Ú	F	151:a
++±Û	F	152:a
++±Ü	F	153:a
++±Ý	F	154:a
++±Þ	F	155:a
++±ß	F	156:a
++±à	F	157:a
++±á	F	158:a
++±â	F	159:a
++±ã	F	160:a
++±ä	F	161:a
++±å	F	162:a
++±æ	F	163:a
++±ç	F	164:a
++±è	F	165:a
++±é	F	166:a
++±ê	F	167:a
++±ë	F	168:a
++±ì	F	169:a
++±í	F	170:a
++±î	F	171:a
++±ï	F	172:a
++±ð	F	173:a
++±ñ	F	174:a
++±ò	F	175:a
++±ó	F	176:a
++±ô	F	177:a
++±õ	F	178:a
++±ö	F	179:a
++±÷	F	180:a
++±ø	F	181:a
++±ù	F	182:a
++±ú	F	183:a
++±û	F	184:a
++±ü	F	185:a
++±ý	F	186:a
++±þ	F	187:a
++²¡	F	188:a
++²¢	F	189:a
++²£	F	190:a
++²¤	F	191:a
++²¥	F	192:a
++²¦	F	193:a
++²§	F	194:a
++²¨	F	195:a
++²©	F	196:a
++²ª	F	197:a
++²«	F	198:a
++²¬	F	199:a
++²­	F	200:a
++²®	F	201:a
++²¯	F	202:a
++²°	F	203:a
++²±	F	204:a
++²²	F	205:a
++²³	F	206:a
++²´	F	207:a
++²µ	F	208:a
++²¶	F	209:a
++²·	F	210:a
++²¸	F	211:a
++²¹	F	212:a
++²º	F	213:a
++²»	F	214:a
++²¼	F	215:a
++²½	F	216:a
++²¾	F	217:a
++²¿	F	218:a
++²À	F	219:a
++²Á	F	220:a
++²Â	F	221:a
++²Ã	F	222:a
++²Ä	F	223:a
++²Å	F	224:a
++²Æ	F	225:a
++²Ç	F	226:a
++²È	F	227:a
++²É	F	228:a
++²Ê	F	229:a
++²Ë	F	230:a
++²Ì	F	231:a
++²Í	F	232:a
++²Î	F	233:a
++²Ï	F	234:a
++²Ð	F	235:a
++²Ñ	F	236:a
++²Ò	F	237:a
++²Ó	F	238:a
++²Ô	F	239:a
++²Õ	F	240:a
++²Ö	F	241:a
++²×	F	242:a
++²Ø	F	243:a
++²Ù	F	244:a
++²Ú	F	245:a
++²Û	F	246:a
++²Ü	F	247:a
++²Ý	F	248:a
++²Þ	F	249:a
++²ß	F	250:a
++²à	F	251:a
++²á	F	252:a
++²â	F	253:a
++²ã	F	254:a
++²ä	F	255:a
++²å	F	0:b
++²æ	F	1:b
++²ç	F	2:b
++²è	F	3:b
++²é	F	4:b
++²ê	F	5:b
++²ë	F	6:b
++²ì	F	7:b
++²í	F	8:b
++²î	F	9:b
++²ï	F	10:b
++²ð	F	11:b
++²ñ	F	12:b
++²ò	F	13:b
++²ó	F	14:b
++²ô	F	15:b
++²õ	F	16:b
++²ö	F	17:b
++²÷	F	18:b
++²ø	F	19:b
++²ù	F	20:b
++²ú	F	21:b
++²û	F	22:b
++²ü	F	23:b
++²ý	F	24:b
++²þ	F	25:b
++³¡	F	26:b
++³¢	F	27:b
++³£	F	28:b
++³¤	F	29:b
++³¥	F	30:b
++³¦	F	31:b
++³§	F	32:b
++³¨	F	33:b
++³©	F	34:b
++³ª	F	35:b
++³«	F	36:b
++³¬	F	37:b
++³­	F	38:b
++³®	F	39:b
++³¯	F	40:b
++³°	F	41:b
++³±	F	42:b
++³²	F	43:b
++³³	F	44:b
++³´	F	45:b
++³µ	F	46:b
++³¶	F	47:b
++³·	F	48:b
++³¸	F	49:b
++³¹	F	50:b
++³º	F	51:b
++³»	F	52:b
++³¼	F	53:b
++³½	F	54:b
++³¾	F	55:b
++³¿	F	56:b
++³À	F	57:b
++³Á	F	58:b
++³Â	F	59:b
++³Ã	F	60:b
++³Ä	F	61:b
++³Å	F	62:b
++³Æ	F	63:b
++³Ç	F	64:b
++³È	F	65:b
++³É	F	66:b
++³Ê	F	67:b
++³Ë	F	68:b
++³Ì	F	69:b
++³Í	F	70:b
++³Î	F	71:b
++³Ï	F	72:b
++³Ð	F	73:b
++³Ñ	F	74:b
++³Ò	F	75:b
++³Ó	F	76:b
++³Ô	F	77:b
++³Õ	F	78:b
++³Ö	F	79:b
++³×	F	80:b
++³Ø	F	81:b
++³Ù	F	82:b
++³Ú	F	83:b
++³Û	F	84:b
++³Ü	F	85:b
++³Ý	F	86:b
++³Þ	F	87:b
++³ß	F	88:b
++³à	F	89:b
++³á	F	90:b
++³â	F	91:b
++³ã	F	92:b
++³ä	F	93:b
++³å	F	94:b
++³æ	F	95:b
++³ç	F	96:b
++³è	F	97:b
++³é	F	98:b
++³ê	F	99:b
++³ë	F	100:b
++³ì	F	101:b
++³í	F	102:b
++³î	F	103:b
++³ï	F	104:b
++³ð	F	105:b
++³ñ	F	106:b
++³ò	F	107:b
++³ó	F	108:b
++³ô	F	109:b
++³õ	F	110:b
++³ö	F	111:b
++³÷	F	112:b
++³ø	F	113:b
++³ù	F	114:b
++³ú	F	115:b
++³û	F	116:b
++³ü	F	117:b
++³ý	F	118:b
++³þ	F	119:b
++´¡	F	120:b
++´¢	F	121:b
++´£	F	122:b
++´¤	F	123:b
++´¥	F	124:b
++´¦	F	125:b
++´§	F	126:b
++´¨	F	127:b
++´©	F	128:b
++´ª	F	129:b
++´«	F	130:b
++´¬	F	131:b
++´­	F	132:b
++´®	F	133:b
++´¯	F	134:b
++´°	F	135:b
++´±	F	136:b
++´²	F	137:b
++´³	F	138:b
++´´	F	139:b
++´µ	F	140:b
++´¶	F	141:b
++´·	F	142:b
++´¸	F	143:b
++´¹	F	144:b
++´º	F	145:b
++´»	F	146:b
++´¼	F	147:b
++´½	F	148:b
++´¾	F	149:b
++´¿	F	150:b
++´À	F	151:b
++´Á	F	152:b
++´Â	F	153:b
++´Ã	F	154:b
++´Ä	F	155:b
++´Å	F	156:b
++´Æ	F	157:b
++´Ç	F	158:b
++´È	F	159:b
++´É	F	160:b
++´Ê	F	161:b
++´Ë	F	162:b
++´Ì	F	163:b
++´Í	F	164:b
++´Î	F	165:b
++´Ï	F	166:b
++´Ð	F	167:b
++´Ñ	F	168:b
++´Ò	F	169:b
++´Ó	F	170:b
++´Ô	F	171:b
++´Õ	F	172:b
++´Ö	F	173:b
++´×	F	174:b
++´Ø	F	175:b
++´Ù	F	176:b
++´Ú	F	177:b
++´Û	F	178:b
++´Ü	F	179:b
++´Ý	F	180:b
++´Þ	F	181:b
++´ß	F	182:b
++´à	F	183:b
++´á	F	184:b
++´â	F	185:b
++´ã	F	186:b
++´ä	F	187:b
++´å	F	188:b
++´æ	F	189:b
++´ç	F	190:b
++´è	F	191:b
++´é	F	192:b
++´ê	F	193:b
++´ë	F	194:b
++´ì	F	195:b
++´í	F	196:b
++´î	F	197:b
++´ï	F	198:b
++´ð	F	199:b
++´ñ	F	200:b
++´ò	F	201:b
++´ó	F	202:b
++´ô	F	203:b
++´õ	F	204:b
++´ö	F	205:b
++´÷	F	206:b
++´ø	F	207:b
++´ù	F	208:b
++´ú	F	209:b
++´û	F	210:b
++´ü	F	211:b
++´ý	F	212:b
++´þ	F	213:b
++µ¡	F	214:b
++µ¢	F	215:b
++µ£	F	216:b
++µ¤	F	217:b
++µ¥	F	218:b
++µ¦	F	219:b
++µ§	F	220:b
++µ¨	F	221:b
++µ©	F	222:b
++µª	F	223:b
++µ«	F	224:b
++µ¬	F	225:b
++µ­	F	226:b
++µ®	F	227:b
++µ¯	F	228:b
++µ°	F	229:b
++µ±	F	230:b
++µ²	F	231:b
++µ³	F	232:b
++µ´	F	233:b
++µµ	F	234:b
++µ¶	F	235:b
++µ·	F	236:b
++µ¸	F	237:b
++µ¹	F	238:b
++µº	F	239:b
++µ»	F	240:b
++µ¼	F	241:b
++µ½	F	242:b
++µ¾	F	243:b
++µ¿	F	244:b
++µÀ	F	245:b
++µÁ	F	246:b
++µÂ	F	247:b
++µÃ	F	248:b
++µÄ	F	249:b
++µÅ	F	250:b
++µÆ	F	251:b
++µÇ	F	252:b
++µÈ	F	253:b
++µÉ	F	254:b
++µÊ	F	255:b
++µË	F	0:c
++µÌ	F	1:c
++µÍ	F	2:c
++µÎ	F	3:c
++µÏ	F	4:c
++µÐ	F	5:c
++µÑ	F	6:c
++µÒ	F	7:c
++µÓ	F	8:c
++µÔ	F	9:c
++µÕ	F	10:c
++µÖ	F	11:c
++µ×	F	12:c
++µØ	F	13:c
++µÙ	F	14:c
++µÚ	F	15:c
++µÛ	F	16:c
++µÜ	F	17:c
++µÝ	F	18:c
++µÞ	F	19:c
++µß	F	20:c
++µà	F	21:c
++µá	F	22:c
++µâ	F	23:c
++µã	F	24:c
++µä	F	25:c
++µå	F	26:c
++µæ	F	27:c
++µç	F	28:c
++µè	F	29:c
++µé	F	30:c
++µê	F	31:c
++µë	F	32:c
++µì	F	33:c
++µí	F	34:c
++µî	F	35:c
++µï	F	36:c
++µð	F	37:c
++µñ	F	38:c
++µò	F	39:c
++µó	F	40:c
++µô	F	41:c
++µõ	F	42:c
++µö	F	43:c
++µ÷	F	44:c
++µø	F	45:c
++µù	F	46:c
++µú	F	47:c
++µû	F	48:c
++µü	F	49:c
++µý	F	50:c
++µþ	F	51:c
++¶¡	F	52:c
++¶¢	F	53:c
++¶£	F	54:c
++¶¤	F	55:c
++¶¥	F	56:c
++¶¦	F	57:c
++¶§	F	58:c
++¶¨	F	59:c
++¶©	F	60:c
++¶ª	F	61:c
++¶«	F	62:c
++¶¬	F	63:c
++¶­	F	64:c
++¶®	F	65:c
++¶¯	F	66:c
++¶°	F	67:c
++¶±	F	68:c
++¶²	F	69:c
++¶³	F	70:c
++¶´	F	71:c
++¶µ	F	72:c
++¶¶	F	73:c
++¶·	F	74:c
++¶¸	F	75:c
++¶¹	F	76:c
++¶º	F	77:c
++¶»	F	78:c
++¶¼	F	79:c
++¶½	F	80:c
++¶¾	F	81:c
++¶¿	F	82:c
++¶À	F	83:c
++¶Á	F	84:c
++¶Â	F	85:c
++¶Ã	F	86:c
++¶Ä	F	87:c
++¶Å	F	88:c
++¶Æ	F	89:c
++¶Ç	F	90:c
++¶È	F	91:c
++¶É	F	92:c
++¶Ê	F	93:c
++¶Ë	F	94:c
++¶Ì	F	95:c
++¶Í	F	96:c
++¶Î	F	97:c
++¶Ï	F	98:c
++¶Ð	F	99:c
++¶Ñ	F	100:c
++¶Ò	F	101:c
++¶Ó	F	102:c
++¶Ô	F	103:c
++¶Õ	F	104:c
++¶Ö	F	105:c
++¶×	F	106:c
++¶Ø	F	107:c
++¶Ù	F	108:c
++¶Ú	F	109:c
++¶Û	F	110:c
++¶Ü	F	111:c
++¶Ý	F	112:c
++¶Þ	F	113:c
++¶ß	F	114:c
++¶à	F	115:c
++¶á	F	116:c
++¶â	F	117:c
++¶ã	F	118:c
++¶ä	F	119:c
++¶å	F	120:c
++¶æ	F	121:c
++¶ç	F	122:c
++¶è	F	123:c
++¶é	F	124:c
++¶ê	F	125:c
++¶ë	F	126:c
++¶ì	F	127:c
++¶í	F	128:c
++¶î	F	129:c
++¶ï	F	130:c
++¶ð	F	131:c
++¶ñ	F	132:c
++¶ò	F	133:c
++¶ó	F	134:c
++¶ô	F	135:c
++¶õ	F	136:c
++¶ö	F	137:c
++¶÷	F	138:c
++¶ø	F	139:c
++¶ù	F	140:c
++¶ú	F	141:c
++¶û	F	142:c
++¶ü	F	143:c
++¶ý	F	144:c
++¶þ	F	145:c
++·¡	F	146:c
++·¢	F	147:c
++·£	F	148:c
++·¤	F	149:c
++·¥	F	150:c
++·¦	F	151:c
++·§	F	152:c
++·¨	F	153:c
++·©	F	154:c
++·ª	F	155:c
++·«	F	156:c
++·¬	F	157:c
++·­	F	158:c
++·®	F	159:c
++·¯	F	160:c
++·°	F	161:c
++·±	F	162:c
++·²	F	163:c
++·³	F	164:c
++·´	F	165:c
++·µ	F	166:c
++·¶	F	167:c
++··	F	168:c
++·¸	F	169:c
++·¹	F	170:c
++·º	F	171:c
++·»	F	172:c
++·¼	F	173:c
++·½	F	174:c
++·¾	F	175:c
++·¿	F	176:c
++·À	F	177:c
++·Á	F	178:c
++·Â	F	179:c
++·Ã	F	180:c
++·Ä	F	181:c
++·Å	F	182:c
++·Æ	F	183:c
++·Ç	F	184:c
++·È	F	185:c
++·É	F	186:c
++·Ê	F	187:c
++·Ë	F	188:c
++·Ì	F	189:c
++·Í	F	190:c
++·Î	F	191:c
++·Ï	F	192:c
++·Ð	F	193:c
++·Ñ	F	194:c
++·Ò	F	195:c
++·Ó	F	196:c
++·Ô	F	197:c
++·Õ	F	198:c
++·Ö	F	199:c
++·×	F	200:c
++·Ø	F	201:c
++·Ù	F	202:c
++·Ú	F	203:c
++·Û	F	204:c
++·Ü	F	205:c
++·Ý	F	206:c
++·Þ	F	207:c
++·ß	F	208:c
++·à	F	209:c
++·á	F	210:c
++·â	F	211:c
++·ã	F	212:c
++·ä	F	213:c
++·å	F	214:c
++·æ	F	215:c
++·ç	F	216:c
++·è	F	217:c
++·é	F	218:c
++·ê	F	219:c
++·ë	F	220:c
++·ì	F	221:c
++·í	F	222:c
++·î	F	223:c
++·ï	F	224:c
++·ð	F	225:c
++·ñ	F	226:c
++·ò	F	227:c
++·ó	F	228:c
++·ô	F	229:c
++·õ	F	230:c
++·ö	F	231:c
++·÷	F	232:c
++·ø	F	233:c
++·ù	F	234:c
++·ú	F	235:c
++·û	F	236:c
++·ü	F	237:c
++·ý	F	238:c
++·þ	F	239:c
++¸¡	F	240:c
++¸¢	F	241:c
++¸£	F	242:c
++¸¤	F	243:c
++¸¥	F	244:c
++¸¦	F	245:c
++¸§	F	246:c
++¸¨	F	247:c
++¸©	F	248:c
++¸ª	F	249:c
++¸«	F	250:c
++¸¬	F	251:c
++¸­	F	252:c
++¸®	F	253:c
++¸¯	F	254:c
++¸°	F	255:c
++¸±	F	0:d
++¸²	F	1:d
++¸³	F	2:d
++¸´	F	3:d
++¸µ	F	4:d
++¸¶	F	5:d
++¸·	F	6:d
++¸¸	F	7:d
++¸¹	F	8:d
++¸º	F	9:d
++¸»	F	10:d
++¸¼	F	11:d
++¸½	F	12:d
++¸¾	F	13:d
++¸¿	F	14:d
++¸À	F	15:d
++¸Á	F	16:d
++¸Â	F	17:d
++¸Ã	F	18:d
++¸Ä	F	19:d
++¸Å	F	20:d
++¸Æ	F	21:d
++¸Ç	F	22:d
++¸È	F	23:d
++¸É	F	24:d
++¸Ê	F	25:d
++¸Ë	F	26:d
++¸Ì	F	27:d
++¸Í	F	28:d
++¸Î	F	29:d
++¸Ï	F	30:d
++¸Ð	F	31:d
++¸Ñ	F	32:d
++¸Ò	F	33:d
++¸Ó	F	34:d
++¸Ô	F	35:d
++¸Õ	F	36:d
++¸Ö	F	37:d
++¸×	F	38:d
++¸Ø	F	39:d
++¸Ù	F	40:d
++¸Ú	F	41:d
++¸Û	F	42:d
++¸Ü	F	43:d
++¸Ý	F	44:d
++¸Þ	F	45:d
++¸ß	F	46:d
++¸à	F	47:d
++¸á	F	48:d
++¸â	F	49:d
++¸ã	F	50:d
++¸ä	F	51:d
++¸å	F	52:d
++¸æ	F	53:d
++¸ç	F	54:d
++¸è	F	55:d
++¸é	F	56:d
++¸ê	F	57:d
++¸ë	F	58:d
++¸ì	F	59:d
++¸í	F	60:d
++¸î	F	61:d
++¸ï	F	62:d
++¸ð	F	63:d
++¸ñ	F	64:d
++¸ò	F	65:d
++¸ó	F	66:d
++¸ô	F	67:d
++¸õ	F	68:d
++¸ö	F	69:d
++¸÷	F	70:d
++¸ø	F	71:d
++¸ù	F	72:d
++¸ú	F	73:d
++¸û	F	74:d
++¸ü	F	75:d
++¸ý	F	76:d
++¸þ	F	77:d
++¹¡	F	78:d
++¹¢	F	79:d
++¹£	F	80:d
++¹¤	F	81:d
++¹¥	F	82:d
++¹¦	F	83:d
++¹§	F	84:d
++¹¨	F	85:d
++¹©	F	86:d
++¹ª	F	87:d
++¹«	F	88:d
++¹¬	F	89:d
++¹­	F	90:d
++¹®	F	91:d
++¹¯	F	92:d
++¹°	F	93:d
++¹±	F	94:d
++¹²	F	95:d
++¹³	F	96:d
++¹´	F	97:d
++¹µ	F	98:d
++¹¶	F	99:d
++¹·	F	100:d
++¹¸	F	101:d
++¹¹	F	102:d
++¹º	F	103:d
++¹»	F	104:d
++¹¼	F	105:d
++¹½	F	106:d
++¹¾	F	107:d
++¹¿	F	108:d
++¹À	F	109:d
++¹Á	F	110:d
++¹Â	F	111:d
++¹Ã	F	112:d
++¹Ä	F	113:d
++¹Å	F	114:d
++¹Æ	F	115:d
++¹Ç	F	116:d
++¹È	F	117:d
++¹É	F	118:d
++¹Ê	F	119:d
++¹Ë	F	120:d
++¹Ì	F	121:d
++¹Í	F	122:d
++¹Î	F	123:d
++¹Ï	F	124:d
++¹Ð	F	125:d
++¹Ñ	F	126:d
++¹Ò	F	127:d
++¹Ó	F	128:d
++¹Ô	F	129:d
++¹Õ	F	130:d
++¹Ö	F	131:d
++¹×	F	132:d
++¹Ø	F	133:d
++¹Ù	F	134:d
++¹Ú	F	135:d
++¹Û	F	136:d
++¹Ü	F	137:d
++¹Ý	F	138:d
++¹Þ	F	139:d
++¹ß	F	140:d
++¹à	F	141:d
++¹á	F	142:d
++¹â	F	143:d
++¹ã	F	144:d
++¹ä	F	145:d
++¹å	F	146:d
++¹æ	F	147:d
++¹ç	F	148:d
++¹è	F	149:d
++¹é	F	150:d
++¹ê	F	151:d
++¹ë	F	152:d
++¹ì	F	153:d
++¹í	F	154:d
++¹î	F	155:d
++¹ï	F	156:d
++¹ð	F	157:d
++¹ñ	F	158:d
++¹ò	F	159:d
++¹ó	F	160:d
++¹ô	F	161:d
++¹õ	F	162:d
++¹ö	F	163:d
++¹÷	F	164:d
++¹ø	F	165:d
++¹ù	F	166:d
++¹ú	F	167:d
++¹û	F	168:d
++¹ü	F	169:d
++¹ý	F	170:d
++¹þ	F	171:d
++º¡	F	172:d
++º¢	F	173:d
++º£	F	174:d
++º¤	F	175:d
++º¥	F	176:d
++º¦	F	177:d
++º§	F	178:d
++º¨	F	179:d
++º©	F	180:d
++ºª	F	181:d
++º«	F	182:d
++º¬	F	183:d
++º­	F	184:d
++º®	F	185:d
++º¯	F	186:d
++º°	F	187:d
++º±	F	188:d
++º²	F	189:d
++º³	F	190:d
++º´	F	191:d
++ºµ	F	192:d
++º¶	F	193:d
++º·	F	194:d
++º¸	F	195:d
++º¹	F	196:d
++ºº	F	197:d
++º»	F	198:d
++º¼	F	199:d
++º½	F	200:d
++º¾	F	201:d
++º¿	F	202:d
++ºÀ	F	203:d
++ºÁ	F	204:d
++ºÂ	F	205:d
++ºÃ	F	206:d
++ºÄ	F	207:d
++ºÅ	F	208:d
++ºÆ	F	209:d
++ºÇ	F	210:d
++ºÈ	F	211:d
++ºÉ	F	212:d
++ºÊ	F	213:d
++ºË	F	214:d
++ºÌ	F	215:d
++ºÍ	F	216:d
++ºÎ	F	217:d
++ºÏ	F	218:d
++ºÐ	F	219:d
++ºÑ	F	220:d
++ºÒ	F	221:d
++ºÓ	F	222:d
++ºÔ	F	223:d
++ºÕ	F	224:d
++ºÖ	F	225:d
++º×	F	226:d
++ºØ	F	227:d
++ºÙ	F	228:d
++ºÚ	F	229:d
++ºÛ	F	230:d
++ºÜ	F	231:d
++ºÝ	F	232:d
++ºÞ	F	233:d
++ºß	F	234:d
++ºà	F	235:d
++ºá	F	236:d
++ºâ	F	237:d
++ºã	F	238:d
++ºä	F	239:d
++ºå	F	240:d
++ºæ	F	241:d
++ºç	F	242:d
++ºè	F	243:d
++ºé	F	244:d
++ºê	F	245:d
++ºë	F	246:d
++ºì	F	247:d
++ºí	F	248:d
++ºî	F	249:d
++ºï	F	250:d
++ºð	F	251:d
++ºñ	F	252:d
++ºò	F	253:d
++ºó	F	254:d
++ºô	F	255:d
++ºõ	F	0:e
++ºö	F	1:e
++º÷	F	2:e
++ºø	F	3:e
++ºù	F	4:e
++ºú	F	5:e
++ºû	F	6:e
++ºü	F	7:e
++ºý	F	8:e
++ºþ	F	9:e
++»¡	F	10:e
++Ȣ	F	11:e
++ȣ	F	12:e
++»¤	F	13:e
++ȴ	F	14:e
++»¦	F	15:e
++Ȥ	F	16:e
++Ȭ	F	17:e
++»©	F	18:e
++Ȼ	F	19:e
++»«	F	20:e
++»¬	F	21:e
++»­	F	22:e
++»®	F	23:e
++»¯	F	24:e
++»°	F	25:e
++»±	F	26:e
++»²	F	27:e
++»³	F	28:e
++»´	F	29:e
++»µ	F	30:e
++Ȧ	F	31:e
++»·	F	32:e
++»¸	F	33:e
++»¹	F	34:e
++ȼ	F	35:e
++»»	F	36:e
++»¼	F	37:e
++»½	F	38:e
++»¾	F	39:e
++»¿	F	40:e
++»À	F	41:e
++»Á	F	42:e
++»Â	F	43:e
++»Ã	F	44:e
++Ȁ	F	45:e
++ȁ	F	46:e
++Ȯ	F	47:e
++Ȃ	F	48:e
++»È	F	49:e
++ȃ	F	50:e
++»Ê	F	51:e
++»Ë	F	52:e
++»Ì	F	53:e
++»Í	F	54:e
++»Î	F	55:e
++»Ï	F	56:e
++»Ð	F	57:e
++Ȅ	F	58:e
++»Ò	F	59:e
++»Ó	F	60:e
++»Ô	F	61:e
++»Õ	F	62:e
++»Ö	F	63:e
++»×	F	64:e
++ȯ	F	65:e
++»Ù	F	66:e
++»Ú	F	67:e
++»Û	F	68:e
++Ȇ	F	69:e
++»Ý	F	70:e
++»Þ	F	71:e
++ȧ	F	72:e
++Ȉ	F	73:e
++ȇ	F	74:e
++ȉ	F	75:e
++ȋ	F	76:e
++Ȋ	F	77:e
++Ȍ	F	78:e
++Ⱦ	F	79:e
++ȍ	F	80:e
++ȏ	F	81:e
++Ȏ	F	82:e
++Ȑ	F	83:e
++ȑ	F	84:e
++ȓ	F	85:e
++Ȓ	F	86:e
++Ȕ	F	87:e
++ȕ	F	88:e
++»ð	F	89:e
++Ȗ	F	90:e
++»ò	F	91:e
++»ó	F	92:e
++»ô	F	93:e
++»õ	F	94:e
++»ö	F	95:e
++»÷	F	96:e
++»ø	F	97:e
++»ù	F	98:e
++»ú	F	99:e
++»û	F	100:e
++ȟ	F	101:e
++»ý	F	102:e
++»þ	F	103:e
++¼¡	F	104:e
++¼¢	F	105:e
++¼£	F	106:e
++¼¤	F	107:e
++¼¥	F	108:e
++¼¦	F	109:e
++¼§	F	110:e
++¼¨	F	111:e
++¼©	F	112:e
++¼ª	F	113:e
++¼«	F	114:e
++¼¬	F	115:e
++¼­	F	116:e
++¼®	F	117:e
++¼¯	F	118:e
++¼°	F	119:e
++¼±	F	120:e
++¼²	F	121:e
++¼³	F	122:e
++¼´	F	123:e
++¼µ	F	124:e
++¼¶	F	125:e
++¼·	F	126:e
++¼¸	F	127:e
++¼¹	F	128:e
++¼º	F	129:e
++¼»	F	130:e
++¼¼	F	131:e
++¼½	F	132:e
++¼¾	F	133:e
++¼¿	F	134:e
++¼À	F	135:e
++¼Á	F	136:e
++¼Â	F	137:e
++¼Ã	F	138:e
++¼Ä	F	139:e
++¼Å	F	140:e
++¼Æ	F	141:e
++¼Ç	F	142:e
++¼È	F	143:e
++¼É	F	144:e
++¼Ê	F	145:e
++¼Ë	F	146:e
++¼Ì	F	147:e
++¼Í	F	148:e
++¼Î	F	149:e
++¼Ï	F	150:e
++¼Ð	F	151:e
++¼Ñ	F	152:e
++¼Ò	F	153:e
++¼Ó	F	154:e
++¼Ô	F	155:e
++¼Õ	F	156:e
++¼Ö	F	157:e
++¼×	F	158:e
++¼Ø	F	159:e
++¼Ù	F	160:e
++¼Ú	F	161:e
++¼Û	F	162:e
++¼Ü	F	163:e
++¼Ý	F	164:e
++¼Þ	F	165:e
++¼ß	F	166:e
++¼à	F	167:e
++¼á	F	168:e
++¼â	F	169:e
++¼ã	F	170:e
++¼ä	F	171:e
++¼å	F	172:e
++¼æ	F	173:e
++¼ç	F	174:e
++¼è	F	175:e
++¼é	F	176:e
++¼ê	F	177:e
++¼ë	F	178:e
++¼ì	F	179:e
++¼í	F	180:e
++¼î	F	181:e
++¼ï	F	182:e
++¼ð	F	183:e
++¼ñ	F	184:e
++¼ò	F	185:e
++¼ó	F	186:e
++¼ô	F	187:e
++¼õ	F	188:e
++¼ö	F	189:e
++¼÷	F	190:e
++¼ø	F	191:e
++¼ù	F	192:e
++¼ú	F	193:e
++¼û	F	194:e
++¼ü	F	195:e
++¼ý	F	196:e
++¼þ	F	197:e
++½¡	F	198:e
++½¢	F	199:e
++½£	F	200:e
++½¤	F	201:e
++½¥	F	202:e
++½¦	F	203:e
++½§	F	204:e
++½¨	F	205:e
++½©	F	206:e
++½ª	F	207:e
++½«	F	208:e
++½¬	F	209:e
++½­	F	210:e
++½®	F	211:e
++½¯	F	212:e
++½°	F	213:e
++½±	F	214:e
++½²	F	215:e
++½³	F	216:e
++½´	F	217:e
++½µ	F	218:e
++½¶	F	219:e
++½·	F	220:e
++½¸	F	221:e
++½¹	F	222:e
++½º	F	223:e
++½»	F	224:e
++½¼	F	225:e
++½½	F	226:e
++½¾	F	227:e
++½¿	F	228:e
++½À	F	229:e
++½Á	F	230:e
++½Â	F	231:e
++½Ã	F	232:e
++½Ä	F	233:e
++½Å	F	234:e
++½Æ	F	235:e
++½Ç	F	236:e
++½È	F	237:e
++½É	F	238:e
++½Ê	F	239:e
++½Ë	F	240:e
++½Ì	F	241:e
++½Í	F	242:e
++½Î	F	243:e
++½Ï	F	244:e
++½Ð	F	245:e
++½Ñ	F	246:e
++½Ò	F	247:e
++½Ó	F	248:e
++½Ô	F	249:e
++½Õ	F	250:e
++½Ö	F	251:e
++½×	F	252:e
++½Ø	F	253:e
++½Ù	F	254:e
++½Ú	F	255:e
++½Û	F	0:f
++½Ü	F	1:f
++½Ý	F	2:f
++½Þ	F	3:f
++½ß	F	4:f
++½à	F	5:f
++½á	F	6:f
++½â	F	7:f
++½ã	F	8:f
++½ä	F	9:f
++½å	F	10:f
++½æ	F	11:f
++½ç	F	12:f
++½è	F	13:f
++½é	F	14:f
++½ê	F	15:f
++½ë	F	16:f
++½ì	F	17:f
++½í	F	18:f
++½î	F	19:f
++½ï	F	20:f
++½ð	F	21:f
++½ñ	F	22:f
++½ò	F	23:f
++½ó	F	24:f
++½ô	F	25:f
++½õ	F	26:f
++½ö	F	27:f
++½÷	F	28:f
++½ø	F	29:f
++½ù	F	30:f
++½ú	F	31:f
++½û	F	32:f
++½ü	F	33:f
++½ý	F	34:f
++½þ	F	35:f
++¾¡	F	36:f
++¾¢	F	37:f
++¾£	F	38:f
++¾¤	F	39:f
++¾¥	F	40:f
++¾¦	F	41:f
++¾§	F	42:f
++¾¨	F	43:f
++¾©	F	44:f
++¾ª	F	45:f
++¾«	F	46:f
++¾¬	F	47:f
++¾­	F	48:f
++¾®	F	49:f
++¾¯	F	50:f
++¾°	F	51:f
++¾±	F	52:f
++¾²	F	53:f
++¾³	F	54:f
++¾´	F	55:f
++¾µ	F	56:f
++¾¶	F	57:f
++¾·	F	58:f
++¾¸	F	59:f
++¾¹	F	60:f
++¾º	F	61:f
++¾»	F	62:f
++¾¼	F	63:f
++¾½	F	64:f
++¾¾	F	65:f
++¾¿	F	66:f
++¾À	F	67:f
++¾Á	F	68:f
++¾Â	F	69:f
++¾Ã	F	70:f
++¾Ä	F	71:f
++¾Å	F	72:f
++¾Æ	F	73:f
++¾Ç	F	74:f
++¾È	F	75:f
++¾É	F	76:f
++¾Ê	F	77:f
++¾Ë	F	78:f
++¾Ì	F	79:f
++¾Í	F	80:f
++¾Î	F	81:f
++¾Ï	F	82:f
++¾Ð	F	83:f
++¾Ñ	F	84:f
++¾Ò	F	85:f
++¾Ó	F	86:f
++¾Ô	F	87:f
++¾Õ	F	88:f
++¾Ö	F	89:f
++¾×	F	90:f
++¾Ø	F	91:f
++¾Ù	F	92:f
++¾Ú	F	93:f
++¾Û	F	94:f
++¾Ü	F	95:f
++¾Ý	F	96:f
++¾Þ	F	97:f
++¾ß	F	98:f
++¾à	F	99:f
++¾á	F	100:f
++¾â	F	101:f
++¾ã	F	102:f
++¾ä	F	103:f
++¾å	F	104:f
++¾æ	F	105:f
++¾ç	F	106:f
++¾è	F	107:f
++¾é	F	108:f
++¾ê	F	109:f
++¾ë	F	110:f
++¾ì	F	111:f
++¾í	F	112:f
++¾î	F	113:f
++¾ï	F	114:f
++¾ð	F	115:f
++¾ñ	F	116:f
++¾ò	F	117:f
++¾ó	F	118:f
++¾ô	F	119:f
++¾õ	F	120:f
++¾ö	F	121:f
++¾÷	F	122:f
++¾ø	F	123:f
++¾ù	F	124:f
++¾ú	F	125:f
++¾û	F	126:f
++¾ü	F	127:f
++¾ý	F	128:f
++¾þ	F	129:f
++¿¡	F	130:f
++¿¢	F	131:f
++¿£	F	132:f
++¿¤	F	133:f
++¿¥	F	134:f
++¿¦	F	135:f
++¿§	F	136:f
++¿¨	F	137:f
++¿©	F	138:f
++¿ª	F	139:f
++¿«	F	140:f
++¿¬	F	141:f
++¿­	F	142:f
++¿®	F	143:f
++¿¯	F	144:f
++¿°	F	145:f
++¿±	F	146:f
++¿²	F	147:f
++¿³	F	148:f
++¿´	F	149:f
++¿µ	F	150:f
++¿¶	F	151:f
++¿·	F	152:f
++¿¸	F	153:f
++¿¹	F	154:f
++¿º	F	155:f
++¿»	F	156:f
++¿¼	F	157:f
++¿½	F	158:f
++¿¾	F	159:f
++¿¿	F	160:f
++¿À	F	161:f
++¿Á	F	162:f
++¿Â	F	163:f
++¿Ã	F	164:f
++¿Ä	F	165:f
++¿Å	F	166:f
++¿Æ	F	167:f
++¿Ç	F	168:f
++¿È	F	169:f
++¿É	F	170:f
++¿Ê	F	171:f
++¿Ë	F	172:f
++¿Ì	F	173:f
++¿Í	F	174:f
++¿Î	F	175:f
++¿Ï	F	176:f
++¿Ð	F	177:f
++¿Ñ	F	178:f
++¿Ò	F	179:f
++¿Ó	F	180:f
++¿Ô	F	181:f
++¿Õ	F	182:f
++¿Ö	F	183:f
++¿×	F	184:f
++¿Ø	F	185:f
++¿Ù	F	186:f
++¿Ú	F	187:f
++¿Û	F	188:f
++¿Ü	F	189:f
++¿Ý	F	190:f
++¿Þ	F	191:f
++¿ß	F	192:f
++¿à	F	193:f
++¿á	F	194:f
++¿â	F	195:f
++¿ã	F	196:f
++¿ä	F	197:f
++¿å	F	198:f
++¿æ	F	199:f
++¿ç	F	200:f
++¿è	F	201:f
++¿é	F	202:f
++¿ê	F	203:f
++¿ë	F	204:f
++¿ì	F	205:f
++¿í	F	206:f
++¿î	F	207:f
++¿ï	F	208:f
++¿ð	F	209:f
++¿ñ	F	210:f
++¿ò	F	211:f
++¿ó	F	212:f
++¿ô	F	213:f
++¿õ	F	214:f
++¿ö	F	215:f
++¿÷	F	216:f
++¿ø	F	217:f
++¿ù	F	218:f
++¿ú	F	219:f
++¿û	F	220:f
++¿ü	F	221:f
++¿ý	F	222:f
++¿þ	F	223:f
++À¡	F	224:f
++À¢	F	225:f
++À£	F	226:f
++À¤	F	227:f
++À¥	F	228:f
++À¦	F	229:f
++ˤ	F	230:f
++ˬ	F	231:f
++À©	F	232:f
++˻	F	233:f
++À«	F	234:f
++À¬	F	235:f
++À­	F	236:f
++À®	F	237:f
++À¯	F	238:f
++À°	F	239:f
++˱	F	240:f
++À²	F	241:f
++À³	F	242:f
++À´	F	243:f
++˵	F	244:f
++˦	F	245:f
++À·	F	246:f
++À¸	F	247:f
++À¹	F	248:f
++˼	F	249:f
++À»	F	250:f
++À¼	F	251:f
++À½	F	252:f
++À¾	F	253:f
++À¿	F	254:f
++ÀÀ	F	255:f
++ÀÁ	F	0:g
++ÀÂ	F	1:g
++ÀÃ	F	2:g
++ÀÄ	F	3:g
++ÀÅ	F	4:g
++ÀÆ	F	5:g
++ÀÇ	F	6:g
++ÀÈ	F	7:g
++ÀÉ	F	8:g
++ÀÊ	F	9:g
++ÀË	F	10:g
++ÀÌ	F	11:g
++ÀÍ	F	12:g
++ÀÎ	F	13:g
++ÀÏ	F	14:g
++ÀÐ	F	15:g
++ÀÑ	F	16:g
++ÀÒ	F	17:g
++ÀÓ	F	18:g
++ÀÔ	F	19:g
++ÀÕ	F	20:g
++ÀÖ	F	21:g
++À×	F	22:g
++ÀØ	F	23:g
++ÀÙ	F	24:g
++ÀÚ	F	25:g
++ÀÛ	F	26:g
++ÀÜ	F	27:g
++ÀÝ	F	28:g
++ÀÞ	F	29:g
++Àß	F	30:g
++Àà	F	31:g
++Àá	F	32:g
++Àâ	F	33:g
++Àã	F	34:g
++Àä	F	35:g
++Àå	F	36:g
++Àæ	F	37:g
++Àç	F	38:g
++Àè	F	39:g
++Àé	F	40:g
++Àê	F	41:g
++Àë	F	42:g
++Àì	F	43:g
++Àí	F	44:g
++Àî	F	45:g
++Àï	F	46:g
++Àð	F	47:g
++Àñ	F	48:g
++Àò	F	49:g
++Àó	F	50:g
++Àô	F	51:g
++Àõ	F	52:g
++Àö	F	53:g
++À÷	F	54:g
++Àø	F	55:g
++Àù	F	56:g
++Àú	F	57:g
++Àû	F	58:g
++Àü	F	59:g
++Àý	F	60:g
++Àþ	F	61:g
++Á¡	F	62:g
++Á¢	F	63:g
++Á£	F	64:g
++Á¤	F	65:g
++Á¥	F	66:g
++Á¦	F	67:g
++Á§	F	68:g
++Á¨	F	69:g
++Á©	F	70:g
++Áª	F	71:g
++Á«	F	72:g
++Á¬	F	73:g
++Á­	F	74:g
++Á®	F	75:g
++Á¯	F	76:g
++Á°	F	77:g
++Á±	F	78:g
++Á²	F	79:g
++Á³	F	80:g
++Á´	F	81:g
++Áµ	F	82:g
++Á¶	F	83:g
++Á·	F	84:g
++Á¸	F	85:g
++Á¹	F	86:g
++Áº	F	87:g
++Á»	F	88:g
++Á¼	F	89:g
++Á½	F	90:g
++Á¾	F	91:g
++Á¿	F	92:g
++ÁÀ	F	93:g
++ÁÁ	F	94:g
++ÁÂ	F	95:g
++ÁÃ	F	96:g
++ÁÄ	F	97:g
++ÁÅ	F	98:g
++ÁÆ	F	99:g
++ÁÇ	F	100:g
++ÁÈ	F	101:g
++ÁÉ	F	102:g
++ÁÊ	F	103:g
++ÁË	F	104:g
++ÁÌ	F	105:g
++ÁÍ	F	106:g
++ÁÎ	F	107:g
++ÁÏ	F	108:g
++ÁÐ	F	109:g
++ÁÑ	F	110:g
++ÁÒ	F	111:g
++ÁÓ	F	112:g
++ÁÔ	F	113:g
++ÁÕ	F	114:g
++ÁÖ	F	115:g
++Á×	F	116:g
++ÁØ	F	117:g
++ÁÙ	F	118:g
++ÁÚ	F	119:g
++ÁÛ	F	120:g
++ÁÜ	F	121:g
++ÁÝ	F	122:g
++ÁÞ	F	123:g
++Áß	F	124:g
++Áà	F	125:g
++Áá	F	126:g
++Áâ	F	127:g
++Áã	F	128:g
++Áä	F	129:g
++Áå	F	130:g
++Áæ	F	131:g
++Áç	F	132:g
++Áè	F	133:g
++Áé	F	134:g
++Áê	F	135:g
++Áë	F	136:g
++Áì	F	137:g
++Áí	F	138:g
++Áî	F	139:g
++Áï	F	140:g
++Áð	F	141:g
++Áñ	F	142:g
++Áò	F	143:g
++Áó	F	144:g
++Áô	F	145:g
++Áõ	F	146:g
++Áö	F	147:g
++Á÷	F	148:g
++Áø	F	149:g
++Áù	F	150:g
++Áú	F	151:g
++Áû	F	152:g
++Áü	F	153:g
++Áý	F	154:g
++Áþ	F	155:g
++¡	F	156:g
++¢	F	157:g
++£	F	158:g
++¤	F	159:g
++Â¥	F	160:g
++¦	F	161:g
++§	F	162:g
++¨	F	163:g
++©	F	164:g
++ª	F	165:g
++«	F	166:g
++¬	F	167:g
++­	F	168:g
++®	F	169:g
++¯	F	170:g
++°	F	171:g
++±	F	172:g
++²	F	173:g
++³	F	174:g
++´	F	175:g
++µ	F	176:g
++¶	F	177:g
++·	F	178:g
++¸	F	179:g
++¹	F	180:g
++º	F	181:g
++»	F	182:g
++¼	F	183:g
++½	F	184:g
++¾	F	185:g
++¿	F	186:g
++ÂÀ	F	187:g
++ÂÁ	F	188:g
++ÂÂ	F	189:g
++ÂÃ	F	190:g
++ÂÄ	F	191:g
++ÂÅ	F	192:g
++ÂÆ	F	193:g
++ÂÇ	F	194:g
++ÂÈ	F	195:g
++ÂÉ	F	196:g
++ÂÊ	F	197:g
++ÂË	F	198:g
++ÂÌ	F	199:g
++ÂÍ	F	200:g
++ÂÎ	F	201:g
++ÂÏ	F	202:g
++ÂÐ	F	203:g
++ÂÑ	F	204:g
++ÂÒ	F	205:g
++ÂÓ	F	206:g
++ÂÔ	F	207:g
++ÂÕ	F	208:g
++ÂÖ	F	209:g
++Â×	F	210:g
++ÂØ	F	211:g
++ÂÙ	F	212:g
++ÂÚ	F	213:g
++ÂÛ	F	214:g
++ÂÜ	F	215:g
++ÂÝ	F	216:g
++ÂÞ	F	217:g
++Âß	F	218:g
++Âà	F	219:g
++Âá	F	220:g
++Ââ	F	221:g
++Âã	F	222:g
++Âä	F	223:g
++Âå	F	224:g
++Âæ	F	225:g
++Âç	F	226:g
++Âè	F	227:g
++Âé	F	228:g
++Âê	F	229:g
++Âë	F	230:g
++Âì	F	231:g
++Âí	F	232:g
++Âî	F	233:g
++Âï	F	234:g
++Âð	F	235:g
++Âñ	F	236:g
++Âò	F	237:g
++Âó	F	238:g
++Âô	F	239:g
++Âõ	F	240:g
++Âö	F	241:g
++Â÷	F	242:g
++Âø	F	243:g
++Âù	F	244:g
++Âú	F	245:g
++Âû	F	246:g
++Âü	F	247:g
++Âý	F	248:g
++Âþ	F	249:g
++á	F	250:g
++â	F	251:g
++ã	F	252:g
++ä	F	253:g
++Ã¥	F	254:g
++æ	F	255:g
++ç	F	0:h
++è	F	1:h
++é	F	2:h
++ê	F	3:h
++ë	F	4:h
++ì	F	5:h
++í	F	6:h
++î	F	7:h
++ï	F	8:h
++ð	F	9:h
++ñ	F	10:h
++ò	F	11:h
++ó	F	12:h
++ô	F	13:h
++õ	F	14:h
++ö	F	15:h
++÷	F	16:h
++ø	F	17:h
++ù	F	18:h
++ú	F	19:h
++û	F	20:h
++ü	F	21:h
++ý	F	22:h
++þ	F	23:h
++ÿ	F	24:h
++ÃÀ	F	25:h
++ÃÁ	F	26:h
++ÃÂ	F	27:h
++ÃÃ	F	28:h
++ÃÄ	F	29:h
++ÃÅ	F	30:h
++ÃÆ	F	31:h
++ÃÇ	F	32:h
++ÃÈ	F	33:h
++ÃÉ	F	34:h
++ÃÊ	F	35:h
++ÃË	F	36:h
++ÃÌ	F	37:h
++ÃÍ	F	38:h
++ÃÎ	F	39:h
++ÃÏ	F	40:h
++ÃÐ	F	41:h
++ÃÑ	F	42:h
++ÃÒ	F	43:h
++ÃÓ	F	44:h
++ÃÔ	F	45:h
++ÃÕ	F	46:h
++ÃÖ	F	47:h
++Ã×	F	48:h
++ÃØ	F	49:h
++ÃÙ	F	50:h
++ÃÚ	F	51:h
++ÃÛ	F	52:h
++ÃÜ	F	53:h
++ÃÝ	F	54:h
++ÃÞ	F	55:h
++Ãß	F	56:h
++Ãà	F	57:h
++Ãá	F	58:h
++Ãâ	F	59:h
++Ãã	F	60:h
++Ãä	F	61:h
++Ãå	F	62:h
++Ãæ	F	63:h
++Ãç	F	64:h
++Ãè	F	65:h
++Ãé	F	66:h
++Ãê	F	67:h
++Ãë	F	68:h
++Ãì	F	69:h
++Ãí	F	70:h
++Ãî	F	71:h
++Ãï	F	72:h
++Ãð	F	73:h
++Ãñ	F	74:h
++Ãò	F	75:h
++Ãó	F	76:h
++Ãô	F	77:h
++Ãõ	F	78:h
++Ãö	F	79:h
++Ã÷	F	80:h
++Ãø	F	81:h
++Ãù	F	82:h
++Ãú	F	83:h
++Ãû	F	84:h
++Ãü	F	85:h
++Ãý	F	86:h
++Ãþ	F	87:h
++Ä¡	F	88:h
++Ä¢	F	89:h
++Ä£	F	90:h
++Ĥ	F	91:h
++Ä¥	F	92:h
++Ħ	F	93:h
++ħ	F	94:h
++Ĩ	F	95:h
++Ä©	F	96:h
++Ī	F	97:h
++Ä«	F	98:h
++Ĭ	F	99:h
++Ä­	F	100:h
++Ä®	F	101:h
++į	F	102:h
++Ä°	F	103:h
++ı	F	104:h
++IJ	F	105:h
++ij	F	106:h
++Ä´	F	107:h
++ĵ	F	108:h
++Ķ	F	109:h
++Ä·	F	110:h
++ĸ	F	111:h
++Ĺ	F	112:h
++ĺ	F	113:h
++Ä»	F	114:h
++ļ	F	115:h
++Ľ	F	116:h
++ľ	F	117:h
++Ä¿	F	118:h
++ÄÀ	F	119:h
++ÄÁ	F	120:h
++ÄÂ	F	121:h
++ÄÃ	F	122:h
++ÄÄ	F	123:h
++ÄÅ	F	124:h
++ÄÆ	F	125:h
++ÄÇ	F	126:h
++ÄÈ	F	127:h
++ÄÉ	F	128:h
++ÄÊ	F	129:h
++ÄË	F	130:h
++ÄÌ	F	131:h
++ÄÍ	F	132:h
++ÄÎ	F	133:h
++ÄÏ	F	134:h
++ÄÐ	F	135:h
++ÄÑ	F	136:h
++ÄÒ	F	137:h
++ÄÓ	F	138:h
++ÄÔ	F	139:h
++ÄÕ	F	140:h
++ÄÖ	F	141:h
++Ä×	F	142:h
++ÄØ	F	143:h
++ÄÙ	F	144:h
++ÄÚ	F	145:h
++ÄÛ	F	146:h
++ÄÜ	F	147:h
++ÄÝ	F	148:h
++ÄÞ	F	149:h
++Äß	F	150:h
++Äà	F	151:h
++Äá	F	152:h
++Äâ	F	153:h
++Äã	F	154:h
++Ää	F	155:h
++Äå	F	156:h
++Äæ	F	157:h
++Äç	F	158:h
++Äè	F	159:h
++Äé	F	160:h
++Äê	F	161:h
++Äë	F	162:h
++Äì	F	163:h
++Äí	F	164:h
++Äî	F	165:h
++Äï	F	166:h
++Äð	F	167:h
++Äñ	F	168:h
++Äò	F	169:h
++Äó	F	170:h
++Äô	F	171:h
++Äõ	F	172:h
++Äö	F	173:h
++Ä÷	F	174:h
++Äø	F	175:h
++Äù	F	176:h
++Äú	F	177:h
++Äû	F	178:h
++Äü	F	179:h
++Äý	F	180:h
++Äþ	F	181:h
++Å¡	F	182:h
++Å¢	F	183:h
++Å£	F	184:h
++Ť	F	185:h
++Å¥	F	186:h
++Ŧ	F	187:h
++ŧ	F	188:h
++Ũ	F	189:h
++Å©	F	190:h
++Ū	F	191:h
++Å«	F	192:h
++Ŭ	F	193:h
++Å­	F	194:h
++Å®	F	195:h
++ů	F	196:h
++Å°	F	197:h
++ű	F	198:h
++Ų	F	199:h
++ų	F	200:h
++Å´	F	201:h
++ŵ	F	202:h
++Ŷ	F	203:h
++Å·	F	204:h
++Ÿ	F	205:h
++Ź	F	206:h
++ź	F	207:h
++Å»	F	208:h
++ż	F	209:h
++Ž	F	210:h
++ž	F	211:h
++Å¿	F	212:h
++ÅÀ	F	213:h
++ÅÁ	F	214:h
++ÅÂ	F	215:h
++ÅÃ	F	216:h
++ÅÄ	F	217:h
++ÅÅ	F	218:h
++ÅÆ	F	219:h
++ÅÇ	F	220:h
++ÅÈ	F	221:h
++ÅÉ	F	222:h
++ÅÊ	F	223:h
++ÅË	F	224:h
++ÅÌ	F	225:h
++ÅÍ	F	226:h
++ÅÎ	F	227:h
++ÅÏ	F	228:h
++ÅÐ	F	229:h
++ÅÑ	F	230:h
++ÅÒ	F	231:h
++ÅÓ	F	232:h
++ÅÔ	F	233:h
++ÅÕ	F	234:h
++ÅÖ	F	235:h
++Å×	F	236:h
++ÅØ	F	237:h
++ÅÙ	F	238:h
++ÅÚ	F	239:h
++ÅÛ	F	240:h
++ÅÜ	F	241:h
++ÅÝ	F	242:h
++ÅÞ	F	243:h
++Åß	F	244:h
++Åà	F	245:h
++Åá	F	246:h
++Åâ	F	247:h
++Åã	F	248:h
++Åä	F	249:h
++Åå	F	250:h
++Åæ	F	251:h
++Åç	F	252:h
++Åè	F	253:h
++Åé	F	254:h
++Åê	F	255:h
++Åë	F	0:i
++Åì	F	1:i
++Åí	F	2:i
++Åî	F	3:i
++Åï	F	4:i
++Åð	F	5:i
++Åñ	F	6:i
++Åò	F	7:i
++Åó	F	8:i
++Åô	F	9:i
++Åõ	F	10:i
++Åö	F	11:i
++Å÷	F	12:i
++Åø	F	13:i
++Åù	F	14:i
++Åú	F	15:i
++Åû	F	16:i
++Åü	F	17:i
++Åý	F	18:i
++Åþ	F	19:i
++Æ¡	F	20:i
++Æ¢	F	21:i
++Æ£	F	22:i
++Ƥ	F	23:i
++Æ¥	F	24:i
++Ʀ	F	25:i
++Ƨ	F	26:i
++ƨ	F	27:i
++Æ©	F	28:i
++ƪ	F	29:i
++Æ«	F	30:i
++Ƭ	F	31:i
++Æ­	F	32:i
++Æ®	F	33:i
++Ư	F	34:i
++Æ°	F	35:i
++Ʊ	F	36:i
++Ʋ	F	37:i
++Ƴ	F	38:i
++Æ´	F	39:i
++Ƶ	F	40:i
++ƶ	F	41:i
++Æ·	F	42:i
++Ƹ	F	43:i
++ƹ	F	44:i
++ƺ	F	45:i
++Æ»	F	46:i
++Ƽ	F	47:i
++ƽ	F	48:i
++ƾ	F	49:i
++Æ¿	F	50:i
++ÆÀ	F	51:i
++ÆÁ	F	52:i
++ÆÂ	F	53:i
++ÆÃ	F	54:i
++ÆÄ	F	55:i
++ÆÅ	F	56:i
++ÆÆ	F	57:i
++ÆÇ	F	58:i
++ÆÈ	F	59:i
++ÆÉ	F	60:i
++ÆÊ	F	61:i
++ÆË	F	62:i
++ÆÌ	F	63:i
++ÆÍ	F	64:i
++ÆÎ	F	65:i
++ÆÏ	F	66:i
++ÆÐ	F	67:i
++ÆÑ	F	68:i
++ÆÒ	F	69:i
++ÆÓ	F	70:i
++ÆÔ	F	71:i
++ÆÕ	F	72:i
++ÆÖ	F	73:i
++Æ×	F	74:i
++ÆØ	F	75:i
++ÆÙ	F	76:i
++ÆÚ	F	77:i
++ÆÛ	F	78:i
++ÆÜ	F	79:i
++ÆÝ	F	80:i
++ÆÞ	F	81:i
++Æß	F	82:i
++Æà	F	83:i
++Æá	F	84:i
++Æâ	F	85:i
++Æã	F	86:i
++Æä	F	87:i
++Æå	F	88:i
++Ææ	F	89:i
++Æç	F	90:i
++Æè	F	91:i
++Æé	F	92:i
++Æê	F	93:i
++Æë	F	94:i
++Æì	F	95:i
++Æí	F	96:i
++Æî	F	97:i
++Æï	F	98:i
++Æð	F	99:i
++Æñ	F	100:i
++Æò	F	101:i
++Æó	F	102:i
++Æô	F	103:i
++Æõ	F	104:i
++Æö	F	105:i
++Æ÷	F	106:i
++Æø	F	107:i
++Æù	F	108:i
++Æú	F	109:i
++Æû	F	110:i
++Æü	F	111:i
++Æý	F	112:i
++Æþ	F	113:i
++Ç¡	F	114:i
++Ç¢	F	115:i
++Ç£	F	116:i
++Ǥ	F	117:i
++Ç¥	F	118:i
++Ǧ	F	119:i
++ǧ	F	120:i
++Ǩ	F	121:i
++Ç©	F	122:i
++Ǫ	F	123:i
++Ç«	F	124:i
++Ǭ	F	125:i
++Ç­	F	126:i
++Ç®	F	127:i
++ǯ	F	128:i
++Ç°	F	129:i
++DZ	F	130:i
++Dz	F	131:i
++dz	F	132:i
++Ç´	F	133:i
++ǵ	F	134:i
++Ƕ	F	135:i
++Ç·	F	136:i
++Ǹ	F	137:i
++ǹ	F	138:i
++Ǻ	F	139:i
++Ç»	F	140:i
++Ǽ	F	141:i
++ǽ	F	142:i
++Ǿ	F	143:i
++Ç¿	F	144:i
++ÇÀ	F	145:i
++ÇÁ	F	146:i
++ÇÂ	F	147:i
++ÇÃ	F	148:i
++ÇÄ	F	149:i
++ÇÅ	F	150:i
++ÇÆ	F	151:i
++ÇÇ	F	152:i
++ÇÈ	F	153:i
++ÇÉ	F	154:i
++ÇÊ	F	155:i
++ÇË	F	156:i
++ÇÌ	F	157:i
++ÇÍ	F	158:i
++ÇÎ	F	159:i
++ÇÏ	F	160:i
++ÇÐ	F	161:i
++ÇÑ	F	162:i
++ÇÒ	F	163:i
++ÇÓ	F	164:i
++ÇÔ	F	165:i
++ÇÕ	F	166:i
++ÇÖ	F	167:i
++Ç×	F	168:i
++ÇØ	F	169:i
++ÇÙ	F	170:i
++ÇÚ	F	171:i
++ÇÛ	F	172:i
++ÇÜ	F	173:i
++ÇÝ	F	174:i
++ÇÞ	F	175:i
++Çß	F	176:i
++Çà	F	177:i
++Çá	F	178:i
++Çâ	F	179:i
++Çã	F	180:i
++Çä	F	181:i
++Çå	F	182:i
++Çæ	F	183:i
++Çç	F	184:i
++Çè	F	185:i
++Çé	F	186:i
++Çê	F	187:i
++Çë	F	188:i
++Çì	F	189:i
++Çí	F	190:i
++Çî	F	191:i
++Çï	F	192:i
++Çð	F	193:i
++Çñ	F	194:i
++Çò	F	195:i
++Çó	F	196:i
++Çô	F	197:i
++Çõ	F	198:i
++Çö	F	199:i
++Ç÷	F	200:i
++Çø	F	201:i
++Çù	F	202:i
++Çú	F	203:i
++Çû	F	204:i
++Çü	F	205:i
++Çý	F	206:i
++Çþ	F	207:i
++È¡	F	208:i
++È¢	F	209:i
++È£	F	210:i
++Ȥ	F	211:i
++È¥	F	212:i
++Ȧ	F	213:i
++ȧ	F	214:i
++Ȩ	F	215:i
++È©	F	216:i
++Ȫ	F	217:i
++È«	F	218:i
++Ȭ	F	219:i
++È­	F	220:i
++È®	F	221:i
++ȯ	F	222:i
++È°	F	223:i
++ȱ	F	224:i
++Ȳ	F	225:i
++ȳ	F	226:i
++È´	F	227:i
++ȵ	F	228:i
++ȶ	F	229:i
++È·	F	230:i
++ȸ	F	231:i
++ȹ	F	232:i
++Ⱥ	F	233:i
++È»	F	234:i
++ȼ	F	235:i
++Ƚ	F	236:i
++Ⱦ	F	237:i
++È¿	F	238:i
++ÈÀ	F	239:i
++ÈÁ	F	240:i
++ÈÂ	F	241:i
++ÈÃ	F	242:i
++ÈÄ	F	243:i
++ÈÅ	F	244:i
++ÈÆ	F	245:i
++ÈÇ	F	246:i
++ÈÈ	F	247:i
++ÈÉ	F	248:i
++ÈÊ	F	249:i
++ÈË	F	250:i
++ÈÌ	F	251:i
++ÈÍ	F	252:i
++ÈÎ	F	253:i
++ÈÏ	F	254:i
++ÈÐ	F	255:i
++ÈÑ	F	0:j
++ÈÒ	F	1:j
++ÈÓ	F	2:j
++ÈÔ	F	3:j
++ÈÕ	F	4:j
++ÈÖ	F	5:j
++È×	F	6:j
++ÈØ	F	7:j
++ÈÙ	F	8:j
++ÈÚ	F	9:j
++ÈÛ	F	10:j
++ÈÜ	F	11:j
++ÈÝ	F	12:j
++ÈÞ	F	13:j
++Èß	F	14:j
++Èà	F	15:j
++Èá	F	16:j
++Èâ	F	17:j
++Èã	F	18:j
++Èä	F	19:j
++Èå	F	20:j
++Èæ	F	21:j
++Èç	F	22:j
++Èè	F	23:j
++Èé	F	24:j
++Èê	F	25:j
++Èë	F	26:j
++Èì	F	27:j
++Èí	F	28:j
++Èî	F	29:j
++Èï	F	30:j
++Èð	F	31:j
++Èñ	F	32:j
++Èò	F	33:j
++Èó	F	34:j
++Èô	F	35:j
++Èõ	F	36:j
++Èö	F	37:j
++È÷	F	38:j
++Èø	F	39:j
++Èù	F	40:j
++Èú	F	41:j
++Èû	F	42:j
++Èü	F	43:j
++Èý	F	44:j
++Èþ	F	45:j
++É¡	F	46:j
++É¢	F	47:j
++É£	F	48:j
++ɤ	F	49:j
++É¥	F	50:j
++ɦ	F	51:j
++ɧ	F	52:j
++ɨ	F	53:j
++É©	F	54:j
++ɪ	F	55:j
++É«	F	56:j
++ɬ	F	57:j
++É­	F	58:j
++É®	F	59:j
++ɯ	F	60:j
++É°	F	61:j
++ɱ	F	62:j
++ɲ	F	63:j
++ɳ	F	64:j
++É´	F	65:j
++ɵ	F	66:j
++ɶ	F	67:j
++É·	F	68:j
++ɸ	F	69:j
++ɹ	F	70:j
++ɺ	F	71:j
++É»	F	72:j
++ɼ	F	73:j
++ɽ	F	74:j
++ɾ	F	75:j
++É¿	F	76:j
++ÉÀ	F	77:j
++ÉÁ	F	78:j
++ÉÂ	F	79:j
++ÉÃ	F	80:j
++ÉÄ	F	81:j
++ÉÅ	F	82:j
++ÉÆ	F	83:j
++ÉÇ	F	84:j
++ÉÈ	F	85:j
++ÉÉ	F	86:j
++ÉÊ	F	87:j
++ÉË	F	88:j
++ÉÌ	F	89:j
++ÉÍ	F	90:j
++ÉÎ	F	91:j
++ÉÏ	F	92:j
++ÉÐ	F	93:j
++ÉÑ	F	94:j
++ÉÒ	F	95:j
++ÉÓ	F	96:j
++ÉÔ	F	97:j
++ÉÕ	F	98:j
++ÉÖ	F	99:j
++É×	F	100:j
++ÉØ	F	101:j
++ÉÙ	F	102:j
++ÉÚ	F	103:j
++ÉÛ	F	104:j
++ÉÜ	F	105:j
++ÉÝ	F	106:j
++ÉÞ	F	107:j
++Éß	F	108:j
++Éà	F	109:j
++Éá	F	110:j
++Éâ	F	111:j
++Éã	F	112:j
++Éä	F	113:j
++Éå	F	114:j
++Éæ	F	115:j
++Éç	F	116:j
++Éè	F	117:j
++Éé	F	118:j
++Éê	F	119:j
++Éë	F	120:j
++Éì	F	121:j
++Éí	F	122:j
++Éî	F	123:j
++Éï	F	124:j
++Éð	F	125:j
++Éñ	F	126:j
++Éò	F	127:j
++Éó	F	128:j
++Éô	F	129:j
++Éõ	F	130:j
++Éö	F	131:j
++É÷	F	132:j
++Éø	F	133:j
++Éù	F	134:j
++Éú	F	135:j
++Éû	F	136:j
++Éü	F	137:j
++Éý	F	138:j
++Éþ	F	139:j
++Ê¡	F	140:j
++Ê¢	F	141:j
++Ê£	F	142:j
++ʤ	F	143:j
++Ê¥	F	144:j
++ʦ	F	145:j
++ʧ	F	146:j
++ʨ	F	147:j
++Ê©	F	148:j
++ʪ	F	149:j
++Ê«	F	150:j
++ʬ	F	151:j
++Ê­	F	152:j
++Ê®	F	153:j
++ʯ	F	154:j
++Ê°	F	155:j
++ʱ	F	156:j
++ʲ	F	157:j
++ʳ	F	158:j
++Ê´	F	159:j
++ʵ	F	160:j
++ʶ	F	161:j
++Ê·	F	162:j
++ʸ	F	163:j
++ʹ	F	164:j
++ʺ	F	165:j
++Ê»	F	166:j
++ʼ	F	167:j
++ʽ	F	168:j
++ʾ	F	169:j
++Ê¿	F	170:j
++ÊÀ	F	171:j
++ÊÁ	F	172:j
++ÊÂ	F	173:j
++ÊÃ	F	174:j
++ÊÄ	F	175:j
++ÊÅ	F	176:j
++ÊÆ	F	177:j
++ÊÇ	F	178:j
++ÊÈ	F	179:j
++ÊÉ	F	180:j
++ÊÊ	F	181:j
++ÊË	F	182:j
++ÊÌ	F	183:j
++ÊÍ	F	184:j
++ÊÎ	F	185:j
++ÊÏ	F	186:j
++ÊÐ	F	187:j
++ÊÑ	F	188:j
++ÊÒ	F	189:j
++ÊÓ	F	190:j
++ÊÔ	F	191:j
++ÊÕ	F	192:j
++ÊÖ	F	193:j
++Ê×	F	194:j
++ÊØ	F	195:j
++ÊÙ	F	196:j
++ÊÚ	F	197:j
++ÊÛ	F	198:j
++ÊÜ	F	199:j
++ÊÝ	F	200:j
++ÊÞ	F	201:j
++Êß	F	202:j
++Êà	F	203:j
++Êá	F	204:j
++Êâ	F	205:j
++Êã	F	206:j
++Êä	F	207:j
++Êå	F	208:j
++Êæ	F	209:j
++Êç	F	210:j
++Êè	F	211:j
++Êé	F	212:j
++Êê	F	213:j
++Êë	F	214:j
++Êì	F	215:j
++Êí	F	216:j
++Êî	F	217:j
++Êï	F	218:j
++Êð	F	219:j
++Êñ	F	220:j
++Êò	F	221:j
++Êó	F	222:j
++Êô	F	223:j
++Êõ	F	224:j
++Êö	F	225:j
++Ê÷	F	226:j
++Êø	F	227:j
++Êù	F	228:j
++Êú	F	229:j
++Êû	F	230:j
++Êü	F	231:j
++Êý	F	232:j
++Êþ	F	233:j
++Ë¡	F	234:j
++Ë¢	F	235:j
++Ë£	F	236:j
++ˤ	F	237:j
++Ë¥	F	238:j
++˦	F	239:j
++˧	F	240:j
++˨	F	241:j
++Ë©	F	242:j
++˪	F	243:j
++Ë«	F	244:j
++ˬ	F	245:j
++Ë­	F	246:j
++Ë®	F	247:j
++˯	F	248:j
++Ë°	F	249:j
++˱	F	250:j
++˲	F	251:j
++˳	F	252:j
++Ë´	F	253:j
++˵	F	254:j
++˶	F	255:j
++Ë·	F	0:k
++˸	F	1:k
++˹	F	2:k
++˺	F	3:k
++Ë»	F	4:k
++˼	F	5:k
++˽	F	6:k
++˾	F	7:k
++Ë¿	F	8:k
++ËÀ	F	9:k
++ËÁ	F	10:k
++ËÂ	F	11:k
++ËÃ	F	12:k
++ËÄ	F	13:k
++ËÅ	F	14:k
++ËÆ	F	15:k
++ËÇ	F	16:k
++ËÈ	F	17:k
++ËÉ	F	18:k
++ËÊ	F	19:k
++ËË	F	20:k
++ËÌ	F	21:k
++ËÍ	F	22:k
++ËÎ	F	23:k
++ËÏ	F	24:k
++ËÐ	F	25:k
++ËÑ	F	26:k
++ËÒ	F	27:k
++ËÓ	F	28:k
++ËÔ	F	29:k
++ËÕ	F	30:k
++ËÖ	F	31:k
++Ë×	F	32:k
++ËØ	F	33:k
++ËÙ	F	34:k
++ËÚ	F	35:k
++ËÛ	F	36:k
++ËÜ	F	37:k
++ËÝ	F	38:k
++ËÞ	F	39:k
++Ëß	F	40:k
++Ëà	F	41:k
++Ëá	F	42:k
++Ëâ	F	43:k
++Ëã	F	44:k
++Ëä	F	45:k
++Ëå	F	46:k
++Ëæ	F	47:k
++Ëç	F	48:k
++Ëè	F	49:k
++Ëé	F	50:k
++Ëê	F	51:k
++Ëë	F	52:k
++Ëì	F	53:k
++Ëí	F	54:k
++Ëî	F	55:k
++Ëï	F	56:k
++Ëð	F	57:k
++Ëñ	F	58:k
++Ëò	F	59:k
++Ëó	F	60:k
++Ëô	F	61:k
++Ëõ	F	62:k
++Ëö	F	63:k
++Ë÷	F	64:k
++Ëø	F	65:k
++Ëù	F	66:k
++Ëú	F	67:k
++Ëû	F	68:k
++Ëü	F	69:k
++Ëý	F	70:k
++Ëþ	F	71:k
++Ì¡	F	72:k
++Ì¢	F	73:k
++Ì£	F	74:k
++̤	F	75:k
++Ì¥	F	76:k
++̦	F	77:k
++̧	F	78:k
++̨	F	79:k
++Ì©	F	80:k
++̪	F	81:k
++Ì«	F	82:k
++̬	F	83:k
++Ì­	F	84:k
++Ì®	F	85:k
++̯	F	86:k
++Ì°	F	87:k
++̱	F	88:k
++̲	F	89:k
++̳	F	90:k
++Ì´	F	91:k
++̵	F	92:k
++̶	F	93:k
++Ì·	F	94:k
++̸	F	95:k
++̹	F	96:k
++̺	F	97:k
++Ì»	F	98:k
++̼	F	99:k
++̽	F	100:k
++̾	F	101:k
++Ì¿	F	102:k
++ÌÀ	F	103:k
++ÌÁ	F	104:k
++ÌÂ	F	105:k
++ÌÃ	F	106:k
++ÌÄ	F	107:k
++ÌÅ	F	108:k
++ÌÆ	F	109:k
++ÌÇ	F	110:k
++ÌÈ	F	111:k
++ÌÉ	F	112:k
++ÌÊ	F	113:k
++ÌË	F	114:k
++ÌÌ	F	115:k
++ÌÍ	F	116:k
++ÌÎ	F	117:k
++ÌÏ	F	118:k
++ÌÐ	F	119:k
++ÌÑ	F	120:k
++ÌÒ	F	121:k
++ÌÓ	F	122:k
++ÌÔ	F	123:k
++ÌÕ	F	124:k
++ÌÖ	F	125:k
++Ì×	F	126:k
++ÌØ	F	127:k
++ÌÙ	F	128:k
++ÌÚ	F	129:k
++ÌÛ	F	130:k
++ÌÜ	F	131:k
++ÌÝ	F	132:k
++ÌÞ	F	133:k
++Ìß	F	134:k
++Ìà	F	135:k
++Ìá	F	136:k
++Ìâ	F	137:k
++Ìã	F	138:k
++Ìä	F	139:k
++Ìå	F	140:k
++Ìæ	F	141:k
++Ìç	F	142:k
++Ìè	F	143:k
++Ìé	F	144:k
++Ìê	F	145:k
++Ìë	F	146:k
++Ìì	F	147:k
++Ìí	F	148:k
++Ìî	F	149:k
++Ìï	F	150:k
++Ìð	F	151:k
++Ìñ	F	152:k
++Ìò	F	153:k
++Ìó	F	154:k
++Ìô	F	155:k
++Ìõ	F	156:k
++Ìö	F	157:k
++Ì÷	F	158:k
++Ìø	F	159:k
++Ìù	F	160:k
++Ìú	F	161:k
++Ìû	F	162:k
++Ìü	F	163:k
++Ìý	F	164:k
++Ìþ	F	165:k
++Í¡	F	166:k
++Í¢	F	167:k
++Í£	F	168:k
++ͤ	F	169:k
++Í¥	F	170:k
++ͦ	F	171:k
++ͧ	F	172:k
++ͨ	F	173:k
++Í©	F	174:k
++ͪ	F	175:k
++Í«	F	176:k
++ͬ	F	177:k
++Í­	F	178:k
++Í®	F	179:k
++ͯ	F	180:k
++Í°	F	181:k
++ͱ	F	182:k
++Ͳ	F	183:k
++ͳ	F	184:k
++Í´	F	185:k
++͵	F	186:k
++Ͷ	F	187:k
++Í·	F	188:k
++͸	F	189:k
++͹	F	190:k
++ͺ	F	191:k
++Í»	F	192:k
++ͼ	F	193:k
++ͽ	F	194:k
++;	F	195:k
++Í¿	F	196:k
++ÍÀ	F	197:k
++ÍÁ	F	198:k
++ÍÂ	F	199:k
++ÍÃ	F	200:k
++ÍÄ	F	201:k
++ÍÅ	F	202:k
++ÍÆ	F	203:k
++ÍÇ	F	204:k
++ÍÈ	F	205:k
++ÍÉ	F	206:k
++ÍÊ	F	207:k
++ÍË	F	208:k
++ÍÌ	F	209:k
++ÍÍ	F	210:k
++ÍÎ	F	211:k
++ÍÏ	F	212:k
++ÍÐ	F	213:k
++ÍÑ	F	214:k
++ÍÒ	F	215:k
++ÍÓ	F	216:k
++ÍÔ	F	217:k
++ÍÕ	F	218:k
++ÍÖ	F	219:k
++Í×	F	220:k
++ÍØ	F	221:k
++ÍÙ	F	222:k
++ÍÚ	F	223:k
++ÍÛ	F	224:k
++ÍÜ	F	225:k
++ÍÝ	F	226:k
++ÍÞ	F	227:k
++Íß	F	228:k
++Íà	F	229:k
++Íá	F	230:k
++Íâ	F	231:k
++Íã	F	232:k
++Íä	F	233:k
++Íå	F	234:k
++Íæ	F	235:k
++Íç	F	236:k
++Íè	F	237:k
++Íé	F	238:k
++Íê	F	239:k
++Íë	F	240:k
++Íì	F	241:k
++Íí	F	242:k
++Íî	F	243:k
++Íï	F	244:k
++Íð	F	245:k
++Íñ	F	246:k
++Íò	F	247:k
++Íó	F	248:k
++Íô	F	249:k
++Íõ	F	250:k
++Íö	F	251:k
++Í÷	F	252:k
++Íø	F	253:k
++Íù	F	254:k
++Íú	F	255:k
++Íû	F	0:l
++Íü	F	1:l
++Íý	F	2:l
++Íþ	F	3:l
++Ρ	F	4:l
++΢	F	5:l
++Σ	F	6:l
++Τ	F	7:l
++Î¥	F	8:l
++Φ	F	9:l
++Χ	F	10:l
++Ψ	F	11:l
++Ω	F	12:l
++Ϊ	F	13:l
++Ϋ	F	14:l
++ά	F	15:l
++έ	F	16:l
++ή	F	17:l
++ί	F	18:l
++ΰ	F	19:l
++α	F	20:l
++β	F	21:l
++γ	F	22:l
++δ	F	23:l
++ε	F	24:l
++ζ	F	25:l
++η	F	26:l
++θ	F	27:l
++ι	F	28:l
++κ	F	29:l
++λ	F	30:l
++μ	F	31:l
++ν	F	32:l
++ξ	F	33:l
++ο	F	34:l
++ÎÀ	F	35:l
++ÎÁ	F	36:l
++ÎÂ	F	37:l
++ÎÃ	F	38:l
++ÎÄ	F	39:l
++ÎÅ	F	40:l
++ÎÆ	F	41:l
++ÎÇ	F	42:l
++ÎÈ	F	43:l
++ÎÉ	F	44:l
++ÎÊ	F	45:l
++ÎË	F	46:l
++ÎÌ	F	47:l
++ÎÍ	F	48:l
++ÎÎ	F	49:l
++ÎÏ	F	50:l
++ÎÐ	F	51:l
++ÎÑ	F	52:l
++ÎÒ	F	53:l
++ÎÓ	F	54:l
++ÎÔ	F	55:l
++ÎÕ	F	56:l
++ÎÖ	F	57:l
++Î×	F	58:l
++ÎØ	F	59:l
++ÎÙ	F	60:l
++ÎÚ	F	61:l
++ÎÛ	F	62:l
++ÎÜ	F	63:l
++ÎÝ	F	64:l
++ÎÞ	F	65:l
++Îß	F	66:l
++Îà	F	67:l
++Îá	F	68:l
++Îâ	F	69:l
++Îã	F	70:l
++Îä	F	71:l
++Îå	F	72:l
++Îæ	F	73:l
++Îç	F	74:l
++Îè	F	75:l
++Îé	F	76:l
++Îê	F	77:l
++Îë	F	78:l
++Îì	F	79:l
++Îí	F	80:l
++Îî	F	81:l
++Îï	F	82:l
++Îð	F	83:l
++Îñ	F	84:l
++Îò	F	85:l
++Îó	F	86:l
++Îô	F	87:l
++Îõ	F	88:l
++Îö	F	89:l
++Î÷	F	90:l
++Îø	F	91:l
++Îù	F	92:l
++Îú	F	93:l
++Îû	F	94:l
++Îü	F	95:l
++Îý	F	96:l
++Îþ	F	97:l
++Ï¡	F	98:l
++Ï¢	F	99:l
++Ï£	F	100:l
++Ϥ	F	101:l
++Ï¥	F	102:l
++Ϧ	F	103:l
++ϧ	F	104:l
++Ϩ	F	105:l
++Ï©	F	106:l
++Ϫ	F	107:l
++Ï«	F	108:l
++Ϭ	F	109:l
++Ï­	F	110:l
++Ï®	F	111:l
++ϯ	F	112:l
++Ï°	F	113:l
++ϱ	F	114:l
++ϲ	F	115:l
++ϳ	F	116:l
++Ï´	F	117:l
++ϵ	F	118:l
++϶	F	119:l
++Ï·	F	120:l
++ϸ	F	121:l
++Ϲ	F	122:l
++Ϻ	F	123:l
++Ï»	F	124:l
++ϼ	F	125:l
++Ͻ	F	126:l
++Ͼ	F	127:l
++Ï¿	F	128:l
++ÏÀ	F	129:l
++ÏÁ	F	130:l
++ÏÂ	F	131:l
++ÏÃ	F	132:l
++ÏÄ	F	133:l
++ÏÅ	F	134:l
++ÏÆ	F	135:l
++ÏÇ	F	136:l
++ÏÈ	F	137:l
++ÏÉ	F	138:l
++ÏÊ	F	139:l
++ÏË	F	140:l
++ÏÌ	F	141:l
++ÏÍ	F	142:l
++ÏÎ	F	143:l
++ÏÏ	F	144:l
++ÏÐ	F	145:l
++ÏÑ	F	146:l
++ÏÒ	F	147:l
++ÏÓ	F	148:l
++С	F	0:m
++Т	F	1:m
++У	F	2:m
++Ф	F	3:m
++Ð¥	F	4:m
++Ц	F	5:m
++Ч	F	6:m
++Ш	F	7:m
++Щ	F	8:m
++Ъ	F	9:m
++Ы	F	10:m
++Ь	F	11:m
++Э	F	12:m
++Ю	F	13:m
++Я	F	14:m
++а	F	15:m
++б	F	16:m
++в	F	17:m
++г	F	18:m
++д	F	19:m
++е	F	20:m
++ж	F	21:m
++з	F	22:m
++и	F	23:m
++й	F	24:m
++к	F	25:m
++л	F	26:m
++м	F	27:m
++н	F	28:m
++о	F	29:m
++п	F	30:m
++ÐÀ	F	31:m
++ÐÁ	F	32:m
++ÐÂ	F	33:m
++ÐÃ	F	34:m
++ÐÄ	F	35:m
++ÐÅ	F	36:m
++ÐÆ	F	37:m
++ÐÇ	F	38:m
++ÐÈ	F	39:m
++ÐÉ	F	40:m
++ÐÊ	F	41:m
++ÐË	F	42:m
++ÐÌ	F	43:m
++ÐÍ	F	44:m
++ÐÎ	F	45:m
++ÐÏ	F	46:m
++ÐÐ	F	47:m
++ÐÑ	F	48:m
++ÐÒ	F	49:m
++ÐÓ	F	50:m
++ÐÔ	F	51:m
++ÐÕ	F	52:m
++ÐÖ	F	53:m
++Ð×	F	54:m
++ÐØ	F	55:m
++ÐÙ	F	56:m
++ÐÚ	F	57:m
++ÐÛ	F	58:m
++ÐÜ	F	59:m
++ÐÝ	F	60:m
++ÐÞ	F	61:m
++Ðß	F	62:m
++Ðà	F	63:m
++Ðá	F	64:m
++Ðâ	F	65:m
++Ðã	F	66:m
++Ðä	F	67:m
++Ðå	F	68:m
++Ðæ	F	69:m
++Ðç	F	70:m
++Ðè	F	71:m
++Ðé	F	72:m
++Ðê	F	73:m
++Ðë	F	74:m
++Ðì	F	75:m
++Ðí	F	76:m
++Ðî	F	77:m
++Ðï	F	78:m
++Ðð	F	79:m
++Ðñ	F	80:m
++Ðò	F	81:m
++Ðó	F	82:m
++Ðô	F	83:m
++Ðõ	F	84:m
++Ðö	F	85:m
++Ð÷	F	86:m
++Ðø	F	87:m
++Ðù	F	88:m
++Ðú	F	89:m
++Ðû	F	90:m
++Ðü	F	91:m
++Ðý	F	92:m
++Ðþ	F	93:m
++Ñ¡	F	94:m
++Ñ¢	F	95:m
++Ñ£	F	96:m
++Ѥ	F	97:m
++Ñ¥	F	98:m
++Ѧ	F	99:m
++ѧ	F	100:m
++Ѩ	F	101:m
++Ñ©	F	102:m
++Ѫ	F	103:m
++Ñ«	F	104:m
++Ѭ	F	105:m
++Ñ­	F	106:m
++Ñ®	F	107:m
++ѯ	F	108:m
++Ñ°	F	109:m
++ѱ	F	110:m
++Ѳ	F	111:m
++ѳ	F	112:m
++Ñ´	F	113:m
++ѵ	F	114:m
++Ѷ	F	115:m
++Ñ·	F	116:m
++Ѹ	F	117:m
++ѹ	F	118:m
++Ѻ	F	119:m
++Ñ»	F	120:m
++Ѽ	F	121:m
++ѽ	F	122:m
++Ѿ	F	123:m
++Ñ¿	F	124:m
++ÑÀ	F	125:m
++ÑÁ	F	126:m
++ÑÂ	F	127:m
++ÑÃ	F	128:m
++ÑÄ	F	129:m
++ÑÅ	F	130:m
++ÑÆ	F	131:m
++ÑÇ	F	132:m
++ÑÈ	F	133:m
++ÑÉ	F	134:m
++ÑÊ	F	135:m
++ÑË	F	136:m
++ÑÌ	F	137:m
++ÑÍ	F	138:m
++ÑÎ	F	139:m
++ÑÏ	F	140:m
++ÑÐ	F	141:m
++ÑÑ	F	142:m
++ÑÒ	F	143:m
++ÑÓ	F	144:m
++ÑÔ	F	145:m
++ÑÕ	F	146:m
++ÑÖ	F	147:m
++Ñ×	F	148:m
++ÑØ	F	149:m
++ÑÙ	F	150:m
++ÑÚ	F	151:m
++ÑÛ	F	152:m
++ÑÜ	F	153:m
++ÑÝ	F	154:m
++ÑÞ	F	155:m
++Ñß	F	156:m
++Ñà	F	157:m
++Ñá	F	158:m
++Ñâ	F	159:m
++Ñã	F	160:m
++Ñä	F	161:m
++Ñå	F	162:m
++Ñæ	F	163:m
++Ñç	F	164:m
++Ñè	F	165:m
++Ñé	F	166:m
++Ñê	F	167:m
++Ñë	F	168:m
++Ñì	F	169:m
++Ñí	F	170:m
++Ñî	F	171:m
++Ñï	F	172:m
++Ñð	F	173:m
++Ññ	F	174:m
++Ñò	F	175:m
++Ñó	F	176:m
++Ñô	F	177:m
++Ñõ	F	178:m
++Ñö	F	179:m
++Ñ÷	F	180:m
++Ñø	F	181:m
++Ñù	F	182:m
++Ñú	F	183:m
++Ñû	F	184:m
++Ñü	F	185:m
++Ñý	F	186:m
++Ñþ	F	187:m
++Ò¡	F	188:m
++Ò¢	F	189:m
++Ò£	F	190:m
++Ò¤	F	191:m
++Ò¥	F	192:m
++Ò¦	F	193:m
++Ò§	F	194:m
++Ò¨	F	195:m
++Ò©	F	196:m
++Òª	F	197:m
++Ò«	F	198:m
++Ò¬	F	199:m
++Ò­	F	200:m
++Ò®	F	201:m
++Ò¯	F	202:m
++Ò°	F	203:m
++Ò±	F	204:m
++Ò²	F	205:m
++Ò³	F	206:m
++Ò´	F	207:m
++Òµ	F	208:m
++Ò¶	F	209:m
++Ò·	F	210:m
++Ò¸	F	211:m
++Ò¹	F	212:m
++Òº	F	213:m
++Ò»	F	214:m
++Ò¼	F	215:m
++Ò½	F	216:m
++Ò¾	F	217:m
++Ò¿	F	218:m
++ÒÀ	F	219:m
++ÒÁ	F	220:m
++ÒÂ	F	221:m
++ÒÃ	F	222:m
++ÒÄ	F	223:m
++ÒÅ	F	224:m
++ÒÆ	F	225:m
++ÒÇ	F	226:m
++ÒÈ	F	227:m
++ÒÉ	F	228:m
++ÒÊ	F	229:m
++ÒË	F	230:m
++ÒÌ	F	231:m
++ÒÍ	F	232:m
++ÒÎ	F	233:m
++ÒÏ	F	234:m
++ÒÐ	F	235:m
++ÒÑ	F	236:m
++ÒÒ	F	237:m
++ÒÓ	F	238:m
++ÒÔ	F	239:m
++ÒÕ	F	240:m
++ÒÖ	F	241:m
++Ò×	F	242:m
++ÒØ	F	243:m
++ÒÙ	F	244:m
++ÒÚ	F	245:m
++ÒÛ	F	246:m
++ÒÜ	F	247:m
++ÒÝ	F	248:m
++ÒÞ	F	249:m
++Òß	F	250:m
++Òà	F	251:m
++Òá	F	252:m
++Òâ	F	253:m
++Òã	F	254:m
++Òä	F	255:m
++Òå	F	0:n
++Òæ	F	1:n
++Òç	F	2:n
++Òè	F	3:n
++Òé	F	4:n
++Òê	F	5:n
++Òë	F	6:n
++Òì	F	7:n
++Òí	F	8:n
++Òî	F	9:n
++Òï	F	10:n
++Òð	F	11:n
++Òñ	F	12:n
++Òò	F	13:n
++Òó	F	14:n
++Òô	F	15:n
++Òõ	F	16:n
++Òö	F	17:n
++Ò÷	F	18:n
++Òø	F	19:n
++Òù	F	20:n
++Òú	F	21:n
++Òû	F	22:n
++Òü	F	23:n
++Òý	F	24:n
++Òþ	F	25:n
++Ó¡	F	26:n
++Ó¢	F	27:n
++Ó£	F	28:n
++Ó¤	F	29:n
++Ó¥	F	30:n
++Ó¦	F	31:n
++Ó§	F	32:n
++Ó¨	F	33:n
++Ó©	F	34:n
++Óª	F	35:n
++Ó«	F	36:n
++Ó¬	F	37:n
++Ó­	F	38:n
++Ó®	F	39:n
++Ó¯	F	40:n
++Ó°	F	41:n
++Ó±	F	42:n
++Ó²	F	43:n
++Ó³	F	44:n
++Ó´	F	45:n
++Óµ	F	46:n
++Ó¶	F	47:n
++Ó·	F	48:n
++Ó¸	F	49:n
++Ó¹	F	50:n
++Óº	F	51:n
++Ó»	F	52:n
++Ó¼	F	53:n
++Ó½	F	54:n
++Ó¾	F	55:n
++Ó¿	F	56:n
++ÓÀ	F	57:n
++ÓÁ	F	58:n
++ÓÂ	F	59:n
++ÓÃ	F	60:n
++ÓÄ	F	61:n
++ÓÅ	F	62:n
++ÓÆ	F	63:n
++ÓÇ	F	64:n
++ÓÈ	F	65:n
++ÓÉ	F	66:n
++ÓÊ	F	67:n
++ÓË	F	68:n
++ÓÌ	F	69:n
++ÓÍ	F	70:n
++ÓÎ	F	71:n
++ÓÏ	F	72:n
++ÓÐ	F	73:n
++ÓÑ	F	74:n
++ÓÒ	F	75:n
++ÓÓ	F	76:n
++ÓÔ	F	77:n
++ÓÕ	F	78:n
++ÓÖ	F	79:n
++Ó×	F	80:n
++ÓØ	F	81:n
++ÓÙ	F	82:n
++ÓÚ	F	83:n
++ÓÛ	F	84:n
++ÓÜ	F	85:n
++ÓÝ	F	86:n
++ÓÞ	F	87:n
++Óß	F	88:n
++Óà	F	89:n
++Óá	F	90:n
++Óâ	F	91:n
++Óã	F	92:n
++Óä	F	93:n
++Óå	F	94:n
++Óæ	F	95:n
++Óç	F	96:n
++Óè	F	97:n
++Óé	F	98:n
++Óê	F	99:n
++Óë	F	100:n
++Óì	F	101:n
++Óí	F	102:n
++Óî	F	103:n
++Óï	F	104:n
++Óð	F	105:n
++Óñ	F	106:n
++Óò	F	107:n
++Óó	F	108:n
++Óô	F	109:n
++Óõ	F	110:n
++Óö	F	111:n
++Ó÷	F	112:n
++Óø	F	113:n
++Óù	F	114:n
++Óú	F	115:n
++Óû	F	116:n
++Óü	F	117:n
++Óý	F	118:n
++Óþ	F	119:n
++Ô¡	F	120:n
++Ô¢	F	121:n
++Ô£	F	122:n
++Ô¤	F	123:n
++Ô¥	F	124:n
++Ô¦	F	125:n
++Ô§	F	126:n
++Ô¨	F	127:n
++Ô©	F	128:n
++Ôª	F	129:n
++Ô«	F	130:n
++Ô¬	F	131:n
++Ô­	F	132:n
++Ô®	F	133:n
++Ô¯	F	134:n
++Ô°	F	135:n
++Ô±	F	136:n
++Ô²	F	137:n
++Ô³	F	138:n
++Ô´	F	139:n
++Ôµ	F	140:n
++Ô¶	F	141:n
++Ô·	F	142:n
++Ô¸	F	143:n
++Ô¹	F	144:n
++Ôº	F	145:n
++Ô»	F	146:n
++Ô¼	F	147:n
++Ô½	F	148:n
++Ô¾	F	149:n
++Ô¿	F	150:n
++ÔÀ	F	151:n
++ÔÁ	F	152:n
++ÔÂ	F	153:n
++ÔÃ	F	154:n
++ÔÄ	F	155:n
++ÔÅ	F	156:n
++ÔÆ	F	157:n
++ÔÇ	F	158:n
++ÔÈ	F	159:n
++ÔÉ	F	160:n
++ÔÊ	F	161:n
++ÔË	F	162:n
++ÔÌ	F	163:n
++ÔÍ	F	164:n
++ÔÎ	F	165:n
++ÔÏ	F	166:n
++ÔÐ	F	167:n
++ÔÑ	F	168:n
++ÔÒ	F	169:n
++ÔÓ	F	170:n
++ÔÔ	F	171:n
++ÔÕ	F	172:n
++ÔÖ	F	173:n
++Ô×	F	174:n
++ÔØ	F	175:n
++ÔÙ	F	176:n
++ÔÚ	F	177:n
++ÔÛ	F	178:n
++ÔÜ	F	179:n
++ÔÝ	F	180:n
++ÔÞ	F	181:n
++Ôß	F	182:n
++Ôà	F	183:n
++Ôá	F	184:n
++Ôâ	F	185:n
++Ôã	F	186:n
++Ôä	F	187:n
++Ôå	F	188:n
++Ôæ	F	189:n
++Ôç	F	190:n
++Ôè	F	191:n
++Ôé	F	192:n
++Ôê	F	193:n
++Ôë	F	194:n
++Ôì	F	195:n
++Ôí	F	196:n
++Ôî	F	197:n
++Ôï	F	198:n
++Ôð	F	199:n
++Ôñ	F	200:n
++Ôò	F	201:n
++Ôó	F	202:n
++Ôô	F	203:n
++Ôõ	F	204:n
++Ôö	F	205:n
++Ô÷	F	206:n
++Ôø	F	207:n
++Ôù	F	208:n
++Ôú	F	209:n
++Ôû	F	210:n
++Ôü	F	211:n
++Ôý	F	212:n
++Ôþ	F	213:n
++Õ¡	F	214:n
++Õ¢	F	215:n
++Õ£	F	216:n
++Õ¤	F	217:n
++Õ¥	F	218:n
++Õ¦	F	219:n
++Õ§	F	220:n
++Õ¨	F	221:n
++Õ©	F	222:n
++Õª	F	223:n
++Õ«	F	224:n
++Õ¬	F	225:n
++Õ­	F	226:n
++Õ®	F	227:n
++Õ¯	F	228:n
++Õ°	F	229:n
++Õ±	F	230:n
++Õ²	F	231:n
++Õ³	F	232:n
++Õ´	F	233:n
++Õµ	F	234:n
++Õ¶	F	235:n
++Õ·	F	236:n
++Õ¸	F	237:n
++Õ¹	F	238:n
++Õº	F	239:n
++Õ»	F	240:n
++Õ¼	F	241:n
++Õ½	F	242:n
++Õ¾	F	243:n
++Õ¿	F	244:n
++ÕÀ	F	245:n
++ÕÁ	F	246:n
++ÕÂ	F	247:n
++ÕÃ	F	248:n
++ÕÄ	F	249:n
++ÕÅ	F	250:n
++ÕÆ	F	251:n
++ÕÇ	F	252:n
++ÕÈ	F	253:n
++ÕÉ	F	254:n
++ÕÊ	F	255:n
++ÕË	F	0:o
++ÕÌ	F	1:o
++ÕÍ	F	2:o
++ÕÎ	F	3:o
++ÕÏ	F	4:o
++ÕÐ	F	5:o
++ÕÑ	F	6:o
++ÕÒ	F	7:o
++ÕÓ	F	8:o
++ÕÔ	F	9:o
++ÕÕ	F	10:o
++ÕÖ	F	11:o
++Õ×	F	12:o
++ÕØ	F	13:o
++ÕÙ	F	14:o
++ÕÚ	F	15:o
++ÕÛ	F	16:o
++ÕÜ	F	17:o
++ÕÝ	F	18:o
++ÕÞ	F	19:o
++Õß	F	20:o
++Õà	F	21:o
++Õá	F	22:o
++Õâ	F	23:o
++Õã	F	24:o
++Õä	F	25:o
++Õå	F	26:o
++Õæ	F	27:o
++Õç	F	28:o
++Õè	F	29:o
++Õé	F	30:o
++Õê	F	31:o
++Õë	F	32:o
++Õì	F	33:o
++Õí	F	34:o
++Õî	F	35:o
++Õï	F	36:o
++Õð	F	37:o
++Õñ	F	38:o
++Õò	F	39:o
++Õó	F	40:o
++Õô	F	41:o
++Õõ	F	42:o
++Õö	F	43:o
++Õ÷	F	44:o
++Õø	F	45:o
++Õù	F	46:o
++Õú	F	47:o
++Õû	F	48:o
++Õü	F	49:o
++Õý	F	50:o
++Õþ	F	51:o
++Ö¡	F	52:o
++Ö¢	F	53:o
++Ö£	F	54:o
++Ö¤	F	55:o
++Ö¥	F	56:o
++Ö¦	F	57:o
++Ö§	F	58:o
++Ö¨	F	59:o
++Ö©	F	60:o
++Öª	F	61:o
++Ö«	F	62:o
++Ö¬	F	63:o
++Ö­	F	64:o
++Ö®	F	65:o
++Ö¯	F	66:o
++Ö°	F	67:o
++Ö±	F	68:o
++Ö²	F	69:o
++Ö³	F	70:o
++Ö´	F	71:o
++Öµ	F	72:o
++Ö¶	F	73:o
++Ö·	F	74:o
++Ö¸	F	75:o
++Ö¹	F	76:o
++Öº	F	77:o
++Ö»	F	78:o
++Ö¼	F	79:o
++Ö½	F	80:o
++Ö¾	F	81:o
++Ö¿	F	82:o
++ÖÀ	F	83:o
++ÖÁ	F	84:o
++ÖÂ	F	85:o
++ÖÃ	F	86:o
++ÖÄ	F	87:o
++ÖÅ	F	88:o
++ÖÆ	F	89:o
++ÖÇ	F	90:o
++ÖÈ	F	91:o
++ÖÉ	F	92:o
++ÖÊ	F	93:o
++ÖË	F	94:o
++ÖÌ	F	95:o
++ÖÍ	F	96:o
++ÖÎ	F	97:o
++ÖÏ	F	98:o
++ÖÐ	F	99:o
++ÖÑ	F	100:o
++ÖÒ	F	101:o
++ÖÓ	F	102:o
++ÖÔ	F	103:o
++ÖÕ	F	104:o
++ÖÖ	F	105:o
++Ö×	F	106:o
++ÖØ	F	107:o
++ÖÙ	F	108:o
++ÖÚ	F	109:o
++ÖÛ	F	110:o
++ÖÜ	F	111:o
++ÖÝ	F	112:o
++ÖÞ	F	113:o
++Öß	F	114:o
++Öà	F	115:o
++Öá	F	116:o
++Öâ	F	117:o
++Öã	F	118:o
++Öä	F	119:o
++Öå	F	120:o
++Öæ	F	121:o
++Öç	F	122:o
++Öè	F	123:o
++Öé	F	124:o
++Öê	F	125:o
++Öë	F	126:o
++Öì	F	127:o
++Öí	F	128:o
++Öî	F	129:o
++Öï	F	130:o
++Öð	F	131:o
++Öñ	F	132:o
++Öò	F	133:o
++Öó	F	134:o
++Öô	F	135:o
++Öõ	F	136:o
++Öö	F	137:o
++Ö÷	F	138:o
++Öø	F	139:o
++Öù	F	140:o
++Öú	F	141:o
++Öû	F	142:o
++Öü	F	143:o
++Öý	F	144:o
++Öþ	F	145:o
++ס	F	146:o
++×¢	F	147:o
++×£	F	148:o
++פ	F	149:o
++×¥	F	150:o
++צ	F	151:o
++ק	F	152:o
++ר	F	153:o
++ש	F	154:o
++ת	F	155:o
++׫	F	156:o
++׬	F	157:o
++×­	F	158:o
++×®	F	159:o
++ׯ	F	160:o
++×°	F	161:o
++×±	F	162:o
++ײ	F	163:o
++׳	F	164:o
++×´	F	165:o
++×µ	F	166:o
++׶	F	167:o
++×·	F	168:o
++׸	F	169:o
++×¹	F	170:o
++׺	F	171:o
++×»	F	172:o
++×¼	F	173:o
++×½	F	174:o
++×¾	F	175:o
++׿	F	176:o
++×À	F	177:o
++×Á	F	178:o
++×Â	F	179:o
++×Ã	F	180:o
++×Ä	F	181:o
++×Å	F	182:o
++×Æ	F	183:o
++×Ç	F	184:o
++×È	F	185:o
++×É	F	186:o
++×Ê	F	187:o
++×Ë	F	188:o
++×Ì	F	189:o
++×Í	F	190:o
++×Î	F	191:o
++×Ï	F	192:o
++×Ð	F	193:o
++×Ñ	F	194:o
++×Ò	F	195:o
++×Ó	F	196:o
++×Ô	F	197:o
++×Õ	F	198:o
++×Ö	F	199:o
++××	F	200:o
++×Ø	F	201:o
++×Ù	F	202:o
++×Ú	F	203:o
++×Û	F	204:o
++×Ü	F	205:o
++×Ý	F	206:o
++×Þ	F	207:o
++×ß	F	208:o
++×à	F	209:o
++×á	F	210:o
++×â	F	211:o
++×ã	F	212:o
++×ä	F	213:o
++×å	F	214:o
++×æ	F	215:o
++×ç	F	216:o
++×è	F	217:o
++×é	F	218:o
++×ê	F	219:o
++×ë	F	220:o
++×ì	F	221:o
++×í	F	222:o
++×î	F	223:o
++×ï	F	224:o
++×ð	F	225:o
++×ñ	F	226:o
++×ò	F	227:o
++×ó	F	228:o
++×ô	F	229:o
++×õ	F	230:o
++×ö	F	231:o
++×÷	F	232:o
++×ø	F	233:o
++×ù	F	234:o
++×ú	F	235:o
++×û	F	236:o
++×ü	F	237:o
++×ý	F	238:o
++×þ	F	239:o
++Ø¡	F	240:o
++Ø¢	F	241:o
++Ø£	F	242:o
++ؤ	F	243:o
++Ø¥	F	244:o
++ئ	F	245:o
++ا	F	246:o
++ب	F	247:o
++Ø©	F	248:o
++ت	F	249:o
++Ø«	F	250:o
++ج	F	251:o
++Ø­	F	252:o
++Ø®	F	253:o
++د	F	254:o
++Ø°	F	255:o
++ر	F	0:p
++ز	F	1:p
++س	F	2:p
++Ø´	F	3:p
++ص	F	4:p
++ض	F	5:p
++Ø·	F	6:p
++ظ	F	7:p
++ع	F	8:p
++غ	F	9:p
++Ø»	F	10:p
++ؼ	F	11:p
++ؽ	F	12:p
++ؾ	F	13:p
++Ø¿	F	14:p
++ØÀ	F	15:p
++ØÁ	F	16:p
++ØÂ	F	17:p
++ØÃ	F	18:p
++ØÄ	F	19:p
++ØÅ	F	20:p
++ØÆ	F	21:p
++ØÇ	F	22:p
++ØÈ	F	23:p
++ØÉ	F	24:p
++ØÊ	F	25:p
++ØË	F	26:p
++ØÌ	F	27:p
++ØÍ	F	28:p
++ØÎ	F	29:p
++ØÏ	F	30:p
++ØÐ	F	31:p
++ØÑ	F	32:p
++ØÒ	F	33:p
++ØÓ	F	34:p
++ØÔ	F	35:p
++ØÕ	F	36:p
++ØÖ	F	37:p
++Ø×	F	38:p
++ØØ	F	39:p
++ØÙ	F	40:p
++ØÚ	F	41:p
++ØÛ	F	42:p
++ØÜ	F	43:p
++ØÝ	F	44:p
++ØÞ	F	45:p
++Øß	F	46:p
++Øà	F	47:p
++Øá	F	48:p
++Øâ	F	49:p
++Øã	F	50:p
++Øä	F	51:p
++Øå	F	52:p
++Øæ	F	53:p
++Øç	F	54:p
++Øè	F	55:p
++Øé	F	56:p
++Øê	F	57:p
++Øë	F	58:p
++Øì	F	59:p
++Øí	F	60:p
++Øî	F	61:p
++Øï	F	62:p
++Øð	F	63:p
++Øñ	F	64:p
++Øò	F	65:p
++Øó	F	66:p
++Øô	F	67:p
++Øõ	F	68:p
++Øö	F	69:p
++Ø÷	F	70:p
++Øø	F	71:p
++Øù	F	72:p
++Øú	F	73:p
++Øû	F	74:p
++Øü	F	75:p
++Øý	F	76:p
++Øþ	F	77:p
++Ù¡	F	78:p
++Ù¢	F	79:p
++Ù£	F	80:p
++Ù¤	F	81:p
++Ù¥	F	82:p
++Ù¦	F	83:p
++Ù§	F	84:p
++Ù¨	F	85:p
++Ù©	F	86:p
++Ùª	F	87:p
++Ù«	F	88:p
++Ù¬	F	89:p
++Ù­	F	90:p
++Ù®	F	91:p
++Ù¯	F	92:p
++Ù°	F	93:p
++Ù±	F	94:p
++Ù²	F	95:p
++Ù³	F	96:p
++Ù´	F	97:p
++Ùµ	F	98:p
++Ù¶	F	99:p
++Ù·	F	100:p
++Ù¸	F	101:p
++Ù¹	F	102:p
++Ùº	F	103:p
++Ù»	F	104:p
++Ù¼	F	105:p
++Ù½	F	106:p
++Ù¾	F	107:p
++Ù¿	F	108:p
++ÙÀ	F	109:p
++ÙÁ	F	110:p
++ÙÂ	F	111:p
++ÙÃ	F	112:p
++ÙÄ	F	113:p
++ÙÅ	F	114:p
++ÙÆ	F	115:p
++ÙÇ	F	116:p
++ÙÈ	F	117:p
++ÙÉ	F	118:p
++ÙÊ	F	119:p
++ÙË	F	120:p
++ÙÌ	F	121:p
++ÙÍ	F	122:p
++ÙÎ	F	123:p
++ÙÏ	F	124:p
++ÙÐ	F	125:p
++ÙÑ	F	126:p
++ÙÒ	F	127:p
++ÙÓ	F	128:p
++ÙÔ	F	129:p
++ÙÕ	F	130:p
++ÙÖ	F	131:p
++Ù×	F	132:p
++ÙØ	F	133:p
++ÙÙ	F	134:p
++ÙÚ	F	135:p
++ÙÛ	F	136:p
++ÙÜ	F	137:p
++ÙÝ	F	138:p
++ÙÞ	F	139:p
++Ùß	F	140:p
++Ùà	F	141:p
++Ùá	F	142:p
++Ùâ	F	143:p
++Ùã	F	144:p
++Ùä	F	145:p
++Ùå	F	146:p
++Ùæ	F	147:p
++Ùç	F	148:p
++Ùè	F	149:p
++Ùé	F	150:p
++Ùê	F	151:p
++Ùë	F	152:p
++Ùì	F	153:p
++Ùí	F	154:p
++Ùî	F	155:p
++Ùï	F	156:p
++Ùð	F	157:p
++Ùñ	F	158:p
++Ùò	F	159:p
++Ùó	F	160:p
++Ùô	F	161:p
++Ùõ	F	162:p
++Ùö	F	163:p
++Ù÷	F	164:p
++Ùø	F	165:p
++Ùù	F	166:p
++Ùú	F	167:p
++Ùû	F	168:p
++Ùü	F	169:p
++Ùý	F	170:p
++Ùþ	F	171:p
++Ú¡	F	172:p
++Ú¢	F	173:p
++Ú£	F	174:p
++Ú¤	F	175:p
++Ú¥	F	176:p
++Ú¦	F	177:p
++Ú§	F	178:p
++Ú¨	F	179:p
++Ú©	F	180:p
++Úª	F	181:p
++Ú«	F	182:p
++Ú¬	F	183:p
++Ú­	F	184:p
++Ú®	F	185:p
++Ú¯	F	186:p
++Ú°	F	187:p
++Ú±	F	188:p
++Ú²	F	189:p
++Ú³	F	190:p
++Ú´	F	191:p
++Úµ	F	192:p
++Ú¶	F	193:p
++Ú·	F	194:p
++Ú¸	F	195:p
++Ú¹	F	196:p
++Úº	F	197:p
++Ú»	F	198:p
++Ú¼	F	199:p
++Ú½	F	200:p
++Ú¾	F	201:p
++Ú¿	F	202:p
++ÚÀ	F	203:p
++ÚÁ	F	204:p
++ÚÂ	F	205:p
++ÚÃ	F	206:p
++ÚÄ	F	207:p
++ÚÅ	F	208:p
++ÚÆ	F	209:p
++ÚÇ	F	210:p
++ÚÈ	F	211:p
++ÚÉ	F	212:p
++ÚÊ	F	213:p
++ÚË	F	214:p
++ÚÌ	F	215:p
++ÚÍ	F	216:p
++ÚÎ	F	217:p
++ÚÏ	F	218:p
++ÚÐ	F	219:p
++ÚÑ	F	220:p
++ÚÒ	F	221:p
++ÚÓ	F	222:p
++ÚÔ	F	223:p
++ÚÕ	F	224:p
++ÚÖ	F	225:p
++Ú×	F	226:p
++ÚØ	F	227:p
++ÚÙ	F	228:p
++ÚÚ	F	229:p
++ÚÛ	F	230:p
++ÚÜ	F	231:p
++ÚÝ	F	232:p
++ÚÞ	F	233:p
++Úß	F	234:p
++Úà	F	235:p
++Úá	F	236:p
++Úâ	F	237:p
++Úã	F	238:p
++Úä	F	239:p
++Úå	F	240:p
++Úæ	F	241:p
++Úç	F	242:p
++Úè	F	243:p
++Úé	F	244:p
++Úê	F	245:p
++Úë	F	246:p
++Úì	F	247:p
++Úí	F	248:p
++Úî	F	249:p
++Úï	F	250:p
++Úð	F	251:p
++Úñ	F	252:p
++Úò	F	253:p
++Úó	F	254:p
++Úô	F	255:p
++Úõ	F	0:q
++Úö	F	1:q
++Ú÷	F	2:q
++Úø	F	3:q
++Úù	F	4:q
++Úú	F	5:q
++Úû	F	6:q
++Úü	F	7:q
++Úý	F	8:q
++Úþ	F	9:q
++Û¡	F	10:q
++Û¢	F	11:q
++Û£	F	12:q
++Û¤	F	13:q
++Û¥	F	14:q
++Û¦	F	15:q
++Û§	F	16:q
++Û¨	F	17:q
++Û©	F	18:q
++Ûª	F	19:q
++Û«	F	20:q
++Û¬	F	21:q
++Û­	F	22:q
++Û®	F	23:q
++Û¯	F	24:q
++Û°	F	25:q
++Û±	F	26:q
++Û²	F	27:q
++Û³	F	28:q
++Û´	F	29:q
++Ûµ	F	30:q
++Û¶	F	31:q
++Û·	F	32:q
++Û¸	F	33:q
++Û¹	F	34:q
++Ûº	F	35:q
++Û»	F	36:q
++Û¼	F	37:q
++Û½	F	38:q
++Û¾	F	39:q
++Û¿	F	40:q
++ÛÀ	F	41:q
++ÛÁ	F	42:q
++ÛÂ	F	43:q
++ÛÃ	F	44:q
++ÛÄ	F	45:q
++ÛÅ	F	46:q
++ÛÆ	F	47:q
++ÛÇ	F	48:q
++ÛÈ	F	49:q
++ÛÉ	F	50:q
++ÛÊ	F	51:q
++ÛË	F	52:q
++ÛÌ	F	53:q
++ÛÍ	F	54:q
++ÛÎ	F	55:q
++ÛÏ	F	56:q
++ÛÐ	F	57:q
++ÛÑ	F	58:q
++ÛÒ	F	59:q
++ÛÓ	F	60:q
++ÛÔ	F	61:q
++ÛÕ	F	62:q
++ÛÖ	F	63:q
++Û×	F	64:q
++ÛØ	F	65:q
++ÛÙ	F	66:q
++ÛÚ	F	67:q
++ÛÛ	F	68:q
++ÛÜ	F	69:q
++ÛÝ	F	70:q
++ÛÞ	F	71:q
++Ûß	F	72:q
++Ûà	F	73:q
++Ûá	F	74:q
++Ûâ	F	75:q
++Ûã	F	76:q
++Ûä	F	77:q
++Ûå	F	78:q
++Ûæ	F	79:q
++Ûç	F	80:q
++Ûè	F	81:q
++Ûé	F	82:q
++Ûê	F	83:q
++Ûë	F	84:q
++Ûì	F	85:q
++Ûí	F	86:q
++Ûî	F	87:q
++Ûï	F	88:q
++Ûð	F	89:q
++Ûñ	F	90:q
++Ûò	F	91:q
++Ûó	F	92:q
++Ûô	F	93:q
++Ûõ	F	94:q
++Ûö	F	95:q
++Û÷	F	96:q
++Ûø	F	97:q
++Ûù	F	98:q
++Ûú	F	99:q
++Ûû	F	100:q
++Ûü	F	101:q
++Ûý	F	102:q
++Ûþ	F	103:q
++Ü¡	F	104:q
++Ü¢	F	105:q
++Ü£	F	106:q
++ܤ	F	107:q
++Ü¥	F	108:q
++ܦ	F	109:q
++ܧ	F	110:q
++ܨ	F	111:q
++Ü©	F	112:q
++ܪ	F	113:q
++Ü«	F	114:q
++ܬ	F	115:q
++Ü­	F	116:q
++Ü®	F	117:q
++ܯ	F	118:q
++Ü°	F	119:q
++ܱ	F	120:q
++ܲ	F	121:q
++ܳ	F	122:q
++Ü´	F	123:q
++ܵ	F	124:q
++ܶ	F	125:q
++Ü·	F	126:q
++ܸ	F	127:q
++ܹ	F	128:q
++ܺ	F	129:q
++Ü»	F	130:q
++ܼ	F	131:q
++ܽ	F	132:q
++ܾ	F	133:q
++Ü¿	F	134:q
++ÜÀ	F	135:q
++ÜÁ	F	136:q
++ÜÂ	F	137:q
++ÜÃ	F	138:q
++ÜÄ	F	139:q
++ÜÅ	F	140:q
++ÜÆ	F	141:q
++ÜÇ	F	142:q
++ÜÈ	F	143:q
++ÜÉ	F	144:q
++ÜÊ	F	145:q
++ÜË	F	146:q
++ÜÌ	F	147:q
++ÜÍ	F	148:q
++ÜÎ	F	149:q
++ÜÏ	F	150:q
++ÜÐ	F	151:q
++ÜÑ	F	152:q
++ÜÒ	F	153:q
++ÜÓ	F	154:q
++ÜÔ	F	155:q
++ÜÕ	F	156:q
++ÜÖ	F	157:q
++Ü×	F	158:q
++ÜØ	F	159:q
++ÜÙ	F	160:q
++ÜÚ	F	161:q
++ÜÛ	F	162:q
++ÜÜ	F	163:q
++ÜÝ	F	164:q
++ÜÞ	F	165:q
++Üß	F	166:q
++Üà	F	167:q
++Üá	F	168:q
++Üâ	F	169:q
++Üã	F	170:q
++Üä	F	171:q
++Üå	F	172:q
++Üæ	F	173:q
++Üç	F	174:q
++Üè	F	175:q
++Üé	F	176:q
++Üê	F	177:q
++Üë	F	178:q
++Üì	F	179:q
++Üí	F	180:q
++Üî	F	181:q
++Üï	F	182:q
++Üð	F	183:q
++Üñ	F	184:q
++Üò	F	185:q
++Üó	F	186:q
++Üô	F	187:q
++Üõ	F	188:q
++Üö	F	189:q
++Ü÷	F	190:q
++Üø	F	191:q
++Üù	F	192:q
++Üú	F	193:q
++Üû	F	194:q
++Üü	F	195:q
++Üý	F	196:q
++Üþ	F	197:q
++Ý¡	F	198:q
++Ý¢	F	199:q
++Ý£	F	200:q
++ݤ	F	201:q
++Ý¥	F	202:q
++ݦ	F	203:q
++ݧ	F	204:q
++ݨ	F	205:q
++Ý©	F	206:q
++ݪ	F	207:q
++Ý«	F	208:q
++ݬ	F	209:q
++Ý­	F	210:q
++Ý®	F	211:q
++ݯ	F	212:q
++Ý°	F	213:q
++ݱ	F	214:q
++ݲ	F	215:q
++ݳ	F	216:q
++Ý´	F	217:q
++ݵ	F	218:q
++ݶ	F	219:q
++Ý·	F	220:q
++ݸ	F	221:q
++ݹ	F	222:q
++ݺ	F	223:q
++Ý»	F	224:q
++ݼ	F	225:q
++ݽ	F	226:q
++ݾ	F	227:q
++Ý¿	F	228:q
++ÝÀ	F	229:q
++ÝÁ	F	230:q
++ÝÂ	F	231:q
++ÝÃ	F	232:q
++ÝÄ	F	233:q
++ÝÅ	F	234:q
++ÝÆ	F	235:q
++ÝÇ	F	236:q
++ÝÈ	F	237:q
++ÝÉ	F	238:q
++ÝÊ	F	239:q
++ÝË	F	240:q
++ÝÌ	F	241:q
++ÝÍ	F	242:q
++ÝÎ	F	243:q
++ÝÏ	F	244:q
++ÝÐ	F	245:q
++ÝÑ	F	246:q
++ÝÒ	F	247:q
++ÝÓ	F	248:q
++ÝÔ	F	249:q
++ÝÕ	F	250:q
++ÝÖ	F	251:q
++Ý×	F	252:q
++ÝØ	F	253:q
++ÝÙ	F	254:q
++ÝÚ	F	255:q
++ÝÛ	F	0:r
++ÝÜ	F	1:r
++ÝÝ	F	2:r
++ÝÞ	F	3:r
++Ýß	F	4:r
++Ýà	F	5:r
++Ýá	F	6:r
++Ýâ	F	7:r
++Ýã	F	8:r
++Ýä	F	9:r
++Ýå	F	10:r
++Ýæ	F	11:r
++Ýç	F	12:r
++Ýè	F	13:r
++Ýé	F	14:r
++Ýê	F	15:r
++Ýë	F	16:r
++Ýì	F	17:r
++Ýí	F	18:r
++Ýî	F	19:r
++Ýï	F	20:r
++Ýð	F	21:r
++Ýñ	F	22:r
++Ýò	F	23:r
++Ýó	F	24:r
++Ýô	F	25:r
++Ýõ	F	26:r
++Ýö	F	27:r
++Ý÷	F	28:r
++Ýø	F	29:r
++Ýù	F	30:r
++Ýú	F	31:r
++Ýû	F	32:r
++Ýü	F	33:r
++Ýý	F	34:r
++Ýþ	F	35:r
++Þ¡	F	36:r
++Þ¢	F	37:r
++Þ£	F	38:r
++Þ¤	F	39:r
++Þ¥	F	40:r
++Þ¦	F	41:r
++Þ§	F	42:r
++Þ¨	F	43:r
++Þ©	F	44:r
++Þª	F	45:r
++Þ«	F	46:r
++Þ¬	F	47:r
++Þ­	F	48:r
++Þ®	F	49:r
++Þ¯	F	50:r
++Þ°	F	51:r
++Þ±	F	52:r
++Þ²	F	53:r
++Þ³	F	54:r
++Þ´	F	55:r
++Þµ	F	56:r
++Þ¶	F	57:r
++Þ·	F	58:r
++Þ¸	F	59:r
++Þ¹	F	60:r
++Þº	F	61:r
++Þ»	F	62:r
++Þ¼	F	63:r
++Þ½	F	64:r
++Þ¾	F	65:r
++Þ¿	F	66:r
++ÞÀ	F	67:r
++ÞÁ	F	68:r
++ÞÂ	F	69:r
++ÞÃ	F	70:r
++ÞÄ	F	71:r
++ÞÅ	F	72:r
++ÞÆ	F	73:r
++ÞÇ	F	74:r
++ÞÈ	F	75:r
++ÞÉ	F	76:r
++ÞÊ	F	77:r
++ÞË	F	78:r
++ÞÌ	F	79:r
++ÞÍ	F	80:r
++ÞÎ	F	81:r
++ÞÏ	F	82:r
++ÞÐ	F	83:r
++ÞÑ	F	84:r
++ÞÒ	F	85:r
++ÞÓ	F	86:r
++ÞÔ	F	87:r
++ÞÕ	F	88:r
++ÞÖ	F	89:r
++Þ×	F	90:r
++ÞØ	F	91:r
++ÞÙ	F	92:r
++ÞÚ	F	93:r
++ÞÛ	F	94:r
++ÞÜ	F	95:r
++ÞÝ	F	96:r
++ÞÞ	F	97:r
++Þß	F	98:r
++Þà	F	99:r
++Þá	F	100:r
++Þâ	F	101:r
++Þã	F	102:r
++Þä	F	103:r
++Þå	F	104:r
++Þæ	F	105:r
++Þç	F	106:r
++Þè	F	107:r
++Þé	F	108:r
++Þê	F	109:r
++Þë	F	110:r
++Þì	F	111:r
++Þí	F	112:r
++Þî	F	113:r
++Þï	F	114:r
++Þð	F	115:r
++Þñ	F	116:r
++Þò	F	117:r
++Þó	F	118:r
++Þô	F	119:r
++Þõ	F	120:r
++Þö	F	121:r
++Þ÷	F	122:r
++Þø	F	123:r
++Þù	F	124:r
++Þú	F	125:r
++Þû	F	126:r
++Þü	F	127:r
++Þý	F	128:r
++Þþ	F	129:r
++ß¡	F	130:r
++ߢ	F	131:r
++ߣ	F	132:r
++ߤ	F	133:r
++ߥ	F	134:r
++ߦ	F	135:r
++ߧ	F	136:r
++ߨ	F	137:r
++ß©	F	138:r
++ߪ	F	139:r
++ß«	F	140:r
++߬	F	141:r
++ß­	F	142:r
++ß®	F	143:r
++߯	F	144:r
++ß°	F	145:r
++ß±	F	146:r
++ß²	F	147:r
++ß³	F	148:r
++ß´	F	149:r
++ßµ	F	150:r
++߶	F	151:r
++ß·	F	152:r
++߸	F	153:r
++ß¹	F	154:r
++ߺ	F	155:r
++ß»	F	156:r
++ß¼	F	157:r
++ß½	F	158:r
++ß¾	F	159:r
++ß¿	F	160:r
++ßÀ	F	161:r
++ßÁ	F	162:r
++ßÂ	F	163:r
++ßÃ	F	164:r
++ßÄ	F	165:r
++ßÅ	F	166:r
++ßÆ	F	167:r
++ßÇ	F	168:r
++ßÈ	F	169:r
++ßÉ	F	170:r
++ßÊ	F	171:r
++ßË	F	172:r
++ßÌ	F	173:r
++ßÍ	F	174:r
++ßÎ	F	175:r
++ßÏ	F	176:r
++ßÐ	F	177:r
++ßÑ	F	178:r
++ßÒ	F	179:r
++ßÓ	F	180:r
++ßÔ	F	181:r
++ßÕ	F	182:r
++ßÖ	F	183:r
++ß×	F	184:r
++ßØ	F	185:r
++ßÙ	F	186:r
++ßÚ	F	187:r
++ßÛ	F	188:r
++ßÜ	F	189:r
++ßÝ	F	190:r
++ßÞ	F	191:r
++ßß	F	192:r
++ßà	F	193:r
++ßá	F	194:r
++ßâ	F	195:r
++ßã	F	196:r
++ßä	F	197:r
++ßå	F	198:r
++ßæ	F	199:r
++ßç	F	200:r
++ßè	F	201:r
++ßé	F	202:r
++ßê	F	203:r
++ßë	F	204:r
++ßì	F	205:r
++ßí	F	206:r
++ßî	F	207:r
++ßï	F	208:r
++ßð	F	209:r
++ßñ	F	210:r
++ßò	F	211:r
++ßó	F	212:r
++ßô	F	213:r
++ßõ	F	214:r
++ßö	F	215:r
++ß÷	F	216:r
++ßø	F	217:r
++ßù	F	218:r
++ßú	F	219:r
++ßû	F	220:r
++ßü	F	221:r
++ßý	F	222:r
++ßþ	F	223:r
++à¡	F	224:r
++à¢	F	225:r
++à£	F	226:r
++à¤	F	227:r
++à¥	F	228:r
++à¦	F	229:r
++à§	F	230:r
++à¨	F	231:r
++à©	F	232:r
++àª	F	233:r
++à«	F	234:r
++à¬	F	235:r
++à­	F	236:r
++à®	F	237:r
++à¯	F	238:r
++à°	F	239:r
++à±	F	240:r
++à²	F	241:r
++à³	F	242:r
++à´	F	243:r
++àµ	F	244:r
++à¶	F	245:r
++à·	F	246:r
++à¸	F	247:r
++à¹	F	248:r
++àº	F	249:r
++à»	F	250:r
++à¼	F	251:r
++à½	F	252:r
++à¾	F	253:r
++à¿	F	254:r
++àÀ	F	255:r
++àÁ	F	0:s
++àÂ	F	1:s
++àÃ	F	2:s
++àÄ	F	3:s
++àÅ	F	4:s
++àÆ	F	5:s
++àÇ	F	6:s
++àÈ	F	7:s
++àÉ	F	8:s
++àÊ	F	9:s
++àË	F	10:s
++àÌ	F	11:s
++àÍ	F	12:s
++àÎ	F	13:s
++àÏ	F	14:s
++àÐ	F	15:s
++àÑ	F	16:s
++àÒ	F	17:s
++àÓ	F	18:s
++àÔ	F	19:s
++àÕ	F	20:s
++àÖ	F	21:s
++à×	F	22:s
++àØ	F	23:s
++àÙ	F	24:s
++àÚ	F	25:s
++àÛ	F	26:s
++àÜ	F	27:s
++àÝ	F	28:s
++àÞ	F	29:s
++àß	F	30:s
++àà	F	31:s
++àá	F	32:s
++àâ	F	33:s
++àã	F	34:s
++àä	F	35:s
++àå	F	36:s
++àæ	F	37:s
++àç	F	38:s
++àè	F	39:s
++àé	F	40:s
++àê	F	41:s
++àë	F	42:s
++àì	F	43:s
++àí	F	44:s
++àî	F	45:s
++àï	F	46:s
++àð	F	47:s
++àñ	F	48:s
++àò	F	49:s
++àó	F	50:s
++àô	F	51:s
++àõ	F	52:s
++àö	F	53:s
++à÷	F	54:s
++àø	F	55:s
++àù	F	56:s
++àú	F	57:s
++àû	F	58:s
++àü	F	59:s
++àý	F	60:s
++àþ	F	61:s
++á¡	F	62:s
++á¢	F	63:s
++á£	F	64:s
++á¤	F	65:s
++á¥	F	66:s
++á¦	F	67:s
++á§	F	68:s
++á¨	F	69:s
++á©	F	70:s
++áª	F	71:s
++á«	F	72:s
++á¬	F	73:s
++á­	F	74:s
++á®	F	75:s
++á¯	F	76:s
++á°	F	77:s
++á±	F	78:s
++á²	F	79:s
++á³	F	80:s
++á´	F	81:s
++áµ	F	82:s
++á¶	F	83:s
++á·	F	84:s
++á¸	F	85:s
++á¹	F	86:s
++áº	F	87:s
++á»	F	88:s
++á¼	F	89:s
++á½	F	90:s
++á¾	F	91:s
++á¿	F	92:s
++áÀ	F	93:s
++áÁ	F	94:s
++áÂ	F	95:s
++áÃ	F	96:s
++áÄ	F	97:s
++áÅ	F	98:s
++áÆ	F	99:s
++áÇ	F	100:s
++áÈ	F	101:s
++áÉ	F	102:s
++áÊ	F	103:s
++áË	F	104:s
++áÌ	F	105:s
++áÍ	F	106:s
++áÎ	F	107:s
++áÏ	F	108:s
++áÐ	F	109:s
++áÑ	F	110:s
++áÒ	F	111:s
++áÓ	F	112:s
++áÔ	F	113:s
++áÕ	F	114:s
++áÖ	F	115:s
++á×	F	116:s
++áØ	F	117:s
++áÙ	F	118:s
++áÚ	F	119:s
++áÛ	F	120:s
++áÜ	F	121:s
++áÝ	F	122:s
++áÞ	F	123:s
++áß	F	124:s
++áà	F	125:s
++áá	F	126:s
++áâ	F	127:s
++áã	F	128:s
++áä	F	129:s
++áå	F	130:s
++áæ	F	131:s
++áç	F	132:s
++áè	F	133:s
++áé	F	134:s
++áê	F	135:s
++áë	F	136:s
++áì	F	137:s
++áí	F	138:s
++áî	F	139:s
++áï	F	140:s
++áð	F	141:s
++áñ	F	142:s
++áò	F	143:s
++áó	F	144:s
++áô	F	145:s
++áõ	F	146:s
++áö	F	147:s
++á÷	F	148:s
++áø	F	149:s
++áù	F	150:s
++áú	F	151:s
++áû	F	152:s
++áü	F	153:s
++áý	F	154:s
++áþ	F	155:s
++â¡	F	156:s
++â¢	F	157:s
++â£	F	158:s
++â¤	F	159:s
++â¥	F	160:s
++â¦	F	161:s
++â§	F	162:s
++â¨	F	163:s
++â©	F	164:s
++âª	F	165:s
++â«	F	166:s
++â¬	F	167:s
++â­	F	168:s
++â®	F	169:s
++â¯	F	170:s
++â°	F	171:s
++â±	F	172:s
++â²	F	173:s
++â³	F	174:s
++â´	F	175:s
++âµ	F	176:s
++â¶	F	177:s
++â·	F	178:s
++â¸	F	179:s
++â¹	F	180:s
++âº	F	181:s
++â»	F	182:s
++â¼	F	183:s
++â½	F	184:s
++â¾	F	185:s
++â¿	F	186:s
++âÀ	F	187:s
++âÁ	F	188:s
++âÂ	F	189:s
++âÃ	F	190:s
++âÄ	F	191:s
++âÅ	F	192:s
++âÆ	F	193:s
++âÇ	F	194:s
++âÈ	F	195:s
++âÉ	F	196:s
++âÊ	F	197:s
++âË	F	198:s
++âÌ	F	199:s
++âÍ	F	200:s
++âÎ	F	201:s
++âÏ	F	202:s
++âÐ	F	203:s
++âÑ	F	204:s
++âÒ	F	205:s
++âÓ	F	206:s
++âÔ	F	207:s
++âÕ	F	208:s
++âÖ	F	209:s
++â×	F	210:s
++âØ	F	211:s
++âÙ	F	212:s
++âÚ	F	213:s
++âÛ	F	214:s
++âÜ	F	215:s
++âÝ	F	216:s
++âÞ	F	217:s
++âß	F	218:s
++âà	F	219:s
++âá	F	220:s
++ââ	F	221:s
++âã	F	222:s
++âä	F	223:s
++âå	F	224:s
++âæ	F	225:s
++âç	F	226:s
++âè	F	227:s
++âé	F	228:s
++âê	F	229:s
++âë	F	230:s
++âì	F	231:s
++âí	F	232:s
++âî	F	233:s
++âï	F	234:s
++âð	F	235:s
++âñ	F	236:s
++âò	F	237:s
++âó	F	238:s
++âô	F	239:s
++âõ	F	240:s
++âö	F	241:s
++â÷	F	242:s
++âø	F	243:s
++âù	F	244:s
++âú	F	245:s
++âû	F	246:s
++âü	F	247:s
++âý	F	248:s
++âþ	F	249:s
++ã¡	F	250:s
++ã¢	F	251:s
++ã£	F	252:s
++ã¤	F	253:s
++ã¥	F	254:s
++ã¦	F	255:s
++ã§	F	0:t
++ã¨	F	1:t
++ã©	F	2:t
++ãª	F	3:t
++ã«	F	4:t
++ã¬	F	5:t
++ã­	F	6:t
++ã®	F	7:t
++ã¯	F	8:t
++ã°	F	9:t
++ã±	F	10:t
++ã²	F	11:t
++ã³	F	12:t
++ã´	F	13:t
++ãµ	F	14:t
++ã¶	F	15:t
++ã·	F	16:t
++ã¸	F	17:t
++ã¹	F	18:t
++ãº	F	19:t
++ã»	F	20:t
++ã¼	F	21:t
++ã½	F	22:t
++ã¾	F	23:t
++ã¿	F	24:t
++ãÀ	F	25:t
++ãÁ	F	26:t
++ãÂ	F	27:t
++ãÃ	F	28:t
++ãÄ	F	29:t
++ãÅ	F	30:t
++ãÆ	F	31:t
++ãÇ	F	32:t
++ãÈ	F	33:t
++ãÉ	F	34:t
++ãÊ	F	35:t
++ãË	F	36:t
++ãÌ	F	37:t
++ãÍ	F	38:t
++ãÎ	F	39:t
++ãÏ	F	40:t
++ãÐ	F	41:t
++ãÑ	F	42:t
++ãÒ	F	43:t
++ãÓ	F	44:t
++ãÔ	F	45:t
++ãÕ	F	46:t
++ãÖ	F	47:t
++ã×	F	48:t
++ãØ	F	49:t
++ãÙ	F	50:t
++ãÚ	F	51:t
++ãÛ	F	52:t
++ãÜ	F	53:t
++ãÝ	F	54:t
++ãÞ	F	55:t
++ãß	F	56:t
++ãà	F	57:t
++ãá	F	58:t
++ãâ	F	59:t
++ãã	F	60:t
++ãä	F	61:t
++ãå	F	62:t
++ãæ	F	63:t
++ãç	F	64:t
++ãè	F	65:t
++ãé	F	66:t
++ãê	F	67:t
++ãë	F	68:t
++ãì	F	69:t
++ãí	F	70:t
++ãî	F	71:t
++ãï	F	72:t
++ãð	F	73:t
++ãñ	F	74:t
++ãò	F	75:t
++ãó	F	76:t
++ãô	F	77:t
++ãõ	F	78:t
++ãö	F	79:t
++ã÷	F	80:t
++ãø	F	81:t
++ãù	F	82:t
++ãú	F	83:t
++ãû	F	84:t
++ãü	F	85:t
++ãý	F	86:t
++ãþ	F	87:t
++ä¡	F	88:t
++ä¢	F	89:t
++ä£	F	90:t
++ä¤	F	91:t
++ä¥	F	92:t
++ä¦	F	93:t
++ä§	F	94:t
++ä¨	F	95:t
++ä©	F	96:t
++äª	F	97:t
++ä«	F	98:t
++ä¬	F	99:t
++ä­	F	100:t
++ä®	F	101:t
++ä¯	F	102:t
++ä°	F	103:t
++ä±	F	104:t
++ä²	F	105:t
++ä³	F	106:t
++ä´	F	107:t
++äµ	F	108:t
++ä¶	F	109:t
++ä·	F	110:t
++ä¸	F	111:t
++ä¹	F	112:t
++äº	F	113:t
++ä»	F	114:t
++ä¼	F	115:t
++ä½	F	116:t
++ä¾	F	117:t
++ä¿	F	118:t
++äÀ	F	119:t
++äÁ	F	120:t
++äÂ	F	121:t
++äÃ	F	122:t
++äÄ	F	123:t
++äÅ	F	124:t
++äÆ	F	125:t
++äÇ	F	126:t
++äÈ	F	127:t
++äÉ	F	128:t
++äÊ	F	129:t
++äË	F	130:t
++äÌ	F	131:t
++äÍ	F	132:t
++äÎ	F	133:t
++äÏ	F	134:t
++äÐ	F	135:t
++äÑ	F	136:t
++äÒ	F	137:t
++äÓ	F	138:t
++äÔ	F	139:t
++äÕ	F	140:t
++äÖ	F	141:t
++ä×	F	142:t
++äØ	F	143:t
++äÙ	F	144:t
++äÚ	F	145:t
++äÛ	F	146:t
++äÜ	F	147:t
++äÝ	F	148:t
++äÞ	F	149:t
++äß	F	150:t
++äà	F	151:t
++äá	F	152:t
++äâ	F	153:t
++äã	F	154:t
++ää	F	155:t
++äå	F	156:t
++äæ	F	157:t
++äç	F	158:t
++äè	F	159:t
++äé	F	160:t
++äê	F	161:t
++äë	F	162:t
++äì	F	163:t
++äí	F	164:t
++äî	F	165:t
++äï	F	166:t
++äð	F	167:t
++äñ	F	168:t
++äò	F	169:t
++äó	F	170:t
++äô	F	171:t
++äõ	F	172:t
++äö	F	173:t
++ä÷	F	174:t
++äø	F	175:t
++äù	F	176:t
++äú	F	177:t
++äû	F	178:t
++äü	F	179:t
++äý	F	180:t
++äþ	F	181:t
++å¡	F	182:t
++å¢	F	183:t
++å£	F	184:t
++å¤	F	185:t
++å¥	F	186:t
++å¦	F	187:t
++å§	F	188:t
++å¨	F	189:t
++å©	F	190:t
++åª	F	191:t
++å«	F	192:t
++å¬	F	193:t
++å­	F	194:t
++å®	F	195:t
++å¯	F	196:t
++å°	F	197:t
++å±	F	198:t
++å²	F	199:t
++å³	F	200:t
++å´	F	201:t
++åµ	F	202:t
++å¶	F	203:t
++å·	F	204:t
++å¸	F	205:t
++å¹	F	206:t
++åº	F	207:t
++å»	F	208:t
++å¼	F	209:t
++å½	F	210:t
++å¾	F	211:t
++å¿	F	212:t
++åÀ	F	213:t
++åÁ	F	214:t
++åÂ	F	215:t
++åÃ	F	216:t
++åÄ	F	217:t
++åÅ	F	218:t
++åÆ	F	219:t
++åÇ	F	220:t
++åÈ	F	221:t
++åÉ	F	222:t
++åÊ	F	223:t
++åË	F	224:t
++åÌ	F	225:t
++åÍ	F	226:t
++åÎ	F	227:t
++åÏ	F	228:t
++åÐ	F	229:t
++åÑ	F	230:t
++åÒ	F	231:t
++åÓ	F	232:t
++åÔ	F	233:t
++åÕ	F	234:t
++åÖ	F	235:t
++å×	F	236:t
++åØ	F	237:t
++åÙ	F	238:t
++åÚ	F	239:t
++åÛ	F	240:t
++åÜ	F	241:t
++åÝ	F	242:t
++åÞ	F	243:t
++åß	F	244:t
++åà	F	245:t
++åá	F	246:t
++åâ	F	247:t
++åã	F	248:t
++åä	F	249:t
++åå	F	250:t
++åæ	F	251:t
++åç	F	252:t
++åè	F	253:t
++åé	F	254:t
++åê	F	255:t
++åë	F	0:u
++åì	F	1:u
++åí	F	2:u
++åî	F	3:u
++åï	F	4:u
++åð	F	5:u
++åñ	F	6:u
++åò	F	7:u
++åó	F	8:u
++åô	F	9:u
++åõ	F	10:u
++åö	F	11:u
++å÷	F	12:u
++åø	F	13:u
++åù	F	14:u
++åú	F	15:u
++åû	F	16:u
++åü	F	17:u
++åý	F	18:u
++åþ	F	19:u
++æ¡	F	20:u
++æ¢	F	21:u
++æ£	F	22:u
++æ¤	F	23:u
++æ¥	F	24:u
++æ¦	F	25:u
++æ§	F	26:u
++æ¨	F	27:u
++æ©	F	28:u
++æª	F	29:u
++æ«	F	30:u
++æ¬	F	31:u
++æ­	F	32:u
++æ®	F	33:u
++æ¯	F	34:u
++æ°	F	35:u
++æ±	F	36:u
++æ²	F	37:u
++æ³	F	38:u
++æ´	F	39:u
++æµ	F	40:u
++æ¶	F	41:u
++æ·	F	42:u
++æ¸	F	43:u
++æ¹	F	44:u
++æº	F	45:u
++æ»	F	46:u
++æ¼	F	47:u
++æ½	F	48:u
++æ¾	F	49:u
++æ¿	F	50:u
++æÀ	F	51:u
++æÁ	F	52:u
++æÂ	F	53:u
++æÃ	F	54:u
++æÄ	F	55:u
++æÅ	F	56:u
++æÆ	F	57:u
++æÇ	F	58:u
++æÈ	F	59:u
++æÉ	F	60:u
++æÊ	F	61:u
++æË	F	62:u
++æÌ	F	63:u
++æÍ	F	64:u
++æÎ	F	65:u
++æÏ	F	66:u
++æÐ	F	67:u
++æÑ	F	68:u
++æÒ	F	69:u
++æÓ	F	70:u
++æÔ	F	71:u
++æÕ	F	72:u
++æÖ	F	73:u
++æ×	F	74:u
++æØ	F	75:u
++æÙ	F	76:u
++æÚ	F	77:u
++æÛ	F	78:u
++æÜ	F	79:u
++æÝ	F	80:u
++æÞ	F	81:u
++æß	F	82:u
++æà	F	83:u
++æá	F	84:u
++æâ	F	85:u
++æã	F	86:u
++æä	F	87:u
++æå	F	88:u
++ææ	F	89:u
++æç	F	90:u
++æè	F	91:u
++æé	F	92:u
++æê	F	93:u
++æë	F	94:u
++æì	F	95:u
++æí	F	96:u
++æî	F	97:u
++æï	F	98:u
++æð	F	99:u
++æñ	F	100:u
++æò	F	101:u
++æó	F	102:u
++æô	F	103:u
++æõ	F	104:u
++æö	F	105:u
++æ÷	F	106:u
++æø	F	107:u
++æù	F	108:u
++æú	F	109:u
++æû	F	110:u
++æü	F	111:u
++æý	F	112:u
++æþ	F	113:u
++ç¡	F	114:u
++ç¢	F	115:u
++ç£	F	116:u
++ç¤	F	117:u
++ç¥	F	118:u
++ç¦	F	119:u
++ç§	F	120:u
++ç¨	F	121:u
++ç©	F	122:u
++çª	F	123:u
++ç«	F	124:u
++ç¬	F	125:u
++ç­	F	126:u
++ç®	F	127:u
++ç¯	F	128:u
++ç°	F	129:u
++ç±	F	130:u
++ç²	F	131:u
++ç³	F	132:u
++ç´	F	133:u
++çµ	F	134:u
++ç¶	F	135:u
++ç·	F	136:u
++ç¸	F	137:u
++ç¹	F	138:u
++çº	F	139:u
++ç»	F	140:u
++ç¼	F	141:u
++ç½	F	142:u
++ç¾	F	143:u
++ç¿	F	144:u
++çÀ	F	145:u
++çÁ	F	146:u
++çÂ	F	147:u
++çÃ	F	148:u
++çÄ	F	149:u
++çÅ	F	150:u
++çÆ	F	151:u
++çÇ	F	152:u
++çÈ	F	153:u
++çÉ	F	154:u
++çÊ	F	155:u
++çË	F	156:u
++çÌ	F	157:u
++çÍ	F	158:u
++çÎ	F	159:u
++çÏ	F	160:u
++çÐ	F	161:u
++çÑ	F	162:u
++çÒ	F	163:u
++çÓ	F	164:u
++çÔ	F	165:u
++çÕ	F	166:u
++çÖ	F	167:u
++ç×	F	168:u
++çØ	F	169:u
++çÙ	F	170:u
++çÚ	F	171:u
++çÛ	F	172:u
++çÜ	F	173:u
++çÝ	F	174:u
++çÞ	F	175:u
++çß	F	176:u
++çà	F	177:u
++çá	F	178:u
++çâ	F	179:u
++çã	F	180:u
++çä	F	181:u
++çå	F	182:u
++çæ	F	183:u
++çç	F	184:u
++çè	F	185:u
++çé	F	186:u
++çê	F	187:u
++çë	F	188:u
++çì	F	189:u
++çí	F	190:u
++çî	F	191:u
++çï	F	192:u
++çð	F	193:u
++çñ	F	194:u
++çò	F	195:u
++çó	F	196:u
++çô	F	197:u
++çõ	F	198:u
++çö	F	199:u
++ç÷	F	200:u
++çø	F	201:u
++çù	F	202:u
++çú	F	203:u
++çû	F	204:u
++çü	F	205:u
++çý	F	206:u
++çþ	F	207:u
++è¡	F	208:u
++è¢	F	209:u
++è£	F	210:u
++è¤	F	211:u
++è¥	F	212:u
++è¦	F	213:u
++è§	F	214:u
++è¨	F	215:u
++è©	F	216:u
++èª	F	217:u
++è«	F	218:u
++è¬	F	219:u
++è­	F	220:u
++è®	F	221:u
++è¯	F	222:u
++è°	F	223:u
++è±	F	224:u
++è²	F	225:u
++è³	F	226:u
++è´	F	227:u
++èµ	F	228:u
++è¶	F	229:u
++è·	F	230:u
++è¸	F	231:u
++è¹	F	232:u
++èº	F	233:u
++è»	F	234:u
++è¼	F	235:u
++è½	F	236:u
++è¾	F	237:u
++è¿	F	238:u
++èÀ	F	239:u
++èÁ	F	240:u
++èÂ	F	241:u
++èÃ	F	242:u
++èÄ	F	243:u
++èÅ	F	244:u
++èÆ	F	245:u
++èÇ	F	246:u
++èÈ	F	247:u
++èÉ	F	248:u
++èÊ	F	249:u
++èË	F	250:u
++èÌ	F	251:u
++èÍ	F	252:u
++èÎ	F	253:u
++èÏ	F	254:u
++èÐ	F	255:u
++èÑ	F	0:v
++èÒ	F	1:v
++èÓ	F	2:v
++èÔ	F	3:v
++èÕ	F	4:v
++èÖ	F	5:v
++è×	F	6:v
++èØ	F	7:v
++èÙ	F	8:v
++èÚ	F	9:v
++èÛ	F	10:v
++èÜ	F	11:v
++èÝ	F	12:v
++èÞ	F	13:v
++èß	F	14:v
++èà	F	15:v
++èá	F	16:v
++èâ	F	17:v
++èã	F	18:v
++èä	F	19:v
++èå	F	20:v
++èæ	F	21:v
++èç	F	22:v
++èè	F	23:v
++èé	F	24:v
++èê	F	25:v
++èë	F	26:v
++èì	F	27:v
++èí	F	28:v
++èî	F	29:v
++èï	F	30:v
++èð	F	31:v
++èñ	F	32:v
++èò	F	33:v
++èó	F	34:v
++èô	F	35:v
++èõ	F	36:v
++èö	F	37:v
++è÷	F	38:v
++èø	F	39:v
++èù	F	40:v
++èú	F	41:v
++èû	F	42:v
++èü	F	43:v
++èý	F	44:v
++èþ	F	45:v
++é¡	F	46:v
++é¢	F	47:v
++é£	F	48:v
++é¤	F	49:v
++é¥	F	50:v
++é¦	F	51:v
++é§	F	52:v
++é¨	F	53:v
++é©	F	54:v
++éª	F	55:v
++é«	F	56:v
++é¬	F	57:v
++é­	F	58:v
++é®	F	59:v
++é¯	F	60:v
++é°	F	61:v
++é±	F	62:v
++é²	F	63:v
++é³	F	64:v
++é´	F	65:v
++éµ	F	66:v
++é¶	F	67:v
++é·	F	68:v
++é¸	F	69:v
++é¹	F	70:v
++éº	F	71:v
++é»	F	72:v
++é¼	F	73:v
++é½	F	74:v
++é¾	F	75:v
++é¿	F	76:v
++éÀ	F	77:v
++éÁ	F	78:v
++éÂ	F	79:v
++éÃ	F	80:v
++éÄ	F	81:v
++éÅ	F	82:v
++éÆ	F	83:v
++éÇ	F	84:v
++éÈ	F	85:v
++éÉ	F	86:v
++éÊ	F	87:v
++éË	F	88:v
++éÌ	F	89:v
++éÍ	F	90:v
++éÎ	F	91:v
++éÏ	F	92:v
++éÐ	F	93:v
++éÑ	F	94:v
++éÒ	F	95:v
++éÓ	F	96:v
++éÔ	F	97:v
++éÕ	F	98:v
++éÖ	F	99:v
++é×	F	100:v
++éØ	F	101:v
++éÙ	F	102:v
++éÚ	F	103:v
++éÛ	F	104:v
++éÜ	F	105:v
++éÝ	F	106:v
++éÞ	F	107:v
++éß	F	108:v
++éà	F	109:v
++éá	F	110:v
++éâ	F	111:v
++éã	F	112:v
++éä	F	113:v
++éå	F	114:v
++éæ	F	115:v
++éç	F	116:v
++éè	F	117:v
++éé	F	118:v
++éê	F	119:v
++éë	F	120:v
++éì	F	121:v
++éí	F	122:v
++éî	F	123:v
++éï	F	124:v
++éð	F	125:v
++éñ	F	126:v
++éò	F	127:v
++éó	F	128:v
++éô	F	129:v
++éõ	F	130:v
++éö	F	131:v
++é÷	F	132:v
++éø	F	133:v
++éù	F	134:v
++éú	F	135:v
++éû	F	136:v
++éü	F	137:v
++éý	F	138:v
++éþ	F	139:v
++ê¡	F	140:v
++ê¢	F	141:v
++ê£	F	142:v
++ê¤	F	143:v
++ê¥	F	144:v
++ê¦	F	145:v
++ê§	F	146:v
++ê¨	F	147:v
++ê©	F	148:v
++êª	F	149:v
++ê«	F	150:v
++ê¬	F	151:v
++ê­	F	152:v
++ê®	F	153:v
++ê¯	F	154:v
++ê°	F	155:v
++ê±	F	156:v
++ê²	F	157:v
++ê³	F	158:v
++ê´	F	159:v
++êµ	F	160:v
++ê¶	F	161:v
++ê·	F	162:v
++ê¸	F	163:v
++ê¹	F	164:v
++êº	F	165:v
++ê»	F	166:v
++ê¼	F	167:v
++ê½	F	168:v
++ê¾	F	169:v
++ê¿	F	170:v
++êÀ	F	171:v
++êÁ	F	172:v
++êÂ	F	173:v
++êÃ	F	174:v
++êÄ	F	175:v
++êÅ	F	176:v
++êÆ	F	177:v
++êÇ	F	178:v
++êÈ	F	179:v
++êÉ	F	180:v
++êÊ	F	181:v
++êË	F	182:v
++êÌ	F	183:v
++êÍ	F	184:v
++êÎ	F	185:v
++êÏ	F	186:v
++êÐ	F	187:v
++êÑ	F	188:v
++êÒ	F	189:v
++êÓ	F	190:v
++êÔ	F	191:v
++êÕ	F	192:v
++êÖ	F	193:v
++ê×	F	194:v
++êØ	F	195:v
++êÙ	F	196:v
++êÚ	F	197:v
++êÛ	F	198:v
++êÜ	F	199:v
++êÝ	F	200:v
++êÞ	F	201:v
++êß	F	202:v
++êà	F	203:v
++êá	F	204:v
++êâ	F	205:v
++êã	F	206:v
++êä	F	207:v
++êå	F	208:v
++êæ	F	209:v
++êç	F	210:v
++êè	F	211:v
++êé	F	212:v
++êê	F	213:v
++êë	F	214:v
++êì	F	215:v
++êí	F	216:v
++êî	F	217:v
++êï	F	218:v
++êð	F	219:v
++êñ	F	220:v
++êò	F	221:v
++êó	F	222:v
++êô	F	223:v
++êõ	F	224:v
++êö	F	225:v
++ê÷	F	226:v
++êø	F	227:v
++êù	F	228:v
++êú	F	229:v
++êû	F	230:v
++êü	F	231:v
++êý	F	232:v
++êþ	F	233:v
++ë¡	F	234:v
++ë¢	F	235:v
++ë£	F	236:v
++ë¤	F	237:v
++ë¥	F	238:v
++ë¦	F	239:v
++ë§	F	240:v
++ë¨	F	241:v
++ë©	F	242:v
++ëª	F	243:v
++ë«	F	244:v
++ë¬	F	245:v
++ë­	F	246:v
++ë®	F	247:v
++ë¯	F	248:v
++ë°	F	249:v
++ë±	F	250:v
++ë²	F	251:v
++ë³	F	252:v
++ë´	F	253:v
++ëµ	F	254:v
++ë¶	F	255:v
++ë·	F	0:w
++ë¸	F	1:w
++ë¹	F	2:w
++ëº	F	3:w
++ë»	F	4:w
++ë¼	F	5:w
++ë½	F	6:w
++ë¾	F	7:w
++ë¿	F	8:w
++ëÀ	F	9:w
++ëÁ	F	10:w
++ëÂ	F	11:w
++ëÃ	F	12:w
++ëÄ	F	13:w
++ëÅ	F	14:w
++ëÆ	F	15:w
++ëÇ	F	16:w
++ëÈ	F	17:w
++ëÉ	F	18:w
++ëÊ	F	19:w
++ëË	F	20:w
++ëÌ	F	21:w
++ëÍ	F	22:w
++ëÎ	F	23:w
++ëÏ	F	24:w
++ëÐ	F	25:w
++ëÑ	F	26:w
++ëÒ	F	27:w
++ëÓ	F	28:w
++ëÔ	F	29:w
++ëÕ	F	30:w
++ëÖ	F	31:w
++ë×	F	32:w
++ëØ	F	33:w
++ëÙ	F	34:w
++ëÚ	F	35:w
++ëÛ	F	36:w
++ëÜ	F	37:w
++ëÝ	F	38:w
++ëÞ	F	39:w
++ëß	F	40:w
++ëà	F	41:w
++ëá	F	42:w
++ëâ	F	43:w
++ëã	F	44:w
++ëä	F	45:w
++ëå	F	46:w
++ëæ	F	47:w
++ëç	F	48:w
++ëè	F	49:w
++ëé	F	50:w
++ëê	F	51:w
++ëë	F	52:w
++ëì	F	53:w
++ëí	F	54:w
++ëî	F	55:w
++ëï	F	56:w
++ëð	F	57:w
++ëñ	F	58:w
++ëò	F	59:w
++ëó	F	60:w
++ëô	F	61:w
++ëõ	F	62:w
++ëö	F	63:w
++ë÷	F	64:w
++ëø	F	65:w
++ëù	F	66:w
++ëú	F	67:w
++ëû	F	68:w
++ëü	F	69:w
++ëý	F	70:w
++ëþ	F	71:w
++ì¡	F	72:w
++ì¢	F	73:w
++ì£	F	74:w
++ì¤	F	75:w
++ì¥	F	76:w
++ì¦	F	77:w
++ì§	F	78:w
++ì¨	F	79:w
++ì©	F	80:w
++ìª	F	81:w
++ì«	F	82:w
++ì¬	F	83:w
++ì­	F	84:w
++ì®	F	85:w
++ì¯	F	86:w
++ì°	F	87:w
++ì±	F	88:w
++ì²	F	89:w
++ì³	F	90:w
++ì´	F	91:w
++ìµ	F	92:w
++ì¶	F	93:w
++ì·	F	94:w
++ì¸	F	95:w
++ì¹	F	96:w
++ìº	F	97:w
++ì»	F	98:w
++ì¼	F	99:w
++ì½	F	100:w
++ì¾	F	101:w
++ì¿	F	102:w
++ìÀ	F	103:w
++ìÁ	F	104:w
++ìÂ	F	105:w
++ìÃ	F	106:w
++ìÄ	F	107:w
++ìÅ	F	108:w
++ìÆ	F	109:w
++ìÇ	F	110:w
++ìÈ	F	111:w
++ìÉ	F	112:w
++ìÊ	F	113:w
++ìË	F	114:w
++ìÌ	F	115:w
++ìÍ	F	116:w
++ìÎ	F	117:w
++ìÏ	F	118:w
++ìÐ	F	119:w
++ìÑ	F	120:w
++ìÒ	F	121:w
++ìÓ	F	122:w
++ìÔ	F	123:w
++ìÕ	F	124:w
++ìÖ	F	125:w
++ì×	F	126:w
++ìØ	F	127:w
++ìÙ	F	128:w
++ìÚ	F	129:w
++ìÛ	F	130:w
++ìÜ	F	131:w
++ìÝ	F	132:w
++ìÞ	F	133:w
++ìß	F	134:w
++ìà	F	135:w
++ìá	F	136:w
++ìâ	F	137:w
++ìã	F	138:w
++ìä	F	139:w
++ìå	F	140:w
++ìæ	F	141:w
++ìç	F	142:w
++ìè	F	143:w
++ìé	F	144:w
++ìê	F	145:w
++ìë	F	146:w
++ìì	F	147:w
++ìí	F	148:w
++ìî	F	149:w
++ìï	F	150:w
++ìð	F	151:w
++ìñ	F	152:w
++ìò	F	153:w
++ìó	F	154:w
++ìô	F	155:w
++ìõ	F	156:w
++ìö	F	157:w
++ì÷	F	158:w
++ìø	F	159:w
++ìù	F	160:w
++ìú	F	161:w
++ìû	F	162:w
++ìü	F	163:w
++ìý	F	164:w
++ìþ	F	165:w
++í¡	F	166:w
++í¢	F	167:w
++í£	F	168:w
++í¤	F	169:w
++í¥	F	170:w
++í¦	F	171:w
++í§	F	172:w
++í¨	F	173:w
++í©	F	174:w
++íª	F	175:w
++í«	F	176:w
++í¬	F	177:w
++í­	F	178:w
++í®	F	179:w
++í¯	F	180:w
++í°	F	181:w
++í±	F	182:w
++í²	F	183:w
++í³	F	184:w
++í´	F	185:w
++íµ	F	186:w
++í¶	F	187:w
++í·	F	188:w
++í¸	F	189:w
++í¹	F	190:w
++íº	F	191:w
++í»	F	192:w
++í¼	F	193:w
++í½	F	194:w
++í¾	F	195:w
++í¿	F	196:w
++íÀ	F	197:w
++íÁ	F	198:w
++íÂ	F	199:w
++íÃ	F	200:w
++íÄ	F	201:w
++íÅ	F	202:w
++íÆ	F	203:w
++íÇ	F	204:w
++íÈ	F	205:w
++íÉ	F	206:w
++íÊ	F	207:w
++íË	F	208:w
++íÌ	F	209:w
++íÍ	F	210:w
++íÎ	F	211:w
++íÏ	F	212:w
++íÐ	F	213:w
++íÑ	F	214:w
++íÒ	F	215:w
++íÓ	F	216:w
++íÔ	F	217:w
++íÕ	F	218:w
++íÖ	F	219:w
++í×	F	220:w
++íØ	F	221:w
++íÙ	F	222:w
++íÚ	F	223:w
++íÛ	F	224:w
++íÜ	F	225:w
++íÝ	F	226:w
++íÞ	F	227:w
++íß	F	228:w
++íà	F	229:w
++íá	F	230:w
++íâ	F	231:w
++íã	F	232:w
++íä	F	233:w
++íå	F	234:w
++íæ	F	235:w
++íç	F	236:w
++íè	F	237:w
++íé	F	238:w
++íê	F	239:w
++íë	F	240:w
++íì	F	241:w
++íí	F	242:w
++íî	F	243:w
++íï	F	244:w
++íð	F	245:w
++íñ	F	246:w
++íò	F	247:w
++íó	F	248:w
++íô	F	249:w
++íõ	F	250:w
++íö	F	251:w
++í÷	F	252:w
++íø	F	253:w
++íù	F	254:w
++íú	F	255:w
++íû	F	0:x
++íü	F	1:x
++íý	F	2:x
++íþ	F	3:x
++î¡	F	4:x
++î¢	F	5:x
++î£	F	6:x
++î¤	F	7:x
++î¥	F	8:x
++î¦	F	9:x
++î§	F	10:x
++î¨	F	11:x
++î©	F	12:x
++îª	F	13:x
++î«	F	14:x
++î¬	F	15:x
++î­	F	16:x
++î®	F	17:x
++î¯	F	18:x
++î°	F	19:x
++î±	F	20:x
++î²	F	21:x
++î³	F	22:x
++î´	F	23:x
++îµ	F	24:x
++î¶	F	25:x
++î·	F	26:x
++î¸	F	27:x
++î¹	F	28:x
++îº	F	29:x
++î»	F	30:x
++î¼	F	31:x
++î½	F	32:x
++î¾	F	33:x
++î¿	F	34:x
++îÀ	F	35:x
++îÁ	F	36:x
++îÂ	F	37:x
++îÃ	F	38:x
++îÄ	F	39:x
++îÅ	F	40:x
++îÆ	F	41:x
++îÇ	F	42:x
++îÈ	F	43:x
++îÉ	F	44:x
++îÊ	F	45:x
++îË	F	46:x
++îÌ	F	47:x
++îÍ	F	48:x
++îÎ	F	49:x
++îÏ	F	50:x
++îÐ	F	51:x
++îÑ	F	52:x
++îÒ	F	53:x
++îÓ	F	54:x
++îÔ	F	55:x
++îÕ	F	56:x
++îÖ	F	57:x
++î×	F	58:x
++îØ	F	59:x
++îÙ	F	60:x
++îÚ	F	61:x
++îÛ	F	62:x
++îÜ	F	63:x
++îÝ	F	64:x
++îÞ	F	65:x
++îß	F	66:x
++îà	F	67:x
++îá	F	68:x
++îâ	F	69:x
++îã	F	70:x
++îä	F	71:x
++îå	F	72:x
++îæ	F	73:x
++îç	F	74:x
++îè	F	75:x
++îé	F	76:x
++îê	F	77:x
++îë	F	78:x
++îì	F	79:x
++îí	F	80:x
++îî	F	81:x
++îï	F	82:x
++îð	F	83:x
++îñ	F	84:x
++îò	F	85:x
++îó	F	86:x
++îô	F	87:x
++îõ	F	88:x
++îö	F	89:x
++î÷	F	90:x
++îø	F	91:x
++îù	F	92:x
++îú	F	93:x
++îû	F	94:x
++îü	F	95:x
++îý	F	96:x
++îþ	F	97:x
++ï¡	F	98:x
++ï¢	F	99:x
++ï£	F	100:x
++ï¤	F	101:x
++ï¥	F	102:x
++ï¦	F	103:x
++ï§	F	104:x
++ï¨	F	105:x
++ï©	F	106:x
++ïª	F	107:x
++ï«	F	108:x
++ï¬	F	109:x
++ï­	F	110:x
++ï®	F	111:x
++ï¯	F	112:x
++ï°	F	113:x
++ï±	F	114:x
++ï²	F	115:x
++ï³	F	116:x
++ï´	F	117:x
++ïµ	F	118:x
++ï¶	F	119:x
++ï·	F	120:x
++ï¸	F	121:x
++ï¹	F	122:x
++ïº	F	123:x
++ï»	F	124:x
++ï¼	F	125:x
++ï½	F	126:x
++ï¾	F	127:x
++ï¿	F	128:x
++ïÀ	F	129:x
++ïÁ	F	130:x
++ïÂ	F	131:x
++ïÃ	F	132:x
++ïÄ	F	133:x
++ïÅ	F	134:x
++ïÆ	F	135:x
++ïÇ	F	136:x
++ïÈ	F	137:x
++ïÉ	F	138:x
++ïÊ	F	139:x
++ïË	F	140:x
++ïÌ	F	141:x
++ïÍ	F	142:x
++ïÎ	F	143:x
++ïÏ	F	144:x
++ïÐ	F	145:x
++ïÑ	F	146:x
++ïÒ	F	147:x
++ïÓ	F	148:x
++ïÔ	F	149:x
++ïÕ	F	150:x
++ïÖ	F	151:x
++ï×	F	152:x
++ïØ	F	153:x
++ïÙ	F	154:x
++ïÚ	F	155:x
++ïÛ	F	156:x
++ïÜ	F	157:x
++ïÝ	F	158:x
++ïÞ	F	159:x
++ïß	F	160:x
++ïà	F	161:x
++ïá	F	162:x
++ïâ	F	163:x
++ïã	F	164:x
++ïä	F	165:x
++ïå	F	166:x
++ïæ	F	167:x
++ïç	F	168:x
++ïè	F	169:x
++ïé	F	170:x
++ïê	F	171:x
++ïë	F	172:x
++ïì	F	173:x
++ïí	F	174:x
++ïî	F	175:x
++ïï	F	176:x
++ïð	F	177:x
++ïñ	F	178:x
++ïò	F	179:x
++ïó	F	180:x
++ïô	F	181:x
++ïõ	F	182:x
++ïö	F	183:x
++ï÷	F	184:x
++ïø	F	185:x
++ïù	F	186:x
++ïú	F	187:x
++ïû	F	188:x
++ïü	F	189:x
++ïý	F	190:x
++ïþ	F	191:x
++ð¡	F	192:x
++ð¢	F	193:x
++ð£	F	194:x
++ð¤	F	195:x
++ð¥	F	196:x
++ð¦	F	197:x
++ð§	F	198:x
++ð¨	F	199:x
++ð©	F	200:x
++ðª	F	201:x
++ð«	F	202:x
++ð¬	F	203:x
++ð­	F	204:x
++ð®	F	205:x
++ð¯	F	206:x
++ð°	F	207:x
++ð±	F	208:x
++ð²	F	209:x
++ð³	F	210:x
++ð´	F	211:x
++ðµ	F	212:x
++ð¶	F	213:x
++ð·	F	214:x
++ð¸	F	215:x
++ð¹	F	216:x
++ðº	F	217:x
++ð»	F	218:x
++ð¼	F	219:x
++ð½	F	220:x
++ð¾	F	221:x
++ð¿	F	222:x
++ðÀ	F	223:x
++ðÁ	F	224:x
++ðÂ	F	225:x
++ðÃ	F	226:x
++ðÄ	F	227:x
++ðÅ	F	228:x
++ðÆ	F	229:x
++ðÇ	F	230:x
++ðÈ	F	231:x
++ðÉ	F	232:x
++ðÊ	F	233:x
++ðË	F	234:x
++ðÌ	F	235:x
++ðÍ	F	236:x
++ðÎ	F	237:x
++ðÏ	F	238:x
++ðÐ	F	239:x
++ðÑ	F	240:x
++ðÒ	F	241:x
++ðÓ	F	242:x
++ðÔ	F	243:x
++ðÕ	F	244:x
++ðÖ	F	245:x
++ð×	F	246:x
++ðØ	F	247:x
++ðÙ	F	248:x
++ðÚ	F	249:x
++ðÛ	F	250:x
++ðÜ	F	251:x
++ðÝ	F	252:x
++ðÞ	F	253:x
++ðß	F	254:x
++ðà	F	255:x
++ðá	F	0:y
++ðâ	F	1:y
++ðã	F	2:y
++ðä	F	3:y
++ðå	F	4:y
++ðæ	F	5:y
++ðç	F	6:y
++ðè	F	7:y
++ðé	F	8:y
++ðê	F	9:y
++ðë	F	10:y
++ðì	F	11:y
++ðí	F	12:y
++ðî	F	13:y
++ðï	F	14:y
++ðð	F	15:y
++ðñ	F	16:y
++ðò	F	17:y
++ðó	F	18:y
++ðô	F	19:y
++ðõ	F	20:y
++ðö	F	21:y
++ð÷	F	22:y
++ðø	F	23:y
++ðù	F	24:y
++ðú	F	25:y
++ðû	F	26:y
++ðü	F	27:y
++ðý	F	28:y
++ðþ	F	29:y
++ñ¡	F	30:y
++ñ¢	F	31:y
++ñ£	F	32:y
++ñ¤	F	33:y
++ñ¥	F	34:y
++ñ¦	F	35:y
++ñ§	F	36:y
++ñ¨	F	37:y
++ñ©	F	38:y
++ñª	F	39:y
++ñ«	F	40:y
++ñ¬	F	41:y
++ñ­	F	42:y
++ñ®	F	43:y
++ñ¯	F	44:y
++ñ°	F	45:y
++ñ±	F	46:y
++ñ²	F	47:y
++ñ³	F	48:y
++ñ´	F	49:y
++ñµ	F	50:y
++ñ¶	F	51:y
++ñ·	F	52:y
++ñ¸	F	53:y
++ñ¹	F	54:y
++ñº	F	55:y
++ñ»	F	56:y
++ñ¼	F	57:y
++ñ½	F	58:y
++ñ¾	F	59:y
++ñ¿	F	60:y
++ñÀ	F	61:y
++ñÁ	F	62:y
++ñÂ	F	63:y
++ñÃ	F	64:y
++ñÄ	F	65:y
++ñÅ	F	66:y
++ñÆ	F	67:y
++ñÇ	F	68:y
++ñÈ	F	69:y
++ñÉ	F	70:y
++ñÊ	F	71:y
++ñË	F	72:y
++ñÌ	F	73:y
++ñÍ	F	74:y
++ñÎ	F	75:y
++ñÏ	F	76:y
++ñÐ	F	77:y
++ñÑ	F	78:y
++ñÒ	F	79:y
++ñÓ	F	80:y
++ñÔ	F	81:y
++ñÕ	F	82:y
++ñÖ	F	83:y
++ñ×	F	84:y
++ñØ	F	85:y
++ñÙ	F	86:y
++ñÚ	F	87:y
++ñÛ	F	88:y
++ñÜ	F	89:y
++ñÝ	F	90:y
++ñÞ	F	91:y
++ñß	F	92:y
++ñà	F	93:y
++ñá	F	94:y
++ñâ	F	95:y
++ñã	F	96:y
++ñä	F	97:y
++ñå	F	98:y
++ñæ	F	99:y
++ñç	F	100:y
++ñè	F	101:y
++ñé	F	102:y
++ñê	F	103:y
++ñë	F	104:y
++ñì	F	105:y
++ñí	F	106:y
++ñî	F	107:y
++ñï	F	108:y
++ñð	F	109:y
++ññ	F	110:y
++ñò	F	111:y
++ñó	F	112:y
++ñô	F	113:y
++ñõ	F	114:y
++ñö	F	115:y
++ñ÷	F	116:y
++ñø	F	117:y
++ñù	F	118:y
++ñú	F	119:y
++ñû	F	120:y
++ñü	F	121:y
++ñý	F	122:y
++ñþ	F	123:y
++ò¡	F	124:y
++ò¢	F	125:y
++ò£	F	126:y
++ò¤	F	127:y
++ò¥	F	128:y
++ò¦	F	129:y
++ò§	F	130:y
++ò¨	F	131:y
++ò©	F	132:y
++òª	F	133:y
++ò«	F	134:y
++ò¬	F	135:y
++ò­	F	136:y
++ò®	F	137:y
++ò¯	F	138:y
++ò°	F	139:y
++ò±	F	140:y
++ò²	F	141:y
++ò³	F	142:y
++ò´	F	143:y
++òµ	F	144:y
++ò¶	F	145:y
++ò·	F	146:y
++ò¸	F	147:y
++ò¹	F	148:y
++òº	F	149:y
++ò»	F	150:y
++ò¼	F	151:y
++ò½	F	152:y
++ò¾	F	153:y
++ò¿	F	154:y
++òÀ	F	155:y
++òÁ	F	156:y
++òÂ	F	157:y
++òÃ	F	158:y
++òÄ	F	159:y
++òÅ	F	160:y
++òÆ	F	161:y
++òÇ	F	162:y
++òÈ	F	163:y
++òÉ	F	164:y
++òÊ	F	165:y
++òË	F	166:y
++òÌ	F	167:y
++òÍ	F	168:y
++òÎ	F	169:y
++òÏ	F	170:y
++òÐ	F	171:y
++òÑ	F	172:y
++òÒ	F	173:y
++òÓ	F	174:y
++òÔ	F	175:y
++òÕ	F	176:y
++òÖ	F	177:y
++ò×	F	178:y
++òØ	F	179:y
++òÙ	F	180:y
++òÚ	F	181:y
++òÛ	F	182:y
++òÜ	F	183:y
++òÝ	F	184:y
++òÞ	F	185:y
++òß	F	186:y
++òà	F	187:y
++òá	F	188:y
++òâ	F	189:y
++òã	F	190:y
++òä	F	191:y
++òå	F	192:y
++òæ	F	193:y
++òç	F	194:y
++òè	F	195:y
++òé	F	196:y
++òê	F	197:y
++òë	F	198:y
++òì	F	199:y
++òí	F	200:y
++òî	F	201:y
++òï	F	202:y
++òð	F	203:y
++òñ	F	204:y
++òò	F	205:y
++òó	F	206:y
++òô	F	207:y
++òõ	F	208:y
++òö	F	209:y
++ò÷	F	210:y
++òø	F	211:y
++òù	F	212:y
++òú	F	213:y
++òû	F	214:y
++òü	F	215:y
++òý	F	216:y
++òþ	F	217:y
++ó¡	F	218:y
++ó¢	F	219:y
++ó£	F	220:y
++ó¤	F	221:y
++ó¥	F	222:y
++ó¦	F	223:y
++ó§	F	224:y
++ó¨	F	225:y
++ó©	F	226:y
++óª	F	227:y
++ó«	F	228:y
++ó¬	F	229:y
++ó­	F	230:y
++ó®	F	231:y
++ó¯	F	232:y
++ó°	F	233:y
++ó±	F	234:y
++ó²	F	235:y
++ó³	F	236:y
++ó´	F	237:y
++óµ	F	238:y
++ó¶	F	239:y
++ó·	F	240:y
++ó¸	F	241:y
++ó¹	F	242:y
++óº	F	243:y
++ó»	F	244:y
++ó¼	F	245:y
++ó½	F	246:y
++ó¾	F	247:y
++ó¿	F	248:y
++óÀ	F	249:y
++óÁ	F	250:y
++óÂ	F	251:y
++óÃ	F	252:y
++óÄ	F	253:y
++óÅ	F	254:y
++óÆ	F	255:y
++óÇ	F	0:z
++óÈ	F	1:z
++óÉ	F	2:z
++óÊ	F	3:z
++óË	F	4:z
++óÌ	F	5:z
++óÍ	F	6:z
++óÎ	F	7:z
++óÏ	F	8:z
++óÐ	F	9:z
++óÑ	F	10:z
++óÒ	F	11:z
++óÓ	F	12:z
++óÔ	F	13:z
++óÕ	F	14:z
++óÖ	F	15:z
++ó×	F	16:z
++óØ	F	17:z
++óÙ	F	18:z
++óÚ	F	19:z
++óÛ	F	20:z
++óÜ	F	21:z
++óÝ	F	22:z
++óÞ	F	23:z
++óß	F	24:z
++óà	F	25:z
++óá	F	26:z
++óâ	F	27:z
++óã	F	28:z
++óä	F	29:z
++óå	F	30:z
++óæ	F	31:z
++óç	F	32:z
++óè	F	33:z
++óé	F	34:z
++óê	F	35:z
++óë	F	36:z
++óì	F	37:z
++óí	F	38:z
++óî	F	39:z
++óï	F	40:z
++óð	F	41:z
++óñ	F	42:z
++óò	F	43:z
++óó	F	44:z
++óô	F	45:z
++óõ	F	46:z
++óö	F	47:z
++ó÷	F	48:z
++óø	F	49:z
++óù	F	50:z
++óú	F	51:z
++óû	F	52:z
++óü	F	53:z
++óý	F	54:z
++óþ	F	55:z
++ô¡	F	56:z
++ô¢	F	57:z
++ô£	F	58:z
++ô¤	F	59:z
+--- groff-1.18.1.1.orig/font/devdvi/DESC.in
++++ groff-1.18.1.1/font/devdvi/DESC.in
+@@ -6,6 +6,10 @@
+ sizes 500-1000000 0
+ styles R I B BI
+ family T
+-fonts 13 0 0 0 0 0 0 0 0 0 MI S EX CW
++fonts 15 0 0 0 0 0 0 0 0 0 MI S EX CW M G
++fontset B G 100..FFFF
++fontset HB G 100..FFFF
++fontset SB G 100..FFFF
++fontset - M 100..FFFF
+ tcommand
+ postpro grodvi
+--- groff-1.18.1.1.orig/font/devdvi/Makefile.sub
++++ groff-1.18.1.1/font/devdvi/Makefile.sub
+@@ -3,15 +3,68 @@
+   TR TI TB TBI CW CWI HR HI HB HBI \
+   TREC TIEC TBEC TBIEC CWEC CWIEC HREC HIEC HBEC HBIEC \
+   TRTC TITC TBTC TBITC CWTC CWITC HRTC HITC HBTC HBITC \
+-  MI S EX SA SB \
++  MI S EX SA SB M G \
+   generate/CompileFonts generate/Makefile \
+   generate/msam.map generate/msbm.map \
+   generate/texb.map generate/texex.map generate/texi.map generate/texmi.map \
+   generate/texr.map generate/texsy.map generate/textt.map \
+   generate/ec.map generate/tc.map
+ 
+-CLEANADD=DESC
++CLEANADD=DESC M G
+ 
+ DESC: DESC.in
+ 	cat $(srcdir)/DESC.in >DESC
+ 	test -z '$(DVIPRINT)' || echo print '$(DVIPRINT)' >>DESC
++ 
++M: M.proto-$(DVIFORMAT)
++	@echo Making $@
++	@-rm -f $@
++	cp M.proto-$(DVIFORMAT) M
++#	@if [ x$(DVIFORMAT) = xNTT ]; then \
++#	sed -e 's/	F	/	959887,808326,151561	1	/' \
++#	    -e 's/:0$$/:dmjsy10/' \
++#	    -e 's/:1$$/:dmjroma10/' \
++#	    -e 's/:2$$/:dmjhira10/' \
++#	    -e 's/:3$$/:dmjkata10/' \
++#	    -e 's/:4$$/:dmjgreek10/' \
++#	    -e 's/:5$$/:dmjrussian10/' \
++#	    -e 's/:6$$/:dmjkeisen10/' \
++#	    -e 's/:a$$/:dmjka10/' \
++#	    -e 's/:b$$/:dmjkb10/' \
++#	    -e 's/:c$$/:dmjkc10/' \
++#	    -e 's/:d$$/:dmjkd10/' \
++#	    -e 's/:e$$/:dmjke10/' \
++#	    -e 's/:f$$/:dmjkf10/' \
++#	    -e 's/:g$$/:dmjkg10/' \
++#	    -e 's/:h$$/:dmjkh10/' \
++#	    -e 's/:i$$/:dmjki10/' \
++#	    -e 's/:j$$/:dmjkj10/' \
++#	    -e 's/:k$$/:dmjkk10/' \
++#	    -e 's/:l$$/:dmjkl10/' \
++#	    -e 's/:m$$/:dmjkm10/' \
++#	    -e 's/:n$$/:dmjkn10/' \
++#	    -e 's/:o$$/:dmjko10/' \
++#	    -e 's/:p$$/:dmjkp10/' \
++#	    -e 's/:q$$/:dmjkq10/' \
++#	    -e 's/:r$$/:dmjkr10/' \
++#	    -e 's/:s$$/:dmjks10/' \
++#	    -e 's/:t$$/:dmjkt10/' \
++#	    -e 's/:u$$/:dmjku10/' \
++#	    -e 's/:v$$/:dmjkv10/' \
++#	    -e 's/:w$$/:dmjkw10/' \
++#	    -e 's/:x$$/:dmjkx10/' \
++#	    -e 's/:y$$/:dmjky10/' \
++#	    -e 's/:z$$/:dmjkz10/' \
++#	    < M.proto-NTT > M ;\
++#	else \
++#	../devnippon/createM -jis "1006514,815360,145600" 1 < M.proto-ASCII | \
++#	    sed -f FixMetric.sed > M ;\
++#	fi
++	
++G: M
++	@echo Making $@
++	@-rm -f $@
++	@sed -e 's/name M/name G/' \
++	     -e 's/dmj/dgj/' \
++	     -e 's/internalname min10/internalname goth10/' \
++	     < M > G
+--- groff-1.18.1.1.orig/font/devdvi/M.proto-ASCII
++++ groff-1.18.1.1/font/devdvi/M.proto-ASCII
+@@ -0,0 +1,4 @@
++name M
++internalname min10
++checksum -375402250
++designsize 10485760
+--- groff-1.18.1.1.orig/font/devdvi/FixMetric.sed
++++ groff-1.18.1.1/font/devdvi/FixMetric.sed
+@@ -0,0 +1,77 @@
++s/1006514,.*0x212b$/370845,815360,145600	1	0x212b/
++s/1006514,.*0x212c$/370845,815360,145600	1	0x212c/
++s/1006514,.*0x2126$/370845,815360,145600	1	0x2126/
++s/1006514,.*0x2127$/370845,815360,145600	1	0x2127/
++s/1006514,.*0x2128$/370845,815360,145600	1	0x2128/
++s/1006514,.*0x212a$/370845,815360,145600	1	0x212a/
++s/1006514,.*0x212d$/370845,815360,145600	1	0x212d/
++s/1006514,.*0x212e$/370845,815360,145600	1	0x212e/
++s/1006514,.*0x213e$/370845,815360,145600	1	0x213e/
++s/1006514,.*0x2142$/370845,815360,145600	1	0x2142/
++s/1006514,.*0x2143$/370845,815360,145600	1	0x2143/
++s/1006514,.*0x2146$/370845,815360,145600	1	0x2146/
++s/1006514,.*0x2147$/370845,815360,145600	1	0x2147/
++s/1006514,.*0x2124$/370845,815360,145600	1	0x2124/
++s/1006514,.*0x2125$/370845,815360,145600	1	0x2125/
++s/1006514,.*0x214b$/528496,815360,145600	1	0x214b/
++s/1006514,.*0x214d$/528496,815360,145600	1	0x214d/
++s/1006514,.*0x214f$/528496,815360,145600	1	0x214f/
++s/1006514,.*0x2151$/528496,815360,145600	1	0x2151/
++s/1006514,.*0x2153$/528496,815360,145600	1	0x2153/
++s/1006514,.*0x2155$/528496,815360,145600	1	0x2155/
++s/1006514,.*0x2157$/528496,815360,145600	1	0x2157/
++s/1006514,.*0x2159$/528496,815360,145600	1	0x2159/
++s/1006514,.*0x215b$/528496,815360,145600	1	0x215b/
++s/1006514,.*0x2129$/528496,815360,145600	1	0x2129/
++s/1006514,.*0x212f$/528496,815360,145600	1	0x212f/
++s/1006514,.*0x2130$/528496,815360,145600	1	0x2130/
++s/1006514,.*0x2133$/528496,815360,145600	1	0x2133/
++s/1006514,.*0x2135$/528496,815360,145600	1	0x2135/
++s/1006514,.*0x2148$/528496,815360,145600	1	0x2148/
++s/1006514,.*0x2149$/528496,815360,145600	1	0x2149/
++s/1006514,.*0x216b$/528496,815360,145600	1	0x216b/
++s/1006514,.*0x216c$/528496,815360,145600	1	0x216c/
++s/1006514,.*0x216d$/528496,815360,145600	1	0x216d/
++s/1006514,.*0x2178$/528496,815360,145600	1	0x2178/
++s/1006514,.*0x214a$/528496,815360,145600	1	0x214a/
++s/1006514,.*0x214c$/528496,815360,145600	1	0x214c/
++s/1006514,.*0x214e$/528496,815360,145600	1	0x214e/
++s/1006514,.*0x2150$/528496,815360,145600	1	0x2150/
++s/1006514,.*0x2152$/528496,815360,145600	1	0x2152/
++s/1006514,.*0x2154$/528496,815360,145600	1	0x2154/
++s/1006514,.*0x2156$/528496,815360,145600	1	0x2156/
++s/1006514,.*0x2158$/528496,815360,145600	1	0x2158/
++s/1006514,.*0x215a$/528496,815360,145600	1	0x215a/
++s/1006514,.*0x2122$/528496,815360,145600	1	0x2122/
++s/1006514,.*0x2123$/528496,815360,145600	1	0x2123/
++s/1006514,.*0x2136$/783741,815360,145600	1	0x2136/
++s/1006514,.*0x2137$/783741,815360,145600	1	0x2137/
++s/1006514,.*0x2139$/783741,815360,145600	1	0x2139/
++s/1006514,.*0x2168$/783741,815360,145600	1	0x2168/
++s/1006514,.*0x2169$/783741,815360,145600	1	0x2169/
++s/1006514,.*0x216a$/783741,815360,145600	1	0x216a/
++s/1006514,.*0x2170$/783741,815360,145600	1	0x2170/
++s/1006514,.*0x2171$/783741,815360,145600	1	0x2171/
++s/1006514,.*0x2172$/783741,815360,145600	1	0x2172/
++s/1006514,.*0x2421$/783741,815360,145600	1	0x2421/
++s/1006514,.*0x2423$/783741,815360,145600	1	0x2423/
++s/1006514,.*0x2425$/783741,815360,145600	1	0x2425/
++s/1006514,.*0x2427$/783741,815360,145600	1	0x2427/
++s/1006514,.*0x2429$/783741,815360,145600	1	0x2429/
++s/1006514,.*0x2443$/783741,815360,145600	1	0x2443/
++s/1006514,.*0x2463$/783741,815360,145600	1	0x2463/
++s/1006514,.*0x2465$/783741,815360,145600	1	0x2465/
++s/1006514,.*0x2467$/783741,815360,145600	1	0x2467/
++s/1006514,.*0x246e$/783741,815360,145600	1	0x246e/
++s/1006514,.*0x2521$/783741,815360,145600	1	0x2521/
++s/1006514,.*0x2523$/783741,815360,145600	1	0x2523/
++s/1006514,.*0x2525$/783741,815360,145600	1	0x2525/
++s/1006514,.*0x2527$/783741,815360,145600	1	0x2527/
++s/1006514,.*0x2529$/783741,815360,145600	1	0x2529/
++s/1006514,.*0x2543$/783741,815360,145600	1	0x2543/
++s/1006514,.*0x2563$/783741,815360,145600	1	0x2563/
++s/1006514,.*0x2565$/783741,815360,145600	1	0x2565/
++s/1006514,.*0x2567$/783741,815360,145600	1	0x2567/
++s/1006514,.*0x256e$/783741,815360,145600	1	0x256e/
++s/1006514,.*0x2575$/783741,815360,145600	1	0x2575/
++s/1006514,.*0x2576$/783741,815360,145600	1	0x2576/
+--- groff-1.18.1.1.orig/ChangeLog.jp
++++ groff-1.18.1.1/ChangeLog.jp
+@@ -0,0 +1,345 @@
++2002-11-04  Fumitoshi UKAI  <ukai at debian.or.jp>
++
++	* src/libs/libgroff/encoding.cc: for C or POSIX locale,
++		use ascii8 encoding handler
++	* font/devX*: new font desc for M, G
++	* src/xditview: support ENABLE_MULTIBYTE (Japanese only?)
++
++2002-10-09  Fumitoshi UKAI  <ukai at debian.or.jp>
++
++	* update groff-1.18-7
++
++2002-09-23  Fumitoshi UKAI  <ukai at debian.or.jp>
++
++	* src/roff/troff/input.cc: fix bug in wchar_charinfo()
++				check u<CODE> where <CODE> is 4- HEX chars
++	* src/device/grohtml/post-html.cc: works ENABLE_MULTIBYTE
++	* font/devhtml: add font M, G for Japanese
++
++2002-09-22  Fumitoshi UKAI  <ukai at debian.or.jp>
++
++	* new multibyte patch
++
++2001-08-16  Fumitoshi UKAI  <ukai at debian.or.jp>
++
++	* tmac/euc-jp.tmac:
++	  fix disappearing `-' char
++
++2001-07-21  Fumitoshi UKAI  <ukai at debian.or.jp>
++
++	* add ENABLE_MULTIBYTE support to src/xditview
++
++2001-07-20  Fumitoshi UKAI  <ukai at debian.or.jp>
++
++	* introduce "fontset" in font/*/DESC
++	  obsoletes "ondemand"
++
++2001-07-19  Fumitoshi UKAI  <ukai at debian.or.jp>
++
++	* don't use input_encoding->is_wchar_code()
++	* fix troffrc empty line
++	* fix duplicate strcasecmp()
++
++2001-07-19  Fumitoshi UKAI  <ukai at debian.or.jp>
++
++	* sub font selection move into environment::add_char()
++	  it makes possible to use \[uni<code>]
++
++2001-07-19  Fumitoshi UKAI  <ukai at debian.or.jp>
++
++	* use generic iconv_handler instead of euc_handler
++	* internal code now uses UCS-2
++
++2001-07-19  Fumitoshi UKAI  <ukai at debian.or.jp
++
++	* wchar%x -> uni%X
++	  - still no code conversion
++	  - font description is not accurate
++	* change "fixed" to charset range
++
++2001-07-18  Fumitoshi UKAI  <ukai at debian.or.jp>
++
++	* Configuration Change: 
++	   obsolete: --enable-japanese (#ifdef NIPPON) 
++	   new:      --enable-multibyte (#ifdef ENABLE_MULTIBYTE)
++
++2001-07-18  Fumitoshi UKAI  <ukai at debian.or.jp>
++
++	* create charinfo for wchar on demand (src/roff/troff/input.cc)
++	* use "fixed" for font wchar metric (src/libs/libgroff/font.cc)
++	  - font/*/M,G
++
++2001-07-17  Fumitoshi UKAI  <ukai at debian.or.jp>
++
++	* add utf8 encoding handler to src/libs/libgroff/encoding.cc
++	   (this utf8 encodig handler is too slow!)
++
++2001-07-15  Fumitoshi UKAI  <ukai at debian.or.jp>
++
++	* based on groff 1.17.2-1
++	* use src/include/encoding.h instead of eucmac.h
++	* introduce src/libs/libgroff/encoding.cc
++	* introduce tmac/euc-jp.tmac for EUC-JP documents
++
++2001-05-24  Fumitoshi UKAI  <ukai at debian.or.jp>
++
++	* Apply for groff-1.17
++
++2000-01-06  Yoshiaki Yanagihara  <yochi at debian.or.jp>
++
++	* Apply japanese patch "jgroff-0.101"
++	  (thanks hanataka at abyss.rim.or.jp).
++	* Added japanese extention option at configure.in, aclocal.m4.
++
++Sat Jan  1 17:10:32 JST 2000  HANATAKA Shinya  <hanataka at abyss.rim.or.jp>
++
++	* jgroff-0.100 ¤ò¤½¤Î¤Þ¤Þ groff-1.14 ¤ËŬÍѤ·¤Æ jgroff-101
++	  ¤È¤·¤¿¡£
++	* grohtml ¤òÆüËܸì¤ËÂбþ¤µ¤»¤ë¡£
++	* ÆüËܸì¥Þ¥Ë¥å¥¢¥ëÍÑ¤Ë tmac.docj ¤È tmac.andocj ¥Þ¥¯¥í¤òÄɲá£
++
++Sun Mar 15 18:23:12 1998  Yoshiaki Yanagihara  <yochi at debian.or.jp>
++
++	* jgroff ¤Î¥Ù¡¼¥¹¤ò groff-1.11a ¤ËÊѹ¹¤·¡¢jgroff-0.99¥Ñ¥Ã¥Á¤ò
++	  ŬÍѤ·¤¿¤â¤Î¤ò jgroff-0.100 ¤È¤·¤¿¡£
++	  ´ðËÜŪ¤Ë jgroff-0.99 ¤Èµ¡Ç½¤ÏƱ¤¸ *¤Ï¤º*¡£
++
++Fri Dec 22 11:47:46 1995  Kitagawa Toshiyuki  <tm-kita at kh.rim.or.jp>
++
++	* ¥Ð¡¼¥¸¥ç¥ó0.99¡£
++
++Mon Dec 18 18:28:37 1995  Kitagawa Toshiyuki  <tm-kita at kh.rim.or.jp>
++
++	* tmac/Makefile.sub: ¥¿¡¼¥²¥Ã¥È stamp-wrap¡¢uninstall_sub ¤¬°ìÉô
++	OS¤Îsh¤Ç¹½Ê¸¥¨¥é¡¼¤È¤Ê¤ë¥ª¥ê¥¸¥Ê¥ë¥Ð¥°¤ò½¤Àµ¡£
++
++Wed Dec 13 15:09:26 1995  Kitagawa Toshiyuki  <tm-kita at kh.rim.or.jp>
++
++	* jgroff.sh: ¥ª¥ê¥¸¥Ê¥ë¤Ç¥¤¥ó¥¹¥È¡¼¥ë¥Ñ¥¹¤¬Êѹ¹¤µ¤ì¤¿¤Î¤Ë¹ç¤ï¤»¡¢
++	GROFF_TMAC_PATH¡¢GROFF_FONT_PATH¤òshare/groffÇÛ²¼¤ËÊѹ¹¡£
++
++Sat Dec  9 15:28:36 1995  Kitagawa Toshiyuki  <tm-kita at kh.rim.or.jp>
++
++	* wchar.h¤«¤éeucmac.h¤Ë¥Õ¥¡¥¤¥ë̾¤òÊѹ¹¡£
++
++Fri Dec  8 12:15:47 1995  Yoshio Takaeda  <shio at yinyan.bekkoame.or.jp>
++
++	* troff/env.cc(add_char): ¡ØASCIIʸ»ú + ²þ¹Ô¥³¡¼¥É + EUCʸ»ú¡Ù¤È¤¤¤¦
++	¥Ñ¥¿¡¼¥ó¤Î»þ¡¢²þ¹Ô¥³¡¼¥É¤¬¥¹¥Ú¡¼¥¹¤ËÊÑ´¹¤µ¤ì¤Ê¤¤¥Ð¥°¤ò½¤Àµ¡£
++
++Thu Dec  7 21:35:06 1995  Yanagihara Yoshiaki  <yosiaki at bsd2.kbnes.nec.co.jp>
++
++	* troff/input.cc (process_input_stack): gcc-2.7.0¤ÇÊÑ¿ôÄêµÁ¤¬¥¹¥³¡¼¥×
++	°ãÈ¿¤È¤Ê¤Ã¤Æ¤·¤Þ¤¦²Õ½ê¤ò½¤Àµ¡£
++
++Thu Dec  7 21:35:06 1995  Yanagihara Yoshiaki  <yosiaki at bsd2.kbnes.nec.co.jp>
++
++	* jgroff¤Î¥Ù¡¼¥¹¥½¡¼¥¹¤ògroff-1.10¤ËÊѹ¹¡£
++
++Thu Apr  6 16:56:32 1995  Kitagawa Toshiyuki  <kitagawa at bsd2.kbnes.nec.co.jp>
++
++	* devdvi/M.proto-NTT: DNP¤Îpk¥Õ¥©¥ó¥È¤Î¥Á¥§¥Ã¥¯¥µ¥àÃͤ¬0¤Ê¤Î¤Ç¡¢¤³
++	¤ì¤Ë¹ç¤ï¤»¤Æchecksum¤ÎÃͤò0¤ËÊѹ¹¡£
++
++Mon Apr  3 20:36:37 1995  Kitagawa Toshiyuki  <kitagawa at bsd2.kbnes.nec.co.jp>
++
++	* troff/env.cc (possibly_break_line):
++	line¥ê¥¹¥ÈÃæ¤Îkword_space_node¤òÄ´À°¤¹¤ë½èÍý¤Ç¡¢lineÃæ¤Ë¤³¤Î¥Î¡¼¥É
++	¤¬´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï½èÍý¤ò¥¹¥­¥Ã¥×¤¹¤ë¤è¤¦¤Ë¤·¤¿(EUC¥³¡¼¥É¤ò´Þ¤Þ
++	¤Ê¤¤roff¤ò½èÍý¤¹¤ë¾ì¹ç¤Ë¤Ïkword_space_node¤Ï¸½¤ì¤Ê¤¤¤Î¤Ç½èÍý¤¬¹â®
++	²½¤µ¤ì¤ë)¡£
++
++Mon Apr  3 20:36:37 1995  Kitagawa Toshiyuki  <kitagawa at bsd2.kbnes.nec.co.jp>
++
++	* troff/env.cc (add_char): hwkern¡¢vlower¤Î½é´ü²½¤Ïdevice½é´ü²½¸å
++	¤Ë°ìÅÙ¤À¤±¹Ô¤¨¤ÐÎɤ¤¤Î¤Çenvironment¥¯¥é¥¹¤Î¥³¥ó¥¹¥È¥é¥¯¥¿¤Ç¤³¤ì¤ò
++	¹Ô¤¦¤è¤¦¤ËÊѹ¹¡£
++
++Sat Apr  1 17:57:23 1995  Kitagawa Toshiyuki  <kitagawa at bsd2.kbnes.nec.co.jp>
++
++	* troff/input.cc (mount_on_demand): on demand¤Ç¥Þ¥¦¥ó¥È¤µ¤ì¤ë¥Õ¥©
++	¥ó¥È̾¤ò¥Ç¥Ð¥¤¥¹¤´¤È¤ÎDESC¥Õ¥¡¥¤¥ë¤Ç»ØÄê¤Ç¤­¤ë¤è¤¦¤ËÊѹ¹¡£
++	¥Ç¥£¥ì¥¯¥Æ¥£¥Öondemand¤Ç»ØÄꤷ¤¿¥Õ¥©¥ó¥È¤¬on demand¤Ç¥Þ¥¦¥ó¥È¤µ¤ì¤ë¡£
++
++Fri Mar 31 20:23:43 1995  Kitagawa Toshiyuki  <kitagawa at bsd2.kbnes.nec.co.jp>
++
++	* libgroff/font.cc (load): ´Á»ú¥Õ¥©¥ó¥È¥Õ¥¡¥¤¥ëÍѤ˥ǥ£¥ì¥¯¥Æ¥£¥Ö
++	fixedkanji¤òÄɲᣤ³¤ì¤Ï³Æʸ»ú¤Î¥á¥È¥ê¥Ã¥¯¤¬Á´¤ÆƱ¤¸¤Ç¤¢¤ë»ö¤ò»ØÄê
++	¤¹¤ë¤â¤Î¤Ç¡¢fixedkanji¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ïcharset¤Ïɾ²Á¤µ¤ì¤Ê¤¤
++	¤¿¤á´Á»ú¥Õ¥©¥ó¥È¤Î¥í¡¼¥É¤¬Â®¤¤¡£
++
++Thu Mar 30 18:20:24 1995  Kitagawa Toshiyuki  <kitagawa at bsd2.kbnes.nec.co.jp>
++
++	* troff: node¼±Ê̤òʸ»úÎóÈæ³Ó¤Ç¹Ô¤Ã¤Æ¤¤¤¿¤¬¹â®²½¤Î¤¿¤á¿ôÃÍÈæ³Ó¤Ë
++	Êѹ¹¤·¤¿¡£
++
++Wed Mar 29 20:20:49 1995  Kitagawa Toshiyuki  <kitagawa at bsd2.kbnes.nec.co.jp>
++
++	* troff/input.cc: ´Á»ú¥Õ¥©¥ó¥È(M¤ÈG)¤òon demand¤Ç¥Þ¥¦¥ó¥È¤¹¤ë¤è¤¦
++	¤ËÊѹ¹¡£¤³¤ì¤Ë¤è¤Ã¤Æ´Á»ú¤ò´Þ¤Þ¤Ê¤¤roff¥Õ¥¡¥¤¥ë¤Î½èÍý»þ´Ö¤¬¹â®²½¤µ
++	¤ì¤¿¡£
++
++Fri Mar 10 15:34:26 1995  Shigeki Yoshida <shige at theta.iis.u-tokyo.ac.jp>
++
++	* troff/input.cc (process): geqn¤Ç¡¢
++
++		.EQ
++		Í×ÁÇ sub µ­¹æ
++		.EN
++
++	¤ò½èÍý¤¹¤ë¤È¡¢"illegal token in argument to \Z"¤È¤Ê¤Ã¤Æ¤·¤Þ¤¦¥Ð¥°
++	(\Z¥·¡¼¥±¥ó¥¹¤Î°ú¿ô¤ËEUCʸ»ú¤¬Í褿¾ì¹ç¤ÎÂбþϳ¤ì)¤ò½¤Àµ¡£
++
++Mon Feb  6 11:22:33 1995  Yoshio Takaeda <e50110 at sakura.kudpc.kyoto-u.ac.jp>
++
++	* troff/input.cc: ¹ÔƬ¶Ø§ʸ»ú¤ÎEUC¥³¡¼¥É¤Î°ìÉô¤¬ÉÔÀµ¡£
++
++Mon Jan 30 14:02:54 1995  Kitagawa Toshiyuki  <kitagawa at bsd2.kbnes.nec.co.jp>
++
++	* ¥Ð¡¼¥¸¥ç¥ó0.97¡£
++
++Fri Dec 10 14:26:14 1994  Kazutaka YOKOTA <yokota at zodiac.mech.utsunomiya-u.ac.jp>
++
++	* devdvi/M.proto: NTT JTeX¤ÈASCIIÆüËܸìTeXξÊý¤Îdvi¥Õ¥¡¥¤¥ë¤ò°·¤¨¤ë¤è¤¦
++	M.proto¥Õ¥¡¥¤¥ë¤òÊѹ¹¡£
++
++Fri Dec  9 14:26:14 1994  Kazutaka YOKOTA <yokota at zodiac.mech.utsunomiya-u.ac.jp>
++
++	* troff/node.cc: boldfont_list[]¤Ë¥Õ¥©¥ó¥È̾ B ¤òÅÐÏ¿¤·¤Æ¤¤¤Ê¤«¤Ã
++	¤¿¤¿¤á¡¢dvi¥Õ¥¡¥¤¥ë¤Ë¥´¥·¥Ã¥¯ÂΤ¬½ÐÎϤµ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¡£
++
++Fri Dec  9 14:23:22 1994  Kazutaka YOKOTA <yokota at zodiac.mech.utsunomiya-u.ac.jp>
++
++	* grotty/tty.cc (add_char): EUCʸ»ú¤ËÂФ·¤ÆWCHAR_MODE¤òÀßÄꤷ¤Æ¤¤
++	¤Ê¤«¤Ã¤¿¤¿¤á¡¢tty½ÐÎϤǥ´¥·¥Ã¥¯ÂΤ¬Æó½ÅÂǤÁ¤µ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¡£
++
++Fri Dec  9 14:19:33 1994  Kazutaka YOKOTA <yokota at zodiac.mech.utsunomiya-u.ac.jp>
++
++	* devdvi/Makefile.sub: ¥Õ¥©¥ó¥È¥Õ¥¡¥¤¥ë G ¤Ç¡¢name¥Ç¥£¥ì¥¯¥Æ¥£¥Ö¤¬
++	`name M'¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£
++
++Wed Nov 30 13:24:54 1994  Kitagawa Toshiyuki  <kitagawa at bsd2.kbnes.nec.co.jp>
++
++	* ¥Ð¡¼¥¸¥ç¥ó0.96¡£
++
++	* grodvi/dvi.cc: FreeBSD 1.1.5R¤Îstrcmp(3)¤Ç¤Ï°ú¿ô¤Ë¥Ì¥ë¥Ý¥¤¥ó¥¿¤ò
++	ÅϤ¹¤È¥³¥¢¥À¥ó¥×¤·¤Æ¤·¤Þ¤¦¤Î¤Ç¡¢¤³¤ì¤ò²óÈò¤¹¤ë¥³¡¼¥É¤òÄɲä·¤¿¡£
++
++Tue Nov 29 13:52:54 1994  Kitagawa Toshiyuki  <kitagawa at bsd2.kbnes.nec.co.jp>
++
++	* troff/input.cc: EUC¤Î¥¹¥Ú¡¼¥¹Ê¸»ú(0xa1a1)¤ÏASCII¤Î¥¹¥Ú¡¼¥¹Ê¸»ú¤È
++	¤·¤Æ½èÍý¤¹¤ë¤è¤¦½¤Àµ¡£
++
++	* devnippon/createM: JISX0208¤Ë¤ª¤¤¤Æʸ»ú¤¬Ì¤ÄêµÁ¤ÎÉôʬ¤Ë¤Ä¤¤¤Æ¤Ï
++	¥Õ¥©¥ó¥È¥Õ¥¡¥¤¥ë¤Ë½ÐÎϤ·¤Ê¤¤¤è¤¦½¤Àµ¡£
++
++Mon Nov 28 18:15:31 1994  Kitagawa Toshiyuki  <kitagawa at bsd2.kbnes.nec.co.jp>
++
++	* grodvi/dvi.cc: grodvi¤òÆüËܸ첽¤·¤¿¡£
++
++Fri Nov 25 15:39:05 1994  Kitagawa Toshiyuki  <kitagawa at bsd2.kbnes.nec.co.jp>
++
++	* troff/env.cc: EUCʸ»ú¤Ç»Ï¤Þ¤ë¹Ô¤ËÂФ·¤Æ¶ÑÅù³ä¤êÉÕ¤±¤¬¹Ô¤ï¤ì¤¿¾ì
++	¹ç¡¢¹ÔƬ¤Ë;ʬ¤Ê¶õÇò¤¬Æþ¤ë»ö¤¬¤¢¤Ã¤¿¤Î¤Ç¤³¤ì¤ò½¤Àµ¤·¤¿¡£
++
++Fri Nov 18 20:19:55 1994  Masubuchi Toshimichi <tmasu at st.rim.or.jp>
++
++	* devnippon/createM.c: createM¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤¬ÉÔÄê¤Ë¤Ê¤ë¤¿¤á¡¢
++	make¤¬½ªÎ»¤·¤Æ¤·¤Þ¤¦¡£createM¤Î½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤¬0¤Ë¤Ê¤ë¤è¤¦½¤Àµ¡£
++
++	* devnippon/Makefile.sub: PATH´Ä¶­ÊÑ¿ô¤Ë¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤¬´Þ¤Þ
++	¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢devnippon/M¤òmake¤¹¤ë»þÅÀ¤ÇcreateM¤¬¸«¤Ä¤«¤é¤ºmake
++	¥¨¥é¡¼¤Ë¤Ê¤ë¥Ð¥°¤ò½¤Àµ¡£
++
++Thu Nov 17 17:11:26 1994  Kitagawa Toshiyuki  <kitagawa at bsd2.kbnes.nec.co.jp>
++
++	* devnippon/createM.c: gets()¤òfgets()¤ËÊѹ¹¡£
++
++Sat Nov 12 13:38:19 1994  Kitagawa Toshiyuki  <kitagawa at bsd2.kbnes.nec.co.jp>
++
++	* ¥Ð¡¼¥¸¥ç¥ó0.95¡£
++
++	* troff/env.cc: .stt ¥ê¥¯¥¨¥¹¥È¤òÄɲÃ(¥í¡¼¥«¥ë¤Ê¥Þ¥Ë¥å¥¢¥ë½ñ¼°¤Ë¹ç
++	¤ï¤»¤ë¤¿¤á -> ¤³¤Î¥ê¥¯¥¨¥¹¥È¤ÏÈó¸ø³«)¡£
++
++	* troff/input.cc (init_charset_table): ASCII¤Î¹ÔƬ¶Ø§ʸ»ú¤È¤·¤Æ
++	,:;>}¤òÄɲä·¤¿¡£
++
++	* EUC¥Õ¥©¥ó¥È¥Õ¥¡¥¤¥ë¤Ï¡¢make»þ¤Ë¥Ä¡¼¥ë¤Ë¤è¤Ã¤ÆÀ¸À®¤¹¤ë¤è¤¦Êѹ¹¡£
++	¤³¤ì¤Ë¤è¤êpatch¥µ¥¤¥º¤¬¤«¤Ê¤ê¾®¤µ¤¯¤Ê¤Ã¤¿¡£
++
++Fri Nov 11 20:53:00 1994  Kitagawa Toshiyuki  <kitagawa at bsd2.kbnes.nec.co.jp>
++
++	* troff/env.cc (add_char): <EUCʸ»ú> + <ASCIIʸ»ú>¤Î¾ì¹ç¡¢´Ö¤ËÆþ¤ì
++	¤ë¶õÇò¤Ï¶Ø§¤Ë°ãÈ¿¤·¤Ê¤¤¤«¤®¤ê¥Ö¥ì¡¼¥¯²Äǽ¤Ê¶õÇò¤¬Æþ¤ë¤è¤¦½¤Àµ¤·¤¿¡£
++
++
++Tue Oct 25 04:46:09 1994  Kitagawa Toshiyuki  (kitagawa at bsd2.kbnes.nec.co.jp)
++
++	* ¥Ð¡¼¥¸¥ç¥ó0.94¡£
++
++	* libdriver/input.cc (do_file): -Tlatin1¤ÇEUC¤Ç¤Ï¤Ê¤¤Ê¸»ú¥³¡¼¥É¤ò
++	EUC¤ÈȽÃǤ·¤Æ¤·¤Þ¤¦¥Ð¥°¤ò½¤Àµ¡£
++
++Mon Oct 24 07:16:19 1994  Kitagawa Toshiyuki  (kitagawa at bsd2.kbnes.nec.co.jp)
++
++	* troff/node.cc (is_boldfont): FreeBSD 1.1.5¤Ç¡¢¥¼¥íÈÖÃÏ»²¾È¤Î¤¿¤á¥³
++	¥¢¥À¥ó¥×¤¹¤ë¥Ð¥°¤ò½¤Àµ¡£
++
++	* indxbib/dirnamemax.c: FreeBSD 1.1.5¤Ïpathconf()¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¤Î¤Ç
++	_POSIX_VERSION¤òundef¤·¤¿¡£
++
++	* ¥Ð¡¼¥¸¥ç¥ó0.93¡£
++
++	* geqn¤òÆüËܸ첽¤·¤¿¡£
++
++	* devps/DESC¤Îwcharkern¤òÀßÄꤹ¤ë¤È¹ÔƬ¤Ë¶õÇò¤¬Æþ¤Ã¤Æ¤·¤Þ¤¦¥Ð¥°¤Î
++	½¤ÀµÊýË¡¤òÊѹ¹¡£
++
++Sat Oct 22 08:19:15 1994  Kitagawa Toshiyuki  (kitagawa at bsd2.kbnes.nec.co.jp)
++
++	* ¥Ð¡¼¥¸¥ç¥ó0.90¡£
++
++	* xtotroff¤òÆüËܸ첽¡£
++
++Fri Oct 21 05:33:02 1994  Kitagawa Toshiyuki  (kitagawa at bsd2.kbnes.nec.co.jp)
++
++	* devps/DESC¤Îwcharkern¤òÀßÄꤹ¤ë¤È¹ÔƬ¤Ë¶õÇò¤¬Æþ¤Ã¤Æ¤·¤Þ¤¦»ö¤¬¤¢
++	¤Ã¤¿¤Î¤Ç¡¢¤³¤ì¤ò½¤Àµ¡£
++
++	* pre-release¥Ð¡¼¥¸¥ç¥ó¡£
++
++	* gxditview¤òÆüËܸ첽¤·¤¿(¥Õ¥©¥ó¥È¥á¥È¥ê¥Ã¥¯¤Î¼è¤ê½Ð¤·¤¬¤¤¤¤²Ã¸º)¡£
++
++Thu Oct 20 05:23:09 1994  Kitagawa Toshiyuki  (kitagawa at bsd2.kbnes.nec.co.jp)
++
++	* ¥Õ¥©¥ó¥ÈÈÖ¹æ3¤Ë¥Ü¡¼¥ë¥ÉÂΰʳ°¤Î¥Õ¥©¥ó¥È¤ò¥Þ¥¦¥ó¥È¤·¤¿¾ì¹ç¡¢´Á»ú¥Õ¥©
++	¥ó¥È¤¬¥´¥·¥Ã¥¯ÂΤˤʤäƤ·¤Þ¤¦¥Ð¥°¤ò½¤Àµ¡£
++
++Wed Oct 19 06:48:55 1994  Kitagawa Toshiyuki  (kitagawa at bsd2.kbnes.nec.co.jp)
++
++	* beta¥Ð¡¼¥¸¥ç¥ó¡£
++
++Tue Oct 18 05:02:59 1994  Kitagawa Toshiyuki  (kitagawa at bsd2.kbnes.nec.co.jp)
++
++	* pic: 
++	gpic¤òÆüËܸìÂбþ¤·¤¿¡£
++
++	* tbl: 
++	gtbl¤òÆüËܸìÂбþ¤·¤¿¡£
++
++	* troff/troff: 
++	Times-Bold°Ê³°¤Î¥Ü¡¼¥ë¥ÉÂΤ¬¥«¥ì¥ó¥È¥Õ¥©¥ó¥È¤Î»þ¡¢´Á»ú¥Õ¥©¥ó¥È¤¬¥´
++	¥·¥Ã¥¯¤ËÀÚ¤êÂؤï¤é¤Ê¤¤¥Ð¥°¤ò½¤Àµ¡£
++
++	* troff/troff: 
++	DESC¤Ë¥Ç¥£¥ì¥¯¥Æ¥£¥Öwcharkern¤òÄɲä·¡¢ASCIIʸ»ú¤ÈEUCʸ»ú¤Î´Ö¤Ë¡¢
++	»ØÄꤷ¤¿unit¿ô¤À¤±breakÉÔ²Äǽ¤Ê¶õÇò¤òÆþ¤ì¤ë¤è¤¦¤Ë¤·¤¿¡£
++
++	* troff/troff: 
++	DESC¤Ë¥Ç¥£¥ì¥¯¥Æ¥£¥Ölowerwchar¤òÄɲä·¡¢ASCIIʸ»ú¤ËÂФ·¤ÆEUCʸ»ú¤ò¡¢
++	»ØÄꤷ¤¿unit¿ô¤À¤±²¼¤²¤ë¤è¤¦¤Ë¤·¤¿(ASCIIʸ»ú¤¬Íî¤Á¹þ¤ó¤Ç¸«¤¨¤ë¤¿¤á)¡£
++	
++Fri Oct 14 08:29:06 1994  Kitagawa Toshiyuki  (kitagawa at bsd2.kbnes.nec.co.jp)
++
++	* aplah¥Ð¡¼¥¸¥ç¥ó¡£
+--- groff-1.18.1.1.orig/tmac/troffrc
++++ groff-1.18.1.1/tmac/troffrc
+@@ -13,7 +13,9 @@
+ .do ds troffrc!X100 X.tmac
+ .do ds troffrc!X100-12 X.tmac
+ .do ds troffrc!ascii tty.tmac
++.do ds troffrc!ascii8 tty.tmac
+ .do ds troffrc!latin1 tty.tmac
++.do ds troffrc!nippon tty.tmac
+ .do ds troffrc!utf8 tty.tmac
+ .do ds troffrc!cp1047 tty.tmac
+ .do ds troffrc!lj4 lj4.tmac
+@@ -36,4 +38,13 @@
+ .\" Load hyphenation patterns from `hyphen.us' (in the tmac directory).
+ .do hpf hyphen.us
+ .
++.\" For CJK hack. The hardcoded list of locales is especially nasty, but
++.\" getting the locale charmap requires a troff extension.
++.ie     "\V[LANG]"ja_JP.eucJP" .do mso euc-jp.tmac
++.el .ie "\V[LANG]"zh_CN"       .do mso gb.tmac
++.el .ie "\V[LANG]"zh_CN.GBK"   .do mso gb.tmac
++.el .ie "\V[LANG]"zh_SG"       .do mso gb.tmac
++.el .ie "\V[LANG]"zh_SG.GBK"   .do mso gb.tmac
++.el .if "\V[LANG]"zh_TW"       .do mso big5.tmac
++.
+ .\" Don't let blank lines creep in here.
+--- groff-1.18.1.1.orig/tmac/docj-nroff
++++ groff-1.18.1.1/tmac/docj-nroff
+@@ -0,0 +1,247 @@
++.\" Copyright (c) 1991 The Regents of the University of California.
++.\" All rights reserved.
++.\"
++.\" Redistribution and use in source and binary forms, with or without
++.\" modification, are permitted provided that the following conditions
++.\" are met:
++.\" 1. Redistributions of source code must retain the above copyright
++.\"    notice, this list of conditions and the following disclaimer.
++.\" 2. Redistributions in binary form must reproduce the above copyright
++.\"    notice, this list of conditions and the following disclaimer in the
++.\"    documentation and/or other materials provided with the distribution.
++.\" 3. All advertising materials mentioning features or use of this software
++.\"    must display the following acknowledgement:
++.\"	This product includes software developed by the University of
++.\"	California, Berkeley and its contributors.
++.\" 4. Neither the name of the University nor the names of its contributors
++.\"    may be used to endorse or promote products derived from this software
++.\"    without specific prior written permission.
++.\"
++.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++.\" SUCH DAMAGE.
++.\"
++.\"     @(#)doc-nroff	5.6 (Berkeley) 8/5/91
++.\"
++.\" tmac.mdoc-nroff
++.ds aD \fI
++.ds aR \fI
++.ds cM \fB
++.ds dF \fR
++.ds eM \fI
++.ds eR \fR
++.ds eV \fR
++.ds fA \fI
++.ds fD \fB
++.ds fL \fB
++.ds fN \fB
++.ds fP \fP
++.ds fS
++.ds fT \fI
++.ds Hs \fR
++.ds iC \fB
++.ds lI \fR
++.ds lP \fR\|(\fP
++.ds rP \fR\|)\fP
++.ds lp \fR\|(\fP
++.ds rp \fR\|)\fP
++.ds lB \fR\|[\|\fP
++.ds rB \fR\|]\fP
++.ds mL \fB
++.ds nM \fB
++.ds nO \fR
++.ds pA \fI
++.ds Pu {\ .\ ,\ ;\ :\ (\ )\ [\ ]}
++.ds rA \fR
++.ds rT \fI
++.ds sH \fB
++.ds sP
++.ds sY \fB
++.ds sX \fI
++.ds tF \fR
++.ds tN
++.ds vA \fI
++.ds Vs \fR
++.ds vT \fB
++.ds xR \fR
++.nr sI .5i
++.nr Ti .5i
++.nr cR 1
++.nr Pp 1v
++.ds lS \0\0
++.nr lS \w'\0\0'u
++.nr dI 6n
++.de pL
++.ie \\n(cR .nr Hm 0
++.el .nr Hm .5i
++.nr Fm .5i
++.nr ll 78n
++.ll 78n
++.nr lt 78n
++.lt 78n
++.nr po 0i
++.po 0i
++.nr dV 1v
++.ad l
++.na
++..
++.ds <= \&<\&=
++.ds >= \&>\&=
++.ds Rq ''
++.ds Lq ``
++.ds ua ^
++.ds aa \'
++.ds ga \`
++.ds sL `
++.ds sR '
++.ds q \&"
++.ds Pi pi
++.ds Ne !=
++.ds Le <=
++.ds Ge >=
++.ds Lt <
++.ds Gt >
++.ds Pm +-
++.ds If infinity
++.ds Na \fINaN\fP
++.ds Ba \fR\&|\fP
++
++.de hK
++.nr % 1
++.ds hT \\*(dT
++.if !"\\*(cH"Null" \{\
++.	ie !"\\*(gP"Null" .as hT \|(\|\\*(cH\\*(gP\|)
++.	el .as hT \\|(\\|\\*(cH\\|)
++.\}
++.if "\\*(cH"Null" .if !"\\*(gP"Null" .as hT \&\|(\|\\*(gP\|)
++.ie \\n(cR \{\
++.	hM
++.	wh -1v fM
++.\}
++.el \{\
++.	wh 0 hM
++.	wh -1.167i fM
++.\}
++.if \\n(nl==0:\\n(nl==-1 'bp
++.em lM
++..
++.nr fW \w'0'
++.de sW
++.nr sW \w\\$1
++.ie \\n(sW>=\\n(fW \{\
++.       ie \\n(sW%\\n(fW .nr sW (\\n(sW/\\n(fW)+1
++.       el .nr sW \\n(sW/\\n(fW
++.\}
++.el .nr sW 0
++..
++.de aW
++.nr sW \w\\*(A\\$1
++.ie \\n(sW>=\\n(fW \{\
++.       ie \\n(sW%\\n(fW .nr sW (\\n(sW/\\n(fW)+1
++.       el .nr sW \\n(sW/\\n(fW
++.\}
++.el .nr sW 0
++..
++.de Ql
++.if \\n(aC==0  \{\
++.	ds mN Ql
++.	ds A1 \\$1
++.	ds A2 \\$2
++.	ds A3 \\$3
++.	ds A4 \\$4
++.	ds A5 \\$5
++.	ds A6 \\$6
++.	ds A7 \\$7
++.	ds A8 \\$8
++.	ds A9 \\$9
++.	nr fV \\n(.$
++. 	fV
++.\}
++.ds qL \&\\*(sL
++.ds qR \&\\*(sR
++.En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.de Sh
++.nr nS 0
++.nr sE 0
++.nr iS 0
++.ie "\\$1"NAME" \{\
++.       hK
++'       in 0
++.\}
++.el \{\
++.	ie "\\$1"̾Á°" \{\
++.      		hK
++'       	in 0
++.	\}
++.	el \{\
++.		ie "\\$1"̾¾Î" \{\
++.       		hK
++'       		in 0
++.		\}
++.		el \{\
++.       		nr nS 0
++.       		nr nA 0
++.       		nr nF 0
++.       		nr nT 0
++.       		nr nY 0
++.       		nr aN 0
++.       		nr oT 0
++.       		if "\\$1"SEE" .nr nA 1
++.       		if "\\$1"´ØÏ¢¹àÌÜ" .nr nA 1
++.       		if "\\$1"FILES" .nr nF 1
++.       		if "\\$1"¥Õ¥¡¥¤¥ë" .nr nF 1
++.       		if "\\$1"´ØÏ¢¥Õ¥¡¥¤¥ë" .nr nF 1
++.       		if "\\$1"STANDARDS" .nr nT 1
++.       		if "\\$1"½àµò" .nr nT 1
++.       		if "\\$1"µ¬³Ê" .nr nT 1
++.       		if "\\$1"SYNOPSIS" .nr nS 1
++.       		if "\\$1"½ñ¼°" .nr nS 1
++.       		if "\\$1"DESCRIPTION" \{\
++.               		rr fB
++.               		rr Fb
++.               		ds Fb
++.               		nr fY 0
++.               		nr fZ 0
++.      			\}
++.       		if "\\$1"ÀâÌÀ" \{\
++.               		rr fB
++.               		rr Fb
++.               		ds Fb
++.               		nr fY 0
++.               		nr fZ 0
++.      			 \}
++.       		if "\\$1"²òÀâ" \{\
++.               		rr fB
++.               		rr Fb
++.               		ds Fb
++.               		nr fY 0
++.               		nr fZ 0
++.       		\}
++.			if "\\$1"AUTHORS" .nr nY 1
++.			if "\\$1"Ãø¼Ô" .nr nY 1
++.			if "\\$1"ºî¼Ô" .nr nY 1
++.     			in 0
++.		\}
++.	\}
++.\}
++.pL
++'sp
++.ns
++.ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i
++.if !\\n(cR .ne 3
++'fi
++\&\\*(sH\\$1 \|\\$2 \|\\$3 \|\\$4 \|\\$5 \|\\$6 \|\\$7 \|\\$8 \|\\$9
++\&\fP\s0\&
++.in \\n(.iu+\\n(Tiu
++.if "\\$1"SEE" .nr sE 1
++.ns
++..
+--- groff-1.18.1.1.orig/tmac/groff_trace.man
++++ groff-1.18.1.1/tmac/groff_trace.man
+@@ -31,6 +31,10 @@
+ A copy of the Free Documentation License is included as a file called
+ FDL in the main directory of the groff source package.
+ ..
++.ig
++A copy of the GNU Free Documentation License is also available in this
++Debian package as /usr/share/doc/groff/copyright.
++..
+ .
+ .\" --------------------------------------------------------------------
+ .\" Setup
+--- groff-1.18.1.1.orig/tmac/docj-ditroff
++++ groff-1.18.1.1/tmac/docj-ditroff
+@@ -0,0 +1,305 @@
++.\" Copyright (c) 1991 The Regents of the University of California.
++.\" All rights reserved.
++.\"
++.\" Redistribution and use in source and binary forms, with or without
++.\" modification, are permitted provided that the following conditions
++.\" are met:
++.\" 1. Redistributions of source code must retain the above copyright
++.\"    notice, this list of conditions and the following disclaimer.
++.\" 2. Redistributions in binary form must reproduce the above copyright
++.\"    notice, this list of conditions and the following disclaimer in the
++.\"    documentation and/or other materials provided with the distribution.
++.\" 3. All advertising materials mentioning features or use of this software
++.\"    must display the following acknowledgement:
++.\"	This product includes software developed by the University of
++.\"	California, Berkeley and its contributors.
++.\" 4. Neither the name of the University nor the names of its contributors
++.\"    may be used to endorse or promote products derived from this software
++.\"    without specific prior written permission.
++.\"
++.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++.\" SUCH DAMAGE.
++.\"
++.\"     @(#)doc-ditroff	5.8 (Berkeley) 8/5/91
++.\"
++.\" tmac.mdoc-ditroff
++.if \n(.g .if !rC .nr C 0
++.ds aD \fI\s10
++.ds aR \f(CO\s10
++.ds cM \f(CB\s10
++.ds dF \fR\s10
++.ds eM \fI\s10
++.ds eR \fC\s10
++.ds eV \fC\s10
++.ds fA \f(CO\s10
++.ds fD \f(CB\s10
++.ds fL \f(CB\s10
++.ds fN \f(CB\s10
++.ds fP \fP\s0
++.ds fS \s0
++.ds fT \f(CO\s10
++.ds Hs \fR\s10
++.ds iC \f(CB\s10
++.ds lI \fC
++.ds lP \fR\|(\|\fP\s10
++.ds lp \fR(\fP\s10
++.ds rP \fR\|)\|\fP\s10
++.ds rp \fR)\fP\s10
++.ds lB \fR\^[\^\fP\s10
++.ds rB \fR\^]\fP\s10
++.ds mL \fB\s10
++.ds nM \f(CB\s10
++.ds nO \fR\s10
++.ds nT \s0
++.ds pA \fC\s10
++.ds Pu \fR{\ .\ ,\ :\ ;\ (\ )\ [\ ]\ \fR}
++.ds rA \fR\s10
++.ds rT \f(CO\s10
++.ds sH \fB\s10
++.ds sP \s0
++.ds sY \fB\s10
++.ds sX \fR\s10
++.ds tF \fR
++.ds tN \s9
++.ds vA \fI\s10
++.ds Vs \fR\s10
++.ds vT \f(CB\s10
++.ds xR \fC\s10
++.tr *\(**
++.nr sI \w\fC,u*5
++.nr Ti \n(sIu
++.nr Pp .5v
++.ds lS \0
++.nr lS \w'\0'u
++.nr dI 6n
++.de pL
++.nr Hm .5i
++.nr Fm .5i
++.nr ll 6.5i
++.ll 6.5i
++.nr lt 6.5i
++.lt 6.5i
++.nr po 1i
++.po 1.i
++.nr dV .5v
++..
++.ds <= \(<=
++.ds >= \(>=
++.ie \n(.g \{\
++.	ds Lq \(lq
++.	ds Rq \(rq
++.\}
++.el \{\
++.	ds Lq \&``
++.	ds Rq \&''
++.\}
++.ds ua \(ua
++.ds aa \(aa
++.ds ga \(ga
++.ds sR \&'
++.ds sL \&`
++.ds q \&"
++.ds Pi \(*p
++.ds Ne \(!=
++.ds Le \(<=
++.ds Ge \(>=
++.ds Lt <
++.ds Gt >
++.ds Pm \(+-
++.ds If \(if
++.ds Na \fINaN\fP
++.ds Ba \fR\&|\fP
++.nr gX 0
++.de hK
++.ds hT \\*(dT
++.if !"\\*(cH"Null" \{\
++.       ie !"\\*(gP"Null" .as hT \|(\|\\*(cH\\*(gP\|)
++.       el .as hT \\|(\\|\\*(cH\\|)
++.\}
++.if "\\*(cH"Null" \{\
++.	if !"\\*(gP"Null" .as hT \&\|(\|\\*(gP\|)
++.\}
++.wh 0 hM
++.wh -1.25i fM
++.nr nL \\n(nl
++.ie \\n(gX==1 \{\
++.	rm n1
++.	bp
++.\}
++.el \{\
++'	bp
++.\}
++.if \\n(nL>0 \{\
++.	if !\\nC \{\
++.		nr % 1
++.	\}
++.\}
++.nr gX 0
++.em lM
++..
++.nr fW \w\fC0
++.de sW
++.nr sW \w\fC\\$1
++.ie \\n(sW>=\\n(fW \{\
++.       ie \\n(sW%\\n(fW .nr sW (\\n(sW/\\n(fW)+1
++.       el .nr sW \\n(sW/\\n(fW
++.\}
++.el \{\
++.	ie \\n(sW>0 .nr sW 1
++.	el .nr sW 0
++.\}
++..
++.de aW
++.nr sW \w\fC\\*(A\\$1
++.ie \\n(sW>=\\n(fW \{\
++.       ie \\n(sW%\\n(fW .nr sW (\\n(sW/\\n(fW)+1
++.       el .nr sW \\n(sW/\\n(fW
++.\}
++.el \{\
++.	ie \\n(sW>0 .nr sW 1
++.	el .nr sW 0
++.\}
++..
++.de Ql
++.if \\n(aC==0  \{\
++.	ds mN Ql
++.       ds A1 \\$1
++.       ds A2 \\$2
++.       ds A3 \\$3
++.       ds A4 \\$4
++.       ds A5 \\$5
++.       ds A6 \\$6
++.       ds A7 \\$7
++.       ds A8 \\$8
++. 	nr fV \\n(.$
++. 	fV
++.\}
++.nr aP \\n(aP+1
++.aW \\n(aP
++.nr aP \\n(aP-1
++.if \\n(sW>2 .Li
++.if \\n(sW<=2 \{\
++.	if (\\n(aP>0) \{\
++.		ds A\\n(aP Li
++.		nr aP \\n(aP -1
++.	\}		
++.	if (\\n(aP==0) \{\
++.		rm C0 C1 C2 C3 C4 C5 C6 C7 C8 C9
++.		rm S1 S2 S3 S4 S5 S6 S7 S8 S9
++.		rn A8 A9
++.		rn A7 A8
++.		rn A6 A7
++.		rn A5 A6
++.		rn A4 A5
++.		rn A3 A4
++.		rn A2 A3
++.		rn A1 A2
++.		ds A1 Li
++.	 	nr fV \\n(aC+1
++.		nr aC 0
++.		fV
++.	\}
++.	ds qL \&\\*(sL
++.	ds qR \&\\*(sR
++.	En
++.\}
++..
++.de Sh
++.nr nS 0
++.nr sE 0
++.nr iS 0
++'ad
++.ie "\\$1"NAME" \{\
++.       hK
++'       in 0
++.\}
++.el \{\
++.	ie "\\$1"̾Á°" \{\
++.      		hK
++'		in 0
++.	\}
++.	el \{\
++.		ie "\\$1"̾¾Î" \{\
++.       		hK
++'       		in 0
++.		\}
++.		el \{\
++.       		nr nS 0
++.       		nr nA 0
++.			nr nF 0
++.       		nr nT 0
++.       		nr nY 0
++.       		nr oT 0
++.       		if "\\$1"SYNOPSIS" \{\
++.				na
++.				nr nS 1
++.			\}
++.       		if "\\$1"½ñ¼°" \{\
++.				na
++.				nr nS 1
++.			\}
++.       		if "\\$1"DESCRIPTION" \{\
++.				nr fY 0
++.				nr fZ 0
++.				nr fB 0
++.				nr Fb 0
++.				ds Fb
++.			\}
++.       		if "\\$1"ÀâÌÀ" \{\
++.				nr fY 0
++.				nr fZ 0
++.				nr fB 0
++.				nr Fb 0
++.				ds Fb
++.			\}
++.       		if "\\$1"²òÀâ" \{\
++.				nr fY 0
++.				nr fZ 0
++.				nr fB 0
++.				nr Fb 0
++.				ds Fb
++.			\}
++.       		if "\\$1"SEE" \{\
++.               		nr nA 1
++.               		na
++.       		\}
++.       		if "\\$1"´ØÏ¢¹àÌÜ" \{\
++.               		nr nA 1
++.               		na
++.       		\}
++.       		if "\\$1"FILES" .nr nF 1
++.       		if "\\$1"¥Õ¥¡¥¤¥ë" .nr nF 1
++.       		if "\\$1"´ØÏ¢¥Õ¥¡¥¤¥ë" .nr nF 1
++.       		if "\\$1"STANDARDS" .nr nT 1
++.       		if "\\$1"½àµò" .nr nT 1
++.       		if "\\$1"µ¬³Ê" .nr nT 1
++.       		if "\\$1"AUTHORS" .nr nY 1
++.       		if "\\$1"Ãø¼Ô" .nr nY 1
++.       		if "\\$1"ºî¼Ô" .nr nY 1
++.			if "\\$1"SEE" .nr sE 1
++.			if "\\$1"´ØÏ¢¹àÌÜ" .nr sE 1
++.       		in 0
++.       		nr aN 0
++.		\}
++.	\}
++.\}
++.pL
++'sp
++.ns
++.ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i
++.if !\\n(cR .ne 3
++'fi
++\&\\*(sH\\$1 \|\\$2 \|\\$3 \|\\$4 \|\\$5 \|\\$6 \|\\$7 \|\\$8 \|\\$9
++\&\fP\s0\&
++.in \\n(.iu+\\n(Tiu
++.ns
++..
+--- groff-1.18.1.1.orig/tmac/tty.tmac
++++ groff-1.18.1.1/tmac/tty.tmac
+@@ -68,7 +68,7 @@
+ .ie '\*(.T'cp1047' \
+ .  do mso cp1047.tmac
+ .el \
+-.  if '\*(.T'latin1' \
++.  if !'\*(.T'ascii' \
+ .    do mso latin1.tmac
+ .
+ .\" If you want the character definitions in tty-char.tmac to be loaded
+--- groff-1.18.1.1.orig/tmac/gb.tmac
++++ groff-1.18.1.1/tmac/gb.tmac
+@@ -0,0 +1,15 @@
++.\" Kinsoku table for the GB2312 encoding of Chinese, recoded from
++.\" kinsoku.el in Emacs 22.0.50.
++.\" Checked by Simon Law, who reckons this is "mostly right". That will
++.\" probably do for now ...
++.\"
++.cflags 256 ¡¢¡££®£¬¡¤¡¥¡¦¡§¡¨¡©¡ª¡«¡¬¡­¡¯¡±£©¡³¡µ¡·¡¹¡»¡½
++.cflags 256 ¡¿£»£º£¿£¡¡À¡Á¡Â¡Ã¡ã¡ä¡å¡æ£¯£Ü£¢£ß£þ£ü¨å
++.cflags 512 ¨Å¨Æ¨Ç¨È¨É¨Ê¨Ë¨Ì¨Í¨Î¨Ï¨Ð¨Ñ¨Ò¨Ó¨Ô¨Õ¨Ö¨×¨Ø¨Ù¨è
++.\" Simon Law supplied these.
++.cflags 512 £¨¡®¡°¡²¡´¡¶¡¸¡º¡¼¡¾
++.\"
++.\" http://tcl.apache.org/sources/tcl/tools/encoding/gb2312.txt lists U+FF0D
++.\" as FULLWIDTH HYPHEN-MINUS. Is this correct?
++.\"
++.hc £­
+--- groff-1.18.1.1.orig/tmac/docj.tmac
++++ groff-1.18.1.1/tmac/docj.tmac
+@@ -0,0 +1,3427 @@
++.\" Copyright (c) 1991 The Regents of the University of California.
++.\" All rights reserved.
++.\"
++.\" Redistribution and use in source and binary forms, with or without
++.\" modification, are permitted provided that the following conditions
++.\" are met:
++.\" 1. Redistributions of source code must retain the above copyright
++.\"    notice, this list of conditions and the following disclaimer.
++.\" 2. Redistributions in binary form must reproduce the above copyright
++.\"    notice, this list of conditions and the following disclaimer in the
++.\"    documentation and/or other materials provided with the distribution.
++.\" 3. All advertising materials mentioning features or use of this software
++.\"    must display the following acknowledgement:
++.\"	This product includes software developed by the University of
++.\"	California, Berkeley and its contributors.
++.\" 4. Neither the name of the University nor the names of its contributors
++.\"    may be used to endorse or promote products derived from this software
++.\"    without specific prior written permission.
++.\"
++.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++.\" SUCH DAMAGE.
++.\"
++.\"     @(#)doc	5.8 (Berkeley) 8/5/91
++.\" Modified by jjc at jclark.com as follows: the doc-* files are assumed to be
++.\" installed as mdoc/doc-* rather than tmac.doc-* (the filename
++.\" `tmac.doc-common' would be too long); when using groff, the doc-* files
++.\" are loaded using the `mso' request.
++.\"   
++.\" .mdoc-parse - attempt to parse troff request arguments
++.\"     %beginstrip%
++.if \n(.g \{\
++.cp 0
++.ftr C CR
++.\}
++.if \n(.g .ig
++.de sO
++.so /usr/share/tmac/\\$1
++..
++.if !\n(.g .ig
++.de sO
++.mso mdoc/\\$1
++..
++.if t \{\
++.       sO docj-ditroff
++.\}
++.if n \{\
++.       sO docj-nroff
++.\}
++.sO doc-common
++.sO doc-syms
++.\" NS Db macro - start/stop DEBUG MODE
++.\" NS Db register DEBUG MODE
++.\" NS iN register DEBUG MODE (inline if 1, to stderr if 0 (default))
++.nr Db 0
++.de Db
++.ie \\n(.$==0 \{\
++.	ie \\n(Db==0 \{\
++.tm DEBUGGING ON
++.		nr Db 1
++.	\}
++.	el \{\
++.tm DEBUGGING OFF
++.		nr Db 0
++.	\}
++.\}
++.el \{\
++.	if "\\$1"on" \{\
++.tm DEBUGGING ON
++.		nr Db 1
++.	\}
++.	if "\\$1"off" \{\
++.tm DEBUGGING OFF
++.		nr Db 0
++.	\}
++.\}
++..
++.\" NS aV macro - parse argument vector (recursive) (.aV arg ... )
++.\" NS fV macro - parse argument vector (recursive) (.fV)
++.\" NS aC register argument counter (aV/fV)
++.\" NS fV register argument counter (must set to \\n(.$ prior to reuqest) (fV)
++.\" NS A[0-9] argument vector (aV/fV)
++.\" NS C[0-9] reg. arg type(1=macro, 2=arg, 3=punct-suf, 4=punct-pre) (aV/fV)
++.\" NS S[0-9] space vector (sV)
++.\" NS aP register argument pointer (aV)
++.\" NS yU local string used for debugging
++.\" NS iI local register (indent for inline debug mode)
++.\" NS mN name of calling request (set in each user requestable macro)
++.de aV
++.nr aC \\n(aC+1
++.ie "\\$1"|" \{\
++.	if "\\*(mN"Op" .ds A\\n(aC \fR\\$1\fP
++.	if "\\*(mN"Ar" .ds A\\n(aC \fR\\$1\fP
++.	if "\\*(mN"Fl" .ds A\\n(aC \fR\\$1\fP
++.	if "\\*(mN"Cm" .ds A\\n(aC \fR\\$1\fP
++.	if "\\*(mN"It" .ds A\\n(aC \fR\\$1\fP
++.\}
++.el .ds A\\n(aC \\$1
++.aU \\n(aC
++.nr C\\n(aC \\n(aT
++.s\\n(aT
++.if \\n(Db \{\
++.	if \\n(aT==1 .ds yU Executable
++.	if \\n(aT==2 .ds yU String
++.	if \\n(aT==3 .ds yU Closing Punctuation or suffix
++.	if \\n(aT==4 .ds yU Opening Punctuation or prefix
++.	if \\n(iN==1 \{\
++.		br
++.		nr iI \\n(.iu
++.		in -\\n(iIu
++.		if \\n(aC==1 \{\
++\&\fBDEBUG(argv) MACRO:\fP `.\\*(mN' \fBLine #:\fP \\n(.c
++.		\}
++\&\t\fBArgc:\fP \\n(aC  \fBArgv:\fP `\\*(A\\n(aC'  \fBLength:\fP \\n(sW
++\&\t\fBSpace:\fP `\\*(S\\n(aC'  \fBClass:\fP \\*(yU
++.	\}
++.	if \\n(iN==0 \{\
++.		if \\n(aC==1 \{\
++.			tm DEBUG(argv) MACRO: `.\\*(mN'  Line #: \\n(.c
++.		\}
++.		tm \tArgc: \\n(aC  Argv: `\\*(A\\n(aC'  Length: \\n(sW
++.		tm \tSpace: `\\*(S\\n(aC'  Class: \\*(yU
++.	\}
++.\}
++.ie \\n(.$==1 \{\
++.	nr aP 0
++.	ie \\n(dZ==1 \{\
++.		if \\n(oM>1 .as b1 \\*(S0
++.	\}
++.	el \{\
++.		if \\n(oM>0 \{\
++.			if \\n(fC==0 .as b1 \\*(S0
++.		\}
++.	\}
++.	ds S0 \\*(S\\n(aC
++.	if \\n(Db \{\
++.		if \\n(iN==1 \{\
++\&MACRO REQUEST: \t.\\*(mN \\*(A1 \\*(A2 \\*(A3 \\*(A4 \\*(A5 \\*(A6 \\*(A7 \\*(A8 \\*(A9
++.			br
++.			in \\n(iIu
++.		\}
++.		if \\n(iN==0 \{\
++.tm \tMACRO REQUEST: .\\*(mN \\*(A1 \\*(A2 \\*(A3 \\*(A4 \\*(A5 \\*(A6 \\*(A7 \\*(A8 \\*(A9
++.		\}
++.	\}
++.\}
++.el .aV \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.de fV
++.nr aC \\n(aC+1
++.if "\\*(A\\n(aC"|" \{\
++.	if "\\*(mN"Op" .ds A\\n(aC \fR\\*(A\\n(aC\fP
++.	if "\\*(mN"Ar" .ds A\\n(aC \fR\\*(A\\n(aC\fP
++.	if "\\*(mN"Fl" .ds A\\n(aC \fR\&\\*(A\\n(aC\fP
++.	if "\\*(mN"Cm" .ds A\\n(aC \fR\\*(A\\n(aC\fP
++.	if "\\*(mN"It" .ds A\\n(aC \fR\\*(A\\n(aC\fP
++.\}
++.aU \\n(aC
++.nr C\\n(aC \\n(aT
++.s\\n(aT
++.if \\n(Db \{\
++.	if \\n(aT==1 .ds yU Executable
++.	if \\n(aT==2 .ds yU String
++.	if \\n(aT==3 .ds yU Closing Punctuation or suffix
++.	if \\n(aT==4 .ds yU Opening Punctuation or prefix
++.	if \\n(iN==1 \{\
++.		br
++.		nr iI \\n(.iu
++.		in -\\n(iIu
++.		if \\n(aC==1 \{\
++\&\fBDEBUG(fargv) MACRO:\fP `.\\*(mN'  \fBLine #:\fP \\n(.c
++.		\}
++\&\t\fBArgc:\fP \\n(aC  \fBArgv:\fP `\\*(A\\n(aC'  \fBLength:\fP \\n(sW
++\&\t\fBSpace:\fP `\\*(S\\n(aC'  \fBClass:\fP \\*(yU
++.	\}
++.	if \\n(iN==0 \{\
++.		if \\n(aC==1 \{\
++.			tm DEBUG(fargv) MACRO: `.\\*(mN'  Line #: \\n(.c
++.		\}
++.		tm \tArgc: \\n(aC  Argv: `\\*(A\\n(aC'  Length: \\n(sW
++.		tm \tSpace: `\\*(S\\n(aC'  Class: \\*(yU
++.	\}
++.\}
++.ie \\n(fV==1 \{\
++.	nr aP 0
++.	ie \\n(dZ==1 \{\
++.		if \\n(oM>1 .as b1 \\*(S0
++.	\}
++.	el \{\
++.		if \\n(oM>0 \{\
++.			if \\n(fC==0 .as b1 \\*(S0
++.		\}
++.	\}
++.	ds S0 \\*(S\\n(aC
++.	nr fV 0
++.	if \\n(Db \{\
++.		ie \\n(iN \{\
++\&\tMACRO REQUEST: .\\*(mN \\*(A1 \\*(A2 \\*(A3 \\*(A4 \\*(A5 \\*(A6 \\*(A7 \\*(A8 \\*(A9
++.			br
++.			in \\n(iIu
++.		\}
++.		el \{\
++.tm \tMACRO REQUEST: .\\*(mN \\*(A1 \\*(A2 \\*(A3 \\*(A4 \\*(A5 \\*(A6 \\*(A7 \\*(A8 \\*(A9
++.		\}
++.	\}
++.\}
++.el \{\
++.	nr fV \\n(fV-1
++.	fV
++.\}
++..
++.\" NS aX macro - stuff saved strings into `b1' (used by -diag list)
++.de aX
++.nr aP \\n(aP+1
++.as b1 \&\\*(A\\n(aP
++.ie \\n(fV==1 \{\
++.	nr aP 0
++.	nr fV 0
++.\}
++.el \{\
++.	as b1 \&\\*(sV
++.	nr fV \\n(fV-1
++.	aX
++.\}
++..
++.\" NS aI macro - append arg to arg vector: .aI [arg] [type] (used by .En only)
++.de aI
++.ie \\n(aC<9 \{\
++.	nr aC \\n(aC+1
++.	ds A\\n(aC \\$1
++.	nr C\\n(aC \\$2
++.	s\\$2
++.	ds xV S\\n(aC
++.\}
++.el \{\
++.	tm Usage: Too many arguments (maximum of 8 accepted) (#\\n(.c)
++.	tm \\*(A1 \\*(A2 \\*(A3 \\*(A4 \\*(A5 \\*(A6 \\*(A7 \\*(A8 \\*(A9
++.\}
++..
++.\"
++.\" NS aZ macro - print buffer (pB) and clean up arg vectors (aY)
++.de aZ
++.pB
++.aY
++..
++.\" NS aY macro - clean up arg vector
++.de aY
++.rm C0 C1 C2 C3 C4 C5 C6 C7 C8 C9
++.rm A0 A1 A2 A3 A4 A5 A6 A7 A8 A9
++.rm S1 S2 S3 S4 S5 S6 S7 S8 S9
++.nr aC 0
++.nr aP 0
++..
++.\" NS pB macro - test for end of vector (eol) (print b1 buffer or divert)
++.de pB
++.ie \\n(dZ==1 \{\
++.	if \\n(oM==1 \{\&\\*(b1
++.		rm S0
++.		ds b1
++.	\}
++.	if \\n(oM==0 \{\
++.		x2
++.	\}
++.\}
++.el \{\
++.	ie \\n(oM==0 \{\&\\*(b1
++.		rm S0
++.		ds b1
++.	\}
++.	el \{\
++.		if ((\\n(sM==1)&(\\n(tP==0)) \{\
++.			x1
++.		\}
++.	\}
++.\}
++.hy
++..
++.\" NS x1 macro - save buffer and divert if tP flag set
++.\" NS eB diversion string
++.\" NS b2 string save of buffer
++.\" NS lK register count of lines read from input file
++.de x1
++.nr dZ \\n(dZ+1
++.ds b2 \\*(b1
++.ds b1
++.nr lK \\n(.c
++.ev 2
++.fi
++.di eB
++..
++.\"
++.\" NS x2 macro - end diversion and print
++.\" NS b0 string local temporary
++.de x2
++.br
++.di
++.ev
++.ie (\\n(.c-\\n(lK>1) \{\
++.	ds b0 \&\\*(eB\\
++.	ds b1 \\*(b2\\*(b0\\*(b1
++.\}
++.el .ds b1 \\*(b2\\*(b1
++\&\\*(b1
++.rm eB b2 b0 b1
++.nr dZ \\n(dZ-1
++..
++.\" NS Fl macro - flags (appends - and prints flags)
++.\" NS cF register save current font
++.\" NS cZ register save current font size
++.de Fl
++.as b1 \&\\*(fL
++.if \\n(aC==0 \{\
++.	ie \\n(.$==0 \{\
++.		as b1 \&\|\-\|\fP\s0
++.		pB
++.	\}
++.	el \{\
++.		ds mN Fl
++.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++.	\}
++.\}
++.if \\n(aC>0 \{\
++.	ie (\\n(aC-\\n(aP)==0 \{\
++.		as b1 \&\|\-\fP\s0
++.		aZ
++.	\}
++.	el \{\
++.		nr aP \\n(aP+1
++.		ie \\n(C\\n(aP==1 \{\
++.			as b1 \&\|\-\fP\s0
++.			\\*(A\\n(aP
++.		\}
++.		el \{\
++.			nr cF \\n(.f
++.			nr cZ \\n(.s
++.			if \\n(C\\n(aP==3 \{\
++.				as b1 \&\|\-\|
++.			\}
++.			fR
++.		\}
++.	\}
++.\}
++..
++.\"
++.\" NS fR macro - Fl flag recursion routine (special handling)
++.\" NS jM local register
++.\" NS jN local register
++.\"
++.de fR
++.hy 0
++.nr jM \\n(C\\n(aP
++.ie \\n(jM==1 \{\
++.	as b1 \&\fP\s0
++.	\\*(A\\n(aP
++.\}
++.el \{\
++.	nr jN \\n(aP
++.	ie \\n(jM==2 \{\
++.		ie !"\\*(A\\n(aP"\\*(Ba" \{\
++.			ie !"\\*(A\\n(aP"\fR|\fP" \{\
++.		               ie "\\*(A\\n(aP"-" .as b1 \&\|\-\^\-\|
++.		               el .as b1 \&\|\-\\*(A\\n(aP
++.			\}
++.			el .as b1 \&\\*(A\\n(aP
++.		\}
++.		el .as b1 \&\\*(A\\n(aP
++.	\}
++.	el .as b1 \&\f\\n(cF\s\\n(cZ\\*(A\\n(aP\fP\s0
++.	ie \\n(aC==\\n(aP \{\
++.		if \\n(jM==4 .as b1 \&\|\-
++.		as b1 \&\fP\s0
++.		aZ
++.	\}
++.	el \{\
++.		nr aP \\n(aP+1
++.		ie ((\\n(C\\n(aP==3)&(\\n(C\\n(jN==4)) .as b1 \&\|\-
++.		el .as b1 \&\\*(S\\n(jN
++.		fR \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++.	\}
++.\}
++.rr jM jN
++..
++.\"
++.\" NS nR macro - general name recursion routine
++.\" NS jM local register
++.\" NS jN local register
++.de nR
++.hy 0
++.nr jM \\n(C\\n(aP
++.ie \\n(jM==1 \{\
++.	as b1 \&\f\\n(cF\s\\n(cZ
++.	\\*(A\\n(aP
++.\}
++.el \{\
++.	nr jN \\n(aP
++.	ie \\n(jM==2 .as b1 \&\\*(A\\n(aP
++.	el .as b1 \&\f\\n(cF\s\\n(cZ\\*(A\\n(aP\fP\s0
++.	ie \\n(aC==\\n(aP \{\
++.		as b1 \&\f\\n(cF\s\\n(cZ
++.		aZ
++.	\}
++.	el \{\
++.		nr aP \\n(aP+1
++.		as b1 \&\\*(S\\n(jN
++.		nR
++.	\}
++.\}
++.rr jM jN
++..
++.\" NS Ar macro - command line `argument' macro
++.\"
++.de Ar
++.as b1 \\*(aR
++.if \\n(aC==0 \{\
++.       ie \\n(.$==0 \{\
++.		as b1 file\ ...\fP\s0
++.		pB
++.	\}
++.	el \{\
++.		ds mN Ar
++.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++.	\}
++.\}
++.if \\n(aC>0 \{\
++.	ie (\\n(aC-\\n(aP)==0 \{\
++.		as b1 \&file\ ...\fP\s0
++.		aZ
++.	\}
++.	el \{\
++.		nr aP \\n(aP+1
++.		ie \\n(C\\n(aP==1 \{\
++.			as b1 \&file\ ...\fP\s0
++.			\\*(A\\n(aP
++.               \}
++.               el \{\
++.                       nr cF \\n(.f
++.			nr cZ \\n(.s
++.			if \\n(C\\n(aP==3 \{\
++.				as b1 \&file\ ...
++.			\}
++.                       nR
++.		\}
++.       \}
++.\}
++..
++.\" NS Ad macro - Addresses
++.de Ad
++.if \\n(aC==0 \{\
++.       ie \\n(.$==0 .tm Usage: .Ad address ... \\*(Pu (#\\n(.c)
++.	el \{\
++.		ds mN Ad
++.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++.	\}
++.\}
++.if \\n(aC>\\n(aP \{\
++.	as b1 \\*(aD
++.	nr aP \\n(aP+1
++.       nr cF \\n(.f
++.	nr cZ \\n(.s
++.       nR
++.\}
++..
++.\" NS Cd macro - Config declaration (for section 4 SYNOPSIS) (not callable)
++.\" needs work - not very translatable
++.de Cd
++.if \\n(aC==0 \{\
++.       ie \\n(.$==0 .tm Usage: .Cd Configuration file declaration (#\\n(.c)
++. 	el \{\
++.		ds mN Cd
++.               ds A1 \\$1
++.               ds A2 \\$2
++.               ds A3 \\$3
++.               ds A4 \\$4
++.               ds A5 \\$5
++.               ds A6 \\$6
++.               ds A7 \\$7
++.               ds A8 \\$8
++.               ds A9 \\$9
++. 		nr fV \\n(.$
++. 		fV
++.	\}
++.\}
++.br
++.if \\n(aC>\\n(aP \{\
++.	as b1 \\*(nM
++.	nr aP \\n(aP+1
++.       nr cF \\n(.f
++.	nr cZ \\n(.s
++.	ie \\n(nS \{\
++.		if "\\*(mN"Cd" \{\
++.			rs
++.			ie \\n(nS>1 .br
++.			el \{\
++.				if \\n(iS==0 .nr iS \\n(Dsu
++.			\}
++.			in +\\n(iSu
++.			ti -\\n(iSu
++.			nr nS \\n(nS+1
++.		\}
++.	nR
++.	in -\\n(iSu
++.	\}
++.	el .nR
++.\}
++..
++.\" NS Cm macro - Interactive command modifier (flag)
++.de Cm
++.if \\n(aC==0 \{\
++.       ie \\n(.$==0 .tm Usage: .Cm Interactive command modifier ... \\*(Pu (#\\n(.c)
++.	el \{\
++.		ds mN Cm
++.               ds A1 \\$1
++.               ds A2 \\$2
++.               ds A3 \\$3
++.               ds A4 \\$4
++.               ds A5 \\$5
++.               ds A6 \\$6
++.               ds A7 \\$7
++.               ds A8 \\$8
++.               ds A9 \\$9
++.		nr fV \\n(.$
++.		fV
++.	\}
++.\}
++.if \\n(aC>\\n(aP \{\
++.	as b1 \\*(cM
++.	nr aP \\n(aP+1
++.       nr cF \\n(.f
++.	nr cZ \\n(.s
++.       nR
++.\}
++..
++.\" NS Dv macro - define variable
++.de Dv
++.if \\n(aC==0 \{\
++.       ie \\n(.$==0 .tm Usage: .Dv define_variable ... \\*(Pu (#\\n(.c)
++.	el \{\
++.		ds mN Dv
++.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++.	\}
++.\}
++.if \\n(aC>\\n(aP \{\
++.	as b1 \\*(eR
++.	nr aP \\n(aP+1
++.       nr cF \\n(.f
++.	nr cZ \\n(.s
++.       nR
++.\}
++..
++.\" NS Em macro - Emphasis
++.de Em
++.if \\n(aC==0 \{\
++.       ie \\n(.$==0 \{\
++.		tm Usage: .Em text ... \\*(Pu (#\\n(.c)
++.	\}
++.	el \{\
++.		ds mN Em
++.               ds A1 \\$1
++.               ds A2 \\$2
++.               ds A3 \\$3
++.               ds A4 \\$4
++.               ds A5 \\$5
++.               ds A6 \\$6
++.               ds A7 \\$7
++.               ds A8 \\$8
++.               ds A9 \\$9
++.		nr fV \\n(.$
++.		fV
++.	\}
++.\}
++.if \\n(aC>\\n(aP \{\
++.	as b1 \\*(eM
++.	nr aP \\n(aP+1
++.       nr cF \\n(.f
++.	nr cZ \\n(.s
++.       nR
++.\}
++..
++.\" NS Er macro - Errnotype
++.de Er
++.if \\n(aC==0 \{\
++.       ie \\n(.$==0 .tm Usage: .Er ERRNOTYPE ... \\*(Pu (#\\n(.c)
++.	el \{\
++.		ds mN Er
++.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++.	\}
++.\}
++.if \\n(aC>\\n(aP \{\
++.	as b1 \\*(eR
++.	nr aP \\n(aP+1
++.       nr cF \\n(.f
++.	nr cZ \\n(.s
++.       nR
++.\}
++..
++.\" NS Ev macro - Environment variable
++.de Ev
++.if \\n(aC==0 \{\
++.       ie \\n(.$==0 .tm Usage: .Ev ENVIRONMENT_VARIABLE ... \\*(Pu (#\\n(.c)
++.	el \{\
++.		ds mN Ev
++.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++.	\}
++.\}
++.if \\n(aC>\\n(aP \{\
++.	as b1 \\*(eV
++.	nr aP \\n(aP+1
++.       nr cF \\n(.f
++.	nr cZ \\n(.s
++.       nR
++.\}
++..
++.\" NS Fd macro - function declaration - not callable (& no err check)
++.\" NS fD register subroutine test (in synopsis only)
++.\" NS fY register subroutine count (in synopsis only) (fortran only)
++.\" NS fZ register also subroutine count (in synopsis only)
++.de Fd
++.ds mN Fd
++.if \\n(nS>0 \{\
++.\"	if a variable type was the last thing given, want vertical space
++.	if \\n(fX>0 \{\
++.		Pp
++.		nr fX 0
++.	\}
++.\"	if a subroutine was the last thing given, want vertical space
++.	if \\n(fZ>0 \{\
++.		ie \\n(fD==0 \{\
++.			Pp
++.			rs
++.		\}
++.		el .br
++.	\}
++.	nr fD \\n(fD+1
++.\}
++.nr cF \\n(.f
++.nr cZ \\n(.s
++\&\\*(fD\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++.br
++.ft \\n(cF
++.fs \\n(cZ
++..
++.\" NS Fr macro - function return value - not callable (at the moment)
++.de Fr
++.if \\n(aC==0 \{\
++.       ie \\n(.$==0 .tm Usage: .Fr Function_return_value... \\*(Pu (#\\n(.c)
++.	el \{\
++.		ds mN Fr
++.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++.	\}
++.\}
++.if \\n(aC>\\n(aP \{\
++.	as b1 \\*(aR
++.	nr aP \\n(aP+1
++.       nr cF \\n(.f
++.	nr cZ \\n(.s
++.       nR
++.\}
++..
++.\" NS Ic macro - Interactive command
++.de Ic
++.if \\n(aC==0 \{\
++.       ie \\n(.$==0 .tm Usage: .Ic Interactive command ... \\*(Pu (#\\n(.c)
++.	el \{\
++.		ds mN Ic
++.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++.	\}
++.\}
++.if \\n(aC>\\n(aP \{\
++.	as b1 \\*(iC
++.	nr aP \\n(aP+1
++.       nr cF \\n(.f
++.	nr cZ \\n(.s
++.       nR
++.\}
++..
++.\" NS Li macro - literals
++.de Li
++.if \\n(aC==0 \{\
++.       ie \\n(.$==0 .tm Usage .Li argument ... \\*(Pu (#\\n(.c)
++.       el \{\
++.		ds mN Li
++.               ds A1 \\$1
++.               ds A2 \\$2
++.               ds A3 \\$3
++.               ds A4 \\$4
++.               ds A5 \\$5
++.               ds A6 \\$6
++.               ds A7 \\$7
++.               ds A8 \\$8
++.               ds A9 \\$9
++.               nr fV \\n(.$
++.               fV
++.       \}
++.\}
++.if \\n(aC>\\n(aP \{\
++.	as b1 \\*(lI
++.	nr aP \\n(aP+1
++.       nr cF \\n(.f
++.	nr cZ \\n(.s
++.       nR
++.\}
++..
++.\" NS Or macro - Pipe symbol (OR)
++.de Or
++.if \\n(aC==0 \{\
++.       ie \\n(.$==0 .tm Usage: .Or ... \\*(Pu (#\\n(.c)
++.	el \{\
++.		ds mN Or
++.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++.	\}
++.\}
++.if \\n(aC>\\n(aP \{\
++.	as b1 \\*(iC
++.	nr aP \\n(aP+1
++.       nr cF \\n(.f
++.	nr cZ \\n(.s
++.       nR
++.\}
++..
++.\" NS Ms macro - Math symbol
++.de Ms
++.if \\n(aC==0 \{\
++.       ie \\n(.$==0 .tm Usage: .Ms Math symbol ... \\*(Pu (#\\n(.c)
++.	el \{\
++.		ds mN Ms
++.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++.	\}
++.\}
++.if \\n(aC>\\n(aP \{\
++.	as b1 \\*(sY
++.	nr aP \\n(aP+1
++.       nr cF \\n(.f
++.	nr cZ \\n(.s
++.       nR
++.\}
++..
++.\" NS Nm macro - Name of command or page topic
++.\" NS n1 string - save first invocation of .Nm
++.\" NS iS register - indent second command line in a synopsis
++.de Nm
++.if \\n(aC==0 \{\
++.	ie \\n(.$==0 \{\
++.		ie "\\*(n1"" .tm Usage: .Nm Name(s) ... \\*(Pu (#\\n(.c)
++.		el \&\\*(nM\\*(n1\fP\s0
++.	\}
++.	el \{\
++.		ds mN Nm
++.               ds A1 \\$1
++.               ds A2 \\$2
++.               ds A3 \\$3
++.               ds A4 \\$4
++.               ds A5 \\$5
++.               ds A6 \\$6
++.               ds A7 \\$7
++.               ds A8 \\$8
++.               ds A9 \\$9
++.               nr fV \\n(.$
++.               fV
++.       \}
++.\}
++.if \\n(aC>0 \{\
++.	ie \\n(aC==\\n(aP \{\
++.		as b1 \&\\*(nM\\*(n1\fP\s0
++.		aZ
++.	\}
++.	el \{\
++.		as b1 \\*(nM
++.		nr aP \\n(aP+1
++.		ie \\n(C\\n(aP==1 \{\
++.			as b1 \&\\*(n1\fP\s0
++.			\\*(A\\n(aP
++.		\}
++.		el \{\
++.			nr cF \\n(.f
++.			nr cZ \\n(.s
++.			if \\n(nS \{\
++.				if "\\*(mN"Nm" \{\
++.					rs
++.					in -\\n(iSu
++.					ie \\n(nS>1 .br
++.					el \{\
++.						if \\n(iS==0 \{\
++.							sw \\$1
++.					nr iS ((\\n(sWu+1)*\\n(fW)u
++.						\}
++.					\}
++.					in +\\n(iSu
++.					ti -\\n(iSu
++.					nr nS \\n(nS+1
++.				\}
++.			\}
++.			if "\\*(n1"" .ds n1 \\*(A\\n(aP
++.			nR
++.		\}
++.	\}
++.\}
++..
++.\" NS Pa macro - Pathname
++.de Pa
++.if \\n(aC==0 \{\
++.       ie \\n(.$==0 \&\\*(pA~\fP\s0
++.	el \{\
++.		ds mN Pa
++.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++.	\}
++.\}
++.if \\n(aC>\\n(aP \{\
++.	as b1 \\*(pA
++.	nr aP \\n(aP+1
++.       nr cF \\n(.f
++.	nr cZ \\n(.s
++.       nR
++.\}
++..
++.\" NS Sy macro - Symbolics
++.de Sy
++.if \\n(aC==0 \{\
++.       ie \\n(.$==0 .tm Usage: .Sy symbolic_text ... \\*(Pu (#\\n(.c)
++. 	el \{\
++.		ds mN Sy
++.               ds A1 \\$1
++.               ds A2 \\$2
++.               ds A3 \\$3
++.               ds A4 \\$4
++.               ds A5 \\$5
++.               ds A6 \\$6
++.               ds A7 \\$7
++.               ds A8 \\$8
++.               ds A9 \\$9
++. 		nr fV \\n(.$
++. 		fV
++.	\}
++.\}
++.if \\n(aC>\\n(aP \{\
++.	as b1 \\*(sY
++.	nr aP \\n(aP+1
++.       nr cF \\n(.f
++.	nr cZ \\n(.s
++.       nR
++.\}
++..
++.\" NS Tn macro - Trade Name Macro
++.de Tn
++.if \\n(aC==0 \{\
++.       ie \\n(.$==0 .tm Usage: .Tn Trade_name(s) ... \\*(Pu (#\\n(.c)
++.	el \{\
++.		ds mN Tn
++.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++.	\}
++.\}
++.if \\n(aC>\\n(aP \{\
++.	as b1 \\*(tN\\*(tF
++.	nr aP \\n(aP+1
++.       nr cF \\n(.f
++.	nr cZ \\n(.s
++.       nR
++.\}
++..
++.\" NS nN macro - Trade Name Macro for inside of reference
++.de nN
++.if \\n(aC==0 \{\
++.       ie \\n(.$==0 .tm Usage: .Tn Trade_name(s) ... \\*(Pu (#\\n(.c)
++.	el \{\
++.		ds mN Tn
++.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++.	\}
++.\}
++.if \\n(aC>\\n(aP \{\
++.	as b1 \\*(tN
++.	nr aP \\n(aP+1
++.       nr cF \\n(.f
++.	nr cZ \\n(.s
++.       rR
++.\}
++..
++.\" NS Va macro - variable name macro
++.de Va
++.if \\n(aC==0 \{\
++.       ie \\n(.$==0 .tm Usage: .Va variable_name(s) ... \\*(Pu (#\\n(.c)
++.	el \{\
++.		ds mN Va
++.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++.	\}
++.\}
++.if \\n(aC>\\n(aP \{\
++.	as b1 \\*(vA
++.	nr aP \\n(aP+1
++.       nr cF \\n(.f
++.	nr cZ \\n(.s
++.       nR
++.\}
++..
++.\"
++.\" NS No macro - Normal text macro (default text style if mess up)
++.de No
++.as b1 \\*(nO
++.if \\n(aC==0 \{\
++.	ie \\n(.$==0 .tm Usage: .No must be called with arguments (#\\n(.c)
++.	el \{\
++.		ds mN No
++.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++.	\}
++.\}
++.if \\n(aC>\\n(aP \{\
++.	nr aP \\n(aP+1
++.       ie \\n(C\\n(aP==1 \{\
++.		\\*(A\\n(aP
++.       \}
++.       el \{\
++.		nr cF \\n(.f
++.		nr cZ \\n(.s
++.		nR
++.       \}
++.\}
++..
++.\"------------------------------------------------------------------------
++.\" NS Op macro - Option Expression
++.de Op
++.if \\n(aC==0 \{\
++.	ds mN Op
++.\}
++.\" .ds qL \&\\*(lO
++.\" .ds qR \&\\*(rO
++.ds qL \&\\*(lB
++.ds qR \&\\*(rB
++.En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8
++..
++.\" NS Aq macro - Enclose string in angle brackets
++.de Aq
++.if \\n(aC==0 .ds mN Aq
++.ds qL \&<
++.ds qR \&>
++.En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Bq macro - Enclose string in square brackets
++.de Bq
++.if \\n(aC==0 .ds mN Bq
++.ds qL \&\\*(lB
++.ds qR \&\\*(rB
++.En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Dq macro - Enclose string in double quotes
++.de Dq
++.if \\n(aC==0 .ds mN Dq
++.ds qL \&\\*(Lq
++.ds qR \&\\*(Rq
++.En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Eq macro - Enclose string in double quotes
++.de Eq
++.if \\n(aC==0 .ds mN Eq
++.ds qL \\$1
++.ds qR \\$2
++.En \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Pq macro - Enclose string in parenthesis
++.de Pq
++.if \\n(aC==0 .ds mN Pq
++.ds qL \&\\*(lP
++.ds qR \&\\*(rP
++.En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Ql macro - Quoted literal is in file mdocj-[dit|n|g]roff (too large
++.\" an if-else to carry along recursively for `if n ...')
++.\"
++.\" NS Sq macro - Enclose string in single quotes
++.de Qq
++.if \\n(aC==0 .ds mN Qq
++.ds qL \&\\*q
++.ds qR \&\\*q
++.En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Sq macro - Enclose string in single quotes
++.de Sq
++.if \\n(aC==0 .ds mN Sq
++.ds qL \&\\*(sL
++.ds qR \&\\*(sR
++.En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\"
++.\" NS Es macro - Set up strings for .En call
++.de Es
++.if \\n(aC==0 \{\
++.	ie \\n(.$>2 .aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++.	el \{\
++.		ds qL \\$1
++.		ds qR \\$2
++.	\}
++.\}
++.if \\n(aC>\\n(aP \{\
++.	nr aP \\n(aP+1
++.	ds qL \\*(A\\n(aP
++.	nr aP \\n(aP+1
++.	ds qR \\*(A\\n(aP
++.	ie \\n(aC>\\n(aP .c\\n(C\\n(aP
++.	el .aZ
++.\}
++..
++.\" .tm En beg arg(A[\\n(aP])==\\*(A\\n(aP;
++.\" .tm En oM==\\n(oM; dZ==\\n(dZ; Xt==\\n(Xt; aC==\\n(aC
++.\" NS En macro - Enclose string with given args (eg [ and ] etc)
++.\" NS qL string variable set by calling macro
++.\" NS qR string variable set by calling macro
++.\" NS aJ register (for vR)
++.de En
++.ie \\n(aC==0 \{\
++.	ie \\n(.$==0 \{\
++.		as b1 \&\\*(qL\\*(qR
++.		pB
++.	\}
++.	el \{\
++.\".		as mN (En)
++.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++.		as b1 \&\\*(qL
++.	\}
++.\}
++.el \{\
++.	as b1 \&\\*(qL
++.\}
++.if \\n(aC>0 \{\
++.	ie (\\n(aC-\\n(aP)==0 \{\
++.		as b1 \&\\*(qR
++.		aZ
++.	\}
++.	el \{\
++.		ie \\n(C\\n(aC==3 \{\
++.			nr aJ \\n(aC-1
++.			vR
++.			nr aJ \\n(aJ+1
++.			ds A\\n(aJ \&\\*(qR\\*(A\\n(aJ
++.			nr aJ 0
++.		\}
++.		el .aI \&\\*(qR 3
++.		nr aP \\n(aP+1
++.		if \\n(C\\n(aP==1 .\\*(A\\n(aP
++.		if \\n(C\\n(aP>1 \{\
++.			nr aP \\n(aP-1
++.			No
++.		\}
++.	\}
++.\}
++..
++.\" NS vR macro - vector routine (for En, trace backwards past trail punct)
++.de vR
++.if \\n(C\\n(aJ==3 \{\
++.	nr aJ \\n(aJ-1
++.	vR
++.\}
++..
++.\"------------------------------------------------------------------------
++.\" NS Ao macro - Angle open
++.de Ao
++.if \\n(aC==0 .ds mN Ao
++.ds qL \&<
++.eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Ac macro - Angle close
++.de Ac
++.if \\n(aC==0 .ds mN Ac
++.ds qR \&>
++.eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Bo macro - Bracket open
++.de Bo
++.if \\n(aC==0 .ds mN Bo
++.ds qL \&[
++.eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Bc macro - Bracket close
++.de Bc
++.if \\n(aC==0 .ds mN Bc
++.ds qR \&]
++.eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Do macro - Double Quote open
++.de Do
++.if \\n(aC==0 .ds mN Do
++.ds qL \&\\*(Lq
++.eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Dc macro - Double Quote close
++.de Dc
++.if \\n(aC==0 .ds mN Dc
++.ds qR \&\\*(Rq
++.eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Eo macro - Enclose open
++.de Eo
++.if \\n(aC==0 .ds mN Eo
++.ds qL \\$1
++.eO \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Ec macro - Enclose close
++.de Ec
++.if \\n(aC==0 .ds mN Ec
++.ds qR \\$1
++.eC \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Oo macro - Option open
++.de Oo
++.if \\n(aC==0 .ds mN Oo
++.ds qL \&[
++.eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Oc macro - Option close
++.de Oc
++.if \\n(aC==0 .ds mN Oc
++.ds qR \&]
++.eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Po macro - Parenthesis open
++.de Po
++.if \\n(aC==0 .ds mN Po
++.ds qL \&(
++.eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Pc macro - Parenthesis close
++.de Pc
++.if \\n(aC==0 .ds mN Pc
++.ds qR \&)
++.eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Qo macro - Straight Double Quote open
++.de Qo
++.if \\n(aC==0 .ds mN Qo
++.ds qL \&\\*q
++.eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Qc macro - Straight Double Quote close
++.de Qc
++.if \\n(aC==0 .ds mN Qc
++.ds qR \&\\*q
++.eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS So macro - Single Quote open
++.de So
++.if \\n(aC==0 .ds mN So
++.ds qL \&\\*(sL
++.eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Sc macro - Single Quote close
++.de Sc
++.if \\n(aC==0 .ds mN Sc
++.ds qR \&\\*(sR
++.eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Xo macro - Extend open (continue)
++.de Xo
++.if \\n(aC==0 .ds mN Xo
++.\" .nr mN 1
++.ds qL
++.eO \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS Xe macro - Extend close (end)
++.de Xc
++.\" .nr mN 0
++.if \\n(aC==0 .ds mN Xc
++.ds qR
++.eC \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS eO macro - enclose string open
++.\" NS oM register (extension possible)
++.de eO
++.nr oM \\n(oM+1
++.\" .tm eO last arg==A[\\n(aC]==\\*(A\\n(aC; aP==\\n(aP; oM==\\n(oM; dZ==\\n(dZ;
++.ie \\n(aC==0 \{\
++.       ie \\n(.$>0 \{\
++.               aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++.		as b1 \\*(qL
++.       \}
++.	el \{\
++.		as b1 \\*(qL
++.		if (\\n(dZ==0)&(\\n(sM==1) \{\
++.			nr dZ \\n(dZ+1
++.			ds b2 \\*(b1
++.			ds b1
++.			nr lK \\n(.c
++.			ev 2
++.			fi
++.			di eB
++.		\}
++.	\}
++.\}
++.el \{\
++.	as b1 \\*(qL
++.\}
++.ie \\n(aC>0 \{\
++.	if \\n(aC>\\n(aP \{\
++.		nr aP \\n(aP+1
++.		ie \\n(C\\n(aP==1 .\\*(A\\n(aP
++.		el  \{\
++.			nr aP \\n(aP-1
++.			No
++.		\}
++.	\}
++.	if \\n(aC==\\n(aP \{\
++.		if \\n(tP==1 \{\
++.\" .tm SETTING Xt!!!
++.			nr Xt 1
++.		\}
++.\".\" .		ds S0
++.\"CHANGED		ds S0 \\*(iV
++.		aY
++.	\}
++.\}
++.el \{\
++.	if \\n(oM>1 .as b1 \\*(sV
++.\}
++..
++.\"
++.\" NS eC macro - enclose string close
++.\" NS aa local register
++.de eC
++.nr oM \\n(oM-1
++.\" tm eC last arg==A[\\n(aC]==\\*(A\\n(aC; aP==\\n(aP; oM==\\n(oM; dZ==\\n(dZ;
++.as b1 \\*(qR
++.if \\n(aC==0 \{\
++.       ie \\n(.$>0 \{\
++.               aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++.       \}
++.	el \{\
++.		ie "\\*(xB"" \{\
++.			pB
++.		\}
++.		el \{\
++.			pB
++.\\*(L\\n(lC
++.			nr Xt 0
++.			ds xB
++.		\}
++.	\}
++.\}
++.if \\n(aC>0 \{\
++.	ie \\n(aC==\\n(aP \{\
++.		ie \\n(oM==0 \{\
++.			aZ
++.		\}
++.		el .aY
++.	\}
++.	el \{\
++.		nr aa \\n(aP+1
++.		if \\n(C\\n(aa==2 .as b1 \\*(S\\n(aC
++.\" tm CURRENT arg (aP==\\*(A\\n(aP and ap+1==\\*(A\\n(aa) tP==\\n(tP Xt==\\n(Xt
++.		rr aa
++.		if \\n(tP>0 \{\
++.\" tm UNSETTING Xt==\\n(Xt!!!!
++.			if \\n(Xt>0 .nr Xt \\n(Xt-1
++.\" tm NOW Xt==\\n(Xt!!!!
++.		\}
++.		No
++.	\}
++.\}
++..
++.\"------------------------------------------------------------------------
++.\" NS Pf macro - Prefix (calls .pF)
++.de Pf
++.if \\n(aC==0 .ds mN Pf
++.ds qL \&\\$1
++.pF \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\" NS pF macro - Prefix (for prefixing open quotes, brackets etc)
++.de pF
++.ie \\n(aC==0 \{\
++.	as b1 \&\\*(qL
++.	ie \\n(.$<2 \{\
++.		tm Warning: Missing arguments - prefix .Pf)
++.		pB
++.	\}
++.	el .aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++.\}
++.el \{\
++.	ie (\\n(aC-\\n(aP)>1 \{\
++.		nr aP \\n(aP+1
++.		as b1 \&\\*(A\\n(aP
++.	\}
++.	el .tm Warning: .Pf: trailing prefix (#\\n(.c)
++.\}
++.if \\n(aC>0 \{\
++.	ie (\\n(aC-\\n(aP)==0 .aZ
++.	el \{\
++.		nr aP \\n(aP+1
++.		c\\n(C\\n(aP
++.	\}
++.\}
++..
++.\" NS Ns macro - remove space (space remove done by .aV or .fV)
++.de Ns
++.if \\n(aC==0 \{\
++.	ds mN Ns
++.	ie \\n(.$>0 .aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++.	el .tm Usage: .Ns must be called with arguments (#\\n(.c)
++.\}
++.No
++..
++.de Ap
++.if \\n(aC==0 \{\
++.	ds mN Ap
++.	tm Usage: Ap "cannot be first request on a line (no .Ap)" (#\\n(.c)
++.\}
++.as b1 \&'
++.No
++..
++.\" NS Hv macro - Hard (unpaddable) Space vector
++.\" NS iV string inter-vector space
++.\" NS sV string inter-argument space
++.de Hv
++.ds iV \\*(sV
++.ds sV \\*(hV
++..
++.\" NS Sv macro - Soft Space vector (troff limitation)
++.de Sv
++.ds sV \\*(iV
++..
++.\" NS Tv macro - Tab Space vector
++.de Tv
++.ds sV \\*(tV
++..
++.\" NS Sm macro - Space mode
++.\" NS sM register - default is one (space mode on)
++.nr sM 1
++.de Sm
++.if \\n(aC==0 \{\
++.	ie \\n(.$==0 .tm "Usage: .Sm [off | on]" (#\\n(.c)
++.	el \{\
++.		ds mN Sm
++.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++.	\}
++.\}
++.if \\n(aC>0 \{\
++.	nr aP \\n(aP+1
++.	if "\\*(A\\n(aP"on" \{\
++.		ds sV \\*(iV
++.		nr sM 1
++.	\}
++.	if "\\*(A\\n(aP"off" \{\
++.		ds sV
++.		rm S0 S1 S2 S3 S4 S5 S6 S7 S8 S9
++.		nr sM 0
++.	\}
++.	ie \\n(aC>\\n(aP \{\
++.		No
++.	\}
++.	el .aY
++.\}
++..
++.\"------------------------------------------------------------------------
++.\" Size and Argument type macros
++.\" NS aT macro - argument type
++.\" NS aU macro - argument type (same as .aT but uses A[1-9] strings
++.\" NS aT register argument type
++.if \n(.g \{\
++.de aT
++.nr aT 0
++.ie \\n(sW>2:(\A'\\$1'==0) \{\
++.	nr aT 2
++.\}
++.el \{\
++.	if \\n(sW==1 \{\
++.		ie \\n(z\\$1>2 \{\
++.			nr aT \\n(z\\$1
++.		\}
++.		el .nr aT 2
++.	\}
++.	if \\n(sW==2 \{\
++.		ie \\n(\\$1 \{\
++.			nr aT 1
++.		\}
++.		el .nr aT 2
++.	\}
++.\}
++..
++.de aU
++.nr aT 0
++.aW \\$1
++.ie \\n(sW>2:(\A'\\*(A\\$1'==0) .nr aT 2
++.el \{\
++.	if \\n(sW==1 \{\
++.		ie \\n(z\\*(A\\$1>2 \{\
++.			nr aT \\n(z\\*(A\\$1
++.		\}
++.		el .nr aT 2
++.	\}
++.	if \\n(sW==2 \{\
++.		ie (\\n(\\*(A\\$1) \{\
++.			nr aT 1
++.		\}
++.		el .nr aT 2
++.	\}
++.\}
++..
++.\}
++.if !\n(.g \{\
++.de aT
++.nr aT 0
++.ie \\n(sW>2 \{\
++.	nr aT 2
++.\}
++.el \{\
++.	if \\n(sW==1 \{\
++.		ie \\n(z\\$1>2 \{\
++.			nr aT \\n(z\\$1
++.		\}
++.		el .nr aT 2
++.	\}
++.	if \\n(sW==2 \{\
++.		ie \\n(\\$1 \{\
++.			nr aT 1
++.		\}
++.		el .nr aT 2
++.	\}
++.\}
++..
++.de aU
++.nr aT 0
++.aW \\$1
++.ie \\n(sW>2 .nr aT 2
++.el \{\
++.	if \\n(sW==1 \{\
++.		ie \\n(z\\*(A\\$1>2 \{\
++.			nr aT \\n(z\\*(A\\$1
++.		\}
++.		el .nr aT 2
++.	\}
++.	if \\n(sW==2 \{\
++.		ie (\\n(\\*(A\\$1) \{\
++.			nr aT 1
++.		\}
++.		el .nr aT 2
++.	\}
++.\}
++..
++.\}
++.\" NS s1 macro - set spacing for class type 1
++.\" NS s2 macro - set spacing for class type 2
++.\" NS s3 macro - set spacing for class type 3
++.\" NS s1 macro - set spacing for class type 1
++.\" NS s2 macro - set spacing for class type 2
++.\" NS s3 macro - set spacing for class type 3
++.\" NS s4 macro - set spacing for class type 4
++.\" NS S[0-9] string spacing
++.\" NS xX local register
++.\" NS aa local register
++.de s0
++.tm MDOC-ERROR: bogus type 0 (can't set space '\\*(A\\n(aC') (#\\n(.c)
++..
++.de s1
++.if \\n(\\*(A\\n(aC==3 \{\
++.	nr xX \\n(aC-1
++.	rm S\\n(xX
++.	ds S\\n(aC \\*(sV
++.\}
++.if \\n(\\*(A\\n(aC==2 \{\
++.	nr xX \\n(aC-1
++.\" this kludge can probably go away, but need to double check first
++.	ie "\\*(A\\n(aC"Nb" .ds S\\n(xX \\*(hV
++.	el .rm S\\n(xX
++.\}
++..
++.de s2
++.ds S\\n(aC \\*(sV
++..
++.de s3
++.if \\n(aC>1 \{\
++.	nr xX \\n(aC-1
++.	rm S\\n(xX
++.\}
++.ds S\\n(aC \\*(sV
++..
++.de s4
++.nr aa 0
++..
++.\" Class switches (on current argument aP)
++.\" NS c0 macro - catch errors (non-existent class type 0)
++.\" NS c1 macro - call request if type 1
++.\" NS c2 macro - call .No if type 2
++.\" NS c3 macro - call .No if type 3
++.\" NS c4 macro - call .No if type 4
++.de c0
++.tm MDOC-ERROR: bogus class 0 (can't determine '\\*(A\\n(aC') (#\\n(.c)
++..
++.de c1
++.\\*(A\\n(aP
++..
++.de c2
++.nr aP \\n(aP-1
++.No
++..
++.de c3
++.nr aP \\n(aP-1
++.No
++..
++.de c4
++.nr aP \\n(aP-1
++.No
++..
++.\" NS y1 macro - ignore if class 1
++.\" NS y2 macro - ignore if class 2
++.\" NS y3 macro - append if type 3
++.\" NS y4 macro - append if type 4
++.de y1
++.nr aa 1
++..
++.de y2
++.nr aa 1
++..
++.de y3
++.as b1 \\*(A\\n(aP
++.nr aP \\n(aP+1
++.n\\C\\n(aP
++..
++.de y4
++.as b1 \\*(A\\n(aP
++.nr aP \\n(aP+1
++.n\\C\\n(aP
++..
++.\"--------------------------------------------------------------------------
++.\" Ns Bf macro - Begin Font Mode (will be begin-mode/end-mode in groff & TeX)
++.\" Ns Ef macro - End Font Mode
++.de Bf
++.ds mN Bf
++.ie \\n(.$>0 \{\
++.	nr bF \\n(.f
++.	nr bZ \\n(.s
++.	if "\\$1"Em" \&\\*(eM\c
++.	if "\\$1"Li" \&\\*(lI\c
++.	if "\\$1"Sy" \&\\*(sY\c
++.	if "\\$1"-emphasis" \&\\*(eM\c
++.	if "\\$1"-literal" \&\\*(lI\c
++.	if "\\$1"-symbolic" \&\\*(sY\c
++.\}
++.el .tm Usage .Bf [Em | emphasis | Li | literal | Sy | symbolic] (#\\n(.c)
++..
++.de Ef
++.ds mN Ef
++.ie \\n(.$>0 .tm Usage .Ef (does not take arguments) (#\\n(.c)
++.el \&\f\\n(bF\s\\n(bZ
++..
++.\" Ns Bk macro - Begin Keep
++.\" Ns Ek macro - End Keep
++.\" Ns kS string - keep type
++.de Bk
++.ds mN Bk
++.ie \\n(.$==0 \{\
++.tm Usage: .Bk [-lines | -words] (#\\n(.c)
++.\}
++.el \{\
++.	if !"\\*(kS"" .tm .Bk: nesting keeps not implemented yet. (#\\n(.c)
++.	if "\\$1"-lines" .tm .Bd -lines: Not implemented yet. (#\\n(.c)
++.	if "\\$1"-words" .Hv
++.	ds kS \\$1
++.\}
++..
++.de Ek
++.ds mN Ek
++.ie \\n(.$>0 .tm Usage .Ek (does not take arguments) (#\\n(.c)
++.el \{\
++.	if "\\*(kS"-lines" .tm .Bd -lines: Not implemented yet. (#\\n(.c)
++.	if "\\*(kS"-words" .Sv
++.	rm kS
++.\}
++..
++.\" NS Bd macro - Begin Display display-type [offset string]
++.\" NS Ed macro - end Display
++.\" NS O[0-9] registers - stack of indent
++.\" NS d[0-9] registers - display-type stack
++.de Bd
++.ds mN Bd
++.ie \\n(.$==0 \{\
++.tm Usage: .Bd [-literal | -filled | -ragged | -unfilled] [-offset [string]] [-compact] (#\\n(.c)
++.\}
++.el \{\
++.	ds aa
++.	nr bV 0
++.       nr iD 0
++.	nr dP \\n(dP+1
++.       if "\\$1"-literal" \{\
++.		nr iD \\n(iD+1
++.               ds d\\n(dP dL
++.		nr cF \\n(.f
++.		nr cZ \\n(.s
++.		ie t \{\&\\*(lI
++'			ta 9n 18n 27n 36n 45n 54n 63n 72n
++.		\}
++.		el \{\
++'			ta 8n 16n 24n 32n 40n 48n 56n 64n 72n
++.		\}
++.		nf
++.       \}
++.       if "\\$1"-filled" \{\
++.		nr iD \\n(iD+1
++.               ds d\\n(dP dF
++.		br
++.       \}
++.       if "\\$1"-ragged" \{\
++.		nr iD \\n(iD+1
++.               ds d\\n(dP dR
++.		na
++.       \}
++.       if "\\$1"-unfilled" \{\
++.		nr iD \\n(iD+1
++.               ds d\\n(dP dU
++.		nf
++.       \}
++.\" .tm Here is argc: \\n(.$ and here is iD \\n(iD
++.       if ((\\n(iD>=1)&(\\n(.$>\\n(iD)) \{\
++.		bV \\$2 \\$3 \\$4
++.	\}
++.	if \\n(O\\n(dP>0 'in \\n(.iu+\\n(O\\n(dPu
++.	if (\\n(bV==0) \{\
++.		if (\\n(nS==0) \{\
++.			ie "\\*(d\\n(dP"dR" .sp \\n(dVu
++.			el 'sp \\n(dVu
++.		\}
++.	\}
++.	if \\n(cR==0 .ne 2v
++.	nr bV 0
++.	nr iD 0
++.\}
++..
++.\" NS bV macro - resolve remaining .Bd arguments
++.de bV
++.\" .tm in bV with args: \\$1 \\$2 \\$3
++.nr iD 1
++.ds bY
++.if "\\$1"-offset" \{\
++.	ds bY \\$2
++.	if "\\*(bY"left" \{\
++.		nr iD \\n(iD+1
++.		nr O\\n(dP 0
++.	\}
++.	if "\\*(bY"right" \{\
++.		nr iD \\n(iD+1
++.		nr O\\n(dP (\\n(.l/3)u
++.	\}
++.	if "\\*(bY"center" \{\
++.		nr iD \\n(iD+1
++.		nr O\\n(dP (\\n(.l-\\n(.i)/4u
++.	\}
++.	if "\\*(bY"indent" \{\
++.		nr iD \\n(iD+1
++.		nr O\\n(dP \\n(dIu
++.	\}
++.	if "\\*(bY"indent-two" \{\
++.		nr iD \\n(iD+1
++.		nr O\\n(dP \\n(dIu+\\n(dIu
++.	\}
++.	if \\n(iD==1 \{\
++.		nr iD \\n(iD+1
++.		sW "\\*(bY"
++.		ie \\n(sW>2 \{\
++.			ie ((\\*(bY>9n)&(\\*(bY<100n)) \{\
++.				nr O\\n(dP \\*(bY
++.			\}
++.			el .nr O\\n(dP (\\n(sW)*\\n(fWu
++.		\}
++.		el \{\
++.			if \\n(sW==2 .aT \\*(bY
++.			ie \\n(aT==1 \{\
++.				nr O\\n(dP \\n(\\*(bY
++.			\}
++.			el .nr O\\n(dP \\*(bY
++.		\}
++.	\}
++.\}
++.if "\\$1"-compact" \{\
++.	nr bV 1
++.\}
++.if \\n(iD<\\n(.$ \{\
++.	ie "\\*(bY"" \{\
++.		bV \\$2 \\$3
++.	\}
++.	el \{\
++.		bV \\$3
++.	\}
++.\}
++..
++.\" NS Ed macro - end display
++.de Ed
++.ds mN Ed
++.br
++.if \\n(dP==0 .tm mdoc: Extraneous .Ed
++.if "\\*(d\\n(dP"dL" \{\
++.	ft \\n(cF
++.	fz \\n(cZ
++.\}
++.in \\n(.iu-\\n(O\\n(dPu
++.rr O\\n(dP
++.rm d\\n(dP
++.nr dP \\n(dP-1
++.fi
++.if t .ad
++..
++.\"--------------------------------------------------------------------------
++.\" NS Bl macro - begin list (.Bl list-type)
++.\" NS L[0-9] registers - stack of list types
++.de Bl
++.ie \\n(.$==0 \{\
++.tm Usage: .Bl [[-hang | -tag] [-width]] [ -item | -enum | -bullet | -diag] (#\\n(.c)
++.\}
++.el \{\
++.	ds mN Bl
++.	nr aP 0
++.	nr lC \\n(lC+1
++.	ds A1 \\$2
++.	ds A2 \\$3
++.	ds A3 \\$4
++.	ds A4 \\$5
++.	ds A5 \\$6
++.	ds A6 \\$7
++.	ds A7 \\$8
++.	ds A8 \\$9
++.	nr fV \\n(.$-1
++.	if "\\$1"-hang" \{\
++.		nr aP \\n(aP+1
++.		ds L\\n(lC hL
++.		nr w\\n(lC 6n
++.		nr tC  1
++.	\}
++.	if "\\$1"-tag" \{\
++.		nr aP \\n(aP+1
++.		ds L\\n(lC tL
++.		nr tC  1
++.	\}
++.	if "\\$1"-item" \{\
++.		nr aP \\n(aP+1
++.		ds L\\n(lC iT
++.		nr tC  1
++.	\}
++.	if "\\$1"-enum" \{\
++.		nr aP \\n(aP+1
++.		ds L\\n(lC nU
++.		nr w\\n(lC 3n
++.		nr tC  1
++.	\}
++.	if "\\$1"-bullet" \{\
++.		nr aP \\n(aP+1
++.		ds L\\n(lC bU
++.		nr w\\n(lC 2n
++.		nr tC  1
++.	\}
++.	if "\\$1"-dash" \{\
++.		nr aP \\n(aP+1
++.		ds L\\n(lC hU
++.		nr w\\n(lC 2n
++.		nr tC  1
++.	\}
++.	if "\\$1"-hyphen" \{\
++.		nr aP \\n(aP+1
++.		ds L\\n(lC hU
++.		nr w\\n(lC 2n
++.		nr tC  1
++.	\}
++.	if "\\$1"-inset" \{\
++.		nr aP \\n(aP+1
++.		ds L\\n(lC lL
++.		nr tC  1
++.	\}
++.	if "\\$1"-diag" \{\
++.		nr aP \\n(aP+1
++.		ds L\\n(lC mL
++.		nr mL 1
++.	\}
++.	if "\\$1"-ohang" \{\
++.		nr aP \\n(aP+1
++.		ds L\\n(lC oL
++.		nr tC 1
++.	\}
++.	if "\\$1"-column" \{\
++.		nr aP \\n(aP+1
++.		ds L\\n(lC cL
++.	\}
++.	ie \\n(aP==0 \{\
++.	tm \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++.	tm Usage: .Bl [[-inset|-tag] -width] [-item|-enum|-bullet|-diag] (#\\n(.c)
++.	\}
++.	el \{\
++.		tY
++.		if (\\n(aP==1)&(\\n(aP<\\n(.$) \{\
++.			nr aP 0
++.			lV
++.			if "\\*(L\\n(lC"cL" \{\
++.				W\\n(wV
++.				nr w\\n(lC 0
++'				in -\\n(eWu
++.				ie \\n(v\\n(lC==1 \{\
++.				       nr aa 0
++.				\}
++.				el \{\
++.					sp \\n(dVu
++.				\}
++.				nf
++.				nr wV 0
++.			\}
++.		\}
++.	\}
++.	nr aP 0
++.\" .	ds b1
++.	aY
++.\" .tm Here is L[\\n(lC]==\\*(L\\n(lC
++.\}
++..
++.if \n(.g \{\
++.	nr i 10
++.	while \ni<100 \{\
++.	     nr num!\nin 1
++.	     nr i +1
++.	\}
++.\}
++.\" NS lV macro - resolve remaining .Bl arguments
++.de lV
++.nr aP \\n(aP+1
++.if \\n(fV>=\\n(aP \{\
++.	nr iD 0
++.	if "\\*(A\\n(aP"-compact" \{\
++.		nr iD 1
++.		nr v\\n(lC 1
++.	\}
++.	if "\\*(A\\n(aP"-width" \{\
++.		nr iD 1
++.		nr aP \\n(aP+1
++.		nr tW 1
++.		ds t\\n(lC TagwidtH
++.		ds tS \\*(A\\n(aP
++.		aW \\n(aP
++.		ie \\n(sW>2 \{\
++.			nr w\\n(lC (\\n(sW)*\\n(fWu
++.			if \\n(sW==3 \{\
++.				ie \\n(.g \{\
++.					if \A'\\*(tS' .if r num!\\*(tS \{\
++.						nr w\\n(lC \\*(tS
++.					\}
++.				\}
++.				el \{\
++.					if (\\*(tS>9n)&(\\*(tS<99n) \{\
++.						nr w\\n(lC \\*(tSu
++.					\}
++.				\}
++.			\}
++.		\}
++.		el \{\
++.			aT \\*(tS
++.			ie \\n(aT==1 \{\
++.				nr w\\n(lC \\n(\\*(tS
++.			\}
++.			el \{\
++.				nr w\\n(lC \\*(tSu
++.			\}
++.		\}
++.	\}
++.	if "\\*(A\\n(aP"-offset" \{\
++.		nr iD 1
++.		nr aP \\n(aP+1
++.		ie "\\*(A\\n(aP"indent" \{\
++.			nr o\\n(lC \\n(Dsu
++.		\}
++.		el \{\
++.			ds tS \\*(A\\n(aP
++.			aW \\n(aP
++.			ie \\n(sW>2 \{\
++.				nr o\\n(lC (\\n(sW)*\\n(fWu
++.				ie \\n(.g \{\
++.					if \A'\\*(tS' .if r num!\\*(tS \{\
++.						nr o\\n(lC \\*(tS
++.					\}
++.				\}
++.				el \{\
++.					if (\\*(tS>9n)&(\\*(tS<100n) \{\
++.						nr o\\n(lC \\*(tS
++.					\}
++.				\}
++.			\}
++.			el \{\
++.				ie \\n(C\\n(aP==1 .nr o\\n(lC \\n(\\*(tS
++.				el .nr o\\n(lC \\*(tS
++.			\}
++.		\}
++.	\}
++.	if \\n(iD==0 \{\
++.		if "\\*(L\\n(lC"cL" \{\
++.			nr wV \\n(wV+1
++.			ds A\\n(wV \\*(A\\n(aP
++.		\}
++.	\}
++.	if \\n(fV>\\n(aP .lV
++.\}
++..
++.\" NS El macro - end list
++.\" NS iD local register
++.de El
++.ie \\n(.$>0 \{\
++.	tm Usage: .El (#\\n(.c)
++.\}
++.el \{\
++.	ds mN El
++.	nr iD 0
++.	if "\\*(L\\n(lC"cL" \{\
++.		nr iD 1
++.		cC
++.	\}
++.	if "\\*(L\\n(lC"nU" \{\
++.		nr nU 0
++.	\}
++.	if \\n(mL>0 \{\
++.		nr iD 1
++.		nr mL 0
++.		tZ
++.		nr lC \\n(lC-1
++.		tY
++.	\}
++.	if "\\*(L\\n(lC"iT" \{\
++'		in \\n(.iu-\\n(o\\n(lCu
++.		tZ
++.		nr lC \\n(lC-1
++.		tY
++.		nr iD 1
++.	\}
++.	if "\\*(L\\n(lC"oL" \{\
++'		in \\n(.iu-\\n(o\\n(lCu
++.		tZ
++.		nr lC \\n(lC-1
++.		tY
++.		nr iD 1
++.	\}
++.	if "\\*(L\\n(lC"lL" \{\
++'		in \\n(.iu-\\n(o\\n(lCu
++.		tZ
++.		nr lC \\n(lC-1
++.		tY
++.		nr iD 1
++.	\}
++.	if \\n(iD==0 \{\
++.		lE
++.	\}
++.	br
++.	nr iD 0
++.\}
++..
++.\" NS It macro - list item
++.\" NS iD local register
++.\" NS aA save pA font string for section FILES (no underline if nroff)
++.de It
++.if "\\*(L\\n(lC"" \{\
++.	tm Usage .Bl -list-type [-width [string] | -compact | -offset [string]] (#\\n(.c)
++.	tm .It \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8
++.\}
++.\" .tm Here is L[\\n(lC]==\\*(L\\n(lC
++.ne 3v
++.ie \\n(.$>0 \{\
++.	ds mN It
++.	ds b1
++.	nr iD 0
++.	ds A1 \\$1
++.	ds A2 \\$2
++.	ds A3 \\$3
++.	ds A4 \\$4
++.	ds A5 \\$5
++.	ds A6 \\$6
++.	ds A7 \\$7
++.	ds A8 \\$8
++.	ds A9 \\$9
++.	nr fV \\n(.$
++.	if "\\*(L\\n(lC"mL" \{\
++.		nr iD 1
++.		nr aP 0
++.		aX
++.		\\*(L\\n(lC
++.	\}
++.	if "\\*(L\\n(lC"cL" \{\
++.		ds b1
++.		nr aP 0
++.		nr iD 1
++.		\\*(L\\n(lC
++.	\}
++.	if "\\*(L\\n(lC"iT" \{\
++.		nr aP 0
++.		nr iD 1
++.		\\*(L\\n(lC
++.	\}
++.	if \\n(iD==0 \{\
++.		fV
++.\" tm ------------------------------------------------------------------------
++.\" tm It list-type==\\*(L\\n(lC, aP==\\n(aP
++.\" tm It beg arg(A[1])==\\*(A1; oM==\\n(oM; dZ==\\n(dZ; Xt==\\n(Xt; aC==\\n(aC
++.		nr oM \\n(oM+1
++.		nr tP 1
++.		nr aP \\n(aP+1
++.		nr tX \\n(C\\n(aP
++.		ds tX \\*(A\\n(aP
++.		if \\n(nF==1 \{\
++.			ds aA \\*(pA
++.			if n .ds pA \\*(nO
++.		\}
++.		ie \\n(C\\n(aP==1 \{\
++.			\\*(A\\n(aP
++.		\}
++.		el \{\
++.			nr aP \\n(aP-1
++.			No
++.		\}
++.\" tm in It here is b1==\\*(b1
++.\" tm It mid arg(A[1])==\\*(A1; oM==\\n(oM; dZ==\\n(dZ; Xt==\\n(Xt; aC==\\n(aC
++.		ie \\n(Xt==1 .ds xB \&\\*(L\\n(lC
++.		el .\\*(L\\n(lC
++.	\}
++.	nr iD 0
++.\}
++.el .\\*(L\\n(lC
++..
++.\" NS lL macro - .It item of list-type inset
++.de lL
++.lY
++.br
++\&\\*(b1
++.nr oM \\n(oM-1
++.nr tP 0
++.ds b1
++.aY
++'fi
++..
++.\" NS hL macro - .It item of list-type hanging label (as opposed to tagged)
++.de hL
++.lX
++.nr bb \\n(w\\n(lCu+\\n(lSu
++.ti -\\n(bbu
++.ie \w\\*(b1u>=(\\n(w\\n(lCu) \&\\*(b1
++.el \&\\*(b1\h'|\\n(bbu'\c
++.nr oM \\n(oM-1
++.ds b1
++.nr tP 0
++.aY
++'fi
++..
++.\" NS oL macro - .It item of list-type overhanging label
++.de oL
++.lY
++\&\\*(b1
++.br
++.nr oM \\n(oM-1
++.ds b1
++.nr tP 0
++.aY
++'fi
++..
++.\" NS iT macro - .It item of list-type [empty label]
++.de iT
++.lY
++.br
++.\" .ds b1
++.aY
++'fi
++..
++.\" NS nU macro - Enumerated list
++.\" NS nU register count
++.\" NS hU macro - Hyphen paragraph list (sub bullet list)
++.\" NS bU macro - Bullet paragraph list
++.de nU
++.nr oM \\n(oM+1
++.nr nU \\n(nU+1
++.ds b1 \&\\n(nU.
++.uL
++..
++.de bU
++.nr oM \\n(oM+1
++.nr bU \\n(bU+1
++.ds b1 \&\\*(sY\&\(bu\fP
++.uL
++..
++.de hU
++.nr oM \\n(oM+1
++.nr bU \\n(bU+1
++.ds b1 \&\\*(sY\&\-\fP
++.uL
++..
++.\" NS uL macro - .It item of list-type enum/bullet/hyphen
++.de uL
++.lX
++.nr bb \\n(w\\n(lCu+\\n(lSu
++.ti -\\n(bbu
++.ie \w\\*(b1u>=(\\n(w\\n(lCu) \&\\*(b1
++.el \&\\*(b1\h'|\\n(bbu'\c
++.nr oM \\n(oM-1
++.\" .nr dZ \\n(dZ+1
++.ds b1
++.nr tP 0
++.aY
++'fi
++..
++.\" NS mL macro - .It item of list-type diagnostic-message
++.de mL
++.nr cF \\n(.f
++.nr cZ \\n(.s
++.ie \\n(mL==1 \{\
++.	nr zB \\n(.c
++.	ie (\\n(zB-\\n(zA)>1 .Pp
++.	el .br
++.	nr zA \\n(zB
++.	nr zB 0
++.\}
++.el \{\
++.	nr zA \\n(.c
++.	br
++.\}
++\&\\*(sY\\*(b1\f\\n(cF\s\\n(cZ\\*(lS\c
++.aY
++.ds b1
++'fi
++..
++.\" NS tL macro - .It item of list-type "tag"
++.de tL
++.\" tm in tL here is b1==\\*(b1
++.if \\n(tW==0 .lW
++.lX
++.nr bb \\n(w\\n(lCu+\\n(lSu
++.ti -\\n(bbu
++.ie (\w\\*(b1u)>(\\n(w\\n(lCu) \{\&\\*(b1
++.       br
++.\}
++.el \&\\*(b1\h'|\\n(bbu'\c
++.if \\n(nF==1 \{\
++.	if n .ds pA \\*(aA
++.\}
++.nr oM \\n(oM-1
++.nr tP 0
++.\" .nr dZ \\n(dZ+1
++.ds b1
++.aY
++'fi
++..
++.\" NS lW macro - resolve unknown label/tag width (if .Bl [inset | tag] only)
++.de lW
++.if !"TagwidtH"\\*(t\\n(lC" \{\
++.       ie \\n(tX==1 \{\
++.               ds t\\n(lN \\*(tX
++.               nr w\\n(lN \\n(\\*(tX
++.       \}
++.       el \{\
++.               ds t\\n(lN No
++.               nr w\\n(lN \\n(No
++.       \}
++.       if !"\\*(t\\n(lC"\\*(t\\n(lN" .nr tC 1
++.\}
++..
++.\" NS lX macro - set up vertical spacing (if compact) and offset+indent (all)
++.de lX
++.ie \\n(tC \{\
++.       nr tC 0
++.       nr tW 0
++.       if \\n(v\\n(lC==0 .sp \\n(dVu
++.       in \\n(.iu+\\n(w\\n(lCu+\\n(o\\n(lCu+\\n(lSu
++.\}
++.el \{\
++.	ie \\n(v\\n(lC==1 \{\
++.	       nr aa 0
++.	\}
++.	el \{\
++.		sp \\n(dVu
++.	\}
++.\}
++.if !\\n(cR .ne 2v
++..
++.\" NS lY macro - set up vertical spacing (if compact) and offset+indent (all)
++.de lY
++.ie \\n(tC \{\
++.       nr tC 0
++.       nr tW 0
++.       if \\n(v\\n(lC==0 .sp \\n(dVu
++.       in \\n(.iu+\\n(o\\n(lCu
++.\}
++.el \{\
++.	ie \\n(v\\n(lC==1 \{\
++.	       nr aa 0
++.	\}
++.	el \{\
++.		sp \\n(dVu
++.	\}
++.\}
++.if !\\n(cR .ne 2v
++..
++.\" NS tS temporary string
++.\" NS hL macro - hanging list function
++.\" NS tS temporary string
++.\" NS hL macro - hanging list function
++.\" NS lT macro - tagged list function
++.\" NS lE macro - list end function
++.\" NS tX string (initial string)
++.\" NS tX register (initial class)
++.\" NS tC parameter change flag
++.\" NS Xt save current list-type flag
++.\" NS lC register - list type stack counter
++.\" NS tP register tag flag (for diversions)
++.\" NS w[0-9] register tag stack (nested tags)
++.\" NS t[0-9] register tag string stack (nested tags)
++.\" NS o[0-9] register offset stack (nested tags)
++.\" NS v[0-9] register vertical tag break stack
++.\" NS h[0-9] register horizontal tag stack (continuous if 1, break if 0)
++.nr lC 0
++.nr wV 0
++.nr w1 0
++.nr o1 0
++.nr v1 0
++.nr h1 0
++.ds t\n(lC
++.de lE
++.\" IN lC o[\\n(lC]==\\n(o\\n(lC, w[\\n(lC]==\\n(w\\n(lC,
++.ie \\n(o\\n(lC>0 \{\
++'	in \\n(.iu-(\\n(w\\n(lCu)-(\\n(o\\n(lCu)-\\n(lSu
++.	rr o\\n(lC
++.\}
++.el 'in \\n(.iu-\\n(w\\n(lCu-\\n(lSu
++.if \\n(lC<=0 .tm Extraneous .El call (#\\n(.c)
++.tZ
++.nr lC \\n(lC-1
++.tY
++..
++.\" NS tY macro - set up next block for list
++.\" NS tZ macro - decrement stack
++.\" NS tY register (next possible lC value)
++.de tY
++.nr tY (\\n(lC+1)
++.nr w\\n(tY 0
++.nr h\\n(tY 0
++.nr o\\n(tY 0
++.ds t\\n(tY \\*(t\\n(lC
++.ds L\\n(tY
++.nr v\\n(tY 0
++..
++.de tZ
++.rm L\\n(tY
++.rr w\\n(tY
++.rr h\\n(tY
++.rr o\\n(tY
++.rm t\\n(tY
++.rr v\\n(tY
++.nr tY \\n(tY-1
++..
++.\" initial values
++.nr w1 0
++.nr o1 0
++.nr h1 0
++.ds t1
++.nr v1 0
++.nr tY 1
++.\" NS Xr macro - cross reference (man page only)
++.de Xr
++.if \\n(aC==0 \{\
++.	ie \\n(.$==0 .tm Usage: .Xr manpage_name [section#] \\*(Pu (#\\n(.c)
++.	el \{\
++.		ds mN Xr
++.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++.	\}
++.\}
++.if \\n(aC>\\n(aP \{\
++.	nr aP \\n(aP+1
++.	ie \\n(C\\n(aP==1 .tm Usage: .Xr manpage_name [section#] \\*(Pu (#\\n(.c)
++.	el \{\
++.		ie \\n(C\\n(aP>2 .y\\n(C\\n(aP
++.		el \{\
++.			as b1 \&\\*(xR\\*(A\\n(aP\fP\s0
++.			if \\n(aC>\\n(aP \{\
++.				nr aP \\n(aP+1
++.				if \\n(C\\n(aP==2 \{\
++.					as b1 \&(\\*(A\\n(aP)
++.					nr aP \\n(aP+1
++.				\}
++.				if \\n(aC>=\\n(aP \{\
++.					c\\n(C\\n(aP
++.				\}
++.			\}
++.		\}
++.		aZ
++.       \}
++.\}
++..
++.\" NS Sx macro - cross section reference
++.de Sx
++.if \\n(aC==0 \{\
++.	ie \\n(.$==0 .tm Sx Usage: .Sx Section Header \\*(Pu (#\\n(.c)
++.	el \{\
++.		ds mN Sx
++.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++.	\}
++.\}
++.\}
++.if \\n(aC>\\n(aP \{\
++.	nr aP \\n(aP+1
++.	as b1 \\*(sX
++.	nr cF \\n(.f
++.	nr cZ \\n(.s
++.	nR
++.\}
++..
++.\" NS cC macro - column-list end-list
++.\" NS eW macro - column indent width
++.\" NS cI register - column indent width
++.\" NS W[1-5] macro - establish tabs for list-type column
++.de cC
++'in \\n(.iu-\\n(o\\n(lCu-\\n(w\\n(lCu
++.ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i
++.fi
++.tZ
++.nr lC \\n(lC-1
++.tY
++..
++.de W1
++.ta \w\\*(A1    u
++.nr eW \w\\*(A1    u
++'in \\n(.iu+\\n(eWu+\\n(o\\n(lCu
++..
++.de W2
++.ta \w\\*(A1    u +\w\\*(A2    u
++.nr eW \w\\*(A1    u+\w\\*(A2    u
++'in \\n(.iu+\\n(eWu+\\n(o\\n(lCu
++..
++.de W3
++.ta \w\\*(A1    u +\w\\*(A2    u +\w\\*(A3    u
++.nr eW \w\\*(A1    u+\w\\*(A2    u+\w\\*(A3    u
++'in \\n(.iu+\\n(eWu+\\n(o\\n(lCu
++..
++.de W4
++.ta \w\\*(A1    u +\w\\*(A2    u +\w\\*(A3    u +\w\\*(A4    u
++.nr eW \w\\*(A1    u+\w\\*(A2    u +\w\\*(A3    u +\w\\*(A4    u
++'in \\n(.iu+\\n(eWu+\\n(o\\n(lCu
++..
++.de W5
++.ta \w\\*(A1   u +\w\\*(A2   u +\w\\*(A3   u +\w\\*(A4   u +\w\\*(A5   u
++.nr eW \w\\*(A1   u +\w\\*(A2   u +\w\\*(A3   u +\w\\*(A4   u +\w\\*(A5   u
++'	in \\n(.iu+\\n(eWu+\\n(o\\n(lCu
++..
++.\" This is packed abnormally close, intercol width should be an option
++.de W6
++.ta \w\\*(A1 u +\w\\*(A2 u +\w\\*(A3 u +\w\\*(A4 u +\w\\*(A5 u +\w\\*(A6
++.nr eW \w\\*(A1 u +\w\\*(A2 u +\w\\*(A3 u +\w\\*(A4 u +\w\\*(A5 u +\w\\*(A6
++'	in \\n(.iu+\\n(eWu+\\n(o\\n(lCu
++..
++.\" NS cL macro - column items
++.de cL
++.if \\n(w\\n(lC==0 .nr w\\n(lC \\n(eWu
++.if \\n(.u==0 \{\
++.	fi
++'	in \\n(.iu+\\n(eWu
++.\}
++.ti -\\n(eWu
++.fV
++.nr aP \\n(aP+1
++.ie \\n(aC>=\\n(aP  \{\
++.	if "\\*(A\\n(aP"Ta" \{\
++.		nr jJ \\n(aP-1
++.		rm S\\n(jJ
++.		rr jJ
++.	\}
++.	c\\n(C\\n(aP
++.\}
++.el .tm Usage: .It column_string [Ta [column_string ...] ] (#\\n(.c)
++..
++.\" NS Ta macro - append tab (\t)
++.de Ta
++.ie \\n(aC>0 \{\
++.	nr aP \\n(aP+1
++.	ie \\n(aC>=\\n(aP \{\
++.		if "\\*(A\\n(aP"Ta" \{\
++.			nr jJ \\n(aP-1
++.			rm S\\n(jJ
++.			rr jJ
++.		\}
++.		as b1 \\t
++.		c\\n(C\\n(aP
++.	\}
++.	el \{\
++.		as b1 \\t\\c
++.		rm S\\n(aP
++.		pB
++.		aY
++.\" .		ds b1
++.	\}
++.\}
++.el \{\
++.	tm Usage: Ta must follow column entry: e.g. (#\\n(.c)
++.	tm .It column_string [Ta [column_string ...] ]
++.\}
++..
++.\"
++.\" NS Dl macro - display (one line) literal
++.de Dl
++'ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i
++.in \\n(.iu+\\n(Dsu
++.ie \\n(aC==0 \{\
++.	ie \\n(.$==0 \{\
++.		tm Usage: .Dl argument ... (#\\n(.c)
++.	\}
++.	el \{\
++.		ds mN Dl
++.               ds A1 \\$1
++.               ds A2 \\$2
++.               ds A3 \\$3
++.               ds A4 \\$4
++.               ds A5 \\$5
++.               ds A6 \\$6
++.               ds A7 \\$7
++.               ds A8 \\$8
++.               ds A9 \\$9
++.		nr fV \\n(.$
++.		fV
++.		Li
++.	\}
++.\}
++.el \{\
++.	tm Usage: .Dl not callable by other macros (#\\n(.c)
++.\}
++.in \\n(.iu-\\n(Dsu
++..
++.\"
++.\" NS D1 macro - display (one line)
++.de D1
++'ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i
++.in \\n(.iu+\\n(Dsu
++.ie \\n(aC==0 \{\
++.	ie \\n(.$==0 \{\
++.		tm Usage: .D1 argument ... (#\\n(.c)
++.	\}
++.	el \{\
++.		ds mN D1
++.               ds A1 \\$1
++.               ds A2 \\$2
++.               ds A3 \\$3
++.               ds A4 \\$4
++.               ds A5 \\$5
++.               ds A6 \\$6
++.               ds A7 \\$7
++.               ds A8 \\$8
++.               ds A9 \\$9
++.		nr fV \\n(.$
++.		fV
++.		nr aP \\n(aP+1
++.		ie \\n(C\\n(aP==1 .\\*(A\\n(aP
++.		el .No
++.	\}
++.\}
++.el \{\
++.	tm Usage: .D1 not callable by other macros (#\\n(.c)
++.\}
++.in \\n(.iu-\\n(Dsu
++..
++.\" NS Ex macro - DEFUNCT
++.de Ex
++.tm Ex defunct, Use .D1: \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\"
++.\" NS Ex macro - DEFUNCT
++.de Ex
++.tm Ex defunct, Use .D1: \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++..
++.\"
++.\" NS Vt macro - Variable type (for forcing old style variable declarations)
++.\" this is not done in the same manner as .Ot for fortrash - clean up later
++.de Vt
++.\" if a function declaration was the last thing given, want vertical space
++.if \\n(fD>0 \{\
++.	Pp
++.	nr fD 0
++.\}
++.\"	if a subroutine was the last thing given, want vertical space
++.if \\n(fZ>0 \{\
++.	ie \\n(fX==0 \{\
++.		Pp
++.		rs
++.	\}
++.	el .br
++.\}
++.nr fX \\n(fX+1
++.nr cF \\n(.f
++.nr cZ \\n(.s
++\\*(fT\&\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++.ie \\n(oT==0 .br
++.el \&\ \&
++.ft \\n(cF
++.fs \\n(cZ
++..
++.\"
++.\" NS Ft macro - Function type
++.nr fZ 0
++.de Ft
++.if \\n(nS>0 \{\
++.	if \\n(fZ>0 \{\
++.		Pp
++.		nr fD 0
++.		nr fX 0
++.	\}
++.	if \\n(fD>0 \{\
++.		Pp
++.		nr fD 0
++.		nr fX 0
++.	\}
++.	if \\n(fX>0 \{\
++.		Pp
++.		nr fX 0
++.	\}
++.	nr fY 1
++.\}
++.nr cF \\n(.f
++.nr cZ \\n(.s
++\&\\*(fT\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++.ft \\n(cF
++.fs \\n(cZ
++.\" .br
++..
++.\"
++.\" NS Ot macro - Old Function type (fortran - no newline)
++.\" Ns oT register
++.nr oT 0
++.de Ot
++.nr oT 1
++.if \\n(nS>0 \{\
++.	if \\n(fZ>0 \{\
++.		Pp
++.		nr fD 0
++.		nr fX 0
++.	\}
++.	if \\n(fD>0 \{\
++.		Pp
++.		nr fD 0
++.		nr fX 0
++.	\}
++.	if \\n(fX>0 \{\
++.		Pp
++.		nr fX 0
++.	\}
++.	nr fY 1
++.\}
++.if \\n(.$==4 .as b1 \&\\*(fT\&\\$1 \\$2 \\$3 \\$4
++.if \\n(.$==3 .as b1 \&\\*(fT\&\\$1 \\$2 \\$3
++.if \\n(.$==2 .as b1 \&\\*(fT\&\\$1 \\$2
++.if \\n(.$==1 .as b1 \&\\*(fT\&\\$1
++.as b1 \&\ \fP
++..
++.\"
++.\" NS Fa macro - Function arguments
++.de Fa
++.if \\n(aC==0 \{\
++.       ie \\n(.$==0 .tm Usage: .Fa Function Arguments ... \\*(Pu (#\\n(.c)
++.       el \{\
++.		ds mN Fa
++.               ds A1 \\$1
++.               ds A2 \\$2
++.               ds A3 \\$3
++.               ds A4 \\$4
++.               ds A5 \\$5
++.               ds A6 \\$6
++.               ds A7 \\$7
++.               ds A8 \\$8
++.               ds A9 \\$9
++.		nr fV \\n(.$
++.		fV
++.	\}
++.\}
++.ie \\n(fC>0 \{\
++.	fC
++.\}
++.el \{\
++.	if \\n(aC>\\n(aP \{\
++.		as b1 \\*(fA
++.		nr aP \\n(aP+1
++.		nr cF \\n(.f
++.		nr cZ \\n(.s
++.		nR
++.		if \\n(nS>0 \{\
++.			if \\n(fZ>0 .br
++.		\}
++.	\}
++.\}
++..
++.\" NS fC macro - interal .Fa for .FO and .Fc
++.de fC
++.ie \\n(aC>\\n(aP \{\
++.	nr aP \\n(aP+1
++.\" .	nr aa \\n(aP
++.\" .	if \\n(nS>0 \{\
++.		ds Fb
++.		nr fB 0
++.		nr Fb 0
++.		fB \\*(A\\n(aP
++.		if \\n(fB>1 \{\
++.			rm A\\n(aP
++.			rn Fb A\\n(aP
++.		\}
++.\" .	\}
++.	if \\n(fC>1 \{\
++.		as b1 \&\f\\n(cF\s\\n(cZ,\\*(S\\n(aP\\*(fA\\*(A\\n(aP\fP\s0
++.\" .		as b1 \&\\,\\*(S\\n(aP\fP\s0\\*(fA\\*(A\\n(aP\fP\s0
++.	\}
++.	if \\n(fC==1 \{\
++.		as b1 \&\|\\*(fA\\*(A\\n(aP\fP\s0
++.	\}
++.	nr fC \\n(fC+1
++.	fC
++.\}
++.el  \{\
++.	aY
++.\}
++..
++.\" NS Fn macro - functions
++.\" NS fY register - dick with old style function declarations (fortran)
++.\" NS fZ register - break a line when more than one function in a synopsis
++.\"
++.de Fn
++.if \\n(aC==0 \{\
++.	ie \\n(.$==0 .tm Usage: .Fn function_name function_arg(s) ... \\*(Pu (#\\n(.c)
++.	el \{\
++.		ds mN Fn
++.               ds A1 \\$1
++.               ds A2 \\$2
++.               ds A3 \\$3
++.               ds A4 \\$4
++.               ds A5 \\$5
++.               ds A6 \\$6
++.               ds A7 \\$7
++.               ds A8 \\$8
++.               ds A9 \\$9
++.		nr fV \\n(.$
++.		fV
++.	\}
++.\}
++.if \\n(nS>0 \{\
++.\" if there is/has been more than one subroutine declaration
++.	if \\n(fY==0 \{\
++.		if \\n(fZ>0 \{\
++.			Pp
++.			nr fX 0
++.			nr fD 0
++.		\}
++.	\}
++.	if \\n(fY==1 \{\
++.		br
++.		nr fX 0
++.		nr fD 0
++.		nr fY 0
++.	\}
++.	if \\n(fD>0 \{\
++.		Pp
++.		nr fX 0
++.	\}
++.	if \\n(fX>0 \{\
++.		Pp
++.		nr fD 0
++.	\}
++.	nr fZ \\n(fZ+1
++.	nr fY 0
++.	rs
++.	ie \\n(nS>1 .br
++.	el \{\
++.		if \\n(iS==0 \{\
++.			nr iS ((8)*\\n(fW)u
++.		\}
++.	\}
++.	in +\\n(iSu
++.	ti -\\n(iSu
++.	nr nS \\n(nS+1
++.\}
++.if \\n(aC>\\n(aP \{\
++.	nr aP \\n(aP+1
++.	nr cF \\n(.f
++.	nr cZ \\n(.s
++.	as b1 \\*(fN\\*(A\\n(aP\fP\s0\\*(lp
++.	ie \\n(aC>\\n(aP \{\
++.		as b1 \\*(fA
++.		nr aP \\n(aP+1
++.		f\\n(C\\n(aP
++.	\}
++.	el \{\
++.		as b1 \|\\*(rp
++.		aZ
++.	\}
++.	if \\n(nS>0 \{\
++. 		in -\\n(iSu
++.	\}
++.\}
++..
++.\"
++.\" NS f1 macro - class switch
++.\" NS f2 macro - handle function arguments
++.\" NS f3 macro - punctuation
++.\" NS f4 macro - write out function
++.de f1
++.as b1 \\*(rp\f\\n(cF\s\\n(cZ
++.\\*(A\\n(aP
++..
++.de f2
++.if \\n(nS>0 \{\
++.	ds Fb
++.	nr fB 0
++.	nr Fb 0
++.	fB \\*(A\\n(aP
++.	if \\n(fB>1 \{\
++.		rm A\\n(aP
++.		rn Fb A\\n(aP
++.	\}
++.\}
++.as b1 \\*(A\\n(aP
++.ie \\n(aC>\\n(aP \{\
++.	nr aa \\n(aP
++.	nr aP \\n(aP+1
++.	if \\n(C\\n(aP==2 \{\
++.		as b1 \&\|\f\\n(cF\s\\n(cZ,\\*(S\\n(aa\fP\s0\|
++.	\}
++.	f\\n(C\\n(aP
++.\}
++.el  \{\
++.	as b1 \\*(rp\f\\n(cF\s\\n(cZ
++.	aZ
++.\}
++..
++.de f3
++.as b1 \\*(rp\f\\n(cF\s\\n(cZ\\*(A\\n(aP
++.ie \\n(aC>\\n(aP \{\
++.	No
++.\}
++.el .aZ
++..
++.de f4
++.as b1 \\*(rp\f\\n(cF\s\\n(cZ\\*(S\\n(aP\\*(A\\n(aP
++.ie \\n(aC>\\n(aP \{\
++.	nr aP \\n(aP+1
++.	No
++.\}
++.el .aZ
++..
++.de Fo
++.hy 0
++.if \\n(aC==0 \{\
++.	ie \\n(.$==0 .tm Usage: .Fo function_name
++.	el \{\
++.		ds mN Fo
++.               ds A1 \\$1
++.               ds A2 \\$2
++.               ds A3 \\$3
++.               ds A4 \\$4
++.               ds A5 \\$5
++.               ds A6 \\$6
++.               ds A7 \\$7
++.               ds A8 \\$8
++.               ds A9 \\$9
++.		nr fV \\n(.$
++.		fV
++.	\}
++.\}
++.if \\n(nS>0 \{\
++.\" if there is/has been more than one subroutine declaration
++.	if \\n(fY==0 \{\
++.		if \\n(fZ>0 \{\
++.			Pp
++.			nr fX 0
++.			nr fD 0
++.		\}
++.	\}
++.	if \\n(fY==1 \{\
++.		br
++.		nr fX 0
++.		nr fD 0
++.		nr fY 0
++.	\}
++.	if \\n(fD>0 \{\
++.		Pp
++.		nr fX 0
++.	\}
++.	if \\n(fX>0 \{\
++.		Pp
++.		nr fD 0
++.	\}
++.	nr fZ \\n(fZ+1
++.	nr fY 0
++.	rs
++.	ie \\n(nS>1 .br
++.	el \{\
++.		if \\n(iS==0 \{\
++.			nr iS ((8)*\\n(fW)u
++.		\}
++.	\}
++.	in +\\n(iSu
++.	ti -\\n(iSu
++.	nr nS \\n(nS+1
++.\}
++.if \\n(aC>\\n(aP \{\
++.	nr oM \\n(oM+1
++.	nr fC 1
++.	nr aP \\n(aP+1
++.	nr cF \\n(.f
++.	nr cZ \\n(.s
++.	as b1 \\*(fN\\*(A\\n(aP\fP\s0\\*(lp
++.	aY
++.\}
++..
++.de Fc
++.if \\n(aC==0 \{\
++.	if \\n(.$>0 \{\
++.		ds mN Fo
++.               ds A1 \\$1
++.               ds A2 \\$2
++.               ds A3 \\$3
++.               ds A4 \\$4
++.               ds A5 \\$5
++.               ds A6 \\$6
++.               ds A7 \\$7
++.               ds A8 \\$8
++.               ds A9 \\$9
++.		nr fV \\n(.$
++.		fV
++.	\}
++.\}
++.nr fC 0
++.nr oM \\n(oM-1
++.as b1 \|\\*(rp
++.ie \\n(aC>\\n(aP \{\
++.	nr aP \\n(aP+1
++.	\\*(A\\n(aP
++.\}
++.el \{\
++.	aZ
++.\}
++.if \\n(nS>0 \{\
++.	in -\\n(iSu
++.\}
++.hy
++..
++.\" NS fb macro - if SYNOPSIS, set hard space inbetween function args
++.\" NS fb register - count of words in a function argument
++.\" NS Fb register - counter
++.\" NS Fb string - temporary string
++.de fB
++.\" .tm fB==\\n(fB, Fb==\\n(Fb, 1==\\$1 2==\\$2 3==\\$3 4==\\$4 5==\\$5 6==\\$6
++.if \\n(fB==0 \{\
++.	nr fB \\n(.$
++.	nr Fb 0
++.	ds Fb
++.\}
++.nr Fb \\n(Fb+1
++.as Fb \&\\$1
++.if \\n(Fb<\\n(fB \{\
++.	as Fb \&\\*(hV
++.	fB \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++.\}
++..
++.\" NS Fc - Function close - not implemented yet
++.\" NS Fo - Function open - not implemented yet
++.\"
++.\" Very crude references, stash all reference info into strings (usual
++.\" use of b1 buffer, then b1 contents copied to string of retrievable
++.\" naming convention), print out reference on .Re request and clean up.
++.\" Ordering very limited, no fancy citations, but can do articles, journals
++.\" and books - need to add several missing options (like city etc).
++.\" should be able to grab a refer entry, massage it a wee bit (prefix
++.\" a `.' to the %[A-Z]) and not worry (ha!)
++.\"
++.\" NS Rs macro - Reference Start
++.\" NS rS register - Reference Start flag
++.\" NS rS string - Reference Start buffer name for next save (of b1 buffer)
++.de Rs
++.nr rS 1
++.rC
++.if \\n(nA==1 .Pp
++.nr Kl 0
++..
++.\" NS Re macro - Reference End
++.de Re
++.rZ
++.rC
++.nr rS 0
++..
++.\" NS rC macro - reference cleanup
++.de rC
++.nr uK 0
++.nr jK 0
++.nr nK 0
++.nr oK 0
++.nr qK 0
++.nr rK 0
++.nr tK 0
++.nr vK 0
++.nr dK 0
++.nr pK 0
++.nr bK 0
++.ds rS
++.rm U1 U2 U3 U4 U5 U6 U7 U8
++.rm uK jK nK oK rK qK tK vK dK pK bK
++..
++.\" NS rZ macro - reference print
++.de rZ
++.if \\n(uK \{\&\\*(U1,
++.	nr aK 1
++.	if (\\n(uK>1 \{\
++.		aK
++.	\}
++.	nr Kl -\\n(uK
++.\}
++.if \\n(tK \{\
++.	nr Kl \\n(Kl-1
++.	if \\n(Kl==0 \{\
++.		ie (\\n(jK==1):(\\n(bK==1) \{\&\\*q\\*(tK\\*q.
++.		\}
++.		el \{\&\\*(eM\\*(tK\\*(nO.
++.		\}
++.	\}
++.	if \\n(Kl>0 \{\
++.		ie (\\n(jK==1):(\\n(bK==1) \{\&\\*q\\*(tK\\*q,
++.		\}
++.		el \{\&\\*(eM\\*(tK\\*(nO,
++.		\}
++.	\}
++.\}
++.if \\n(bK \{\
++.	nr Kl \\n(Kl-1
++.	if \\n(Kl==0 \&\\*(eM\\*(bK\\*(nO.
++.	if \\n(Kl>0 \&\\*(eM\\*(bK\\*(nO,
++.\}
++.if \\n(jK \{\
++.	nr Kl \\n(Kl-1
++.	if \\n(Kl==0 \&\\*(eM\\*(jK\\*(nO.
++.	if \\n(Kl>0 \&\\*(eM\\*(jK\\*(nO,
++.\}
++.if \\n(rK \{\
++.	nr Kl \\n(Kl-1
++.	if \\n(Kl==0 \&\\*(rK.
++.	if \\n(Kl>0 \&\\*(rK,
++.\}
++.if \\n(nK \{\
++.	nr Kl \\n(Kl-1
++.	if \\n(Kl==0 \&\\*(nK.
++.	if \\n(Kl>0 \&\\*(nK,
++.\}
++.if \\n(vK \{\
++.	nr Kl \\n(Kl-1
++.	if \\n(Kl==0 \&\\*(vK.
++.	if \\n(Kl>0 \&\\*(vK,
++.\}
++.if \\n(pK \{\
++.	nr Kl \\n(Kl-1
++.	if \\n(Kl==0 \&\\*(pK.
++.	if \\n(Kl>0 \&\\*(pK,
++.\}
++.if \\n(qK \{\
++.	nr Kl \\n(Kl-1
++.	if \\n(Kl==0 \&\\*(qK.
++.	if \\n(Kl>0 \&\\*(qK,
++.\}
++.if \\n(dK \{\
++.	nr Kl \\n(Kl-1
++.	if \\n(Kl==0 \&\\*(dK.
++.	if \\n(Kl>0 \&\\*(dK,
++.\}
++.if \\n(oK \{\
++.	nr Kl \\n(Kl-1
++.	if \\n(Kl==0 \&\\*(oK.
++.	if \\n(Kl>0 \&\\*(oK,
++.\}
++.if \\n(Kl>0 .tm unresolved reference problem
++..
++.\" NS aK macro - print out reference authors
++.de aK
++.nr aK \\n(aK+1
++.ie (\\n(uK-\\n(aK)==0 \{\&and \\*(U\\n(aK,
++.\}
++.el \{\&\\*(U\\n(aK,
++.	aK
++.\}
++..
++.\" NS %A macro - reference author(s)
++.\" NS uK register - reference author(s) counter
++.\" NS U[1-9] strings - reference author(s) names
++.de %A
++.if \\n(aC==0 \{\
++.       ie \\n(.$==0 .tm Usage: .%A Author_name (#\\n(.c)
++.	el \{\
++.		nr uK \\n(uK+1
++.		nr Kl \\n(Kl+1
++.		ds rS U\\n(uK
++.		ds mN %A
++.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++.	\}
++.\}
++.if \\n(aC>\\n(aP \{\
++.	nr aP \\n(aP+1
++.       nr cF \\n(.f
++.	nr cZ \\n(.s
++.       rR
++.\}
++..
++.\" NS %B macro - [reference] Book Name
++.\" NS bK string - Book Name
++.\" NS bK register - Book Name flag
++.de %B
++.if \\n(aC==0 \{\
++.       ie \\n(.$==0 .tm Usage: .%B Book Name (#\\n(.c)
++.       el \{\
++.		ds mN %B
++.		if \\n(rS>0 \{\
++.			nr bK \\n(bK+1
++.			nr Kl \\n(Kl+1
++.			ds rS bK
++.		\}
++.               ds A1 \\$1
++.               ds A2 \\$2
++.               ds A3 \\$3
++.               ds A4 \\$4
++.               ds A5 \\$5
++.               ds A6 \\$6
++.               ds A7 \\$7
++.               ds A8 \\$8
++.               ds A9 \\$9
++.		nr fV \\n(.$
++.		fV
++.	\}
++.\}
++.if \\n(aC>\\n(aP \{\
++.	nr aP \\n(aP+1
++.       nr cF \\n(.f
++.	nr cZ \\n(.s
++.	ie \\n(rS==0 \{\
++.		as b1 \&\\*(eM
++.		nR
++.	\}
++.	el .rR
++.\}
++..
++.\" NS %D macro - [reference] Date
++.\" NS dK string - Date String
++.\" NS dK register - Date flag
++.de %D
++.if \\n(aC==0 \{\
++.       ie \\n(.$==0 .tm Usage: .%D Date (#\\n(.c)
++.       el \{\
++.		ds mN %D
++.		nr dK \\n(dK+1
++.		nr Kl \\n(Kl+1
++.		ds rS dK
++.               ds A1 \\$1
++.               ds A2 \\$2
++.               ds A3 \\$3
++.               ds A4 \\$4
++.               ds A5 \\$5
++.               ds A6 \\$6
++.               ds A7 \\$7
++.               ds A8 \\$8
++.               ds A9 \\$9
++.		nr fV \\n(.$
++.		fV
++.	\}
++.\}
++.if \\n(aC>\\n(aP \{\
++.	nr aP \\n(aP+1
++.       nr cF \\n(.f
++.	nr cZ \\n(.s
++.       rR
++.\}
++..
++.\" NS %J macro - [reference] Journal Name
++.\" NS jK register - [reference] Journal Name flag
++.\" NS jK string - [reference] Journal Name
++.de %J
++.if \\n(aC==0 \{\
++.       ie \\n(.$==0 .tm Usage: .%J Journal Name (#\\n(.c)
++.       el \{\
++.		ds mN %J
++.		nr jK \\n(jK+1
++.		ds rS jK
++.		nr Kl \\n(Kl+1
++.               ds A1 \\$1
++.               ds A2 \\$2
++.               ds A3 \\$3
++.               ds A4 \\$4
++.               ds A5 \\$5
++.               ds A6 \\$6
++.               ds A7 \\$7
++.               ds A8 \\$8
++.               ds A9 \\$9
++.		nr fV \\n(.$
++.		fV
++.	\}
++.\}
++.if \\n(aC>\\n(aP \{\
++.	nr aP \\n(aP+1
++.       nr cF \\n(.f
++.	nr cZ \\n(.s
++.       rR
++.\}
++..
++.\" NS %N macro - [reference] issue number
++.\" NS nK register - [reference] issue number flag
++.\" NS nK string - [reference] issue number
++.de %N
++.if \\n(aC==0 \{\
++.       ie \\n(.$==0 .tm Usage: .%N issue number (#\\n(.c)
++.	el \{\
++.		nr nK \\n(nK+1
++.		nr Kl \\n(Kl+1
++.		ds rS nK
++.		ds mN %N
++.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++.	\}
++.\}
++.if \\n(aC>\\n(aP \{\
++.	nr aP \\n(aP+1
++.       nr cF \\n(.f
++.	nr cZ \\n(.s
++.       rR
++.\}
++..
++.\" NS %O macro - [reference] optional information
++.\" NS oK register - [reference] optional information flag
++.\" NS oK string - [reference] optional information
++.de %O
++.if \\n(aC==0 \{\
++.       ie \\n(.$==0 .tm Usage: .%O optional information ... \\*(Pu (#\\n(.c)
++.       el \{\
++.		ds mN %O
++.		nr oK \\n(oK+1
++.		nr Kl \\n(Kl+1
++.		ds rS oK
++.               ds A1 \\$1
++.               ds A2 \\$2
++.               ds A3 \\$3
++.               ds A4 \\$4
++.               ds A5 \\$5
++.               ds A6 \\$6
++.               ds A7 \\$7
++.               ds A8 \\$8
++.               ds A9 \\$9
++.		nr fV \\n(.$
++.		fV
++.	\}
++.\}
++.if \\n(aC>\\n(aP \{\
++.	nr aP \\n(aP+1
++.       nr cF \\n(.f
++.	nr cZ \\n(.s
++.       rR
++.\}
++..
++.\" NS %P macro - [reference] page numbers
++.\" NS pK register - [reference] page number flag
++.\" NS pK string - [reference] page number
++.de %P
++.if \\n(aC==0 \{\
++.       ie \\n(.$==0 .tm Usage: .%P page numbers ... \\*(Pu (#\\n(.c)
++.       el \{\
++.		ds mN %P
++.		nr pK \\n(pK+1
++.		nr Kl \\n(Kl+1
++.		ds rS pK
++.               ds A1 \\$1
++.               ds A2 \\$2
++.               ds A3 \\$3
++.               ds A4 \\$4
++.               ds A5 \\$5
++.               ds A6 \\$6
++.               ds A7 \\$7
++.               ds A8 \\$8
++.               ds A9 \\$9
++.		nr fV \\n(.$
++.		fV
++.	\}
++.\}
++.if \\n(aC>\\n(aP \{\
++.	nr aP \\n(aP+1
++.       nr cF \\n(.f
++.	nr cZ \\n(.s
++.       rR
++.\}
++..
++.\" NS %Q macro - Corporate or Foreign Author
++.\" NS qK string - Corporate or Foreign Author
++.\" NS qK register - Corporate or Foreign Author flag
++.de %Q
++.if \\n(aC==0 \{\
++.       ie \\n(.$==0 .tm Usage: .%Q Corporate or Foreign Author (#\\n(.c)
++.       el \{\
++.		ds mN %Q
++.		nr qK \\n(qK+1
++.		nr Kl \\n(Kl+1
++.		ds rS qK
++.               ds A1 \\$1
++.               ds A2 \\$2
++.               ds A3 \\$3
++.               ds A4 \\$4
++.               ds A5 \\$5
++.               ds A6 \\$6
++.               ds A7 \\$7
++.               ds A8 \\$8
++.               ds A9 \\$9
++.		nr fV \\n(.$
++.		fV
++.	\}
++.\}
++.if \\n(aC>\\n(aP \{\
++.	nr aP \\n(aP+1
++.       nr cF \\n(.f
++.	nr cZ \\n(.s
++.       rR
++.\}
++..
++.\" NS %R macro - [reference] report name
++.\" NS rK string - [reference] report name
++.\" NS rK register - [reference] report flag
++.de %R
++.if \\n(aC==0 \{\
++.       ie \\n(.$==0 .tm Usage: .%R reference report (#\\n(.c)
++.       el \{\
++.		ds mN %R
++.		nr rK \\n(rK+1
++.		nr Kl \\n(Kl+1
++.		ds rS rK
++.               ds A1 \\$1
++.               ds A2 \\$2
++.               ds A3 \\$3
++.               ds A4 \\$4
++.               ds A5 \\$5
++.               ds A6 \\$6
++.               ds A7 \\$7
++.               ds A8 \\$8
++.               ds A9 \\$9
++.		nr fV \\n(.$
++.		fV
++.	\}
++.\}
++.if \\n(aC>\\n(aP \{\
++.	nr aP \\n(aP+1
++.       nr cF \\n(.f
++.	nr cZ \\n(.s
++.       rR
++.\}
++..
++.\" NS %T macro - reference title
++.\" NS tK string - reference title
++.\" NS tK register - reference title flag
++.de %T
++.if \\n(aC==0 \{\
++.       ie \\n(.$==0 .tm Usage: .%T (#\\n(.c)
++.       el \{\
++.		ds mN %T
++.		if \\n(rS>0 \{\
++.			nr tK \\n(tK+1
++.			nr Kl \\n(Kl+1
++.			ds rS tK
++.		\}
++.               ds A1 \\$1
++.               ds A2 \\$2
++.               ds A3 \\$3
++.               ds A4 \\$4
++.               ds A5 \\$5
++.               ds A6 \\$6
++.               ds A7 \\$7
++.               ds A8 \\$8
++.               ds A9 \\$9
++.		nr fV \\n(.$
++.		fV
++.	\}
++.\}
++.if \\n(aC>\\n(aP \{\
++.\" .	ie \\n(jS==1 \{\
++.\" .		nr cF \\n(.f
++.\" .		nr cZ \\n(.s
++.\" .		ds qL \&\\*(Lq\\*(rA
++.\" .		ds qR \&\\*(Rq\f\\n(cF\s\\n(cZ
++.\" .		En \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++.\" .	\}
++.\" .	el \{\
++.		nr aP \\n(aP+1
++.		nr cF \\n(.f
++.		nr cZ \\n(.s
++.		ie \\n(rS==0 \{\
++.			as b1 \&\\*(eM
++.			nR
++.		\}
++.		el .rR
++.\" .	\}
++.\}
++..
++.\" NS %V macro - reference volume
++.\" NS vK string - reference volume
++.\" NS vK register - reference volume flag
++.de %V
++.if \\n(aC==0 \{\
++.       ie \\n(.$==0 .tm Usage: .%V Volume , ... \\*(Pu (#\\n(.c)
++.	el \{\
++.		ds mN %V
++.		nr vK \\n(vK+1
++.		nr Kl \\n(Kl+1
++.		ds rS vK
++.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++.	\}
++.\}
++.if \\n(aC>\\n(aP \{\
++.	nr aP \\n(aP+1
++.       nr cF \\n(.f
++.	nr cZ \\n(.s
++.       rR
++.\}
++..
++.\" NS rR macro - reference recursion routine
++.\" NS jM local register
++.\" NS jN local register
++.de rR
++.hy 0
++.nr jM \\n(C\\n(aP
++.ie \\n(jM==1 \{\
++.\" .	as b1 \&\f\\n(cF\s\\n(cZ
++.	ie "\\*(A\\n(aP"Tn" \{\
++.		nN
++.	\}
++.	el \{\
++.		if \\n(aC>8 .tm Usage: \\*(mN - maximum 8 arguments (#\\n(.c)
++.		aI rR 1
++.		\\*(A\\n(aP
++.	\}
++.\}
++.el \{\
++.	nr jN \\n(aP
++.	ie \\n(jM==2 .as b1 \&\\*(A\\n(aP
++.	el .as b1 \&\\*(A\\n(aP
++.\" .	el .as b1 \&\f\\n(cF\s\\n(cZ\\*(A\\n(aP\fP\s0
++.	ie \\n(aC==\\n(aP \{\
++.\" .		as b1 \&\f\\n(cF\s\\n(cZ
++.		rD
++.	\}
++.	el \{\
++.		nr aP \\n(aP+1
++.		as b1 \&\\*(S\\n(jN
++.		rR
++.	\}
++.\}
++.rr jM jN
++..
++.\" NS rD macro - save b1 buffer in to appropriate name
++.de rD
++.as \\*(rS \\*(b1
++.ds b1
++.ds rS
++.aY
++..
++.\" NS Hf macro - source include header files.
++.de Hf
++.Pp
++File:
++.Pa \\$1
++.Pp
++.nr cF \\n(.f
++.nr cZ \\n(.s
++.ie t \{\
++\&\\*(lI
++.br
++.ta +9n 18n 27n 36n 45n 54n 63n 72n
++.\}
++.el \{\
++.ta +8n 16n 24n 32n 40n 48n 56n 64n 72n
++.\}
++.nf
++.so  \\$1
++.fi
++.ft \\n(cF
++.fz \\n(cZ
++.Pp
++..
++.\" NS An macro - author name
++.\" NS aN register
++.nr aN 0
++.de An
++.if \\n(nY==1 \{\
++.	ie \\n(aN==1 \{\
++.		br
++.	\}
++.	el \{\
++.		nr aN 1
++.	\}
++.\}
++.if \\n(aC==0 \{\
++.       ie \\n(.$==0 .tm Usage: .An author_name ... \\*(Pu (#\\n(.c)
++.	el \{\
++.		ds mN An
++.		aV \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
++.	\}
++.\}
++.if \\n(aC>\\n(aP \{\
++.	nr aP \\n(aP+1
++.       nr cF \\n(.f
++.	nr cZ \\n(.s
++.       nR
++.\}
++..
++.\" NS Sf macro -defunct
++.de Sf
++.tm .Sf defunct, use prefix or Ns
++..
++.ds rV "function returns the value 0 if successful; otherwise the value -1 is returned and the global variable \\*(vAerrno\fP is set to indicate the error.
++.\" Ns Rv macro - return values
++.\" Ns rV string - standard return message
++.de Rv
++.ie \\n(.$==0 \{\
++.tm Usage: .Rv [-std] (#\\n(.c)
++.\}
++.el \{\
++.	ds mN Rv
++.\" .	nr aP 0
++.\" .	nr lR \\n(lR+1
++.\" .	ds A1 \\$2
++.\" .	ds A2 \\$3
++.\" .	ds A3 \\$4
++.\" .	ds A4 \\$5
++.\" .	ds A5 \\$6
++.\" .	ds A6 \\$7
++.\" .	ds A7 \\$8
++.\" .	ds A8 \\$9
++.\" .	nr fV \\n(.$-1
++.	if "\\$1"-std" \{\
++.	nr cH \\*(cH
++.	if (\\n(cH<2):(\\n(cH>3) .tm Usage: .Rv -std sections 2 and 3 only
++.		br
++\&The
++.Fn \\$2
++\&\\*(rV
++.	\}
++.\}
++..
+--- groff-1.18.1.1.orig/tmac/Makefile.sub
++++ groff-1.18.1.1/tmac/Makefile.sub
+@@ -25,15 +25,19 @@
+   html.tmac www.tmac \
+   eqnrc \
+   troffrc troffrc-end \
+-  hyphen.us
++  hyphen.us \
++  andocj.tmac \
++  euc-jp.tmac \
++  gb.tmac big5.tmac
+ SPECIALFILES=an.tmac man.tmac s.tmac ms.tmac
+-STRIPFILES=e.tmac doc.tmac doc-old.tmac
+-MDOCFILES=doc-common doc-ditroff doc-nroff doc-syms
++STRIPFILES=e.tmac doc.tmac doc-old.tmac docj.tmac
++MDOCFILES=doc-common doc-ditroff doc-nroff doc-syms docj-ditroff docj-nroff
+ mdocdir=$(tmacdir)/mdoc
+ CLEANADD=\
+   stamp-wrap stamp-sed *-wrap man.tmac-sed ms.tmac-sed \
+   stamp-strip e.tmac-s doc.tmac-s doc-old.tmac-s \
+-  doc-common-s doc-ditroff-s doc-nroff-s doc-syms-s mdoc.local-s
++  doc-common-s doc-ditroff-s doc-nroff-s doc-syms-s mdoc.local-s \
++  docj.tmac-s docj-ditroff-s docj-nroff-s
+ tmac_s_prefix=
+ tmac_an_prefix=
+ tmac_wrap=
+--- groff-1.18.1.1.orig/tmac/euc-jp.tmac
++++ groff-1.18.1.1/tmac/euc-jp.tmac
+@@ -0,0 +1,7 @@
++.\" euc-jp.tmac
++.\"
++.cflags 256 ,:;>}
++.cflags 256 ¡¢¡£¡¤¡¥¡¦¡§¡¨¡©¡ª¡Ë¡Í¡Ï¡Ñ¡×¡Ù¡Û¤¡¤£¤¥¤§¤©¤Ã¤ã¤å¤ç¡¼
++.cflags 256 ¥¡¥£¥¥¥§¥©¥Ã¥ã¥å¥ç
++.cflags 512 ¡Ê¡Ì¡Î¡Ð¡Ö¡Ø¡Ú
++.hc ¡¾
+--- groff-1.18.1.1.orig/tmac/big5.tmac
++++ groff-1.18.1.1/tmac/big5.tmac
+@@ -0,0 +1,15 @@
++.\" Kinsoku table for the BIG5 encoding of Chinese, recoded from
++.\" kinsoku.el in Emacs 22.0.50.
++.\" Needs review by native zh_TW speaker.
++.\"
++.cflags 256 ¡B¡C¡A¡D¡G¡F¡H¡I¡Ã¡Ä
++.cflags 256 ¡²Éi¡X¡þ¡U¡L¡¦¡¨¡^
++.cflags 256 ¡f¡b¡r¡n¡v¡z¡j¡Ñ¡×¡Õ¡Ø¡Û¡ñ¢X
++.cflags 256 ¡½¡µ¡¶¡¾¡¿¡°¢E¡÷¡ö¡ô¡ã
++.cflags 512 ¡Ö¡Ù¡ï¡ð¢X¢C¡ì
++.cflags 512 ÛÖ¶yÅV¡D¡¶¡ù£H¢}
++.\"
++.\" http://tcl.apache.org/sources/tcl/tools/encoding/big5.txt lists U+FF0D
++.\" as FULLWIDTH HYPHEN-MINUS. Is this correct?
++.\"
++.hc ¡Ð
+--- groff-1.18.1.1.orig/tmac/andocj.tmac
++++ groff-1.18.1.1/tmac/andocj.tmac
+@@ -0,0 +1,12 @@
++.\" Load either tmac.an or tmac.doc.
++.if !\n(.g .ab These macros require groff.
++.de Dd
++.rm Dd
++.do mso tmac.docj
++\\*(Dd\\
++..
++.de TH
++.rm TH
++.do mso tmac.an
++\\*(TH\\
++..
+--- groff-1.18.1.1.orig/aclocal.m4
++++ groff-1.18.1.1/aclocal.m4
+@@ -356,6 +356,19 @@
+ AC_MSG_RESULT(no);AC_MSG_ERROR([header files do not support C++ (if you are using a version of gcc/g++ earlier than 2.5, you should install libg++)]))
+ AC_LANG_POP(C++)])dnl
+ dnl
++dnl Support Multibyte characters, such as Japanese Code (EUC-JP)
++dnl
++AC_DEFUN(GROFF_MULTIBYTE,
++[AC_MSG_CHECKING([whether to enable multibyte extension])
++AC_ARG_ENABLE(multibyte, [  --enable-multibyte  Enable multibyte extension],
++  multibyte=$enableval, multibyte=no)
++if test "x$multibyte" != "xno"; then
++  AC_DEFINE(ENABLE_MULTIBYTE, 1,
++    [Define if you want to use multibyte extension.])
++fi
++AC_MSG_RESULT([$multibyte])
++])dnl
++dnl
+ dnl
+ AC_DEFUN(GROFF_TMAC,
+ [AC_MSG_CHECKING([for prefix of system macro packages])
+@@ -415,6 +428,33 @@
+ AC_MSG_RESULT([$tmac_wrap])
+ AC_SUBST(tmac_wrap)])dnl
+ dnl
++dnl codeset.m4 from gettext, by Bruno Haible.
++dnl
++AC_DEFUN(GROFF_LANGINFO_CODESET,
++[AC_CACHE_CHECK([for nl_langinfo and CODESET], groff_cv_langinfo_codeset,
++    [AC_TRY_LINK([#include <langinfo.h>],
++      [char* cs = nl_langinfo(CODESET);],
++      groff_cv_langinfo_codeset=yes,
++      groff_cv_langinfo_codeset=no)
++    ])
++  if test $groff_cv_langinfo_codeset = yes; then
++    AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
++      [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
++  fi
++])dnl
++dnl
++dnl
++AC_DEFUN(GROFF_DVIFORMAT,
++[AC_MSG_CHECKING([japanese dvi file format])
++if test "x$dvi_format" != "xASCII"; then
++  DVIFORMAT=NTT
++else
++  DVIFORMAT=ASCII
++fi
++AC_MSG_RESULT([$DVIFORMAT])
++AC_SUBST(DVIFORMAT)
++])dnl
++dnl
+ dnl
+ AC_DEFUN(GROFF_G,
+ [AC_MSG_CHECKING([for existing troff installation])
+@@ -481,7 +521,7 @@
+  AC_DEFINE(IS_EBCDIC_HOST, 1,
+ 	   [Define if the host's encoding is EBCDIC.]),
+ groff_cv_ebcdic="no"
+- TTYDEVDIRS="font/devascii font/devlatin1"
++ TTYDEVDIRS="font/devascii font/devlatin1 font/devascii8 font/devnippon"
+  OTHERDEVDIRS="font/devlj4 font/devlbp"
+  AC_MSG_RESULT(no))
+ AC_SUBST(TTYDEVDIRS)
+--- groff-1.18.1.1.orig/configure.ac
++++ groff-1.18.1.1/configure.ac
+@@ -68,6 +68,9 @@
+ GROFF_G
+ GROFF_TMAC
+ GROFF_HTML_PROGRAMS
++GROFF_MULTIBYTE
++GROFF_DVIFORMAT
++GROFF_LANGINFO_CODESET
+ AC_CONFIG_FILES(stamp-h, [echo timestamp > stamp-h])
+ AC_CONFIG_FILES([Makefile doc/Makefile src/xditview/Imakefile])
+ AC_OUTPUT
+--- groff-1.18.1.1.orig/stamp-h
++++ groff-1.18.1.1/stamp-h
+@@ -0,0 +1 @@
++timestamp
+--- groff-1.18.1.1.orig/contrib/pic2graph/pic2graph.sh
++++ groff-1.18.1.1/contrib/pic2graph/pic2graph.sh
+@@ -32,7 +32,7 @@
+ # We don't have complete option coverage on eqn because this is primarily
+ # intended as a pic translator; we can live with eqn defaults. 
+ #
+-# $Id: pic2graph.sh,v 1.2 2002/07/17 04:55:46 wlemb Exp $
++# $Id: pic2graph.sh,v 1.5 2003/10/31 19:32:36 wlemb Exp $
+ #
+ groffpic_opts=""
+ gs_opts=""
+@@ -44,7 +44,7 @@
+ do
+     case $1 in
+     -unsafe)
+-	groffpic_opts="-U"
++	groffpic_opts="-U";;
+     -format)
+ 	format=$2
+ 	shift;;
+@@ -68,16 +68,34 @@
+     eqndelim="delim $eqndelim"
+ fi
+ 
++# create temporary directory
++tmp=
++for d in "$GROFF_TMPDIR" "$TMPDIR" "$TMP" "$TEMP" /tmp; do
++    test -z "$d" && continue
++
++    tmp=`(umask 077 && mktemp -d -q "$d/pic2graph-XXXXXX") 2> /dev/null` \
++    && test -n "$tmp" && test -d "$tmp" \
++    && break
++
++    tmp=$d/pic2graph$$-$RANDOM
++    (umask 077 && mkdir $tmp) 2> /dev/null \
++    && break
++done;
++if test -z "$tmp"; then
++    echo "$0: cannot create temporary directory" >&2
++    { (exit 1); exit 1; }
++fi
++
++trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 2 15 
++
+ # Here goes:
+ # 1. Wrap the input in dummy .PS/PE macros (and add possibly null .EQ/.EN)
+ # 2. Process through eqn and pic to emit troff markup.
+ # 3. Process through groff to emit Postscript.
+ # 4. Use convert(1) to crop the PostScript and turn it into a bitmap.
+-tmp=/usr/tmp/pic2graph-$$
+-trap "rm ${tmp}.*" 0 2 15 
+ (echo ".EQ"; echo $eqndelim; echo ".EN"; echo ".PS"; cat; echo ".PE") | \
+-       groff -e -p $groffpic_opts -Tps >${tmp}.ps \
+-       && convert -crop 0x0 $convert_opts ${tmp}.ps ${tmp}.${format} \
+-       && cat ${tmp}.${format}
++    groff -e -p $groffpic_opts -Tps -P-pletter > $tmp/pic2graph.ps \
++    && convert -crop 0x0 $convert_opts $tmp/pic2graph.ps $tmp/pic2graph.$format \
++    && cat $tmp/pic2graph.$format
+ 
+ # End
+--- groff-1.18.1.1.orig/contrib/mom/groff_mom.man
++++ groff-1.18.1.1/contrib/mom/groff_mom.man
+@@ -13,6 +13,10 @@
+ A copy of the Free Documentation License is included as a file called
+ FDL in the main directory of the groff source package.
+ ..
++.ig
++A copy of the GNU Free Documentation License is also available in this
++Debian package as /usr/share/doc/groff/copyright.
++..
+ .
+ .mso www.tmac
+ .
+--- groff-1.18.1.1.orig/contrib/groffer/groffer.sh
++++ groff-1.18.1.1/contrib/groffer/groffer.sh
+@@ -3228,17 +3228,12 @@
+   do
+     if is_not_empty "$d"; then
+       if obj d is_dir && obj d is_writable; then
+-        _TMP_DIR="${d}/${_PROGRAM_NAME}${_PROCESS_ID}";
+-        if obj _TMP_DIR is_dir; then
+-	  rm -f "${_TMP_DIR}"/*;
++        _TMP_DIR="$(mktemp -d "${d}/${_PROGRAM_NAME}.XXXXXX")"
++        if test $? = 0; then
+           break;
+         else
+-          mkdir "${_TMP_DIR}";
+-          if obj _TMP_DIR is_not_dir; then
+-            _TMP_DIR='';
+-	    continue;
+-          fi;
+-          break;
++          _TMP_DIR='';
++	  continue;
+   	fi;
+       fi;
+       if obj _TMP_DIR is_not_writable; then
+--- groff-1.18.1.1.orig/contrib/eqn2graph/eqn2graph.sh
++++ groff-1.18.1.1/contrib/eqn2graph/eqn2graph.sh
+@@ -32,7 +32,7 @@
+ #
+ # Thus, we pass -U to groff(1), and everything else to convert(1).
+ #
+-# $Id: eqn2graph.sh,v 1.2 2002/07/17 04:55:46 wlemb Exp $
++# $Id: eqn2graph.sh,v 1.3 2003/10/28 07:46:23 wlemb Exp $
+ #
+ groff_opts=""
+ convert_opts=""
+@@ -58,17 +58,34 @@
+     shift
+ done
+ 
++# create temporary directory
++tmp=
++for d in "$GROFF_TMPDIR" "$TMPDIR" "$TMP" "$TEMP" /tmp; do
++    test -z "$d" && continue
++
++    tmp=`(umask 077 && mktemp -d -q "$d/eqn2graph-XXXXXX") 2> /dev/null` \
++    && test -n "$tmp" && test -d "$tmp" \
++    && break
++
++    tmp=$d/eqn2graph$$-$RANDOM
++    (umask 077 && mkdir $tmp) 2> /dev/null && break
++done;
++if test -z "$tmp"; then
++    echo "$0: cannot create temporary directory" >&2
++    { (exit 1); exit 1; }
++fi
++
++trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 2 15 
++
+ # Here goes:
+ # 1. Add .EQ/.EN.
+ # 2. Process through eqn(1) to emit troff markup.
+ # 3. Process through groff(1) to emit Postscript.
+ # 4. Use convert(1) to crop the Postscript and turn it into a bitmap.
+-tmp=/usr/tmp/eqn2graph-$$
+-trap "rm ${tmp}.*" 0 2 15 
+ read equation
+-(echo ".EQ"; echo 'delim $$'; echo ".EN"; echo '$'"${equation}"'$') | \
+-	groff -e $groff_opts -Tps >${tmp}.ps \
+-	&& convert -crop 0x0 $convert_opts ${tmp}.ps ${tmp}.${format} \
+-	&& cat ${tmp}.${format}
++(echo ".EQ"; echo 'delim $$'; echo ".EN"; echo '$'"$equation"'$') | \
++	groff -e $groff_opts -Tps -P-pletter > $tmp/eqn2graph.ps \
++	&& convert -crop 0x0 $convert_opts $tmp/eqn2graph.ps $tmp/eqn2graph.$format \
++	&& cat $tmp/eqn2graph.$format
+ 
+ # End
+--- groff-1.18.1.1.orig/configure
++++ groff-1.18.1.1/configure
+@@ -305,7 +305,7 @@
+ # include <unistd.h>
+ #endif"
+ 
+-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS groff_top_builddir CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX TTYDEVDIRS OTHERDEVDIRS LPR LP LPQ PSPRINT DVIPRINT PERLPATH YACC RANLIB ac_ct_RANLIB INSTALL_INFO INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S SH_SCRIPT_SED_CMD CPP EGREP LIBM LIBOBJS BROKEN_SPOOLER_FLAGS PAGE g sys_tmac_prefix tmac_wrap pnmcut pnmcrop pnmtopng gs psselect make_html make_install_html LTLIBOBJS'
++ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS groff_top_builddir CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX TTYDEVDIRS OTHERDEVDIRS LPR LP LPQ PSPRINT DVIPRINT PERLPATH YACC RANLIB ac_ct_RANLIB INSTALL_INFO INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S SH_SCRIPT_SED_CMD CPP EGREP LIBM LIBOBJS BROKEN_SPOOLER_FLAGS PAGE g sys_tmac_prefix tmac_wrap pnmcut pnmcrop pnmtopng gs psselect make_html make_install_html DVIFORMAT LTLIBOBJS'
+ ac_subst_files=''
+ 
+ # Initialize some variables set by options.
+@@ -841,6 +841,11 @@
+ 
+   cat <<\_ACEOF
+ 
++Optional Features:
++  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
++  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
++  --enable-multibyte  Enable multibyte extension
++
+ Some influential environment variables:
+   CC          C compiler command
+   CFLAGS      C compiler flags
+@@ -2530,7 +2535,7 @@
+   echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ groff_cv_ebcdic="no"
+- TTYDEVDIRS="font/devascii font/devlatin1"
++ TTYDEVDIRS="font/devascii font/devlatin1 font/devascii8 font/devnippon"
+  OTHERDEVDIRS="font/devlj4 font/devlbp"
+  echo "$as_me:$LINENO: result: no" >&5
+ echo "${ECHO_T}no" >&6
+@@ -5859,6 +5864,84 @@
+ esac
+ 
+ 
++echo "$as_me:$LINENO: checking whether to enable multibyte extension" >&5
++echo $ECHO_N "checking whether to enable multibyte extension... $ECHO_C" >&6
++# Check whether --enable-multibyte or --disable-multibyte was given.
++if test "${enable_multibyte+set}" = set; then
++  enableval="$enable_multibyte"
++  multibyte=$enableval
++else
++  multibyte=no
++fi;
++if test "x$multibyte" != "xno"; then
++
++cat >>confdefs.h <<\_ACEOF
++#define ENABLE_MULTIBYTE 1
++_ACEOF
++
++fi
++echo "$as_me:$LINENO: result: $multibyte" >&5
++echo "${ECHO_T}$multibyte" >&6
++
++echo "$as_me:$LINENO: checking japanese dvi file format" >&5
++echo $ECHO_N "checking japanese dvi file format... $ECHO_C" >&6
++if test "x$dvi_format" != "xASCII"; then
++  DVIFORMAT=NTT
++else
++  DVIFORMAT=ASCII
++fi
++echo "$as_me:$LINENO: result: $DVIFORMAT" >&5
++echo "${ECHO_T}$DVIFORMAT" >&6
++
++
++echo "$as_me:$LINENO: checking for nl_langinfo and CODESET" >&5
++echo $ECHO_N "checking for nl_langinfo and CODESET... $ECHO_C" >&6
++if test "${groff_cv_langinfo_codeset+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++#include "confdefs.h"
++#include <langinfo.h>
++int
++main ()
++{
++char* cs = nl_langinfo(CODESET);
++  ;
++  return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
++  (eval $ac_link) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } &&
++         { ac_try='test -s conftest$ac_exeext'
++  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; }; then
++  groff_cv_langinfo_codeset=yes
++else
++  echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++groff_cv_langinfo_codeset=no
++fi
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++
++fi
++echo "$as_me:$LINENO: result: $groff_cv_langinfo_codeset" >&5
++echo "${ECHO_T}$groff_cv_langinfo_codeset" >&6
++  if test $groff_cv_langinfo_codeset = yes; then
++
++cat >>confdefs.h <<\_ACEOF
++#define HAVE_LANGINFO_CODESET 1
++_ACEOF
++
++  fi
++
+           ac_config_files="$ac_config_files stamp-h"
+ 
+                               ac_config_files="$ac_config_files Makefile doc/Makefile src/xditview/Imakefile"
+@@ -6497,6 +6580,7 @@
+ s, at psselect@,$psselect,;t t
+ s, at make_html@,$make_html,;t t
+ s, at make_install_html@,$make_install_html,;t t
++s, at DVIFORMAT@,$DVIFORMAT,;t t
+ s, at LTLIBOBJS@,$LTLIBOBJS,;t t
+ CEOF
+ 
+--- groff-1.18.1.1.orig/Makefile.in
++++ groff-1.18.1.1/Makefile.in
+@@ -136,7 +136,11 @@
+ # directory will be always added.
+ # `troffrc' and `troffrc-end' (and `eqnrc') are searched neither in the
+ # current nor in the home directory.
++ifeq (,$(extratmacdirs))
+ tmacpath=$(systemtmacdir):$(localtmacdir):$(tmacdir)
++else
++tmacpath=$(systemtmacdir):$(localtmacdir):$(tmacdir):$(extratmacdirs)
++endif
+ 
+ # `sys_tmac_prefix' is prefix (if any) for system macro packages.
+ sys_tmac_prefix=@sys_tmac_prefix@
+@@ -195,6 +199,9 @@
+ man7ext=7
+ man7dir=$(manroot)/man$(man7ext)
+ 
++# DVI file format.
++DVIFORMAT=@DVIFORMAT@
++
+ # The configure script checks whether all necessary utility programs for
+ # grohtml are available -- only then we can build the HTML documentation.
+ make_html=@make_html@
+@@ -261,6 +268,8 @@
+ # -DRETSIGTYPE=int		if signal handlers return int not void	
+ # -DIS_EBCDIC_HOST		if the host's encoding is EBCDIC
+ # -DPAGEA4			if the the printer's page size is A4
++# -DENABLE_MULTIBYTE		enable multibyte extension
++# -DHAVE_LANGINFO_CODESET	if you have nl_langinfo(CODESET)
+ DEFINES=@DEFS@
+ 
+ # Include
+@@ -395,7 +404,8 @@
+   "PERLPATH=$(PERLPATH)" \
+   "SH_SCRIPT_SED_CMD=$(SH_SCRIPT_SED_CMD)" \
+   "PURIFY=$(PURIFY)" \
+-  "PURIFYCCFLAGS=$(PURIFYCCFLAGS)"
++  "PURIFYCCFLAGS=$(PURIFYCCFLAGS)" \
++  "DVIFORMAT=$(DVIFORMAT)"
+ 
+ SHELL=/bin/sh
+ INCDIRS=src/include
+@@ -437,8 +447,10 @@
+   font/devhtml
+ ALLTTYDEVDIRS=\
+   font/devascii \
++  font/devascii8 \
+   font/devlatin1 \
+   font/devutf8 \
++  font/devnippon \
+   font/devcp1047
+ OTHERDIRS=\
+   man \
+@@ -483,7 +495,7 @@
+ 	fi
+ 
+ do=all
+-dodirs=$(ALLDIRS) dot
++dodirs=$(DISTDIRS) 
+ # Default target for subdir_Makefile
+ subdir=src/roff/troff
+ 
+--- groff-1.18.1.1.orig/TODO.jp
++++ groff-1.18.1.1/TODO.jp
+@@ -0,0 +1,19 @@
++TODO lists
++
++- configure
++    nl_langinfo()
++    iconv()
++
++- font/devdvi
++	G,M  -- NTT and/or ASCII
++- src/devices
++	grohtml
++	grodvi
++	grolbp
++	grolj4
++- src/xditview
++
++- command line option to specify input/output encoding
++- font code?
++	can we assume wchar code == font code?
++	[to simplify indexing]
+--- groff-1.18.1.1.orig/mdate.sh
++++ groff-1.18.1.1/mdate.sh
+@@ -2,41 +2,4 @@
+ 
+ # Print the modification date of $1 `nicely'.
+ 
+-# Don't want foreign dates.
+-
+-LANGUAGE=
+-LC_ALL=C; export LC_ALL
+-
+-
+-(date;
+-if ls -L /dev/null 1>/dev/null 2>&1; then ls -L -l $1; else ls -l $1; fi
+-) | awk '
+-BEGIN {
+-	full["Jan"] = "January"; number["Jan"] = 1;
+-	full["Feb"] = "February"; number["Feb"] = 2;
+-	full["Mar"] = "March"; number["Mar"] = 3;
+-	full["Apr"] = "April"; number["Apr"] = 4;
+-	full["May"] = "May"; number["May"] = 5;
+-	full["Jun"] = "June"; number["Jun"] = 6;
+-	full["Jul"] = "July"; number["Jul"] = 7;
+-	full["Aug"] = "August"; number["Aug"] = 8;
+-	full["Sep"] = "September"; number["Sep"] = 9;
+-	full["Oct"] = "October"; number["Oct"] = 10;
+-	full["Nov"] = "November"; number["Nov"] = 11;
+-	full["Dec"] = "December"; number["Dec"] = 12;
+-}
+-
+-NR == 1 {
+-	month = $2;
+-	year = $NF;
+-}
+-
+-NR == 2 {
+-	if ($(NF-1) ~ /:/) {
+-		if (number[$(NF-3)] > number[month])
+-			year--;
+-	}
+-	else
+-		year = $(NF-1);
+-	print $(NF-2), full[$(NF-3)], year
+-}'
++perl -MPOSIX -le 'print strftime("%d %B %Y", localtime((stat $ARGV[0])[9]))' $1
+--- groff-1.18.1.1.orig/man/groff_out.man
++++ groff-1.18.1.1/man/groff_out.man
+@@ -19,6 +19,10 @@
+ A copy of the Free Documentation License is included as a file called
+ FDL in the main directory of the groff source package.
+ ..
++.ig
++A copy of the GNU Free Documentation License is also available in this
++Debian package as /usr/share/doc/groff/copyright.
++..
+ .
+ .\" --------------------------------------------------------------------
+ .\" Setup
+--- groff-1.18.1.1.orig/man/groff_char.man
++++ groff-1.18.1.1/man/groff_char.man
+@@ -32,6 +32,10 @@
+ A copy of the Free Documentation License is included as a file called
+ FDL in the main directory of the groff source package.
+ ..
++.ig
++A copy of the GNU Free Documentation License is also available in this
++Debian package as /usr/share/doc/groff/copyright.
++..
+ .
+ .\" --------------------------------------------------------------------
+ .\" Setup Part 1
+--- groff-1.18.1.1.orig/man/groff_tmac.man
++++ groff-1.18.1.1/man/groff_tmac.man
+@@ -32,6 +32,10 @@
+ A copy of the Free Documentation License is included as a file called
+ FDL in the main directory of the groff source package.
+ ..
++.ig
++A copy of the GNU Free Documentation License is also available in this
++Debian package as /usr/share/doc/groff/copyright.
++..
+ .
+ .\" --------------------------------------------------------------------
+ .\" Setup
+--- groff-1.18.1.1.orig/man/roff.man
++++ groff-1.18.1.1/man/roff.man
+@@ -18,6 +18,10 @@
+ A copy of the Free Documentation License is included as a file called
+ FDL in the main directory of the groff source package.
+ ..
++.ig
++A copy of the GNU Free Documentation License is also available in this
++Debian package as /usr/share/doc/groff/copyright.
++..
+ .
+ .\" --------------------------------------------------------------------
+ .\" Setup
+--- groff-1.18.1.1.orig/man/ditroff.man
++++ groff-1.18.1.1/man/ditroff.man
+@@ -18,6 +18,10 @@
+ A copy of the Free Documentation License is included as a file called
+ FDL in the main directory of the groff source package.
+ ..
++.ig
++A copy of the GNU Free Documentation License is also available in this
++Debian package as /usr/share/doc/groff/copyright.
++..
+ .
+ .\" --------------------------------------------------------------------
+ .\" Setup
+--- groff-1.18.1.1.orig/man/groff_diff.man
++++ groff-1.18.1.1/man/groff_diff.man
+@@ -23,6 +23,10 @@
+ A copy of the Free Documentation License is included as a file called
+ FDL in the main directory of the groff source package.
+ ..
++.ig
++A copy of the GNU Free Documentation License is also available in this
++Debian package as /usr/share/doc/groff/copyright.
++..
+ .
+ .\" --------------------------------------------------------------------
+ .\" Setup
+--- groff-1.18.1.1.orig/man/groff.man
++++ groff-1.18.1.1/man/groff.man
+@@ -19,6 +19,10 @@
+ A copy of the Free Documentation License is included as a file called
+ FDL in the main directory of the groff source package.
+ ..
++.ig
++A copy of the GNU Free Documentation License is also available in this
++Debian package as /usr/share/doc/groff/copyright.
++..
+ .
+ .\" --------------------------------------------------------------------
+ .\" Setup




More information about the patches mailing list