diff -urN kterm-6.2.0/0README.ext.ja kterm-6.2.0.ext02/0README.ext.ja --- kterm-6.2.0/0README.ext.ja Thu Jan 1 09:00:00 1970 +++ kterm-6.2.0.ext02/0README.ext.ja Fri Apr 14 12:27:07 2000 @@ -0,0 +1,32 @@ +これは kterm-6.2.0 で JIS X 0213:2000 (第三水準、第四水準)の文字を +扱えるようにするためのパッチです。kterm への contribute としますの +で kterm 本体と同じ条件で配布してください。 + +JIS モードにおいては "ESC $ ( O" および "ESC $ ( P" を使用して、 +JIS X 0213 の一面および二面を呼び出して使用することができます。 +日本語 EUC モードおよび SJIS モードでは未定義の文字が現われた場 +合にその文字のみ JIS X 0213 の文字として扱います。 + +*-jisx0213.2000-1 および *-jisx0213.2000-2 のフォントを準備してご +利用ください。fontlist で指定する他に -fkO および -fkP で利用する +フォントを変更することができます。漢字フォントをロードする際に処 +理が止まるのが気になる方は X のオプションに -deferglyphs 16 を指 +定することをお勧めします。 + +このパッチには以前に京大の安岡さんが fj.sources に投稿された以下 +の内容がそのまま含まれています。 + +>From: yasuoka@kudpc.kyoto-u.ac.jp (Koichi Yasuoka) +>Newsgroups: fj.sources,fj.kanji +>Subject: Quickhack for kterm-6.1.0 +>Date: 1 May 1995 17:29:25 +0900 +>Message-ID: <3o2655$3up@kudpc.kudpc.kyoto-u.ac.jp> +> +> 京都大学大型計算機センターの安岡です。 +> +> kterm-6.1.0をQuickhackして「ESC $ @」と「ESC $ B」を見分けるよ +>うにして、ついでに「ESC & @ ESC $ B」と「ESC $ ( D」を表示できる +>ようにしてみました。これで"醗"と"醗"と"醱"の違いがわかるようにな +>りますし、正しく"康熙字典"と書けるようになります。 +-- +HANATAKA, Shinya diff -urN kterm-6.2.0/Imakefile kterm-6.2.0.ext02/Imakefile --- kterm-6.2.0/Imakefile Fri Jul 12 14:01:04 1996 +++ kterm-6.2.0.ext02/Imakefile Fri Apr 14 12:27:07 2000 @@ -48,11 +48,11 @@ #endif SRCS1 = button.c charproc.c cursor.c data.c input.c \ main.c menu.c misc.c screen.c scrollbar.c tabs.c \ - util.c VTPrsTbl.c \ + util.c VTPrsTbl.c kanji_map.c \ $(TEKSRCS) gset.c convert.c $(XIMSRCS) $(KINPUT2SRCS) OBJS1 = button.o charproc.o cursor.o data.o input.o \ main.o menu.o misc.o screen.o scrollbar.o tabs.o \ - util.o VTPrsTbl.o \ + util.o VTPrsTbl.o kanji_map.o \ $(TEKOBJS) gset.o convert.o $(XIMOBJS) $(KINPUT2OBJS) SRCS = $(SRCS1) OBJS = $(OBJS1) @@ -77,7 +77,15 @@ SpecialCObjectRule(main,$(_NOOP_),$(MAIN_DEFINES)) SpecialCObjectRule(misc,$(_NOOP_),$(MISC_DEFINES)) -SpecialCObjectRule(charproc,$(_NOOP_),$(MISC_DEFINES)) +SpecialCObjectRule(charproc,kfontlist.c,$(MISC_DEFINES)) + +includes:: kfontlist.c + +kfontlist.c: kfontlist.m4 kfontlist.def + m4 kfontlist.m4 > kfontlist.c + +clean:: + $(RM) kfontlist.c #if InstallXtermSetUID SetUIDProgramTarget(kterm,$(OBJS1),$(DEPLIBS1),XkbClientLibs XawClientLibs,$(TERMCAPLIB) $(PTYLIB)) diff -urN kterm-6.2.0/KTerm.ad kterm-6.2.0.ext02/KTerm.ad --- kterm-6.2.0/KTerm.ad Sun Jun 23 17:00:22 1996 +++ kterm-6.2.0.ext02/KTerm.ad Fri Apr 14 12:27:07 2000 @@ -46,7 +46,7 @@ *vtMenu*statusline*Label: Enable Status Line *vtMenu*reversestatus*Label: Status Line Reverse Video *vtMenu*eucmode*Label: Japanese EUC Mode -*vtMenu*sjismode*Label: Shift-JIS Mode +*vtMenu*sjismode*Label: Shift_JIS Mode *vtMenu*openim*Label: Open Input Method *fontMenu.Label: VT Fonts @@ -123,3 +123,5 @@ *tek4014*font3: 6x13 *tek4014*fontSmall: 6x10 +*VT100*translations: #override Shiftspace: \ + begin-conversion(_JAPANESE_CONVERSION) diff -urN kterm-6.2.0/VTPrsTbl.c kterm-6.2.0.ext02/VTPrsTbl.c --- kterm-6.2.0/VTPrsTbl.c Sun Jun 23 17:00:23 1996 +++ kterm-6.2.0.ext02/VTPrsTbl.c Fri Apr 14 12:27:07 2000 @@ -1417,12 +1417,15 @@ /* $ % & ' */ #ifdef KTERM_MBCS CASE_MBCS, +CASE_ESC_IGNORE, +CASE_GSET_VERSION_STATE, +CASE_ESC_IGNORE, #else /* !KTERM_MBCS */ CASE_ESC_IGNORE, -#endif /* !KTERM_MBCS */ CASE_ESC_IGNORE, CASE_ESC_IGNORE, CASE_ESC_IGNORE, +#endif /* !KTERM_MBCS */ /* ( ) * + */ #ifdef KTERM CASE_SCS_STATE, @@ -2746,24 +2749,24 @@ #ifdef KTERM /* 0 1 2 3 */ CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, +CASE_ESC_IGNORE, +CASE_ESC_IGNORE, +CASE_ESC_IGNORE, /* 4 5 6 7 */ -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, +CASE_ESC_IGNORE, +CASE_ESC_IGNORE, +CASE_ESC_IGNORE, +CASE_ESC_IGNORE, /* 8 9 : ; */ -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, +CASE_ESC_IGNORE, +CASE_ESC_IGNORE, +CASE_ESC_IGNORE, +CASE_ESC_IGNORE, /* < = > ? */ -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, +CASE_ESC_IGNORE, +CASE_ESC_IGNORE, +CASE_ESC_IGNORE, +CASE_ESC_IGNORE, /* @ A B C */ CASE_GSETS, CASE_GSETS, @@ -2823,25 +2826,25 @@ CASE_GSETS, CASE_GSETS, CASE_GSETS, -CASE_GROUND_STATE, /* GSET('p') >= 0x40 (MBCS flag) */ +CASE_GSETS, /* p q r s */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, +CASE_GSETS, +CASE_GSETS, +CASE_GSETS, +CASE_GSETS, /* t u v w */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, +CASE_GSETS, +CASE_GSETS, +CASE_GSETS, +CASE_GSETS, /* x y z { */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, -CASE_GROUND_STATE, +CASE_GSETS, +CASE_GSETS, +CASE_GSETS, +CASE_GSETS, /* | } ~ DEL */ -CASE_GROUND_STATE, -CASE_GROUND_STATE, +CASE_GSETS, +CASE_GSETS, CASE_GROUND_STATE, /* empty character set */ CASE_GROUND_STATE, #else /* !KTERM */ @@ -3514,27 +3517,27 @@ CASE_GROUND_STATE, CASE_GROUND_STATE, /* @ A B C */ -CASE_GSETS, /* ESC-$-I-F */ -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, +CASE_GSETS, /* ESC-$-I-@ (JIS C 6226 1978) */ +CASE_GSETS, /* ESC-$-I-A (GB 2312 1980) */ +CASE_GSETS, /* ESC-$-I-B (JIS X 0208 1983) */ +CASE_GSETS, /* ESC-$-I-C (KS C 5601 1987) */ /* D E F G */ +CASE_GSETS, /* ESC-$-I-D (JIS X 0212 1999) */ CASE_GSETS, CASE_GSETS, -CASE_GSETS, -CASE_GSETS, +CASE_GSETS, /* ESC-$-I-G (CNS 11643 1992 1) */ /* H I J K */ -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, +CASE_GSETS, /* ESC-$-I-H (CNS 11643 1992 2) */ +CASE_GSETS, /* ESC-$-I-I (CNS 11643 1992 3) */ +CASE_GSETS, /* ESC-$-I-J (CNS 11643 1992 4) */ +CASE_GSETS, /* ESC-$-I-K (CNS 11643 1992 5) */ /* L M N O */ +CASE_GSETS, /* ESC-$-I-L (CNS 11643 1992 6) */ +CASE_GSETS, /* ESC-$-I-M (CNS 11643 1992 7) */ CASE_GSETS, -CASE_GSETS, -CASE_GSETS, -CASE_GSETS, +CASE_GSETS, /* ESC-$-I-O (JIS X 0213 2000 1) */ /* P Q R S */ -CASE_GSETS, +CASE_GSETS, /* ESC-$-I-P (JIS X 0213 2000 2) */ CASE_GSETS, CASE_GSETS, CASE_GSETS, @@ -3552,7 +3555,7 @@ CASE_GSETS, CASE_GSETS, CASE_GSETS, -CASE_GSETS, +CASE_GROUND_STATE, /* kterm internal use */ /* ` a b c */ CASE_GROUND_STATE, /* 3-byte character set */ CASE_GROUND_STATE, @@ -3589,6 +3592,329 @@ CASE_GROUND_STATE, CASE_GROUND_STATE, /* | } ~ DEL */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* 0x80 0x81 0x82 0x83 */ +CASE_IGNORE, +CASE_IGNORE, +CASE_IGNORE, +CASE_IGNORE, +/* 0x84 0x85 0x86 0x87 */ +CASE_IGNORE, +CASE_IGNORE, +CASE_IGNORE, +CASE_IGNORE, +/* 0x88 0x89 0x8a 0x8b */ +CASE_IGNORE, +CASE_IGNORE, +CASE_IGNORE, +CASE_IGNORE, +/* 0x8c 0x8d 0x8e 0x8f */ +CASE_IGNORE, +CASE_IGNORE, +CASE_IGNORE, +CASE_IGNORE, +/* 0x90 0x91 0x92 0x93 */ +CASE_IGNORE, +CASE_IGNORE, +CASE_IGNORE, +CASE_IGNORE, +/* 0x94 0x95 0x96 0x97 */ +CASE_IGNORE, +CASE_IGNORE, +CASE_IGNORE, +CASE_IGNORE, +/* 0x99 0x99 0x9a 0x9b */ +CASE_IGNORE, +CASE_IGNORE, +CASE_IGNORE, +CASE_IGNORE, +/* 0x9c 0x9d 0x9e 0x9f */ +CASE_IGNORE, +CASE_IGNORE, +CASE_IGNORE, +CASE_IGNORE, +/* nobreakspace exclamdown cent sterling */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* currency yen brokenbar section */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* diaeresis copyright ordfeminine guillemotleft */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* notsign hyphen registered macron */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* degree plusminus twosuperior threesuperior */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* acute mu paragraph periodcentered */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* cedilla onesuperior masculine guillemotright */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* onequarter onehalf threequarters questiondown */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* Agrave Aacute Acircumflex Atilde */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* Adiaeresis Aring AE Ccedilla */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* Egrave Eacute Ecircumflex Ediaeresis */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* Igrave Iacute Icircumflex Idiaeresis */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* Eth Ntilde Ograve Oacute */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* Ocircumflex Otilde Odiaeresis multiply */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* Ooblique Ugrave Uacute Ucircumflex */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* Udiaeresis Yacute Thorn ssharp */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* agrave aacute acircumflex atilde */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* adiaeresis aring ae ccedilla */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* egrave eacute ecircumflex ediaeresis */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* igrave iacute icircumflex idiaeresis */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* eth ntilde ograve oacute */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* ocircumflex otilde odiaeresis division */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* oslash ugrave uacute ucircumflex */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* udiaeresis yacute thorn ydiaeresis */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +}; + +Const int escversiontable[] = { +/* NUL SOH STX ETX */ +CASE_IGNORE, +CASE_IGNORE, +CASE_IGNORE, +CASE_IGNORE, +/* EOT ENQ ACK BEL */ +CASE_IGNORE, +CASE_IGNORE, +CASE_IGNORE, +CASE_BELL, +/* BS HT NL VT */ +CASE_BS, +CASE_TAB, +CASE_VMOT, +CASE_VMOT, +/* NP CR SO SI */ +CASE_VMOT, +CASE_CR, +CASE_SO, +CASE_SI, +/* DLE DC1 DC2 DC3 */ +CASE_IGNORE, +CASE_IGNORE, +CASE_IGNORE, +CASE_IGNORE, +/* DC4 NAK SYN ETB */ +CASE_IGNORE, +CASE_IGNORE, +CASE_IGNORE, +CASE_IGNORE, +/* CAN EM SUB ESC */ +CASE_IGNORE, +CASE_IGNORE, +CASE_IGNORE, +CASE_ESC, +/* FS GS RS US */ +CASE_IGNORE, +CASE_IGNORE, +CASE_IGNORE, +CASE_IGNORE, +/* SP ! " # */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* $ % & ' */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* ( ) * + */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* , - . / */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* 0 1 2 3 */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* 4 5 6 7 */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* 8 9 : ; */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* < = > ? */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* @ A B C */ +CASE_GSET_VERSION, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* D E F G */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* H I J K */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* L M N O */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* P Q R S */ +CASE_IGNORE_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* T U V W */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* X Y Z [ */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* \ ] ^ _ */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_IGNORE_STATE, +CASE_IGNORE_STATE, +/* ` a b c */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* d e f g */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* h i j k */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* l m n o */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* p q r s */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* t u v w */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* x y z { */ +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +CASE_GROUND_STATE, +/* | } ~ DEL */ CASE_GROUND_STATE, CASE_GROUND_STATE, CASE_GROUND_STATE, diff -urN kterm-6.2.0/VTparse.def kterm-6.2.0.ext02/VTparse.def --- kterm-6.2.0/VTparse.def Sat Jun 15 18:58:01 1996 +++ kterm-6.2.0.ext02/VTparse.def Fri Apr 14 12:27:07 2000 @@ -85,3 +85,5 @@ CASE_ERASE_STATUS CASE_MBCS CASE_SCS_STATE +CASE_GSET_VERSION_STATE +CASE_GSET_VERSION diff -urN kterm-6.2.0/VTparse.h kterm-6.2.0.ext02/VTparse.h --- kterm-6.2.0/VTparse.h Sat Jun 15 18:58:02 1996 +++ kterm-6.2.0.ext02/VTparse.h Fri Apr 14 12:27:07 2000 @@ -116,3 +116,5 @@ #define CASE_ERASE_STATUS 75 #define CASE_MBCS 76 #define CASE_SCS_STATE 77 +#define CASE_GSET_VERSION_STATE 78 +#define CASE_GSET_VERSION 79 diff -urN kterm-6.2.0/charproc.c kterm-6.2.0.ext02/charproc.c --- kterm-6.2.0/charproc.c Fri Jul 12 14:01:36 1996 +++ kterm-6.2.0.ext02/charproc.c Fri Apr 14 12:27:07 2000 @@ -188,6 +188,34 @@ #ifdef KTERM #define XtNromanKanaFont "romanKanaFont" #define XtNromanKanaBoldFont "romanKanaBoldFont" +#define XtNoldKanjiFont "oldKanjiFont" +#define XtNoldKanjiBoldFont "oldKanjiBoldFont" +#define XtNkanji90Font "kanji90Font" +#define XtNkanji90BoldFont "kanji90BoldFont" +#define XtNhojoKanjiFont "hojoKanjiFont" +#define XtNhojoKanjiBoldFont "hojoKanjiBoldFont" +#define XtNhanziFont "hanziFont" +#define XtNhanziBoldFont "hanziBoldFont" +#define XtNhanglFont "hanglFont" +#define XtNhanglBoldFont "hanglBoldFont" +#define XtNcnsOneFont "cnsOneFont" +#define XtNcnsOneBoldFont "cnsOneBoldFont" +#define XtNcnsTwoFont "cnsTwoFont" +#define XtNcnsTwoBoldFont "cnsTwoBoldFont" +#define XtNcnsThreeFont "cnsThreeFont" +#define XtNcnsThreeBoldFont "cnsThreeBoldFont" +#define XtNcnsFourFont "cnsFourFont" +#define XtNcnsFourBoldFont "cnsFourBoldFont" +#define XtNcnsFiveFont "cnsFiveFont" +#define XtNcnsFiveBoldFont "cnsFiveBoldFont" +#define XtNcnsSixFont "cnsSixFont" +#define XtNcnsSixBoldFont "cnsSixBoldFont" +#define XtNcnsSevenFont "cnsSevenFont" +#define XtNcnsSevenBoldFont "cnsSevenBoldFont" +#define XtNextOneKanjiFont "extOneKanjiFont" +#define XtNextOneKanjiBoldFont "extOneKanjiBoldFont" +#define XtNextTwoKanjiFont "extTwoKanjiFont" +#define XtNextTwoKanjiBoldFont "extTwoKanjiBoldFont" # ifdef KTERM_MBCS #define XtNkanjiFont "kanjiFont" #define XtNkanjiBoldFont "kanjiBoldFont" @@ -277,6 +305,7 @@ extern int igntable[]; extern int scrtable[]; extern int scstable[]; +extern int escversiontable[]; #ifdef KTERM_MBCS extern int mbcstable[]; extern int smbcstable[]; @@ -504,6 +533,90 @@ {XtNkanjiBoldFont, XtCKanjiFont, XtRString, sizeof(String), XtOffset(XtermWidget, screen._menu_bfont_names[F_JISX0208_0][fontMenu_fontdefault]), XtRString, (XtPointer) NULL}, +{XtNoldKanjiFont, XtCKanjiFont, XtRString, sizeof(String), + XtOffset(XtermWidget, screen._menu_font_names[F_JISC6226_0][fontMenu_fontdefault]), + XtRString, (XtPointer) NULL}, +{XtNoldKanjiBoldFont, XtCKanjiFont, XtRString, sizeof(String), + XtOffset(XtermWidget, screen._menu_bfont_names[F_JISC6226_0][fontMenu_fontdefault]), + XtRString, (XtPointer) NULL}, +{XtNkanji90Font, XtCKanjiFont, XtRString, sizeof(String), + XtOffset(XtermWidget, screen._menu_font_names[F_JISX0208_1990_0][fontMenu_fontdefault]), + XtRString,(XtPointer) NULL}, +{XtNkanji90BoldFont, XtCKanjiFont, XtRString, sizeof(String), + XtOffset(XtermWidget, screen._menu_bfont_names[F_JISX0208_1990_0][fontMenu_fontdefault]), + XtRString, (XtPointer) NULL}, +{XtNhojoKanjiFont, XtCKanjiFont, XtRString, sizeof(String), + XtOffset(XtermWidget, screen._menu_font_names[F_JISX0212_0][fontMenu_fontdefault]), + XtRString, (XtPointer) NULL}, +{XtNhojoKanjiBoldFont, XtCKanjiFont, XtRString, sizeof(String), + XtOffset(XtermWidget, screen._menu_bfont_names[F_JISX0212_0][fontMenu_fontdefault]), + XtRString, (XtPointer) NULL}, +{XtNhanziFont, XtCKanjiFont, XtRString, sizeof(String), + XtOffset(XtermWidget, screen._menu_font_names[F_GB2312_0][fontMenu_fontdefault]), + XtRString, (XtPointer) NULL}, +{XtNhanziBoldFont, XtCKanjiFont, XtRString, sizeof(String), + XtOffset(XtermWidget, screen._menu_bfont_names[F_GB2312_0][fontMenu_fontdefault]), + XtRString, (XtPointer) NULL}, +{XtNhanglFont, XtCKanjiFont, XtRString, sizeof(String), + XtOffset(XtermWidget, screen._menu_font_names[F_KSC5601_0][fontMenu_fontdefault]), + XtRString, (XtPointer) NULL}, +{XtNhanglBoldFont, XtCKanjiFont, XtRString, sizeof(String), + XtOffset(XtermWidget, screen._menu_bfont_names[F_KSC5601_0][fontMenu_fontdefault]), + XtRString, (XtPointer) NULL}, +{XtNcnsOneFont, XtCKanjiFont, XtRString, sizeof(String), + XtOffset(XtermWidget, screen._menu_font_names[F_CNS11643_1][fontMenu_fontdefault]), + XtRString, (XtPointer) NULL}, +{XtNcnsOneBoldFont, XtCKanjiFont, XtRString, sizeof(String), + XtOffset(XtermWidget, screen._menu_bfont_names[F_CNS11643_1][fontMenu_fontdefault]), + XtRString, (XtPointer) NULL}, +{XtNcnsTwoFont, XtCKanjiFont, XtRString, sizeof(String), + XtOffset(XtermWidget, screen._menu_font_names[F_CNS11643_2][fontMenu_fontdefault]), + XtRString, (XtPointer) NULL}, +{XtNcnsTwoBoldFont, XtCKanjiFont, XtRString, sizeof(String), + XtOffset(XtermWidget, screen._menu_bfont_names[F_CNS11643_2][fontMenu_fontdefault]), + XtRString, (XtPointer) NULL}, +{XtNcnsThreeFont, XtCKanjiFont, XtRString, sizeof(String), + XtOffset(XtermWidget, screen._menu_font_names[F_CNS11643_3][fontMenu_fontdefault]), + XtRString, (XtPointer) NULL}, +{XtNcnsThreeBoldFont, XtCKanjiFont, XtRString, sizeof(String), + XtOffset(XtermWidget, screen._menu_bfont_names[F_CNS11643_3][fontMenu_fontdefault]), + XtRString, (XtPointer) NULL}, +{XtNcnsFourFont, XtCKanjiFont, XtRString, sizeof(String), + XtOffset(XtermWidget, screen._menu_font_names[F_CNS11643_4][fontMenu_fontdefault]), + XtRString, (XtPointer) NULL}, +{XtNcnsFourBoldFont, XtCKanjiFont, XtRString, sizeof(String), + XtOffset(XtermWidget, screen._menu_bfont_names[F_CNS11643_4][fontMenu_fontdefault]), + XtRString, (XtPointer) NULL}, +{XtNcnsFiveFont, XtCKanjiFont, XtRString, sizeof(String), + XtOffset(XtermWidget, screen._menu_font_names[F_CNS11643_5][fontMenu_fontdefault]), + XtRString, (XtPointer) NULL}, +{XtNcnsFiveBoldFont, XtCKanjiFont, XtRString, sizeof(String), + XtOffset(XtermWidget, screen._menu_bfont_names[F_CNS11643_5][fontMenu_fontdefault]), + XtRString, (XtPointer) NULL}, +{XtNcnsSixFont, XtCKanjiFont, XtRString, sizeof(String), + XtOffset(XtermWidget, screen._menu_font_names[F_CNS11643_6][fontMenu_fontdefault]), + XtRString, (XtPointer) NULL}, +{XtNcnsSixBoldFont, XtCKanjiFont, XtRString, sizeof(String), + XtOffset(XtermWidget, screen._menu_bfont_names[F_CNS11643_6][fontMenu_fontdefault]), + XtRString, (XtPointer) NULL}, +{XtNcnsSevenFont, XtCKanjiFont, XtRString, sizeof(String), + XtOffset(XtermWidget, screen._menu_font_names[F_CNS11643_7][fontMenu_fontdefault]), + XtRString, (XtPointer) NULL}, +{XtNcnsSevenBoldFont, XtCKanjiFont, XtRString, sizeof(String), + XtOffset(XtermWidget, screen._menu_bfont_names[F_CNS11643_7][fontMenu_fontdefault]), + XtRString, (XtPointer) NULL}, +{XtNextOneKanjiFont, XtCKanjiFont, XtRString, sizeof(String), + XtOffset(XtermWidget, screen._menu_font_names[F_JISX0213_1][fontMenu_fontdefault]), + XtRString, (XtPointer) NULL}, +{XtNextOneKanjiBoldFont, XtCKanjiFont, XtRString, sizeof(String), + XtOffset(XtermWidget, screen._menu_bfont_names[F_JISX0213_1][fontMenu_fontdefault]), + XtRString, (XtPointer) NULL}, +{XtNextTwoKanjiFont, XtCKanjiFont, XtRString, sizeof(String), + XtOffset(XtermWidget, screen._menu_font_names[F_JISX0213_2][fontMenu_fontdefault]), + XtRString, (XtPointer) NULL}, +{XtNextTwoKanjiBoldFont, XtCKanjiFont, XtRString, sizeof(String), + XtOffset(XtermWidget, screen._menu_bfont_names[F_JISX0213_2][fontMenu_fontdefault]), + XtRString, (XtPointer) NULL}, # endif /* KTERM_MBCS */ # ifdef KTERM_KANJIMODE {XtNkanjiMode, XtCKanjiMode, XtRString, sizeof(char *), @@ -813,42 +926,7 @@ XtOffsetOf(XtermWidgetRec, screen._menu_bfont_names[F_JISX0201_0][fontMenu_font6]), XtRString, (XtPointer) NULL}, # ifdef KTERM_MBCS -{"kanjiFont1", "KanjiFont1", XtRString, sizeof(String), - XtOffsetOf(XtermWidgetRec, screen._menu_font_names[F_JISX0208_0][fontMenu_font1]), - XtRString, (XtPointer) NULL}, -{"kanjiFont2", "KanjiFont2", XtRString, sizeof(String), - XtOffsetOf(XtermWidgetRec, screen._menu_font_names[F_JISX0208_0][fontMenu_font2]), - XtRString, (XtPointer) NULL}, -{"kanjiFont3", "KanjiFont3", XtRString, sizeof(String), - XtOffsetOf(XtermWidgetRec, screen._menu_font_names[F_JISX0208_0][fontMenu_font3]), - XtRString, (XtPointer) NULL}, -{"kanjiFont4", "KanjiFont4", XtRString, sizeof(String), - XtOffsetOf(XtermWidgetRec, screen._menu_font_names[F_JISX0208_0][fontMenu_font4]), - XtRString, (XtPointer) NULL}, -{"kanjiFont5", "KanjiFont5", XtRString, sizeof(String), - XtOffsetOf(XtermWidgetRec, screen._menu_font_names[F_JISX0208_0][fontMenu_font5]), - XtRString, (XtPointer) NULL}, -{"kanjiFont6", "KanjiFont6", XtRString, sizeof(String), - XtOffsetOf(XtermWidgetRec, screen._menu_font_names[F_JISX0208_0][fontMenu_font6]), - XtRString, (XtPointer) NULL}, -{"kanjiBoldFont1", "KanjiBoldFont1", XtRString, sizeof(String), - XtOffsetOf(XtermWidgetRec, screen._menu_bfont_names[F_JISX0208_0][fontMenu_font1]), - XtRString, (XtPointer) NULL}, -{"kanjiBoldFont2", "KanjiBoldFont2", XtRString, sizeof(String), - XtOffsetOf(XtermWidgetRec, screen._menu_bfont_names[F_JISX0208_0][fontMenu_font2]), - XtRString, (XtPointer) NULL}, -{"kanjiBoldFont3", "KanjiBoldFont3", XtRString, sizeof(String), - XtOffsetOf(XtermWidgetRec, screen._menu_bfont_names[F_JISX0208_0][fontMenu_font3]), - XtRString, (XtPointer) NULL}, -{"kanjiBoldFont4", "KanjiBoldFont4", XtRString, sizeof(String), - XtOffsetOf(XtermWidgetRec, screen._menu_bfont_names[F_JISX0208_0][fontMenu_font4]), - XtRString, (XtPointer) NULL}, -{"kanjiBoldFont5", "KanjiBoldFont5", XtRString, sizeof(String), - XtOffsetOf(XtermWidgetRec, screen._menu_bfont_names[F_JISX0208_0][fontMenu_font5]), - XtRString, (XtPointer) NULL}, -{"kanjiBoldFont6", "KanjiBoldFont6", XtRString, sizeof(String), - XtOffsetOf(XtermWidgetRec, screen._menu_bfont_names[F_JISX0208_0][fontMenu_font6]), - XtRString, (XtPointer) NULL}, +# include "kfontlist.c" # endif /* KTERM_MBCS */ #else /* !KTERM */ {"font1", "Font1", XtRString, sizeof(String), @@ -1102,7 +1180,10 @@ } # ifdef KTERM_KANJIMODE -doSJIS() +int isJISX0208_1990(); +int isJISX0213_1(); +int isJISX0213_2(); +doSJIS_p1() { Char dotextbuf[TEXT_BUF_SIZE]; register Char c1, c2; @@ -1110,6 +1191,7 @@ register Char *dcp = dotextbuf; register int cnt = bcnt > TEXT_BUF_SIZE ? TEXT_BUF_SIZE : bcnt; /* TEXT_BUF_SIZE must be an even number */ + int do_next = 0; # define SJIS1(c) ((0x81 <= c && c <= 0x9F) || (0xE0 <= c && c <= 0xEF)) # define SJIS2(c) (0x40 <= c && c <= 0xFC && c != 0x7F) @@ -1144,14 +1226,164 @@ if (c2 <= 0x7e) c2 -= 0x1f; else if (c2 <= 0x9e) c2 -= 0x20; else c2 -= 0x7e, c1 += 1; + + if (isJISX0213_1(c1, c2)) { + do_next = GSET_EXTKANJI1; + break; + } else if (isJISX0208_1990(c1, c2)) { + do_next = GSET_90KANJI; + break; + } + /* copy to buffer */ + *dcp++ = c1; + *dcp++ = c2; + } + dotext(&term->screen, term->flags, GSET_KANJI, dotextbuf, dcp); + if (do_next) { + dcp = dotextbuf; + *dcp++ = c1; + *dcp++ = c2; + dotext(&term->screen, term->flags, do_next, dotextbuf, dcp); + } + bcnt -= cp - bptr; + bptr = cp; +} + +doSJIS_p2() +{ + Char dotextbuf[TEXT_BUF_SIZE]; + register Char c1, c2; + register Char *cp = bptr; + register Char *dcp = dotextbuf; + register int cnt = bcnt > TEXT_BUF_SIZE ? TEXT_BUF_SIZE : bcnt; + /* TEXT_BUF_SIZE must be an even number */ + +# define SJIS3(c) (0xF0 <= c && c <= 0xFC) + while (cnt > 0) { + /* first byte */ + c1 = *cp; + if (!SJIS3(c1)) + break; + cnt--; + cp++; + if (cnt == 0) { /* must be (bcnt == cp-bptr) */ + /* + * Incomplete multi-byte character. + * Preserve and skip its first byte. + */ + pending_byte = c1; + break; + } + /* second byte */ + c2 = *cp; + if (!SJIS2(c2)) { + /* + * Illegal shift-jis character. Skip it. + */ + break; + } + cnt--; + cp++; + + /* SJIS to JIS code conversion */ + if (c1 == 0xf0) + if (c2 <= 0x9e) c1 = 0x21; + else c1 = 0x27; + else if (c1 == 0xf1) + c1 = 0x23; + else if (c1 == 0xf2) + if (c2 <= 0x9e) c1 = 0x25; + else c1 = 0x2b; + else if (c1 == 0xf3) + c1 = 0x2d; + else if (c1 == 0xf4) + if (c2 <= 0x9e) c1 = 0x2f; + else c1 = 0x6d; + else c1 = (c1 - 0xf5) * 2 + 0x6f; + if (c2 <= 0x7e) c2 -= 0x1f; + else if (c2 <= 0x9e) c2 -= 0x20; + else c2 -= 0x7e, c1 += 1; + /* copy to buffer */ *dcp++ = c1; *dcp++ = c2; } + dotext(&term->screen, term->flags, GSET_EXTKANJI2, dotextbuf, dcp); + bcnt -= cp - bptr; + bptr = cp; +} + +doEUC_p1() +{ + Char dotextbuf[TEXT_BUF_SIZE]; + register Char c1, c2; + register Char *cp = bptr; + register Char *dcp = dotextbuf; + register int cnt = bcnt > TEXT_BUF_SIZE ? TEXT_BUF_SIZE : bcnt; + /* TEXT_BUF_SIZE must be an even number */ + int do_next = 0; + +# define EUC(c) ((0xA1 <= c && c <= 0xFE)) + while (cnt > 0) { + /* first byte */ + c1 = *cp; + if (!EUC(c1)) + break; + cnt--; + cp++; + if (cnt == 0) { + pending_byte = c1; + break; + } + /* second byte */ + c2 = *cp; + if (!EUC(c2)) { + break; + } + + /* check JIS X 0213 */ + if (isJISX0213_1(c1, c2)) { + cnt ++; + cp --; + do_next = GSET_EXTKANJI1; + break; + } else if (isJISX0208_1990(c1, c2)) { + cnt ++; + cp --; + do_next = GSET_90KANJI; + break; + } + cnt--; + cp++; + + /* copy to buffer */ + *dcp++ = c1 & 0x7f; + *dcp++ = c2 & 0x7f; + } dotext(&term->screen, term->flags, GSET_KANJI, dotextbuf, dcp); bcnt -= cp - bptr; bptr = cp; + + if (do_next) { + doSS(do_next); + } } + +doEUC_p2() +{ + Char dotextbuf[TEXT_BUF_SIZE]; + register Char c1, c2; + register Char *cp = bptr; + + c1 = cp[0]; + c2 = cp[1]; + if (EUC(c1) && EUC(c2) && isJISX0213_2(c1, c2)) { + doSS(GSET_EXTKANJI2); + } else { + doSS(GSET_HOJOKANJI); + } +} + # endif /* KTERM_KANJIMODE */ #endif /* KTERM */ @@ -1167,6 +1399,7 @@ Char cs96; # ifdef KTERM_MBCS Char mbcs; + int gsetversion = 0; # endif /* KTERM_MBCS */ #endif /* KTERM */ extern int TrackMouse(); @@ -1193,10 +1426,35 @@ #endif /* KTERM */ #ifdef KTERM_KANJIMODE c = doinput(); + if (term->flags & EUC_KANJI && EUC(c) + && screen->curss == 0 + && screen->gsets[1] == GSET_KANJI) { + bcnt ++; + *--bptr = c; + doEUC_p1(); + continue; + } + if (term->flags & EUC_KANJI && EUC(c) + && screen->curss == 3 + && screen->gsets[3] == GSET_HOJOKANJI) { + bcnt ++; + *--bptr = c; + doEUC_p2(); + if (pending_byte == 0) + screen->curss = 0; + continue; + } if (term->flags & SJIS_KANJI && SJIS1(c)) { bcnt++; *--bptr = c; - doSJIS(); + doSJIS_p1(); + screen->curss = 0; + continue; + } + if (term->flags & SJIS_KANJI && SJIS3(c)) { + bcnt++; + *--bptr = c; + doSJIS_p2(); screen->curss = 0; continue; } @@ -1243,6 +1501,13 @@ case CASE_GROUND_STATE: /* exit ignore mode */ +#ifdef KTERM + cs96 = 0; +#ifdef KTERM_MBCS + mbcs = 0; + gsetversion = 0; +#endif /* KTERM_MBCS */ +#endif /* KTERM */ parsestate = groundtable; break; @@ -1328,6 +1593,16 @@ scstype = 0; /* for ESC-$-F */ parsestate = mbcstable; break; + + case CASE_GSET_VERSION_STATE: + parsestate = escversiontable; + break; + + case CASE_GSET_VERSION: + gsetversion = c; + parsestate = groundtable; + break; + #endif /* KTERM_MBCS */ #ifdef KTERM @@ -1374,6 +1649,12 @@ case CASE_ESC_IGNORE: /* unknown escape sequence */ +#ifdef KTERM + cs96 = 0; +#ifdef KTERM_MBCS + mbcs = 0; +#endif /* KTERM_MBCS */ +#endif /* KTERM */ parsestate = eigtable; break; @@ -1773,8 +2054,24 @@ case CASE_GSETS: #ifdef KTERM + if (c == '0' && !cs96 +# ifdef KTERM_MBCS + && !mbcs +# endif + ) { /* hack for ESC ( 0 */ + c = '@' - 1; + cs96 = CS96; + } # ifdef KTERM_MBCS screen->gsets[scstype] = GSET(c) | cs96 | mbcs; + if (gsetversion) { + if (screen->gsets[scstype] == GSET_KANJI) { + if (gsetversion == '@'){ + screen->gsets[scstype] = GSET_90KANJI; + } + } + gsetversion = 0; + } # else /* !KTERM_MBCS */ screen->gsets[scstype] = GSET(c) | cs96; # endif /* !KTERM_MBCS */ @@ -1976,7 +2273,6 @@ static char *v_bufstr = NULL; /* beginning of area to write */ static char *v_bufptr; /* end of area to write */ static char *v_bufend; /* end of physical buffer */ -#define ptymask() (v_bufptr > v_bufstr ? pty_mask : 0) /* Write data to the pty as typed by the user, pasted with the mouse, or generated by us in response to a query ESC sequence. */ @@ -3291,7 +3587,23 @@ #ifdef KTERM new->screen.dynamic_font_load = request->screen.dynamic_font_load; for (fnum = F_ISO8859_1; fnum < FCNT; fnum++) { - if (fnum == F_ISO8859_1 || fnum == F_JISX0201_0 || fnum == F_JISX0208_0) { + if (fnum == F_ISO8859_1 + || fnum == F_JISX0201_0 + || fnum == F_JISX0208_0 + || fnum == F_JISC6226_0 + || fnum == F_JISX0208_1990_0 + || fnum == F_JISX0212_0 + || fnum == F_GB2312_0 + || fnum == F_KSC5601_0 + || fnum == F_CNS11643_1 + || fnum == F_CNS11643_2 + || fnum == F_CNS11643_3 + || fnum == F_CNS11643_4 + || fnum == F_CNS11643_5 + || fnum == F_CNS11643_6 + || fnum == F_CNS11643_7 + || fnum == F_JISX0213_1 + || fnum == F_JISX0213_2 ) { for (i = fontMenu_fontdefault; i <= fontMenu_lastBuiltin; i++) { new->screen.menu_font_names[i] = request->screen.menu_font_names[i]; new->screen.menu_bfont_names[i] = request->screen.menu_bfont_names[i]; @@ -3564,7 +3876,8 @@ setupgset(); screen->gsets[0] = GSET_ASCII; # ifdef KTERM_KANJIMODE - screen->gsets[1] = (term->flags & EUC_KANJI) ? GSET_KANJI : GSET_KANA; + screen->gsets[1] = (term->flags & EUC_KANJI) ? GSET_KANJI : + (term->flags & SJIS_KANJI) ? GSET_KANA : GSET_LATIN1R; screen->gsets[2] = (term->flags & EUC_KANJI) ? GSET_KANA : GSET_ASCII; screen->gsets[3] = (term->flags & EUC_KANJI) ? GSET_HOJOKANJI : GSET_ASCII; # else /* !KTERM_KANJIMODE */ @@ -4105,7 +4418,9 @@ screen->gsets[0] = GSET_ASCII; # ifdef KTERM_KANJIMODE screen->gsets[1] = (term->flags & EUC_KANJI) - ? GSET_KANJI : GSET_KANA; + ? GSET_KANJI + : (term->flags & SJIS_KANJI) + ? GSET_KANA : GSET_LATIN1R; screen->gsets[2] = (term->flags & EUC_KANJI) ? GSET_KANA : GSET_ASCII; screen->gsets[3] = (term->flags & EUC_KANJI) diff -urN kterm-6.2.0/convert.c kterm-6.2.0.ext02/convert.c --- kterm-6.2.0/convert.c Sun Jun 23 17:00:25 1996 +++ kterm-6.2.0.ext02/convert.c Fri Apr 14 12:27:07 2000 @@ -25,8 +25,12 @@ #define NUL 0x00 -#define IsGsetKanji(gset) ((gset)==GSET_KANJI || (gset)==GSET_OLDKANJI) #define IsGsetAscii(gset) ((gset)==GSET_ASCII || (gset)==GSET_JISROMAN) +#define IsGsetKanji(gset) ( (gset)==GSET_OLDKANJI \ + || (gset)==GSET_KANJI \ + || (gset)==GSET_90KANJI \ + || (gset)==GSET_EXTKANJI1 ) + #define JIStoSJIS(c1, c2, s1_p, s2_p) \ *(s1_p) = ((c1) - 0x21) / 2 + (((c1) <= 0x5e) ? 0x81 : 0xc1); \ if ((c1) & 1) /* odd */ \ @@ -34,6 +38,16 @@ else \ *(s2_p) = (c2) + 0x7e; +#define JIStoSJIS2(c1, c2, s1_p, s2_p) \ + if ((c1) < 0x30) \ + *(s1_p) = ((c1) + 0x1bf) / 2 - (((c1) - 0x20) / 8) * 3; \ + else \ + *(s1_p) = ((c1) + 0x17b) / 2; \ + if ((c1) & 1) /* odd */ \ + *(s2_p) = (c2) + (((c2) <= 0x5f) ? 0x1f : 0x20); \ + else \ + *(s2_p) = (c2) + 0x7e; + /* CS -> JIS using ESC-$-B */ int convCStoJIS(cs, js) @@ -43,7 +57,7 @@ return convCStoANY(cs, js, NULL); } -/* CS -> EUC */ +/* CS -> Japanese EUC */ static int CStoEUC(cs_p, es_p) Ichr **cs_p; @@ -71,6 +85,18 @@ *es_p = es; *cs_p = cs; return 2; + } else if (cs->gset == GSET_HOJOKANJI + || cs->gset == GSET_EXTKANJI2) { + c1 = cs++->code; + c2 = cs++->code; + if (es) { + *es++ = SS3; + *es++ = c1 | 0x80; + *es++ = c2 | 0x80; + } + *es_p = es; + *cs_p = cs; + return 3; } return 0; } @@ -110,7 +136,18 @@ *ss_p = ss; *cs_p = cs; return 2; + } else if (cs->gset == GSET_EXTKANJI2) { + c1 = cs++->code; + c2 = cs++->code; + if (ss) { + JIStoSJIS2(c1, c2, ss, ss+1); + ss += 2; + } + *ss_p = ss; + *cs_p = cs; + return 2; } + return 0; } @@ -148,8 +185,9 @@ } n += 3; } - } else if (IsGsetKanji(cs->gset) - || cs->gset == GSET_HANZI) { + } else if (cs->gset == GSET_OLDKANJI + || cs->gset == GSET_HANZI + || cs->gset == GSET_KANJI) { /* Use ESC-$-F instead of ESC-$-(-F (for @AB) */ if (as) { *as++ = ESC; @@ -157,6 +195,16 @@ *as++ = GSETFC(cs->gset); } n += 3; + } else if (cs->gset == GSET_90KANJI) { + if (as) { + *as++ = '\033'; + *as++ = '&'; + *as++ = '@'; + *as++ = '\033'; + *as++ = '$'; + *as++ = 'B'; + } + n += 6; } else { if (as) { *as++ = ESC; @@ -283,21 +331,34 @@ || cs->gset == GSET_KANA) { if (g1 != cs->gset) { g1 = cs->gset; - if (as) { - *as++ = ESC; - if (g1 & MBCS) { - *as++ = '$'; + if (g1 == GSET_90KANJI) { + if (as) { + *as++ = ESC; + *as++ = '&'; + *as++ = '@'; + *as++ = ESC; + *as++ = '$'; + *as++ = ')'; + *as++ = 'B'; } - if (g1 & CS96) { - *as++ = '-'; - } else { - *as++ = ')'; + n += 7; + } else { + if (as) { + *as++ = ESC; + if (g1 & MBCS) { + *as++ = '$'; + } + if (g1 & CS96) { + *as++ = '-'; + } else { + *as++ = ')'; + } + *as++ = GSETFC(g1); } - *as++ = GSETFC(g1); + n += 3; + if (g1 & MBCS) + n ++; } - n += 3; - if (g1 & MBCS) - n ++; } cs++; if (g1 & MBCS) { @@ -414,6 +475,7 @@ int n = 0; int g0, g1, gs; Char *xstr1; + int csversion = 0; /* * Compound Text can include null octet. Therefore the length @@ -482,6 +544,8 @@ * ESC-$-)-F * Non standard character set * ESC-%-/-[0123] + * Character set version + * ESC-&-F * Standard character set must be accepted correctly. * Non standard one is ignored but must be parsed * for skipping data. @@ -492,6 +556,7 @@ len -= xstr1 - xstr; switch (xstr1 - xstr) { case 2: /* ESC - I - F */ + csversion = 0; switch (*xstr++) { case '(': /* 94chars CS -> G0 */ g0 = GSET(*xstr); @@ -502,6 +567,9 @@ case '-': /* 96chars CS -> G1 */ g1 = GSET(*xstr) | CS96; break; + case '&': /* Character set version */ + csversion = *xstr; + break; default: /* ignore */ break; } @@ -512,9 +580,15 @@ switch (*xstr++) { case '(': /* 94chars MBCS -> G0 */ g0 = GSET(*xstr) | MBCS; + if (csversion == '@' + && *xstr == 'B') + g0 = GSET_90KANJI; break; case ')': /* 94chars MBCS -> G1 */ g1 = GSET(*xstr) | MBCS; + if (csversion == '@' + && *xstr == 'B') + g1 = GSET_90KANJI; break; case '-': /* 96chars MBCS -> G1 */ g1 = GSET(*xstr) | CS96 | MBCS; @@ -545,8 +619,10 @@ default: break; } + csversion = 0; break; default: + csversion = 0; break; } xstr = xstr1; @@ -566,6 +642,7 @@ cs++; } n++; + csversion = 0; break; } } @@ -582,28 +659,95 @@ Char *es; Char *js; { - Char e1, e2; + Char e1, e2, e3; Char gset = GSET_ASCII; int n = 0; while (e1 = *es++) { if (e1 == SS2) { if (e2 = *es++) { - if (js) - *js++ = e2 | 0x80; + if (gset != GSET_KANA) { + if (js) { + *js++ = ESC; + *js++ = '('; + *js++ = GSETFC(GSET_KANA); + } + n += 3; + gset = GSET_KANA; + } + if (js) { + *js++ = e2 & ~0x80; + } n++; } /* else { ??? } */ + } else if (e1 == SS3) { + if ((e2 = *es++) && (e3 = *es++)) { + if (isJISX0213_2(e2, e3)) { + if (gset != GSET_EXTKANJI2) { + if (js) { + *js++ = ESC; + *js++ = '$'; + *js++ = '('; + *js++ = GSETFC(GSET_EXTKANJI2); + } + n += 4; + gset = GSET_EXTKANJI2; + } + } else { + if (gset != GSET_HOJOKANJI) { + if (js) { + *js++ = ESC; + *js++ = '$'; + *js++ = '('; + *js++ = GSETFC(GSET_HOJOKANJI); + } + n += 4; + gset = GSET_HOJOKANJI; + } + } + if (js) { + *js++ = e2 & ~0x80; + *js++ = e3 & ~0x80; + } + n += 2; + } } else if (e1 & 0x80) { if (e2 = *es++) { - if (gset != GSET_KANJI) { - if (js) { - *js++ = ESC; - *js++ = '$'; - *js++ = GSETFC(GSET_KANJI); + if (isJISX0213_2(e1, e2)) { + if (gset != GSET_EXTKANJI1) { + if (js) { + *js++ = ESC; + *js++ = '$'; + *js++ = '('; + *js++ = GSETFC(GSET_EXTKANJI1); + } + n += 4; + gset = GSET_EXTKANJI1; + } + } else if (isJISX0208_1990(e1, e2)) { + if (gset != GSET_90KANJI) { + if (js) { + *js++ = ESC; + *js++ = '&'; + *js++ = '@'; + *js++ = ESC; + *js++ = '$'; + *js++ = GSETFC(GSET_KANJI); + } + n += 6; + gset = GSET_90KANJI; + } + } else { + if (gset != GSET_KANJI) { + if (js) { + *js++ = ESC; + *js++ = '$'; + *js++ = GSETFC(GSET_KANJI); + } + n += 3; + gset = GSET_KANJI; } - n += 3; - gset = GSET_KANJI; } if (js) { *js++ = e1 & ~0x80; @@ -648,7 +792,7 @@ Char *es; Char *ss; { - Char e1, e2; + Char e1, e2, e3; int n = 0; while (e1 = *es++) { @@ -670,6 +814,18 @@ n += 2; } /* else { ??? } */ + } else if (e1 == SS3) { + if ((e2 = *es++) && (e3 = *es++)) { + if (ss) { + if (isJISX0213_2(e2, e3)) { + JIStoSJIS2(e2, e3, ss, ss+1); + } else { + JIStoSJIS(0x21, 0x22, ss, ss+1); + } + ss += 2; + } + n += 2; + } } else { if (ss) *ss++ = e1; diff -urN kterm-6.2.0/gset.c kterm-6.2.0.ext02/gset.c --- kterm-6.2.0/gset.c Fri Jul 12 14:01:40 1996 +++ kterm-6.2.0.ext02/gset.c Fri Apr 14 12:29:20 2000 @@ -185,6 +185,9 @@ gsettofnum[GSET_KANJI] = F_JISX0208_0; gsetontheright[GSET_KANJI] = False; + gsettofnum[GSET_90KANJI] = F_JISX0208_1990_0; + gsetontheright[GSET_90KANJI] = False; + gsettofnum[GSET_HOJOKANJI] = F_JISX0212_0; gsetontheright[GSET_HOJOKANJI] = False; @@ -193,6 +196,33 @@ gsettofnum[GSET_HANJA] = F_KSC5601_0; gsetontheright[GSET_HANJA] = False; + + gsettofnum[GSET_CNS1] = F_CNS11643_1; + gsetontheright[GSET_CNS1] = False; + + gsettofnum[GSET_CNS2] = F_CNS11643_2; + gsetontheright[GSET_CNS2] = False; + + gsettofnum[GSET_CNS3] = F_CNS11643_3; + gsetontheright[GSET_CNS3] = False; + + gsettofnum[GSET_CNS4] = F_CNS11643_4; + gsetontheright[GSET_CNS4] = False; + + gsettofnum[GSET_CNS5] = F_CNS11643_5; + gsetontheright[GSET_CNS5] = False; + + gsettofnum[GSET_CNS6] = F_CNS11643_6; + gsetontheright[GSET_CNS6] = False; + + gsettofnum[GSET_CNS7] = F_CNS11643_7; + gsetontheright[GSET_CNS7] = False; + + gsettofnum[GSET_EXTKANJI1] = F_JISX0213_1; + gsetontheright[GSET_EXTKANJI1] = False; + + gsettofnum[GSET_EXTKANJI2] = F_JISX0213_2; + gsetontheright[GSET_EXTKANJI2] = False; # endif /* KTERM_MBCS */ } @@ -211,11 +241,21 @@ screen->_box[F_ISO8859_9] = VTbox; screen->_box[F_JISX0201_0] = VTbox; #ifdef KTERM_MBCS + screen->_box[F_JISX0208_1990_0] = VTwbox; screen->_box[F_JISX0208_0] = VTwbox; screen->_box[F_JISX0212_0] = VTwbox; screen->_box[F_GB2312_0] = VTwbox; screen->_box[F_KSC5601_0] = VTwbox; screen->_box[F_JISC6226_0] = VTwbox; + screen->_box[F_CNS11643_1] = VTwbox; + screen->_box[F_CNS11643_2] = VTwbox; + screen->_box[F_CNS11643_3] = VTwbox; + screen->_box[F_CNS11643_4] = VTwbox; + screen->_box[F_CNS11643_5] = VTwbox; + screen->_box[F_CNS11643_6] = VTwbox; + screen->_box[F_CNS11643_7] = VTwbox; + screen->_box[F_JISX0213_1] = VTwbox; + screen->_box[F_JISX0213_2] = VTwbox; #endif /* KTERM_MBCS */ } @@ -235,11 +275,22 @@ {"iso8859-9"}, /* F_ISO8859_9 */ {"jisx0201.1976-0"}, /* F_JISX0201_0 */ #ifdef KTERM_MBCS - {"jisx0208.1990-0", "jisx0208.1983-0"}, /* F_JISX0208_0 */ + {"jisx0208.1990-0", "jisx0208.1983-0"}, /* F_JISX0208_1990_0 */ + {"jisx0208.1983-0"}, /* F_JISX0208_0 */ {"jisx0212.1990-0"}, /* F_JISX0212_0 */ {"gb2312.1980-0"}, /* F_GB2312_0 */ {"ksc5601.1987-0"}, /* F_KSC5601_0 */ {"jisc6226.1978-0", "jisx0208.1983-0"}, /* F_JISC6226_0 */ + {"cns11643.1992-1"}, /* F_CNS11643_1 */ + {"cns11643.1992-2"}, /* F_CNS11643_2 */ + {"cns11643.1992-3"}, /* F_CNS11643_3 */ + {"cns11643.1992-4"}, /* F_CNS11643_4 */ + {"cns11643.1992-5"}, /* F_CNS11643_5 */ + {"cns11643.1992-6"}, /* F_CNS11643_6 */ + {"cns11643.1992-7"}, /* F_CNS11643_7 */ + {"jisx0213.2000-1", "jisx0208.1990-0", + "jisx0208.1983-0"}, /* F_JISX0213_1 */ + {"jisx0213.2000-2"}, /* F_JISX0213_2 */ #endif /* KTERM_MBCS */ }; diff -urN kterm-6.2.0/gset.h kterm-6.2.0.ext02/gset.h --- kterm-6.2.0/gset.h Fri Jul 12 14:01:41 1996 +++ kterm-6.2.0.ext02/gset.h Fri Apr 14 12:27:07 2000 @@ -29,15 +29,15 @@ #define MBCS 0x40 /* multi-byte character sets */ #define MBC2 0x7f /* second byte of a mbcs character */ /* - * No character set uses designating characters less than '/'. - * Final characters more than 'n' can not be used in current kterm. + * No character set uses designating characters less than '@' + * except for ESC ( 0. */ -#define GSET(c) ((c) - '/') -#define GSETFC(i) (((i) & ~(MBCS|CS96)) + '/') +#define GSET(c) ((c) - ('@' - 1)) +#define GSETFC(i) (((i) & ~(MBCS|CS96)) + ('@' - 1)) /* final character of a designation sequense for a gset */ /* code of Ichr,Bchr */ -#define GSET_GRAPH GSET('0') +#define GSET_GRAPH (CS96|0) #define GSET_IRV GSET('@') #define GSET_UK GSET('A') #define GSET_ASCII GSET('B') @@ -60,11 +60,21 @@ #define GSET_LATIN5R (CS96|GSET('M')) #ifdef KTERM_MBCS -# define GSET_OLDKANJI (MBCS|GSET('@')) -# define GSET_HANZI (MBCS|GSET('A')) -# define GSET_KANJI (MBCS|GSET('B')) -# define GSET_HANJA (MBCS|GSET('C')) -# define GSET_HOJOKANJI (MBCS|GSET('D')) +# define GSET_OLDKANJI (MBCS|GSET('@')) +# define GSET_HANZI (MBCS|GSET('A')) +# define GSET_KANJI (MBCS|GSET('B')) +# define GSET_HANJA (MBCS|GSET('C')) +# define GSET_HOJOKANJI (MBCS|GSET('D')) +# define GSET_CNS1 (MBCS|GSET('G')) +# define GSET_CNS2 (MBCS|GSET('H')) +# define GSET_CNS3 (MBCS|GSET('I')) +# define GSET_CNS4 (MBCS|GSET('J')) +# define GSET_CNS5 (MBCS|GSET('K')) +# define GSET_CNS6 (MBCS|GSET('L')) +# define GSET_CNS7 (MBCS|GSET('M')) +# define GSET_EXTKANJI1 (MBCS|GSET('O')) +# define GSET_EXTKANJI2 (MBCS|GSET('P')) +# define GSET_90KANJI (MBCS|GSET('_')) #endif /* KTERM_MBCS */ #define F_ISO8859_1 0 @@ -78,12 +88,22 @@ #define F_ISO8859_9 8 #define F_JISX0201_0 9 #ifdef KTERM_MBCS -# define F_JISX0208_0 10 -# define F_JISX0212_0 11 -# define F_GB2312_0 12 -# define F_KSC5601_0 13 -# define F_JISC6226_0 14 -# define FCNT 15 +# define F_JISX0208_1990_0 10 +# define F_JISX0208_0 11 +# define F_JISX0212_0 12 +# define F_GB2312_0 13 +# define F_KSC5601_0 14 +# define F_JISC6226_0 15 +# define F_CNS11643_1 16 +# define F_CNS11643_2 17 +# define F_CNS11643_3 18 +# define F_CNS11643_4 19 +# define F_CNS11643_5 20 +# define F_CNS11643_6 21 +# define F_CNS11643_7 22 +# define F_JISX0213_1 23 +# define F_JISX0213_2 24 +# define FCNT 25 #else # define FCNT 10 #endif diff -urN kterm-6.2.0/kanji_map.c kterm-6.2.0.ext02/kanji_map.c --- kterm-6.2.0/kanji_map.c Thu Jan 1 09:00:00 1970 +++ kterm-6.2.0.ext02/kanji_map.c Fri Apr 14 12:27:07 2000 @@ -0,0 +1,1038 @@ +#include "kanji_map.h" + +unsigned char kanji_map[94][94] = { + { + /* row 1 */ + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + }, + { + /* row 2 */ + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x06, 0x06, 0x06, + 0x04, 0x04, 0x04, 0x04, 0x04, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x04, 0x04, 0x04, 0x04, 0x05, + }, + { + /* row 3 */ + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0c, 0x0c, 0x0c, 0x0c, + }, + { + /* row 4 */ + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x08, 0x08, 0x08, + }, + { + /* row 5 */ + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + }, + { + /* row 6 */ + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x04, 0x04, 0x04, 0x04, + 0x04, 0x04, 0x04, 0x04, 0x06, 0x06, 0x06, 0x06, 0x06, 0x04, 0x06, 0x04, + 0x06, 0x06, 0x04, 0x06, 0x04, 0x04, 0x04, 0x04, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x04, 0x04, + }, + { + /* row 7 */ + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x04, 0x04, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + }, + { + /* row 8 */ + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x08, 0x08, + }, + { + /* row 9 */ + 0x06, 0x06, 0x04, 0x06, 0x04, 0x06, 0x04, 0x06, 0x06, 0x04, 0x06, 0x06, + 0x06, 0x04, 0x06, 0x06, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, + 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, + 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, + 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, + 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, + }, + { + /* row 10 */ + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x04, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, + }, + { + /* row 11 */ + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x04, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x04, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, + }, + { + /* row 12 */ + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0c, 0x0c, + }, + { + /* row 13 */ + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x08, 0x08, 0x08, 0x0c, 0x08, + 0x08, 0x08, 0x08, 0x0c, 0x0c, 0x08, 0x08, 0x08, 0x0c, 0x0c, + }, + { + /* row 14 */ + 0x08, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + }, + { + /* row 15 */ + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x08, + }, + { + /* row 16 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 17 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 18 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 19 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 20 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 21 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 22 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 23 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 24 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 25 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 26 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 27 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 28 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 29 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 30 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 31 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 32 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 33 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 34 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 35 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 36 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 37 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 38 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 39 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 40 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 41 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 42 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 43 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 44 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 45 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 46 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 47 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x02, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x02, + }, + { + /* row 48 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 49 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 50 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 51 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 52 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 53 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 54 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 55 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 56 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 57 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 58 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 59 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 60 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 61 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 62 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 63 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 64 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 65 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 66 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 67 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 68 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 69 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 70 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 71 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 72 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 73 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 74 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 75 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 76 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + }, + { + /* row 77 */ + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + }, + { + /* row 78 */ + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + }, + { + /* row 79 */ + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + }, + { + /* row 80 */ + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + }, + { + /* row 81 */ + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + }, + { + /* row 82 */ + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + }, + { + /* row 83 */ + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, + }, + { + /* row 84 */ + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x08, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + }, + { + /* row 85 */ + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + }, + { + /* row 86 */ + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + }, + { + /* row 87 */ + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + }, + { + /* row 88 */ + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + }, + { + /* row 89 */ + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + }, + { + /* row 90 */ + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + }, + { + /* row 91 */ + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + }, + { + /* row 92 */ + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + }, + { + /* row 93 */ + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + }, + { + /* row 94 */ + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, + 0x0c, 0x0c, 0x04, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, + }, +}; diff -urN kterm-6.2.0/kanji_map.h kterm-6.2.0.ext02/kanji_map.h --- kterm-6.2.0/kanji_map.h Thu Jan 1 09:00:00 1970 +++ kterm-6.2.0.ext02/kanji_map.h Fri Apr 14 12:27:07 2000 @@ -0,0 +1,6 @@ +#define CHAR_JISX0208 (1) +#define CHAR_JISX0212 (2) +#define CHAR_JISX0213_1 (4) +#define CHAR_JISX0213_2 (8) + +extern unsigned char kanji_map[94][94]; diff -urN kterm-6.2.0/kfontlist.def kterm-6.2.0.ext02/kfontlist.def --- kterm-6.2.0/kfontlist.def Thu Jan 1 09:00:00 1970 +++ kterm-6.2.0.ext02/kfontlist.def Fri Apr 14 12:27:07 2000 @@ -0,0 +1,15 @@ +kanjifont(`kanjiFont',`kanjiBoldFont',`F_JISX0208_0') +kanjifont(`oldKanjiFont',`oldKanjiBoldFont',`F_JISC6226_0') +kanjifont(`kanji90Font',`kanji90BoldFont',`F_JISX0208_1990_0') +kanjifont(`hojoKanjiFont',`hojoKanjiBoldFont',`F_JISX0212_0') +kanjifont(`hanziFont',`hanziBoldFont',`F_GB2312_0') +kanjifont(`hanglFont',`hanglBoldFont',`F_KSC5601_0') +kanjifont(`cnsOneFont',`cnsOneBoldFont',`F_CNS11643_1') +kanjifont(`cnsTwoFont',`cnsTwoBoldFont',`F_CNS11643_2') +kanjifont(`cnsThreeFont',`cnsThreeBoldFont',`F_CNS11643_3') +kanjifont(`cnsFourFont',`cnsFourBoldFont',`F_CNS11643_4') +kanjifont(`cnsFiveFont',`cnsFiveBoldFont',`F_CNS11643_5') +kanjifont(`cnsSixFont',`cnsSixBoldFont',`F_CNS11643_6') +kanjifont(`cnsSevenFont',`cnsSevenBoldFont',`F_CNS11643_7') +kanjifont(`extOneKanjiFont',`extOneKanjiBoldFont',`F_JISX0213_1') +kanjifont(`extTwoKanjiFont',`extTwoKanjiBoldFont',`F_JISX0213_2') diff -urN kterm-6.2.0/kfontlist.m4 kterm-6.2.0.ext02/kfontlist.m4 --- kterm-6.2.0/kfontlist.m4 Thu Jan 1 09:00:00 1970 +++ kterm-6.2.0.ext02/kfontlist.m4 Fri Apr 14 12:27:07 2000 @@ -0,0 +1,37 @@ +define(`kanjifont',``{"'$1`1", "KanjiFont1", XtRString, sizeof(String), + XtOffsetOf(XtermWidgetRec, screen._menu_font_names['$3`][fontMenu_font1]), + XtRString, (XtPointer) NULL}, +{"'$1`2", "KanjiFont2", XtRString, sizeof(String), + XtOffsetOf(XtermWidgetRec, screen._menu_font_names['$3`][fontMenu_font2]), + XtRString, (XtPointer) NULL}, +{"'$1`3", "KanjiFont3", XtRString, sizeof(String), + XtOffsetOf(XtermWidgetRec, screen._menu_font_names['$3`][fontMenu_font3]), + XtRString, (XtPointer) NULL}, +{"'$1`4", "KanjiFont4", XtRString, sizeof(String), + XtOffsetOf(XtermWidgetRec, screen._menu_font_names['$3`][fontMenu_font4]), + XtRString, (XtPointer) NULL}, +{"'$1`5", "KanjiFont5", XtRString, sizeof(String), + XtOffsetOf(XtermWidgetRec, screen._menu_font_names['$3`][fontMenu_font5]), + XtRString, (XtPointer) NULL}, +{"'$1`6", "KanjiFont6", XtRString, sizeof(String), + XtOffsetOf(XtermWidgetRec, screen._menu_font_names['$3`][fontMenu_font6]), + XtRString, (XtPointer) NULL}, +{"'$2`1", "KanjiFont1", XtRString, sizeof(String), + XtOffsetOf(XtermWidgetRec, screen._menu_bfont_names['$3`][fontMenu_font1]), + XtRString, (XtPointer) NULL}, +{"'$2`2", "KanjiFont2", XtRString, sizeof(String), + XtOffsetOf(XtermWidgetRec, screen._menu_bfont_names['$3`][fontMenu_font2]), + XtRString, (XtPointer) NULL}, +{"'$2`3", "KanjiFont3", XtRString, sizeof(String), + XtOffsetOf(XtermWidgetRec, screen._menu_bfont_names['$3`][fontMenu_font3]), + XtRString, (XtPointer) NULL}, +{"'$2`4", "KanjiFont4", XtRString, sizeof(String), + XtOffsetOf(XtermWidgetRec, screen._menu_bfont_names['$3`][fontMenu_font4]), + XtRString, (XtPointer) NULL}, +{"'$2`5", "KanjiFont5", XtRString, sizeof(String), + XtOffsetOf(XtermWidgetRec, screen._menu_bfont_names['$3`][fontMenu_font5]), + XtRString, (XtPointer) NULL}, +{"'$2`6", "KanjiFont6", XtRString, sizeof(String), + XtOffsetOf(XtermWidgetRec, screen._menu_bfont_names['$3`][fontMenu_font6]), + XtRString, (XtPointer) NULL},'')dnl +include(kfontlist.def)dnl diff -urN kterm-6.2.0/kterm.h kterm-6.2.0.ext02/kterm.h --- kterm-6.2.0/kterm.h Fri Jul 12 14:01:37 1996 +++ kterm-6.2.0.ext02/kterm.h Fri Apr 14 12:27:07 2000 @@ -28,7 +28,7 @@ #ifndef _KTERM_H_ #define _KTERM_H_ -#define KTERM_VERSION "6.2.0" +#define KTERM_VERSION "6.2.0.ext02" #define KTERM_MBCS /* multi-byte character set */ #define KTERM_MBCC /* multi-byte character class for word selection */ #define KTERM_KANJIMODE /* euc/sjis Kanji modes */ diff -urN kterm-6.2.0/kterm.jman kterm-6.2.0.ext02/kterm.jman --- kterm-6.2.0/kterm.jman Fri Jul 12 14:01:37 1996 +++ kterm-6.2.0.ext02/kterm.jman Fri Apr 14 12:27:07 2000 @@ -66,15 +66,35 @@ .br "jisx0201.1976-0", .br -"jisx0208.1990-0" $B$^$?$O(B "jisx0208.1983-0", +"jisc6226.1978-0", +.br +"jisx0208.1983-0", +.br +"jisx0208.1990-0", .br "jisx0212.1990-0", .br -"gb2312.1980-0", +"jisx0213.2000-1", +.br +"jisx0213.2000-2", .br "ksc5601.1987-0", .br -"jisc6226.1978-0" $B$^$?$O(B "jisx0208.1983-0"$B!#(B +"gb2312.1980-0", +.br +"cns11643.1992-1", +.br +"cns11643.1992-2", +.br +"cns11643.1992-3", +.br +"cns11643.1992-4", +.br +"cns11643.1992-5", +.br +"cns11643.1992-6", +.br +"cns11643.1992-7"$B!#(B .TP 8 .BI \-fn " iso8859/1-font" Latin-1 (ASCII $B$r4^$`(B) $B$N%F%-%9%H$rI=<($9$k;~$KMQ$$$k!"DL>o$N(B($B%\!<%k%I(B @@ -86,19 +106,110 @@ $B%s%H$HF1$89b$5$HI}$r;}$C$F$$$J$1$l$P$J$j$^$;$s!#;XDj$5$l$F$$$J$$;~$O!"(B \fIfontlist\fP $B$NCf$+$iC5$7$^$9!#(B .TP 8 -.BI \-fk " kanji-font" -$B4A;z%F%-%9%H$rI=<($9$k;~$KMQ$$$kDL>o$N(B JISX0208 $B$N%U%)%s%H$r;XDj$7$^$9!#(B -$B$3$N%U%)%s%H$O!"(BISO8859/1 $B$N%U%)%s%H$HF1$89b$5$G!"(B2$BG\$NI}$r;}$C$F$$$J(B -$B$1$l$P$J$j$^$;$s!#;XDj$5$l$F$$$J$$;~$O!"(B\fIfontlist\fP $B$NCf$+$iC5$7$^(B +.BI \-fkB " kanji-font" +$B4A;z%F%-%9%H$rI=<($9$k;~$KMQ$$$k(B +$BDL>o$N(B JISX0208-1983 $B$N%U%)%s%H$r;XDj$7$^$9!#(B +$B$3$N%U%)%s%H$O!"(BISO8859/1 $B$N%U%)%s%H$HF1$89b$5$G!"(B +2$BG\$NI}$r;}$C$F$$$J$1$l$P$J$j$^$;$s!#(B +$B;XDj$5$l$F$$$J$$;~$O!"(B\fIfontlist\fP $B$NCf$+$iC5$7$^(B $B$9!#(B +.BI \-fk@ " old-kanji-font" +$B4A;z$N%F%-%9%H$rI=<($9$k;~$KMQ$$$k(B +JISC6226-1978 $B$N%U%)%s%H$r;XDj$7$^$9!#(B +$B$3$N%U%)%s%H$O!"(BISO8859/1 $B$N%U%)%s%H$HF1$89b$5$G!"(B +2$BG\$NI}$r;}$C$F$$$J$1$l$P$J$j$^$;$s!#(B +$B;XDj$5$l$F$$$J$$;~$O!"(B\fIfontlist\fP $B$NCf$+$iC5$7$^$9!#(B +.TP 8 +.BI \-fk@B " 1990-kanji-font" +$B4A;z$N%F%-%9%H$rI=<($9$k;~$KMQ$$$k(B +$BDL>o$N(B JISX0208-1990 $B$N%U%)%s%H$r;XDj$7$^$9!#(B +$B$3$N%U%)%s%H$O!"(BISO8859/1 $B$N%U%)%s%H$HF1$89b$5$G!"(B +2$BG\$NI}$r;}$C$F$$$J$1$l$P$J$j$^$;$s!#(B +$B;XDj$5$l$F$$$J$$;~$O!"(B\fIfontlist\fP $B$NCf$+$iC5$7$^$9!#(B +.TP 8 +.BI \-fkD " hojo-kanji-font" +$BJd=u4A;z$N%F%-%9%H$rI=<($9$k;~$KMQ$$$k(B +JISX0212-1990 $B$N%U%)%s%H$r;XDj$7$^$9!#(B +.TP 8 +.BI \-fkO " extended-kanji-font-1" +$B3HD%4A;z$N0lLL(B($BBh;0?e=`(B)$B$N%F%-%9%H$rI=<($9$k;~$KMQ$$$k(B +JISX0213-2000-1 $B$N%U%)%s%H$r;XDj$7$^$9!#(B +.TP 8 +.BI \-fkP " extended-kanji-font-2" +$B3HD%4A;z$NFsLL(B($BBh;M?e=`(B)$B$N%F%-%9%H$rI=<($9$k;~$KMQ$$$k(B +JISX0213-2000-1 $B$N%U%)%s%H$r;XDj$7$^$9!#(B +.TP 8 +.BI \-fkC " hangl-font" +$B%O%s%0%kJ8;z$N%F%-%9%H$rI=<($9$k;~$KMQ$$$k(B +KSC5601-1987 $B$N%U%)%s%H$r;XDj$7$^$9!#(B +.TP 8 +.BI \-fkA " hanzi-font" +$BCf9q8l4A;z$N%F%-%9%H$rI=<($9$k;~$KMQ$$$k(B +GB2312-1980 $B$N%U%)%s%H$r;XDj$7$^$9!#(B +.TP 8 +.BI \-fkG " cns-font-1" +$BBfOQ4A;z(B($B0lLL(B)$B$N%F%-%9%H$rI=<($9$k;~$KMQ$$$k(B +CNS11643-1992-1 $B$N%U%)%s%H$r;XDj$7$^$9!#(B +.TP 8 +.BI \-fkH " cns-font-2" +$BBfOQ4A;z(B($B%KLL(B)$B$N%F%-%9%H$rI=<($9$k;~$KMQ$$$k(B +CNS11643-1992-2 $B$N%U%)%s%H$r;XDj$7$^$9!#(B +.TP 8 +.BI \-fkI " cns-font-3" +$BBfOQ4A;z(B($B;0LL(B)$B$N%F%-%9%H$rI=<($9$k;~$KMQ$$$k(B +CNS11643-1992-3 $B$N%U%)%s%H$r;XDj$7$^$9!#(B +.TP 8 +.BI \-fkJ " cns-font-4" +$BBfOQ4A;z(B($B;MLL(B)$B$N%F%-%9%H$rI=<($9$k;~$KMQ$$$k(B +CNS11643-1992-4 $B$N%U%)%s%H$r;XDj$7$^$9!#(B +.TP 8 +.BI \-fkK " cns-font-5" +$BBfOQ4A;z(B($B8^LL(B)$B$N%F%-%9%H$rI=<($9$k;~$KMQ$$$k(B +CNS11643-1992-5 $B$N%U%)%s%H$r;XDj$7$^$9!#(B +.TP 8 +.BI \-fkL " cns-font-6" +$BBfOQ4A;z(B($BO;LL(B)$B$N%F%-%9%H$rI=<($9$k;~$KMQ$$$k(B +CNS11643-1992-6 $B$N%U%)%s%H$r;XDj$7$^$9!#(B +.TP 8 +.BI \-fkM " cns-font-7" +$BBfOQ4A;z(B($B<7LL(B)$B$N%F%-%9%H$rI=<($9$k;~$KMQ$$$k(B +CNS11643-1992-7 $B$N%U%)%s%H$r;XDj$7$^$9!#(B .TP .BI \-flb " bold-fontlist" -.TP +.TP 8 .BI \-fb " bold-font" -.TP +.TP 8 .BI \-frb " roman-kana-bold-font" .TP 8 -.BI \-fkb " kanji-bold-font" +.BI \-fkbB " kanji-bold-font" +.TP 8 +.BI \-fkb@ " old-kanji-bold-font" +.TP 8 +.BI \-fkb@B " 1990-kanji-bold-font" +.TP 8 +.BI \-fkbD " hojo-kanji-bold-font" +.TP 8 +.BI \-fkbO " extended-kanji-bold-font-1" +.TP 8 +.BI \-fkbP " extended-kanji-bold-font-2" +.TP 8 +.BI \-fkbC " hangl-bold-font" +.TP 8 +.BI \-fkbA " hanzi-bold-font" +.TP 8 +.BI \-fkbG " cns-bold-font-1" +.TP 8 +.BI \-fkbH " cns-bold-font-2" +.TP 8 +.BI \-fkbI " cns-bold-font-3" +.TP 8 +.BI \-fkbJ " cns-bold-font-4" +.TP 8 +.BI \-fkbK " cns-bold-font-5" +.TP 8 +.BI \-fkbL " cns-bold-font-6" +.TP 8 +.BI \-fkbM " cns-bold-font-7" $B%\!<%k%I%U%)%s%H$r;XDj$7$^$9!#(B .TP 8 .BI \-lsp " dots" @@ -115,7 +226,7 @@ .TP 8 .BI \-km " kanji-mode" pty $B$H$d$j$H$j$5$l$k4A;z%3!<%I$r;XDj$7$^$9!#4A;z%b!<%I$,(B ``euc'' $B$N>l(B -$B9g!"F~=PNO$OF|K\8l(B EUC $B$G$"$k$H2>Dj$7$^$9!#(B``sjis'' $B$N>l9g!"(BShift-JIS +$B9g!"F~=PNO$OF|K\8l(B EUC $B$G$"$k$H2>Dj$7$^$9!#(B``sjis'' $B$N>l9g!"(BShift_JIS $B%3!<%I(B($B%^%$%/%m%=%U%H4A;z%3!<%I(B)$B$G$"$k$H2>Dj$7$^$9!#(B .TP 8 .BI \-sn @@ -304,6 +415,12 @@ .PP $BK\%P!<%8%g%s$G$O(B JIS $B%b!<%I$G4A;z$rF~NO$9$k:]!"(B``ESC $ B'' $B$r4A;zJ8;z(B $B%;%C%H$N3dEv$KMQ$$$^$9!#(B +.SH NOTE +$B$3$N(B kterm $B$K$O(B JIS X 0213:2000 $B$GDI2C$5$l$?Bh;0?e=`!"Bh;M?e=`$N4A;z$r(B +$B;HMQ$9$k$?$a$N%Q%C%A$,Ev$C$F$$$^$9!#(BJIS $B%b!<%I$N>l9g$K$O(B ``ESC $ ( O'' +$B$d(B ``ESC $ ( P'' $B$K$h$C$F(B JIS X 0213 $B$NJ8;z$r07$($^$9!#F|K\8l(B EUC $B%b!<%I(B +$B$*$h$S(B SJIS $B%b!<%I$N>l9g$K$O(B JIS X 0208 $B$GL$Dj5A$NJ8;z$,8=$o$l$?>l9g$K(B +$B$=$NJ8;z$N$_(B JIS X 0213 $B$NJ8;z$H$7$F07$$$^$9!#(B .SH AUTHORS $B0J2<$r4^$`B?$/$N?M!9(B: .sp diff -urN kterm-6.2.0/kterm.man kterm-6.2.0.ext02/kterm.man --- kterm-6.2.0/kterm.man Fri Jul 12 14:01:37 1996 +++ kterm-6.2.0.ext02/kterm.man Fri Apr 14 12:27:07 2000 @@ -67,15 +67,35 @@ .br "jisx0201.1976-0", .br -"jisx0208.1990-0" or "jisx0208.1983-0", +"jisc6226.1978-0", +.br +"jisx0208.1983-0", +.br +"jisx0208.1990-0", .br "jisx0212.1990-0", .br +"jisx0213.2000-1", +.br +"jisx0213.2000-2", +.br +"ksc5601.1987-0", +.br "gb2312.1980-0", .br -"ksc5601.1987-0", and +"cns11643.1992-1", +.br +"cns11643.1992-2", +.br +"cns11643.1992-3", +.br +"cns11643.1992-4", +.br +"cns11643.1992-5", +.br +"cns11643.1992-6", and .br -"jisc6226.1978-0" or "jisx0208.1983-0". +"cns11643.1992-7". .TP 8 .BI \-fn " iso8859/1-font" This option specifies a normal (non-bold) ISO8859/1 font to be used @@ -87,19 +107,107 @@ same height and width as the ISO8859/1 font. If it is not specified, \fIfontlist\fP is used. .TP 8 -.BI \-fk " kanji-font" -This option specifies a normal JISX0208 font to be used when +.BI \-fkB " kanji-font" +This option specifies a normal JISX0208-1983 font to be used when displaying Kanji text. This font must have same height and twice width as the ISO8859/1 font. If it is not specified, \fIfontlist\fP is used. +.TP 8 +.BI \-fk@ " old-kanji-font" +This option specifies a normal JISC6226-1978 font to be used when +displaying Kanji text. This font must have same height and twice +width as the ISO8859/1 font. If it is not specified, \fIfontlist\fP +is used. +.TP 8 +.BI \-fk@B " 1990-kanji-font" +This option specifies a normal JISX0208-1990 font to be used when +displaying Kanji text. This font must have same height and twice +width as the ISO8859/1 font. If it is not specified, \fIfontlist\fP +is used. +.TP 8 +.BI \-fkD " hojo-kanji-font" +This option specifies a JISX0212-1990 font text +to be used when displaying supplementary Kanji. +.TP 8 +.BI \-fkO " extended-kanji-font-1" +This option specifies a JISX0213-2000-1 font text +to be used when displaying extended Kanji plain 1(3rd level). +.TP 8 +.BI \-fkP " extended-kanji-font-2" +This option specifies a JISX0213-2000-2 font text +to be used when displaying extended Kanji plain 2(4th level). +.TP 8 +.BI \-fkC " hangl-font" +This option specifies a KSC5601-1987 font text +to be used when displaying Hangl text. +.TP 8 +.BI \-fkA " hanzi-font" +This option specifies a GB2312-1980 font text +to be used when displaying Hanzi text. +.TP 8 +.BI \-fkG " cns-font-1" +This option specifies a CNS11643-1992-1 font text +to be used when displaying Taiwanese text. +.TP 8 +.BI \-fkH " cns-font-2" +This option specifies a CNS11643-1992-2 font text +to be used when displaying Taiwanese text. +.TP 8 +.BI \-fkI " cns-font-3" +This option specifies a CNS11643-1992-3 font text +to be used when displaying Taiwanese text. +.TP 8 +.BI \-fkJ " cns-font-4" +This option specifies a CNS11643-1992-4 font text +to be used when displaying Taiwanese text. +.TP 8 +.BI \-fkK " cns-font-5" +This option specifies a CNS11643-1992-5 font text +to be used when displaying Taiwanese text. +.TP 8 +.BI \-fkL " cns-font-6" +This option specifies a CNS11643-1992-6 font text +to be used when displaying Taiwanese text. +.TP 8 +.BI \-fkM " cns-font-7" +This option specifies a CNS11643-1992-7 font text +to be used when displaying Taiwanese text. .TP .BI \-flb " bold-fontlist" -.TP +.TP 8 .BI \-fb " bold-font" -.TP +.TP 8 .BI \-frb " roman-kana-bold-font" .TP 8 -.BI \-fkb " kanji-bold-font" +.BI \-fkbB " kanji-bold-font" +.TP 8 +.BI \-fkb@ " old-kanji-bold-font" +.TP 8 +.BI \-fkb@B " 1990-kanji-bold-font" +.TP 8 +.BI \-fkbD " hojo-kanji-bold-font" +.TP 8 +.BI \-fkbO " extended-kanji-bold-font-1" +.TP 8 +.BI \-fkbP " extended-kanji-bold-font-2" +.TP 8 +.BI \-fkbC " hangl-bold-font" +.TP 8 +.BI \-fkbA " hanzi-bold-font" +.TP 8 +.BI \-fkbG " cns-bold-font-1" +.TP 8 +.BI \-fkbH " cns-bold-font-2" +.TP 8 +.BI \-fkbI " cns-bold-font-3" +.TP 8 +.BI \-fkbJ " cns-bold-font-4" +.TP 8 +.BI \-fkbK " cns-bold-font-5" +.TP 8 +.BI \-fkbL " cns-bold-font-6" +.TP 8 +.BI \-fkbM " cns-bold-font-7" These options specify bold fonts. .TP 8 .BI \-lsp " dots" @@ -118,7 +226,7 @@ This option specifies the Kanji code from/to the pty. If kanji-mode is ``euc'', then it assumes the input/output is coded by Japanese EUC. If kanji-mode is ``sjis'', then it assumes the input/output is coded -by Shift-JIS code (which is the same as Microsoft Kanji code). +by Shift_JIS code (which is the same as Microsoft Kanji code). .TP 8 .B \-sn By default, the status line is in reverse-video (relative to the rest diff -urN kterm-6.2.0/main.c kterm-6.2.0.ext02/main.c --- kterm-6.2.0/main.c Fri Jul 12 14:01:38 1996 +++ kterm-6.2.0.ext02/main.c Fri Apr 14 12:27:07 2000 @@ -710,6 +710,36 @@ #ifdef KTERM_MBCS {"-fk", "*kanjiFont", XrmoptionSepArg, (caddr_t) NULL}, {"-fkb", "*kanjiBoldFont", XrmoptionSepArg, (caddr_t) NULL}, +{"-fkB", "*kanjiFont", XrmoptionSepArg, (caddr_t) NULL}, +{"-fkbB", "*kanjiBoldFont", XrmoptionSepArg, (caddr_t) NULL}, +{"-fk@", "*oldKanjiFont", XrmoptionSepArg, (caddr_t) NULL}, +{"-fkb@", "*oldKanjiBoldFont", XrmoptionSepArg, (caddr_t) NULL}, +{"-fk@B", "*kanji90Font", XrmoptionSepArg, (caddr_t) NULL}, +{"-fkb@B", "*kanji90BoldFont", XrmoptionSepArg, (caddr_t) NULL}, +{"-fkD", "*hojoKanjiFont", XrmoptionSepArg, (caddr_t) NULL}, +{"-fkbD", "*hojoKanjiBoldFont", XrmoptionSepArg, (caddr_t) NULL}, +{"-fkO", "*extOneKanjiFont", XrmoptionSepArg, (caddr_t) NULL}, +{"-fkbO", "*extOneKanjiBoldFont", XrmoptionSepArg,(caddr_t) NULL}, +{"-fkP", "*extTwoKanjiFont", XrmoptionSepArg, (caddr_t) NULL}, +{"-fkbP", "*extTwoKanjiBoldFont", XrmoptionSepArg,(caddr_t) NULL}, +{"-fkC", "*hanglFont", XrmoptionSepArg, (caddr_t) NULL}, +{"-fkbC", "*hanglBoldFont", XrmoptionSepArg, (caddr_t) NULL}, +{"-fkA", "*hanziFont", XrmoptionSepArg, (caddr_t) NULL}, +{"-fkbA", "*hanziBoldFont", XrmoptionSepArg, (caddr_t) NULL}, +{"-fkG", "*cnsOneFont", XrmoptionSepArg, (caddr_t) NULL}, +{"-fkbG", "*cnsOneBoldFont", XrmoptionSepArg, (caddr_t) NULL}, +{"-fkH", "*cnsTwoFont", XrmoptionSepArg, (caddr_t) NULL}, +{"-fkbH", "*cnsTwoBoldFont", XrmoptionSepArg, (caddr_t) NULL}, +{"-fkI", "*cnsThreeFont", XrmoptionSepArg, (caddr_t) NULL}, +{"-fkbI", "*cnsThreeBoldFont", XrmoptionSepArg, (caddr_t) NULL}, +{"-fkJ", "*cnsFourFont", XrmoptionSepArg, (caddr_t) NULL}, +{"-fkbJ", "*cnsFourBoldFont", XrmoptionSepArg, (caddr_t) NULL}, +{"-fkK", "*cnsFiveFont", XrmoptionSepArg, (caddr_t) NULL}, +{"-fkbK", "*cnsFiveBoldFont", XrmoptionSepArg, (caddr_t) NULL}, +{"-fkL", "*cnsSixFont", XrmoptionSepArg, (caddr_t) NULL}, +{"-fkbL", "*cnsSixBoldFont", XrmoptionSepArg, (caddr_t) NULL}, +{"-fkM", "*cnsSevenFont", XrmoptionSepArg, (caddr_t) NULL}, +{"-fkbM", "*cnsSevenBoldFont", XrmoptionSepArg, (caddr_t) NULL}, #endif /* KTERM_MBCS */ #ifdef KTERM_KANJIMODE {"-km", "*kanjiMode", XrmoptionSepArg, (caddr_t) NULL}, @@ -827,8 +857,36 @@ { "-fr fontname", "normal kana font" }, { "-frb fontname", "bold kana font" }, #ifdef KTERM_MBCS -{ "-fk fontname", "normal kanji font" }, -{ "-fkb fontname", "bold kanji font" }, +{ "-fkB fontname", "normal kanji font" }, +{ "-fkbB fontname", "bold kanji font" }, +{ "-fk@ fontname", "normal old kanji font" }, +{ "-fkb@ fontname", "bold old kanji font" }, +{ "-fk@B fontname", "normal kanji 1990 font" }, +{ "-fkb@B fontname", "bold kanji 1990 font" }, +{ "-fkD fontname", "normal hojo kanji font" }, +{ "-fkbD fontname", "bold hojo kanji font" }, +{ "-fkO fontname", "normal extended kanji font 1" }, +{ "-fkbO fontname", "bold extended kanji font 1" }, +{ "-fkP fontname", "normal extended kanji font 2" }, +{ "-fkbP fontname", "bold extended kanji font 2" }, +{ "-fkC fontname", "normal hangl font" }, +{ "-fkbC fontname", "bold hangl font" }, +{ "-fkA fontname", "normal hanzi font" }, +{ "-fkbA fontname", "bold hanzi font" }, +{ "-fkG fontname", "normal cns font 1" }, +{ "-fkbG fontname", "bold cns font 1" }, +{ "-fkH fontname", "normal cns font 2" }, +{ "-fkbH fontname", "bold cns font 2" }, +{ "-fkI fontname", "normal cns font 3" }, +{ "-fkbI fontname", "bold cns font 3" }, +{ "-fkJ fontname", "normal cns font 4" }, +{ "-fkbJ fontname", "bold cns font 4" }, +{ "-fkK fontname", "normal cns font 5" }, +{ "-fkbK fontname", "bold cns font 5" }, +{ "-fkL fontname", "normal cns font 6" }, +{ "-fkbL fontname", "bold cns font 6" }, +{ "-fkM fontname", "normal cns font 7" }, +{ "-fkbM fontname", "bold cns font 7" }, #endif /* KTERM_MBCS */ #ifdef KTERM_KANJIMODE { "-km kanjimode", "kanji code (jis|euc|sjis)" }, diff -urN kterm-6.2.0/menu.c kterm-6.2.0.ext02/menu.c --- kterm-6.2.0/menu.c Sat Jun 29 12:56:43 1996 +++ kterm-6.2.0.ext02/menu.c Fri Apr 14 12:27:07 2000 @@ -831,9 +831,10 @@ term->flags &= ~EUC_KANJI; term->flags &= ~SJIS_KANJI; screen->gsets[0] = GSET_ASCII; - screen->gsets[1] = GSET_KANA; + screen->gsets[1] = GSET_LATIN1R; screen->gsets[2] = GSET_ASCII; screen->gsets[3] = GSET_ASCII; + screen->curgl = 0; screen->curgr = 1; update_eucmode(); update_sjismode(); @@ -855,6 +856,7 @@ screen->gsets[1] = GSET_KANJI; screen->gsets[2] = GSET_KANA; screen->gsets[3] = GSET_HOJOKANJI; + screen->curgl = 0; screen->curgr = 1; update_eucmode(); update_sjismode(); @@ -1487,7 +1489,7 @@ { if (*param_count == 1) { switch (params[0][0]) { - case 'j': case 'J': + case 'j': case 'J': case 'i': case 'I': do_jismode (w, NULL, NULL); break; case 'e': case 'E': case 'x': case 'X': case 'u': case 'U': diff -urN kterm-6.2.0/util.c kterm-6.2.0.ext02/util.c --- kterm-6.2.0/util.c Tue Jul 2 14:01:53 1996 +++ kterm-6.2.0.ext02/util.c Fri Apr 14 12:27:07 2000 @@ -32,6 +32,7 @@ #include "data.h" #include "error.h" #include "menu.h" +#include "kanji_map.h" #include @@ -1196,4 +1197,45 @@ } } +int +isJISX0208_1990(c1, c2) +int c1, c2; +{ + int n1 = (c1 & 0x7f)-33; + int n2 = (c2 & 0x7f)-33; + + if (n1 == 83 && (n2 == 4 || n2 == 5)) + return 1; + else + return 0; +} + +int +isJISX0213_1(c1, c2) +int c1, c2; +{ + int n1 = (c1 & 0x7f)-33; + int n2 = (c2 & 0x7f)-33; + + if (kanji_map[n1][n2] & CHAR_JISX0208) + return 0; + else if (! (kanji_map[n1][n2] & CHAR_JISX0213_1)) + return 0; + else + return 1; +} + + +int +isJISX0213_2(c1, c2) +int c1, c2; +{ + int n1 = (c1 & 0x7f)-33; + int n2 = (c2 & 0x7f)-33; + + if (! (kanji_map[n1][n2] & CHAR_JISX0213_2)) + return 0; + else + return 1; +} #endif /* KTERM_MBCS */