Encode 0.40, from Dan Kogai.
Jarkko Hietaniemi [Sat, 16 Feb 2002 16:06:00 +0000 (16:06 +0000)]
p4raw-id: //depot/perl@14722

22 files changed:
MANIFEST
ext/Encode/CN/CN.pm [new file with mode: 0644]
ext/Encode/CN/Makefile.PL [copied from ext/Encode/EUC_JP/Makefile.PL with 94% similarity]
ext/Encode/EUC_JP/Japanese.pm [deleted file]
ext/Encode/Encode.pm
ext/Encode/JP/JP.pm [new file with mode: 0644]
ext/Encode/JP/Makefile.PL [copied from ext/Encode/EUC_JP/Makefile.PL with 94% similarity]
ext/Encode/KR/KR.pm [new file with mode: 0644]
ext/Encode/KR/Makefile.PL [copied from ext/Encode/EUC_JP/Makefile.PL with 94% similarity]
ext/Encode/MANIFEST
ext/Encode/TW/Makefile.PL [moved from ext/Encode/EUC_JP/Makefile.PL with 94% similarity]
ext/Encode/TW/TW.pm [new file with mode: 0644]
ext/Encode/lib/Encode/JP/Constants.pm [new file with mode: 0644]
ext/Encode/lib/Encode/JP/H2Z.pm [new file with mode: 0644]
ext/Encode/lib/Encode/JP/ISO_2022_JP.pm [new file with mode: 0644]
ext/Encode/lib/Encode/JP/JIS.pm [new file with mode: 0644]
ext/Encode/lib/Encode/JP/Tr.pm [new file with mode: 0644]
ext/Encode/t/Encode.t
ext/Encode/t/JP.t [moved from ext/Encode/t/Japanese.t with 71% similarity]
ext/Encode/t/japanese.pl [new file with mode: 0644]
ext/Encode/t/table.rnd [new file with mode: 0644]
ext/Encode/t/table.utf8 [new file with mode: 0644]

index 4eda273..5154679 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -194,6 +194,8 @@ ext/DynaLoader/hints/openbsd.pl     Hint for DynaLoader for named architecture
 ext/DynaLoader/Makefile.PL     Dynamic Loader makefile writer
 ext/DynaLoader/README          Dynamic Loader notes and intro
 ext/DynaLoader/XSLoader_pm.PL  Simple XS Loader perl module
+ext/Encode/CN/CN.pm            Encode extension
+ext/Encode/CN/Makefile.PL      Encode extension
 ext/Encode/compile             Encode extension
 ext/Encode/encengine.c         Encode extension
 ext/Encode/encode.h            Encode extension
@@ -330,11 +332,18 @@ ext/Encode/Encode/symbol.enc              Encode table
 ext/Encode/Encode/symbol.ucm           Encode table
 ext/Encode/Encode/viscii.enc           Encode table
 ext/Encode/Encode/viscii.ucm           Encode table
-ext/Encode/EUC_JP/Japanese.pm          Encode module for Japanese
-ext/Encode/EUC_JP/Makefile.PL          Encode module for Japanese
+ext/Encode/JP/JP.pm            Encode extension
+ext/Encode/JP/Makefile.PL      Encode extension
+ext/Encode/KR/KR.pm            Encode extension
+ext/Encode/KR/Makefile.PL              Encode extension
 ext/Encode/lib/Encode/Encoding.pm      Encode extension
 ext/Encode/lib/Encode/Internal.pm      Encode extension
 ext/Encode/lib/Encode/iso10646_1.pm    Encode extension
+ext/Encode/lib/Encode/JP/Constants.pm  Encode extension
+ext/Encode/lib/Encode/JP/H2Z.pm                Encode extension
+ext/Encode/lib/Encode/JP/ISO_2022_JP.pm        Encode extension
+ext/Encode/lib/Encode/JP/JIS.pm        Encode extension
+ext/Encode/lib/Encode/JP/Tr.pm Encode extension
 ext/Encode/lib/Encode/Tcl.pm           Encode extension
 ext/Encode/lib/Encode/Tcl/Escape.pm    Encode extension
 ext/Encode/lib/Encode/Tcl/Extended.pm  Encode extension
@@ -349,10 +358,15 @@ ext/Encode/Makefile.PL            Encode extension makefile writer
 ext/Encode/MANIFEST            Encode extension
 ext/Encode/README              Encode extension
 ext/Encode/t/Encode.t          Encode extension test
-ext/Encode/t/Japanese.t                Encode extension test
+ext/Encode/t/japanese.pl       Encode extension
+ext/Encode/t/JP.t              Encode extension test
 ext/Encode/t/table.euc         Encode extension test
 ext/Encode/t/table.ref         Encode extension test
+ext/Encode/t/table.rnd         Encode extension
+ext/Encode/t/table.utf8                Encode extension
 ext/Encode/t/Tcl.t             Encode extension test
+ext/Encode/TW/Makefile.PL      Encode extension
+ext/Encode/TW/TW.pm            Encode extension
 ext/Errno/ChangeLog    Errno perl module change log
 ext/Errno/Errno.t      See if Errno works
 ext/Errno/Errno_pm.PL  Errno perl module create script
@@ -633,8 +647,8 @@ ext/threads/shared/t/sv_simple.t    thread shared variables
 ext/threads/shared/typemap     thread::shared types
 ext/threads/t/basic.t          ithreads
 ext/threads/t/end.t            Test end functions
-ext/threads/t/libc.t            testing libc functions for threadsafetyness
 ext/threads/t/join.t           Testing the join function
+ext/threads/t/libc.t            testing libc functions for threadsafetyness
 ext/threads/t/stress_cv.t      Test with multiple threads, coderef cv argument.
 ext/threads/t/stress_re.t      Test with multiple threads, string cv argument and regexes.
 ext/threads/t/stress_string.t  Test with multiple threads, string cv argument.
diff --git a/ext/Encode/CN/CN.pm b/ext/Encode/CN/CN.pm
new file mode 100644 (file)
index 0000000..2aca19b
--- /dev/null
@@ -0,0 +1,8 @@
+package Encode::CN;
+use Encode;
+our $VERSION = '0.02';
+use XSLoader;
+XSLoader::load('Encode::CN',$VERSION);
+
+1;
+__END__
similarity index 94%
copy from ext/Encode/EUC_JP/Makefile.PL
copy to ext/Encode/CN/Makefile.PL
index b5b3746..37d19e0 100644 (file)
@@ -2,13 +2,13 @@ use 5.7.2;
 use strict;
 use ExtUtils::MakeMaker;
 
-my %tables = (EUC_JP   => ['euc-jp.ucm'],
-              JIS0208  => ['jis0208.enc'],
-              JIS0212  => ['jis0212.enc'],
-              SHIFTJIS => ['shiftjis.enc'],
+my %tables = (EUC_CN   => ['euc-cn.enc'],
+             GB2312   => ['gb2312.enc'],
+             GB12345  => ['gb12345.enc'],
+             CP936    => ['cp936.enc'],
              );
 
-my $name = 'Japanese';
+my $name = 'CN';
 
 WriteMakefile(
               INC              => "-I..",
diff --git a/ext/Encode/EUC_JP/Japanese.pm b/ext/Encode/EUC_JP/Japanese.pm
deleted file mode 100644 (file)
index 2e81a3e..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-package Encode::Japanese;
-use Encode;
-our $VERSION = '0.01';
-use XSLoader;
-XSLoader::load('Encode::Japanese',$VERSION);
-1;
-__END__
-
index e804583..45daffa 100644 (file)
@@ -1,6 +1,6 @@
 package Encode;
 use strict;
-our $VERSION = '0.30';
+our $VERSION = '0.40';
 
 require DynaLoader;
 require Exporter;
diff --git a/ext/Encode/JP/JP.pm b/ext/Encode/JP/JP.pm
new file mode 100644 (file)
index 0000000..f3d4998
--- /dev/null
@@ -0,0 +1,11 @@
+package Encode::JP;
+use Encode;
+our $VERSION = '0.02';
+use XSLoader;
+XSLoader::load('Encode::JP',$VERSION);
+
+use Encode::JP::JIS;
+use Encode::JP::ISO_2022_JP;
+
+1;
+__END__
similarity index 94%
copy from ext/Encode/EUC_JP/Makefile.PL
copy to ext/Encode/JP/Makefile.PL
index b5b3746..33c34c9 100644 (file)
@@ -2,13 +2,12 @@ use 5.7.2;
 use strict;
 use ExtUtils::MakeMaker;
 
-my %tables = (EUC_JP   => ['euc-jp.ucm'],
-              JIS0208  => ['jis0208.enc'],
-              JIS0212  => ['jis0212.enc'],
-              SHIFTJIS => ['shiftjis.enc'],
+my %tables = (EUC_JP   => ['euc-jp.enc'],
+             MACJAPAN => ['macJapan.enc'],
+             CP932    => ['cp932.enc'],
              );
 
-my $name = 'Japanese';
+my $name = 'JP';
 
 WriteMakefile(
               INC              => "-I..",
diff --git a/ext/Encode/KR/KR.pm b/ext/Encode/KR/KR.pm
new file mode 100644 (file)
index 0000000..34c512a
--- /dev/null
@@ -0,0 +1,11 @@
+package Encode::KR;
+use Encode;
+our $VERSION = '0.02';
+use XSLoader;
+XSLoader::load('Encode::KR',$VERSION);
+
+1;
+__END__
+
+todo:
+
similarity index 94%
copy from ext/Encode/EUC_JP/Makefile.PL
copy to ext/Encode/KR/Makefile.PL
index b5b3746..85afa59 100644 (file)
@@ -2,13 +2,11 @@ use 5.7.2;
 use strict;
 use ExtUtils::MakeMaker;
 
-my %tables = (EUC_JP   => ['euc-jp.ucm'],
-              JIS0208  => ['jis0208.enc'],
-              JIS0212  => ['jis0212.enc'],
-              SHIFTJIS => ['shiftjis.enc'],
+my %tables = (EUC_KR   => ['euc-kr.enc'],
+             KSC5601  => ['ksc5601.enc'],
              );
 
-my $name = 'Japanese';
+my $name = 'KR';
 
 WriteMakefile(
               INC              => "-I..",
index bbeee2b..3f6487c 100644 (file)
@@ -1,4 +1,6 @@
-Encode.xs
+CN/Makefile.PL
+CN/CN.pm
+Encode/euc-jp.ucm
 Encode/11643-1.enc
 Encode/11643-2.enc
 Encode/2022-cn.enc
@@ -42,7 +44,6 @@ Encode/8859-8.enc
 Encode/8859-8.ucm
 Encode/8859-9.enc
 Encode/8859-9.ucm
-Encode/HZ.enc
 Encode/ascii.enc
 Encode/ascii.ucm
 Encode/big5.enc
@@ -93,6 +94,7 @@ Encode/gb12345.enc
 Encode/gb1988.enc
 Encode/gb2312.enc
 Encode/gsm0338.enc
+Encode/HZ.enc
 Encode/ir-197.enc
 Encode/jis0201.enc
 Encode/jis0208.enc
@@ -119,33 +121,53 @@ Encode/macTurkish.enc
 Encode/macUkraine.enc
 Encode/nextstep.enc
 Encode/nextstep.ucm
+Encode/roman8.enc
 Encode/posix-bc.enc
 Encode/posix-bc.ucm
-Encode/roman8.enc
 Encode/roman8.ucm
 Encode/shiftjis.enc
 Encode/symbol.enc
 Encode/symbol.ucm
 Encode/viscii.enc
 Encode/viscii.ucm
+Encode/jis0201.ucm
+Encode.pm
+Encode.xs
+JP/Makefile.PL
+JP/JP.pm
+KR/Makefile.PL
+KR/KR.pm
 MANIFEST
 Makefile.PL
 README
+TW/Makefile.PL
+TW/TW.pm
 compile
 encengine.c
 encode.h
-Encode.pm
 lib/Encode/Encoding.pm
 lib/Encode/Internal.pm
+lib/Encode/iso10646_1.pm
 lib/Encode/Tcl.pm
+lib/Encode/ucs2_le.pm
+lib/Encode/Unicode.pm
+lib/Encode/utf8.pm
+lib/Encode/XS.pm
 lib/Encode/Tcl/Escape.pm
 lib/Encode/Tcl/Extended.pm
 lib/Encode/Tcl/HanZi.pm
 lib/Encode/Tcl/Table.pm
-lib/Encode/Unicode.pm
-lib/Encode/XS.pm
-lib/Encode/iso10646_1.pm
-lib/Encode/ucs2_le.pm
-lib/Encode/utf8.pm
+lib/Encode/JP/Tr.pm
+lib/Encode/JP/ISO_2022_JP.pm
+lib/Encode/JP/H2Z.pm
+lib/Encode/JP/Constants.pm
+lib/Encode/JP/JIS.pm
 lib/EncodeFormat.pod
 t/Tcl.t
+t/Encode.t
+t/table.euc
+t/table.ref
+t/table.utf8
+t/table.rnd
+t/japanese.pl
+t/JP.t
similarity index 94%
rename from ext/Encode/EUC_JP/Makefile.PL
rename to ext/Encode/TW/Makefile.PL
index b5b3746..ca25098 100644 (file)
@@ -2,13 +2,11 @@ use 5.7.2;
 use strict;
 use ExtUtils::MakeMaker;
 
-my %tables = (EUC_JP   => ['euc-jp.ucm'],
-              JIS0208  => ['jis0208.enc'],
-              JIS0212  => ['jis0212.enc'],
-              SHIFTJIS => ['shiftjis.enc'],
+my %tables = (BIG5   => ['big5.enc'],
+             CP950  => ['cp950.enc'],
              );
 
-my $name = 'Japanese';
+my $name = 'TW';
 
 WriteMakefile(
               INC              => "-I..",
diff --git a/ext/Encode/TW/TW.pm b/ext/Encode/TW/TW.pm
new file mode 100644 (file)
index 0000000..689db95
--- /dev/null
@@ -0,0 +1,10 @@
+package Encode::TW;
+use Encode;
+our $VERSION = '0.02';
+use XSLoader;
+XSLoader::load('Encode::TW',$VERSION);
+
+1;
+__END__
+
+todo: HZ (Escape-based)
diff --git a/ext/Encode/lib/Encode/JP/Constants.pm b/ext/Encode/lib/Encode/JP/Constants.pm
new file mode 100644 (file)
index 0000000..baa0b2b
--- /dev/null
@@ -0,0 +1,63 @@
+#
+# $Id: Constants.pm,v 1.2 2001/05/18 05:14:38 dankogai Exp dankogai $
+#
+
+package Encode::JP::Constants;
+
+use strict;
+use vars qw($RCSID $VERSION);
+
+$RCSID = q$Id: Constants.pm,v 1.2 2001/05/18 05:14:38 dankogai Exp dankogai $;
+$VERSION = do { my @r = (q$Revision: 1.2 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
+
+use Carp;
+
+BEGIN {
+    use Exporter;
+    use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
+    @ISA         = qw(Exporter);
+    @EXPORT      = qw();
+    @EXPORT_OK   = qw(%CHARCODE %ESC %RE);
+    %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK, @EXPORT ] );
+}
+
+use vars @EXPORT_OK;
+
+my %_0208 = (
+              1978 => '\e\$\@',
+              1983 => '\e\$B',
+              1990 => '\e&\@\e\$B',
+               );
+
+%CHARCODE = (
+            UNDEF_EUC  =>     "\xa2\xae",  # ¢® in EUC
+            UNDEF_SJIS =>     "\x81\xac",  # ¢® in SJIS
+            UNDEF_JIS  =>     "\xa2\xf7",  # ¢÷ -- used in unicode
+            UNDEF_UNICODE  => "\x20\x20",  # ¢÷ -- used in unicode
+        );
+
+%ESC =  (
+        JIS_0208 => "\e\$B",
+        JIS_0212 => "\e\$(D",
+        ASC      => "\e\(B",
+        KANA     => "\e\(I",
+        );
+
+%RE =
+    (
+     ASCII     => '[\x00-\x7f]',
+     BIN       => '[\x00-\x06\x7f\xff]',
+     EUC_0212  => '\x8f[\xa1-\xfe][\xa1-\xfe]',
+     EUC_C     => '[\xa1-\xfe][\xa1-\xfe]',
+     EUC_KANA  => '\x8e[\xa1-\xdf]',
+     JIS_0208  =>  "$_0208{1978}|$_0208{1983}|$_0208{1990}",
+     JIS_0212  => "\e" . '\$\(D',
+     JIS_ASC   => "\e" . '\([BJ]',     
+     JIS_KANA  => "\e" . '\(I',
+     SJIS_C    => '[\x81-\x9f\xe0-\xfc][\x40-\x7e\x80-\xfc]',
+     SJIS_KANA => '[\xa1-\xdf]',
+     UTF8      => '[\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf][\x80-\xbf]'
+     );
+
+1;
+
diff --git a/ext/Encode/lib/Encode/JP/H2Z.pm b/ext/Encode/lib/Encode/JP/H2Z.pm
new file mode 100644 (file)
index 0000000..d18fc9f
--- /dev/null
@@ -0,0 +1,168 @@
+#
+# $Id: H2Z.pm,v 0.77 2002/01/14 11:06:55 dankogai Exp $
+#
+
+package Encode::JP::H2Z;
+
+use strict;
+use vars qw($RCSID $VERSION);
+
+$RCSID = q$Id: H2Z.pm,v 0.77 2002/01/14 11:06:55 dankogai Exp $;
+$VERSION = do { my @r = (q$Revision: 0.77 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
+
+use Carp;
+
+use Encode::JP::Constants qw(:all);
+
+use vars qw(%_D2Z  $_PAT_D2Z
+           %_Z2D  $_PAT_Z2D
+           %_H2Z  $_PAT_H2Z
+           %_Z2H  $_PAT_Z2H);
+
+%_H2Z = (
+        "\x8e\xa1"     =>      "\xa1\xa3",     #¡£
+        "\x8e\xa2"     =>      "\xa1\xd6",     #¡Ö
+        "\x8e\xa3"     =>      "\xa1\xd7",     #¡×
+        "\x8e\xa4"     =>      "\xa1\xa2",     #¡¢
+        "\x8e\xa5"     =>      "\xa1\xa6",     #¡¦
+        "\x8e\xa6"     =>      "\xa5\xf2",     #¥ò
+        "\x8e\xa7"     =>      "\xa5\xa1",     #¥¡
+        "\x8e\xa8"     =>      "\xa5\xa3",     #¥£
+        "\x8e\xa9"     =>      "\xa5\xa5",     #¥¥
+        "\x8e\xaa"     =>      "\xa5\xa7",     #¥§
+        "\x8e\xab"     =>      "\xa5\xa9",     #¥©
+        "\x8e\xac"     =>      "\xa5\xe3",     #¥ã
+        "\x8e\xad"     =>      "\xa5\xe5",     #¥å
+        "\x8e\xae"     =>      "\xa5\xe7",     #¥ç
+        "\x8e\xaf"     =>      "\xa5\xc3",     #¥Ã
+        "\x8e\xb0"     =>      "\xa1\xbc",     #¡¼
+        "\x8e\xb1"     =>      "\xa5\xa2",     #¥¢
+        "\x8e\xb2"     =>      "\xa5\xa4",     #¥¤
+        "\x8e\xb3"     =>      "\xa5\xa6",     #¥¦
+        "\x8e\xb4"     =>      "\xa5\xa8",     #¥¨
+        "\x8e\xb5"     =>      "\xa5\xaa",     #¥ª
+        "\x8e\xb6"     =>      "\xa5\xab",     #¥«
+        "\x8e\xb7"     =>      "\xa5\xad",     #¥­
+        "\x8e\xb8"     =>      "\xa5\xaf",     #¥¯
+        "\x8e\xb9"     =>      "\xa5\xb1",     #¥±
+        "\x8e\xba"     =>      "\xa5\xb3",     #¥³
+        "\x8e\xbb"     =>      "\xa5\xb5",     #¥µ
+        "\x8e\xbc"     =>      "\xa5\xb7",     #¥·
+        "\x8e\xbd"     =>      "\xa5\xb9",     #¥¹
+        "\x8e\xbe"     =>      "\xa5\xbb",     #¥»
+        "\x8e\xbf"     =>      "\xa5\xbd",     #¥½
+        "\x8e\xc0"     =>      "\xa5\xbf",     #¥¿
+        "\x8e\xc1"     =>      "\xa5\xc1",     #¥Á
+        "\x8e\xc2"     =>      "\xa5\xc4",     #¥Ä
+        "\x8e\xc3"     =>      "\xa5\xc6",     #¥Æ
+        "\x8e\xc4"     =>      "\xa5\xc8",     #¥È
+        "\x8e\xc5"     =>      "\xa5\xca",     #¥Ê
+        "\x8e\xc6"     =>      "\xa5\xcb",     #¥Ë
+        "\x8e\xc7"     =>      "\xa5\xcc",     #¥Ì
+        "\x8e\xc8"     =>      "\xa5\xcd",     #¥Í
+        "\x8e\xc9"     =>      "\xa5\xce",     #¥Î
+        "\x8e\xca"     =>      "\xa5\xcf",     #¥Ï
+        "\x8e\xcb"     =>      "\xa5\xd2",     #¥Ò
+        "\x8e\xcc"     =>      "\xa5\xd5",     #¥Õ
+        "\x8e\xcd"     =>      "\xa5\xd8",     #¥Ø
+        "\x8e\xce"     =>      "\xa5\xdb",     #¥Û
+        "\x8e\xcf"     =>      "\xa5\xde",     #¥Þ
+        "\x8e\xd0"     =>      "\xa5\xdf",     #¥ß
+        "\x8e\xd1"     =>      "\xa5\xe0",     #¥à
+        "\x8e\xd2"     =>      "\xa5\xe1",     #¥á
+        "\x8e\xd3"     =>      "\xa5\xe2",     #¥â
+        "\x8e\xd4"     =>      "\xa5\xe4",     #¥ä
+        "\x8e\xd5"     =>      "\xa5\xe6",     #¥æ
+        "\x8e\xd6"     =>      "\xa5\xe8",     #¥è
+        "\x8e\xd7"     =>      "\xa5\xe9",     #¥é
+        "\x8e\xd8"     =>      "\xa5\xea",     #¥ê
+        "\x8e\xd9"     =>      "\xa5\xeb",     #¥ë
+        "\x8e\xda"     =>      "\xa5\xec",     #¥ì
+        "\x8e\xdb"     =>      "\xa5\xed",     #¥í
+        "\x8e\xdc"     =>      "\xa5\xef",     #¥ï
+        "\x8e\xdd"     =>      "\xa5\xf3",     #¥ó
+        "\x8e\xde"     =>      "\xa1\xab",     #¡«
+        "\x8e\xdf"     =>      "\xa1\xac",     #¡¬
+);
+
+%_D2Z = (
+        "\x8e\xb6\x8e\xde"     =>      "\xa5\xac",     #¥¬
+        "\x8e\xb7\x8e\xde"     =>      "\xa5\xae",     #¥®
+        "\x8e\xb8\x8e\xde"     =>      "\xa5\xb0",     #¥°
+        "\x8e\xb9\x8e\xde"     =>      "\xa5\xb2",     #¥²
+        "\x8e\xba\x8e\xde"     =>      "\xa5\xb4",     #¥´
+        "\x8e\xbb\x8e\xde"     =>      "\xa5\xb6",     #¥¶
+        "\x8e\xbc\x8e\xde"     =>      "\xa5\xb8",     #¥¸
+        "\x8e\xbd\x8e\xde"     =>      "\xa5\xba",     #¥º
+        "\x8e\xbe\x8e\xde"     =>      "\xa5\xbc",     #¥¼
+        "\x8e\xbf\x8e\xde"     =>      "\xa5\xbe",     #¥¾
+        "\x8e\xc0\x8e\xde"     =>      "\xa5\xc0",     #¥À
+        "\x8e\xc1\x8e\xde"     =>      "\xa5\xc2",     #¥Â
+        "\x8e\xc2\x8e\xde"     =>      "\xa5\xc5",     #¥Å
+        "\x8e\xc3\x8e\xde"     =>      "\xa5\xc7",     #¥Ç
+        "\x8e\xc4\x8e\xde"     =>      "\xa5\xc9",     #¥É
+        "\x8e\xca\x8e\xde"     =>      "\xa5\xd0",     #¥Ð
+        "\x8e\xcb\x8e\xde"     =>      "\xa5\xd3",     #¥Ó
+        "\x8e\xcc\x8e\xde"     =>      "\xa5\xd6",     #¥Ö
+        "\x8e\xcd\x8e\xde"     =>      "\xa5\xd9",     #¥Ù
+        "\x8e\xce\x8e\xde"     =>      "\xa5\xdc",     #¥Ü
+        "\x8e\xca\x8e\xdf"     =>      "\xa5\xd1",     #¥Ñ
+        "\x8e\xcb\x8e\xdf"     =>      "\xa5\xd4",     #¥Ô
+        "\x8e\xcc\x8e\xdf"     =>      "\xa5\xd7",     #¥×
+        "\x8e\xcd\x8e\xdf"     =>      "\xa5\xda",     #¥Ú
+        "\x8e\xce\x8e\xdf"     =>      "\xa5\xdd",     #¥Ý
+        "\x8e\xb3\x8e\xde"     =>      "\xa5\xf4",     #¥ô
+);
+
+# init only once;
+
+#$_PAT_D2Z = join("|", keys %_D2Z);
+#$_PAT_H2Z = join("|", keys %_H2Z);
+
+%_Z2H = reverse %_H2Z;
+%_Z2D = reverse %_D2Z;
+
+#$_PAT_Z2H    = join("|", keys %_Z2H);
+#$_PAT_Z2D    = join("|", keys %_Z2D);
+
+sub h2z {
+    my $r_str = shift;
+    my ($keep_dakuten) = @_;
+    my $n = 0;
+    unless ($keep_dakuten){
+       $n = (
+             $$r_str =~ s(
+                          ($RE{EUC_KANA}
+                           (?:\x8e[\xde\xdf])?)
+                          ){
+                 my $str = $1;
+                 $_D2Z{$str} || $_H2Z{$str} || 
+                     # in case dakuten and handakuten are side-by-side!
+                     $_H2Z{substr($str,0,2)} . $_H2Z{substr($str,2,2)};
+                 }eogx
+             );
+    }else{
+       $n = (
+             $$r_str =~ s(
+                          ($RE{EUC_KANA})
+                          ){
+                 $_H2Z{$1};
+                 }eogx
+             );
+    }
+    $n;
+}
+
+sub z2h {
+    my $r_str = shift;
+    my $n = (
+            $$r_str =~ s(
+                         ($RE{EUC_C}|$RE{EUC_0212}|$RE{EUC_KANA})
+                         ){
+                $_Z2D{$1} || $_Z2H{$1} || $1;
+                }eogx
+            );
+    $n;
+}
+
+1;
diff --git a/ext/Encode/lib/Encode/JP/ISO_2022_JP.pm b/ext/Encode/lib/Encode/JP/ISO_2022_JP.pm
new file mode 100644 (file)
index 0000000..d8c8fb7
--- /dev/null
@@ -0,0 +1,34 @@
+package Encode::JP::ISO_2022_JP;
+use Encode::JP;
+use Encode::JP::JIS;
+use Encode::JP::H2Z;
+use base 'Encode::Encoding';
+
+
+my $canon = 'iso-2022-jp';
+my $obj = bless {name => $canon}, __PACKAGE__;
+$obj->Define($canon);
+
+#
+# decode is identical to 7bit-jis
+#
+
+sub decode
+{
+    my ($obj,$str,$chk) = @_;
+    return Encode::decode('7bit-jis', $str, $chk);
+}
+
+# iso-2022-jp = 7bit-jis with all x201 (Hankaku) converted to
+#               x208 equivalent (Zenkaku)
+
+sub encode
+{
+    my ($obj,$str,$chk) = @_;
+    my $euc =  Encode::encode('euc-jp', $str, $chk);
+    &Encode::JP::H2Z::h2z(\$euc);
+    return &Encode::JP::JIS::euc_jis(\$euc);
+}
+
+1;
+__END__
diff --git a/ext/Encode/lib/Encode/JP/JIS.pm b/ext/Encode/lib/Encode/JP/JIS.pm
new file mode 100644 (file)
index 0000000..6ee3c84
--- /dev/null
@@ -0,0 +1,74 @@
+package Encode::JP::JIS;
+use Encode::JP;
+use base 'Encode::Encoding';
+
+# Just for the time being, we implement jis-7bit
+# encoding via EUC
+
+my $canon = '7bit-jis';
+my $obj = bless {name => $canon}, __PACKAGE__;
+$obj->Define($canon);
+
+sub decode
+{
+    my ($obj,$str,$chk) = @_;
+    my $res = $str;
+    jis_euc(\$res);
+    return Encode::decode('euc-jp', $euc, $chk);
+}
+
+sub encode
+{
+    my ($obj,$str,$chk) = @_;
+    my $res = Encode::encode('euc-jp', $str, $chk);
+    euc_jis(\$res);
+    return $res;
+}
+
+use Encode::JP::Constants qw(:all);
+
+# JIS<->EUC
+
+sub jis_euc {
+    my $r_str = shift;
+    $$r_str =~ s(
+                ($RE{JIS_0212}|$RE{JIS_0208}|$RE{JIS_ASC}|$RE{JIS_KANA})
+                ([^\e]*)
+                )
+    {
+       my ($esc, $str) = ($1, $2);
+       if ($esc !~ /$RE{JIS_ASC}/o) {
+           $str =~ tr/\x21-\x7e/\xa1-\xfe/;
+           if ($esc =~ /$RE{JIS_KANA}/o) {
+               $str =~ s/([\xa1-\xdf])/\x8e$1/og;
+           }
+           elsif ($esc =~ /$RE{JIS_0212}/o) {
+               $str =~ s/([\xa1-\xfe][\xa1-\xfe])/\x8f$1/og;
+           }
+       }
+       $str;
+    }geox;
+    $$r_str;
+}
+
+sub euc_jis{
+    my $r_str = shift;
+    $$r_str =~ s{
+       ((?:$RE{EUC_C})+|(?:$RE{EUC_KANA})+|(?:$RE{EUC_0212})+)
+       }{
+           my $str = $1;
+           my $esc = 
+               ( $str =~ tr/\x8E//d ) ? $ESC{KANA} :
+                   ( $str =~ tr/\x8F//d ) ? $ESC{JIS_0212} :
+                       $ESC{JIS_0208};
+           $str =~ tr/\xA1-\xFE/\x21-\x7E/;
+           $esc . $str . $ESC{ASC};
+       }geox;
+    $$r_str =~
+       s/\Q$ESC{ASC}\E
+           (\Q$ESC{KANA}\E|\Q$ESC{JIS_0212}\E|\Q$ESC{JIS_0208}\E)/$1/gox;
+    $$r_str;
+}
+
+1;
+__END__
diff --git a/ext/Encode/lib/Encode/JP/Tr.pm b/ext/Encode/lib/Encode/JP/Tr.pm
new file mode 100644 (file)
index 0000000..28aac78
--- /dev/null
@@ -0,0 +1,90 @@
+#
+# $Id: Tr.pm,v 0.77 2002/01/14 11:06:55 dankogai Exp $
+#
+
+package Jcode::Tr;
+
+use strict;
+use vars qw($VERSION $RCSID);
+
+$RCSID = q$Id: Tr.pm,v 0.77 2002/01/14 11:06:55 dankogai Exp $;
+$VERSION = do { my @r = (q$Revision: 0.77 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
+
+use Carp;
+
+use Jcode::Constants qw(:all);
+use vars qw(%_TABLE);
+
+sub tr {
+    # $prev_from, $prev_to, %table are persistent variables
+    my ($r_str, $from, $to, $opt) = @_;
+    my (@from, @to);
+    my $n = 0;
+
+    undef %_TABLE;
+    &_maketable($from, $to, $opt);
+
+    $$r_str =~ s(
+                ([\x80-\xff][\x00-\xff]|[\x00-\xff])
+                )
+    {defined($_TABLE{$1}) && ++$n ? 
+        $_TABLE{$1} : $1}ogex;
+
+    return $n;
+}
+
+sub _maketable{
+    my( $from, $to, $opt ) = @_;
+    $from =~ s/($RE{EUC_0212}-$RE{EUC_0212})/&_expnd3($1)/geo;
+    $from =~ s/($RE{EUC_KANA}-$RE{EUC_KANA})/&_expnd2($1)/geo;
+    $from =~ s/($RE{EUC_C   }-$RE{EUC_C   })/&_expnd2($1)/geo;
+    $from =~ s/($RE{ASCII   }-$RE{ASCII   })/&_expnd1($1)/geo;
+    $to   =~ s/($RE{EUC_0212}-$RE{EUC_0212})/&_expnd3($1)/geo;
+    $to   =~ s/($RE{EUC_KANA}-$RE{EUC_KANA})/&_expnd2($1)/geo;
+    $to   =~ s/($RE{EUC_C   }-$RE{EUC_C   })/&_expnd2($1)/geo;
+    $to   =~ s/($RE{ASCII   }-$RE{ASCII   })/&_expnd1($1)/geo;
+
+    my @from = $from =~ /$RE{EUC_0212}|$RE{EUC_KANA}|$RE{EUC_C}|[\x00-\xff]/go;
+    my @to   = $to   =~ /$RE{EUC_0212}|$RE{EUC_KANA}|$RE{EUC_C}|[\x00-\xff]/go;
+
+    push @to, ($opt =~ /d/ ? '' : $to[-1]) x ($#from - $#to) if $#to < $#from;
+    @_TABLE{@from} = @to;
+
+}
+
+sub _expnd1 {
+    my ($str) = @_;
+    # s/\\(.)/$1/og; # I dunno what this was doing!?
+    my($c1, $c2) = unpack('CxC', $str);
+    if ($c1 <= $c2) {
+        for ($str = ''; $c1 <= $c2; $c1++) {
+            $str .= pack('C', $c1);
+        }
+    }
+    return $str;
+}
+
+sub _expnd2 {
+    my ($str) = @_;
+    my ($c1, $c2, $c3, $c4) = unpack('CCxCC', $str);
+    if ($c1 == $c3 && $c2 <= $c4) {
+        for ($str = ''; $c2 <= $c4; $c2++) {
+            $str .= pack('CC', $c1, $c2);
+        }
+    }
+    return $str;
+}
+
+sub _expnd3 {
+    my ($str) = @_;
+    my ($c1, $c2, $c3, $c4, $c5, $c6) = unpack('CCCxCCC', $str);
+    if ($c1 == $c4 && $c2 == $c5 && $c3 <= $c6) {
+        for ($str = ''; $c3 <= $c6; $c3++) {
+            $str .= pack('CCC', $c1, $c2, $c3);
+        }
+    }
+    return $str;
+}
+
+1;
index ffc4780..28becb4 100644 (file)
@@ -1,12 +1,13 @@
 BEGIN {
     chdir 't' if -d 't';
-    @INC = '../lib';
+    push @INC, '../lib';
     require Config; import Config;
     if ($Config{'extensions'} !~ /\bEncode\b/) {
       print "1..0 # Skip: Encode was not built\n";
       exit 0;
     }
 }
+use strict;
 use Test;
 use Encode qw(from_to encode decode
              encode_utf8 decode_utf8
similarity index 71%
rename from ext/Encode/t/Japanese.t
rename to ext/Encode/t/JP.t
index 20f5b25..e9799da 100644 (file)
@@ -8,12 +8,15 @@ BEGIN {
     }
     $| = 1;
 }
+use strict;
 use Test::More tests => 22;
 use Encode;
 use File::Basename;
 use File::Spec;
 use File::Compare;
-require_ok "Encode::Japanese";
+require_ok "Encode::JP";
+
+my ($src, $uni, $dst, $txt);
 
 ok(defined(my $enc = find_encoding('euc-jp')));
 ok($enc->isa('Encode::XS'));
@@ -24,12 +27,12 @@ my $utf = File::Spec->catfile($dir,"table.utf8");
 my $ref = File::Spec->catfile($dir,"table.ref");
 my $rnd = File::Spec->catfile($dir,"table.rnd");
 print "# Basic decode test\n";
-open(my $src,"<",$euc) || die "Cannot open $euc:$!";
+open($src,"<",$euc) || die "Cannot open $euc:$!";
 ok(defined($src) && fileno($src));
-my $txt = join('',<$src>);
-open(my $dst,">:utf8",$utf) || die "Cannot open $utf:$!";
+$txt = join('',<$src>);
+open($dst,">:utf8",$utf) || die "Cannot open $utf:$!";
 ok(defined($dst) && fileno($dst));
-my $uni = $enc->decode($txt,1);
+$uni = $enc->decode($txt,1);
 ok(defined($uni));
 is(length($txt),0);
 print $dst $uni;
@@ -38,12 +41,12 @@ close($src);
 ok(compare($utf,$ref) == 0);
 
 print "# Basic encode test\n";
-open(my $src,"<:utf8",$ref) || die "Cannot open $ref:$!";
+open($src,"<:utf8",$ref) || die "Cannot open $ref:$!";
 ok(defined($src) && fileno($src));
-my $uni = join('',<$src>);
-open(my $dst,">",$rnd) || die "Cannot open $rnd:$!";
+$uni = join('',<$src>);
+open($dst,">",$rnd) || die "Cannot open $rnd:$!";
 ok(defined($dst) && fileno($dst));
-my $txt = $enc->encode($uni,1);
+$txt = $enc->encode($uni,1);
 ok(defined($txt));
 is(length($uni),0);
 print $dst $txt;
@@ -54,11 +57,11 @@ ok(compare($euc,$rnd) == 0);
 is($enc->name,'euc-jp');
 
 print "# src :encoding test\n";
-open(my $src,"<encoding(euc-jp)",$euc) || die "Cannot open $euc:$!";
+open($src,"<encoding(euc-jp)",$euc) || die "Cannot open $euc:$!";
 ok(defined($src) && fileno($src));
-open(my $dst,">:utf8",$utf) || die "Cannot open $utf:$!";
+open($dst,">:utf8",$utf) || die "Cannot open $utf:$!";
 ok(defined($dst) || fileno($dst));
-$out = select($dst);
+my $out = select($dst);
 while (<$src>)
  {
   print;
@@ -72,9 +75,9 @@ SKIP:
 {
  #skip "Multi-byte write is broken",3;
  print "# dst :encoding test\n";
- open(my $src,"<:utf8",$ref) || die "Cannot open $ref:$!";
+ open($src,"<:utf8",$ref) || die "Cannot open $ref:$!";
  ok(defined($src) || fileno($src));
- open(my $dst,">encoding(euc-jp)",$rnd) || die "Cannot open $rnd:$!";
+ open($dst,">encoding(euc-jp)",$rnd) || die "Cannot open $rnd:$!";
  ok(defined($dst) || fileno($dst));
  my $out = select($dst);
  while (<$src>)
diff --git a/ext/Encode/t/japanese.pl b/ext/Encode/t/japanese.pl
new file mode 100644 (file)
index 0000000..c0fe3ca
--- /dev/null
@@ -0,0 +1,6 @@
+#
+use strict;
+#use blib;
+use Encode::Japanese;
+
+# print join("\n", Encode::encodings()),"\n";
diff --git a/ext/Encode/t/table.rnd b/ext/Encode/t/table.rnd
new file mode 100644 (file)
index 0000000..8178409
--- /dev/null
@@ -0,0 +1,294 @@
+0x0020:    ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = >
+0x0040:  @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^
+0x0060:  ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~
+0x8ea0:    Ž¡ Ž¢ Ž£ Ž¤ Ž¥ Ž¦ Ž§ Ž¨ Ž© Žª Ž« Ž¬ Ž­ Ž® Ž¯ Ž° Ž± Ž² Ž³ Ž´ Žµ Ž¶ Ž· Ž¸ Ž¹ Žº Ž» Ž¼ Ž½ Ž¾
+0x8ec0:  ŽÀ ŽÁ ŽÂ ŽÃ ŽÄ ŽÅ ŽÆ ŽÇ ŽÈ ŽÉ ŽÊ ŽË ŽÌ ŽÍ ŽÎ ŽÏ ŽÐ ŽÑ ŽÒ ŽÓ ŽÔ ŽÕ ŽÖ Ž× ŽØ ŽÙ ŽÚ ŽÛ ŽÜ ŽÝ ŽÞ
+0x8ee0:                                                               
+0xa0a0:                                                               
+0xa0c0:                                                               
+0xa0e0:                                                               
+0xa1a0:   ¡¡¡¢¡£¡¤¡¥¡¦¡§¡¨¡©¡ª¡«¡¬¡­¡®¡¯¡°¡±¡²¡³¡´¡µ¡¶¡·¡¸¡¹¡º¡»¡¼¡½¡¾
+0xa1c0: ¡À¡Á¡Â¡Ã¡Ä¡Å¡Æ¡Ç¡È¡É¡Ê¡Ë¡Ì¡Í¡Î¡Ï¡Ð¡Ñ¡Ò¡Ó¡Ô¡Õ¡Ö¡×¡Ø¡Ù¡Ú¡Û¡Ü¡Ý¡Þ
+0xa1e0: ¡à¡á¡â¡ã¡ä¡å¡æ¡ç¡è¡é¡ê¡ë¡ì¡í¡î¡ï¡ð¡ñ¡ò¡ó¡ô¡õ¡ö¡÷¡ø¡ù¡ú¡û¡ü¡ý¡þ
+0xa2a0:   ¢¡¢¢¢£¢¤¢¥¢¦¢§¢¨¢©¢ª¢«¢¬¢­¢®                      ¢º¢»¢¼¢½¢¾
+0xa2c0: ¢À¢Á                ¢Ê¢Ë¢Ì¢Í¢Î¢Ï¢Ð                      ¢Ü¢Ý¢Þ
+0xa2e0: ¢à¢á¢â¢ã¢ä¢å¢æ¢ç¢è¢é¢ê              ¢ò¢ó¢ô¢õ¢ö¢÷¢ø¢ù        ¢þ
+0xa3a0:                                 £°£±£²£³£´£µ£¶£·£¸£¹          
+0xa3c0:   £Á£Â£Ã£Ä£Å£Æ£Ç£È£É£Ê£Ë£Ì£Í£Î£Ï£Ð£Ñ£Ò£Ó£Ô£Õ£Ö£×£Ø£Ù£Ú        
+0xa3e0:   £á£â£ã£ä£å£æ£ç£è£é£ê£ë£ì£í£î£ï£ð£ñ£ò£ó£ô£õ£ö£÷£ø£ù£ú        
+0xa4a0:   ¤¡¤¢¤£¤¤¤¥¤¦¤§¤¨¤©¤ª¤«¤¬¤­¤®¤¯¤°¤±¤²¤³¤´¤µ¤¶¤·¤¸¤¹¤º¤»¤¼¤½¤¾
+0xa4c0: ¤À¤Á¤Â¤Ã¤Ä¤Å¤Æ¤Ç¤È¤É¤Ê¤Ë¤Ì¤Í¤Î¤Ï¤Ð¤Ñ¤Ò¤Ó¤Ô¤Õ¤Ö¤×¤Ø¤Ù¤Ú¤Û¤Ü¤Ý¤Þ
+0xa4e0: ¤à¤á¤â¤ã¤ä¤å¤æ¤ç¤è¤é¤ê¤ë¤ì¤í¤î¤ï¤ð¤ñ¤ò¤ó                      
+0xa5a0:   ¥¡¥¢¥£¥¤¥¥¥¦¥§¥¨¥©¥ª¥«¥¬¥­¥®¥¯¥°¥±¥²¥³¥´¥µ¥¶¥·¥¸¥¹¥º¥»¥¼¥½¥¾
+0xa5c0: ¥À¥Á¥Â¥Ã¥Ä¥Å¥Æ¥Ç¥È¥É¥Ê¥Ë¥Ì¥Í¥Î¥Ï¥Ð¥Ñ¥Ò¥Ó¥Ô¥Õ¥Ö¥×¥Ø¥Ù¥Ú¥Û¥Ü¥Ý¥Þ
+0xa5e0: ¥à¥á¥â¥ã¥ä¥å¥æ¥ç¥è¥é¥ê¥ë¥ì¥í¥î¥ï¥ð¥ñ¥ò¥ó¥ô¥õ¥ö                
+0xa6a0:   ¦¡¦¢¦£¦¤¦¥¦¦¦§¦¨¦©¦ª¦«¦¬¦­¦®¦¯¦°¦±¦²¦³¦´¦µ¦¶¦·¦¸            
+0xa6c0:   ¦Á¦Â¦Ã¦Ä¦Å¦Æ¦Ç¦È¦É¦Ê¦Ë¦Ì¦Í¦Î¦Ï¦Ð¦Ñ¦Ò¦Ó¦Ô¦Õ¦Ö¦×¦Ø            
+0xa6e0:                                                               
+0xa7a0:   §¡§¢§£§¤§¥§¦§§§¨§©§ª§«§¬§­§®§¯§°§±§²§³§´§µ§¶§·§¸§¹§º§»§¼§½§¾
+0xa7c0: §À§Á                              §Ñ§Ò§Ó§Ô§Õ§Ö§×§Ø§Ù§Ú§Û§Ü§Ý§Þ
+0xa7e0: §à§á§â§ã§ä§å§æ§ç§è§é§ê§ë§ì§í§î§ï§ð§ñ                          
+0xa8a0:   ¨¡¨¢¨£¨¤¨¥¨¦¨§¨¨¨©¨ª¨«¨¬¨­¨®¨¯¨°¨±¨²¨³¨´¨µ¨¶¨·¨¸¨¹¨º¨»¨¼¨½¨¾
+0xa8c0: ¨À                                                            
+0xa8e0:                                                               
+0xa9a0:                                                               
+0xa9c0:                                                               
+0xa9e0:                                                               
+0xaaa0:                                                               
+0xaac0:                                                               
+0xaae0:                                                               
+0xaba0:                                                               
+0xabc0:                                                               
+0xabe0:                                                               
+0xaca0:                                                               
+0xacc0:                                                               
+0xace0:                                                               
+0xada0:                                                               
+0xadc0:                                                               
+0xade0:                                                               
+0xaea0:                                                               
+0xaec0:                                                               
+0xaee0:                                                               
+0xafa0:                                                               
+0xafc0:                                                               
+0xafe0:                                                               
+0xb0a0:   °¡°¢°£°¤°¥°¦°§°¨°©°ª°«°¬°­°®°¯°°°±°²°³°´°µ°¶°·°¸°¹°º°»°¼°½°¾
+0xb0c0: °À°Á°Â°Ã°Ä°Å°Æ°Ç°È°É°Ê°Ë°Ì°Í°Î°Ï°Ð°Ñ°Ò°Ó°Ô°Õ°Ö°×°Ø°Ù°Ú°Û°Ü°Ý°Þ
+0xb0e0: °à°á°â°ã°ä°å°æ°ç°è°é°ê°ë°ì°í°î°ï°ð°ñ°ò°ó°ô°õ°ö°÷°ø°ù°ú°û°ü°ý°þ
+0xb1a0:   ±¡±¢±£±¤±¥±¦±§±¨±©±ª±«±¬±­±®±¯±°±±±²±³±´±µ±¶±·±¸±¹±º±»±¼±½±¾
+0xb1c0: ±À±Á±Â±Ã±Ä±Å±Æ±Ç±È±É±Ê±Ë±Ì±Í±Î±Ï±Ð±Ñ±Ò±Ó±Ô±Õ±Ö±×±Ø±Ù±Ú±Û±Ü±Ý±Þ
+0xb1e0: ±à±á±â±ã±ä±å±æ±ç±è±é±ê±ë±ì±í±î±ï±ð±ñ±ò±ó±ô±õ±ö±÷±ø±ù±ú±û±ü±ý±þ
+0xb2a0:   ²¡²¢²£²¤²¥²¦²§²¨²©²ª²«²¬²­²®²¯²°²±²²²³²´²µ²¶²·²¸²¹²º²»²¼²½²¾
+0xb2c0: ²À²Á²Â²Ã²Ä²Å²Æ²Ç²È²É²Ê²Ë²Ì²Í²Î²Ï²Ð²Ñ²Ò²Ó²Ô²Õ²Ö²×²Ø²Ù²Ú²Û²Ü²Ý²Þ
+0xb2e0: ²à²á²â²ã²ä²å²æ²ç²è²é²ê²ë²ì²í²î²ï²ð²ñ²ò²ó²ô²õ²ö²÷²ø²ù²ú²û²ü²ý²þ
+0xb3a0:   ³¡³¢³£³¤³¥³¦³§³¨³©³ª³«³¬³­³®³¯³°³±³²³³³´³µ³¶³·³¸³¹³º³»³¼³½³¾
+0xb3c0: ³À³Á³Â³Ã³Ä³Å³Æ³Ç³È³É³Ê³Ë³Ì³Í³Î³Ï³Ð³Ñ³Ò³Ó³Ô³Õ³Ö³×³Ø³Ù³Ú³Û³Ü³Ý³Þ
+0xb3e0: ³à³á³â³ã³ä³å³æ³ç³è³é³ê³ë³ì³í³î³ï³ð³ñ³ò³ó³ô³õ³ö³÷³ø³ù³ú³û³ü³ý³þ
+0xb4a0:   ´¡´¢´£´¤´¥´¦´§´¨´©´ª´«´¬´­´®´¯´°´±´²´³´´´µ´¶´·´¸´¹´º´»´¼´½´¾
+0xb4c0: ´À´Á´Â´Ã´Ä´Å´Æ´Ç´È´É´Ê´Ë´Ì´Í´Î´Ï´Ð´Ñ´Ò´Ó´Ô´Õ´Ö´×´Ø´Ù´Ú´Û´Ü´Ý´Þ
+0xb4e0: ´à´á´â´ã´ä´å´æ´ç´è´é´ê´ë´ì´í´î´ï´ð´ñ´ò´ó´ô´õ´ö´÷´ø´ù´ú´û´ü´ý´þ
+0xb5a0:   µ¡µ¢µ£µ¤µ¥µ¦µ§µ¨µ©µªµ«µ¬µ­µ®µ¯µ°µ±µ²µ³µ´µµµ¶µ·µ¸µ¹µºµ»µ¼µ½µ¾
+0xb5c0: µÀµÁµÂµÃµÄµÅµÆµÇµÈµÉµÊµËµÌµÍµÎµÏµÐµÑµÒµÓµÔµÕµÖµ×µØµÙµÚµÛµÜµÝµÞ
+0xb5e0: µàµáµâµãµäµåµæµçµèµéµêµëµìµíµîµïµðµñµòµóµôµõµöµ÷µøµùµúµûµüµýµþ
+0xb6a0:   ¶¡¶¢¶£¶¤¶¥¶¦¶§¶¨¶©¶ª¶«¶¬¶­¶®¶¯¶°¶±¶²¶³¶´¶µ¶¶¶·¶¸¶¹¶º¶»¶¼¶½¶¾
+0xb6c0: ¶À¶Á¶Â¶Ã¶Ä¶Å¶Æ¶Ç¶È¶É¶Ê¶Ë¶Ì¶Í¶Î¶Ï¶Ð¶Ñ¶Ò¶Ó¶Ô¶Õ¶Ö¶×¶Ø¶Ù¶Ú¶Û¶Ü¶Ý¶Þ
+0xb6e0: ¶à¶á¶â¶ã¶ä¶å¶æ¶ç¶è¶é¶ê¶ë¶ì¶í¶î¶ï¶ð¶ñ¶ò¶ó¶ô¶õ¶ö¶÷¶ø¶ù¶ú¶û¶ü¶ý¶þ
+0xb7a0:   ·¡·¢·£·¤·¥·¦·§·¨·©·ª·«·¬·­·®·¯·°·±·²·³·´·µ·¶···¸·¹·º·»·¼·½·¾
+0xb7c0: ·À·Á·Â·Ã·Ä·Å·Æ·Ç·È·É·Ê·Ë·Ì·Í·Î·Ï·Ð·Ñ·Ò·Ó·Ô·Õ·Ö·×·Ø·Ù·Ú·Û·Ü·Ý·Þ
+0xb7e0: ·à·á·â·ã·ä·å·æ·ç·è·é·ê·ë·ì·í·î·ï·ð·ñ·ò·ó·ô·õ·ö·÷·ø·ù·ú·û·ü·ý·þ
+0xb8a0:   ¸¡¸¢¸£¸¤¸¥¸¦¸§¸¨¸©¸ª¸«¸¬¸­¸®¸¯¸°¸±¸²¸³¸´¸µ¸¶¸·¸¸¸¹¸º¸»¸¼¸½¸¾
+0xb8c0: ¸À¸Á¸Â¸Ã¸Ä¸Å¸Æ¸Ç¸È¸É¸Ê¸Ë¸Ì¸Í¸Î¸Ï¸Ð¸Ñ¸Ò¸Ó¸Ô¸Õ¸Ö¸×¸Ø¸Ù¸Ú¸Û¸Ü¸Ý¸Þ
+0xb8e0: ¸à¸á¸â¸ã¸ä¸å¸æ¸ç¸è¸é¸ê¸ë¸ì¸í¸î¸ï¸ð¸ñ¸ò¸ó¸ô¸õ¸ö¸÷¸ø¸ù¸ú¸û¸ü¸ý¸þ
+0xb9a0:   ¹¡¹¢¹£¹¤¹¥¹¦¹§¹¨¹©¹ª¹«¹¬¹­¹®¹¯¹°¹±¹²¹³¹´¹µ¹¶¹·¹¸¹¹¹º¹»¹¼¹½¹¾
+0xb9c0: ¹À¹Á¹Â¹Ã¹Ä¹Å¹Æ¹Ç¹È¹É¹Ê¹Ë¹Ì¹Í¹Î¹Ï¹Ð¹Ñ¹Ò¹Ó¹Ô¹Õ¹Ö¹×¹Ø¹Ù¹Ú¹Û¹Ü¹Ý¹Þ
+0xb9e0: ¹à¹á¹â¹ã¹ä¹å¹æ¹ç¹è¹é¹ê¹ë¹ì¹í¹î¹ï¹ð¹ñ¹ò¹ó¹ô¹õ¹ö¹÷¹ø¹ù¹ú¹û¹ü¹ý¹þ
+0xbaa0:   º¡º¢º£º¤º¥º¦º§º¨º©ºªº«º¬º­º®º¯º°º±º²º³º´ºµº¶º·º¸º¹ººº»º¼º½º¾
+0xbac0: ºÀºÁºÂºÃºÄºÅºÆºÇºÈºÉºÊºËºÌºÍºÎºÏºÐºÑºÒºÓºÔºÕºÖº×ºØºÙºÚºÛºÜºÝºÞ
+0xbae0: ºàºáºâºãºäºåºæºçºèºéºêºëºìºíºîºïºðºñºòºóºôºõºöº÷ºøºùºúºûºüºýºþ
+0xbba0:   »¡»¢»£»¤»¥»¦»§»¨»©»ª»«»¬»­»®»¯»°»±»²»³»´»µ»¶»·»¸»¹»º»»»¼»½»¾
+0xbbc0: »À»Á»Â»Ã»Ä»Å»Æ»Ç»È»É»Ê»Ë»Ì»Í»Î»Ï»Ð»Ñ»Ò»Ó»Ô»Õ»Ö»×»Ø»Ù»Ú»Û»Ü»Ý»Þ
+0xbbe0: »à»á»â»ã»ä»å»æ»ç»è»é»ê»ë»ì»í»î»ï»ð»ñ»ò»ó»ô»õ»ö»÷»ø»ù»ú»û»ü»ý»þ
+0xbca0:   ¼¡¼¢¼£¼¤¼¥¼¦¼§¼¨¼©¼ª¼«¼¬¼­¼®¼¯¼°¼±¼²¼³¼´¼µ¼¶¼·¼¸¼¹¼º¼»¼¼¼½¼¾
+0xbcc0: ¼À¼Á¼Â¼Ã¼Ä¼Å¼Æ¼Ç¼È¼É¼Ê¼Ë¼Ì¼Í¼Î¼Ï¼Ð¼Ñ¼Ò¼Ó¼Ô¼Õ¼Ö¼×¼Ø¼Ù¼Ú¼Û¼Ü¼Ý¼Þ
+0xbce0: ¼à¼á¼â¼ã¼ä¼å¼æ¼ç¼è¼é¼ê¼ë¼ì¼í¼î¼ï¼ð¼ñ¼ò¼ó¼ô¼õ¼ö¼÷¼ø¼ù¼ú¼û¼ü¼ý¼þ
+0xbda0:   ½¡½¢½£½¤½¥½¦½§½¨½©½ª½«½¬½­½®½¯½°½±½²½³½´½µ½¶½·½¸½¹½º½»½¼½½½¾
+0xbdc0: ½À½Á½Â½Ã½Ä½Å½Æ½Ç½È½É½Ê½Ë½Ì½Í½Î½Ï½Ð½Ñ½Ò½Ó½Ô½Õ½Ö½×½Ø½Ù½Ú½Û½Ü½Ý½Þ
+0xbde0: ½à½á½â½ã½ä½å½æ½ç½è½é½ê½ë½ì½í½î½ï½ð½ñ½ò½ó½ô½õ½ö½÷½ø½ù½ú½û½ü½ý½þ
+0xbea0:   ¾¡¾¢¾£¾¤¾¥¾¦¾§¾¨¾©¾ª¾«¾¬¾­¾®¾¯¾°¾±¾²¾³¾´¾µ¾¶¾·¾¸¾¹¾º¾»¾¼¾½¾¾
+0xbec0: ¾À¾Á¾Â¾Ã¾Ä¾Å¾Æ¾Ç¾È¾É¾Ê¾Ë¾Ì¾Í¾Î¾Ï¾Ð¾Ñ¾Ò¾Ó¾Ô¾Õ¾Ö¾×¾Ø¾Ù¾Ú¾Û¾Ü¾Ý¾Þ
+0xbee0: ¾à¾á¾â¾ã¾ä¾å¾æ¾ç¾è¾é¾ê¾ë¾ì¾í¾î¾ï¾ð¾ñ¾ò¾ó¾ô¾õ¾ö¾÷¾ø¾ù¾ú¾û¾ü¾ý¾þ
+0xbfa0:   ¿¡¿¢¿£¿¤¿¥¿¦¿§¿¨¿©¿ª¿«¿¬¿­¿®¿¯¿°¿±¿²¿³¿´¿µ¿¶¿·¿¸¿¹¿º¿»¿¼¿½¿¾
+0xbfc0: ¿À¿Á¿Â¿Ã¿Ä¿Å¿Æ¿Ç¿È¿É¿Ê¿Ë¿Ì¿Í¿Î¿Ï¿Ð¿Ñ¿Ò¿Ó¿Ô¿Õ¿Ö¿×¿Ø¿Ù¿Ú¿Û¿Ü¿Ý¿Þ
+0xbfe0: ¿à¿á¿â¿ã¿ä¿å¿æ¿ç¿è¿é¿ê¿ë¿ì¿í¿î¿ï¿ð¿ñ¿ò¿ó¿ô¿õ¿ö¿÷¿ø¿ù¿ú¿û¿ü¿ý¿þ
+0xc0a0:   À¡À¢À£À¤À¥À¦À§À¨À©ÀªÀ«À¬À­À®À¯À°À±À²À³À´ÀµÀ¶À·À¸À¹ÀºÀ»À¼À½À¾
+0xc0c0: ÀÀÀÁÀÂÀÃÀÄÀÅÀÆÀÇÀÈÀÉÀÊÀËÀÌÀÍÀÎÀÏÀÐÀÑÀÒÀÓÀÔÀÕÀÖÀ×ÀØÀÙÀÚÀÛÀÜÀÝÀÞ
+0xc0e0: ÀàÀáÀâÀãÀäÀåÀæÀçÀèÀéÀêÀëÀìÀíÀîÀïÀðÀñÀòÀóÀôÀõÀöÀ÷ÀøÀùÀúÀûÀüÀýÀþ
+0xc1a0:   Á¡Á¢Á£Á¤Á¥Á¦Á§Á¨Á©ÁªÁ«Á¬Á­Á®Á¯Á°Á±Á²Á³Á´ÁµÁ¶Á·Á¸Á¹ÁºÁ»Á¼Á½Á¾
+0xc1c0: ÁÀÁÁÁÂÁÃÁÄÁÅÁÆÁÇÁÈÁÉÁÊÁËÁÌÁÍÁÎÁÏÁÐÁÑÁÒÁÓÁÔÁÕÁÖÁ×ÁØÁÙÁÚÁÛÁÜÁÝÁÞ
+0xc1e0: ÁàÁáÁâÁãÁäÁåÁæÁçÁèÁéÁêÁëÁìÁíÁîÁïÁðÁñÁòÁóÁôÁõÁöÁ÷ÁøÁùÁúÁûÁüÁýÁþ
+0xc2a0:   ¡¢£¤¥¦§¨©ª«¬\ad®¯°±²³´µ¶·¸¹º»¼½¾
+0xc2c0: ÂÀÂÁÂÂÂÃÂÄÂÅÂÆÂÇÂÈÂÉÂÊÂËÂÌÂÍÂÎÂÏÂÐÂÑÂÒÂÓÂÔÂÕÂÖÂ×ÂØÂÙÂÚÂÛÂÜÂÝÂÞ
+0xc2e0: ÂàÂáÂâÂãÂäÂåÂæÂçÂèÂéÂêÂëÂìÂíÂîÂïÂðÂñÂòÂóÂôÂõÂöÂ÷ÂøÂùÂúÂûÂüÂýÂþ
+0xc3a0:   áâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþ
+0xc3c0: ÃÀÃÁÃÂÃÃÃÄÃÅÃÆÃÇÃÈÃÉÃÊÃËÃÌÃÍÃÎÃÏÃÐÃÑÃÒÃÓÃÔÃÕÃÖÃ×ÃØÃÙÃÚÃÛÃÜÃÝÃÞ
+0xc3e0: ÃàÃáÃâÃãÃäÃåÃæÃçÃèÃéÃêÃëÃìÃíÃîÃïÃðÃñÃòÃóÃôÃõÃöÃ÷ÃøÃùÃúÃûÃüÃýÃþ
+0xc4a0:   ġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľ
+0xc4c0: ÄÀÄÁÄÂÄÃÄÄÄÅÄÆÄÇÄÈÄÉÄÊÄËÄÌÄÍÄÎÄÏÄÐÄÑÄÒÄÓÄÔÄÕÄÖÄ×ÄØÄÙÄÚÄÛÄÜÄÝÄÞ
+0xc4e0: ÄàÄáÄâÄãÄäÄåÄæÄçÄèÄéÄêÄëÄìÄíÄîÄïÄðÄñÄòÄóÄôÄõÄöÄ÷ÄøÄùÄúÄûÄüÄýÄþ
+0xc5a0:   šŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽž
+0xc5c0: ÅÀÅÁÅÂÅÃÅÄÅÅÅÆÅÇÅÈÅÉÅÊÅËÅÌÅÍÅÎÅÏÅÐÅÑÅÒÅÓÅÔÅÕÅÖÅ×ÅØÅÙÅÚÅÛÅÜÅÝÅÞ
+0xc5e0: ÅàÅáÅâÅãÅäÅåÅæÅçÅèÅéÅêÅëÅìÅíÅîÅïÅðÅñÅòÅóÅôÅõÅöÅ÷ÅøÅùÅúÅûÅüÅýÅþ
+0xc6a0:   ơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾ
+0xc6c0: ÆÀÆÁÆÂÆÃÆÄÆÅÆÆÆÇÆÈÆÉÆÊÆËÆÌÆÍÆÎÆÏÆÐÆÑÆÒÆÓÆÔÆÕÆÖÆ×ÆØÆÙÆÚÆÛÆÜÆÝÆÞ
+0xc6e0: ÆàÆáÆâÆãÆäÆåÆæÆçÆèÆéÆêÆëÆìÆíÆîÆïÆðÆñÆòÆóÆôÆõÆöÆ÷ÆøÆùÆúÆûÆüÆýÆþ
+0xc7a0:   ǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴǵǶǷǸǹǺǻǼǽǾ
+0xc7c0: ÇÀÇÁÇÂÇÃÇÄÇÅÇÆÇÇÇÈÇÉÇÊÇËÇÌÇÍÇÎÇÏÇÐÇÑÇÒÇÓÇÔÇÕÇÖÇ×ÇØÇÙÇÚÇÛÇÜÇÝÇÞ
+0xc7e0: ÇàÇáÇâÇãÇäÇåÇæÇçÇèÇéÇêÇëÇìÇíÇîÇïÇðÇñÇòÇóÇôÇõÇöÇ÷ÇøÇùÇúÇûÇüÇýÇþ
+0xc8a0:   ȡȢȣȤȥȦȧȨȩȪȫȬȭȮȯȰȱȲȳȴȵȶȷȸȹȺȻȼȽȾ
+0xc8c0: ÈÀÈÁÈÂÈÃÈÄÈÅÈÆÈÇÈÈÈÉÈÊÈËÈÌÈÍÈÎÈÏÈÐÈÑÈÒÈÓÈÔÈÕÈÖÈ×ÈØÈÙÈÚÈÛÈÜÈÝÈÞ
+0xc8e0: ÈàÈáÈâÈãÈäÈåÈæÈçÈèÈéÈêÈëÈìÈíÈîÈïÈðÈñÈòÈóÈôÈõÈöÈ÷ÈøÈùÈúÈûÈüÈýÈþ
+0xc9a0:   ɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾ
+0xc9c0: ÉÀÉÁÉÂÉÃÉÄÉÅÉÆÉÇÉÈÉÉÉÊÉËÉÌÉÍÉÎÉÏÉÐÉÑÉÒÉÓÉÔÉÕÉÖÉ×ÉØÉÙÉÚÉÛÉÜÉÝÉÞ
+0xc9e0: ÉàÉáÉâÉãÉäÉåÉæÉçÉèÉéÉêÉëÉìÉíÉîÉïÉðÉñÉòÉóÉôÉõÉöÉ÷ÉøÉùÉúÉûÉüÉýÉþ
+0xcaa0:   ʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼʽʾ
+0xcac0: ÊÀÊÁÊÂÊÃÊÄÊÅÊÆÊÇÊÈÊÉÊÊÊËÊÌÊÍÊÎÊÏÊÐÊÑÊÒÊÓÊÔÊÕÊÖÊ×ÊØÊÙÊÚÊÛÊÜÊÝÊÞ
+0xcae0: ÊàÊáÊâÊãÊäÊåÊæÊçÊèÊéÊêÊëÊìÊíÊîÊïÊðÊñÊòÊóÊôÊõÊöÊ÷ÊøÊùÊúÊûÊüÊýÊþ
+0xcba0:   ˡˢˣˤ˥˦˧˨˩˪˫ˬ˭ˮ˯˰˱˲˳˴˵˶˷˸˹˺˻˼˽˾
+0xcbc0: ËÀËÁËÂËÃËÄËÅËÆËÇËÈËÉËÊËËËÌËÍËÎËÏËÐËÑËÒËÓËÔËÕËÖË×ËØËÙËÚËÛËÜËÝËÞ
+0xcbe0: ËàËáËâËãËäËåËæËçËèËéËêËëËìËíËîËïËðËñËòËóËôËõËöË÷ËøËùËúËûËüËýËþ
+0xcca0:   ̴̵̶̷̸̡̢̧̨̣̤̥̦̩̪̫̬̭̮̯̰̱̲̳̹̺̻̼̽̾
+0xccc0: ÌÀÌÁÌÂÌÃÌÄÌÅÌÆÌÇÌÈÌÉÌÊÌËÌÌÌÍÌÎÌÏÌÐÌÑÌÒÌÓÌÔÌÕÌÖÌ×ÌØÌÙÌÚÌÛÌÜÌÝÌÞ
+0xcce0: ÌàÌáÌâÌãÌäÌåÌæÌçÌèÌéÌêÌëÌìÌíÌîÌïÌðÌñÌòÌóÌôÌõÌöÌ÷ÌøÌùÌúÌûÌüÌýÌþ
+0xcda0:   ͣͤͥͦͧͨͩͪͫͬͭͮͯ͢͡ͰͱͲͳʹ͵Ͷͷ͸͹ͺͻͼͽ;
+0xcdc0: ÍÀÍÁÍÂÍÃÍÄÍÅÍÆÍÇÍÈÍÉÍÊÍËÍÌÍÍÍÎÍÏÍÐÍÑÍÒÍÓÍÔÍÕÍÖÍ×ÍØÍÙÍÚÍÛÍÜÍÝÍÞ
+0xcde0: ÍàÍáÍâÍãÍäÍåÍæÍçÍèÍéÍêÍëÍìÍíÍîÍïÍðÍñÍòÍóÍôÍõÍöÍ÷ÍøÍùÍúÍûÍüÍýÍþ
+0xcea0:   Ρ΢ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξ
+0xcec0: ÎÀÎÁÎÂÎÃÎÄÎÅÎÆÎÇÎÈÎÉÎÊÎËÎÌÎÍÎÎÎÏÎÐÎÑÎÒÎÓÎÔÎÕÎÖÎ×ÎØÎÙÎÚÎÛÎÜÎÝÎÞ
+0xcee0: ÎàÎáÎâÎãÎäÎåÎæÎçÎèÎéÎêÎëÎìÎíÎîÎïÎðÎñÎòÎóÎôÎõÎöÎ÷ÎøÎùÎúÎûÎüÎýÎþ
+0xcfa0:   ϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳϴϵ϶ϷϸϹϺϻϼϽϾ
+0xcfc0: ÏÀÏÁÏÂÏÃÏÄÏÅÏÆÏÇÏÈÏÉÏÊÏËÏÌÏÍÏÎÏÏÏÐÏÑÏÒÏÓ                      
+0xcfe0:                                                               
+0xd0a0:   СТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмно
+0xd0c0: ÐÀÐÁÐÂÐÃÐÄÐÅÐÆÐÇÐÈÐÉÐÊÐËÐÌÐÍÐÎÐÏÐÐÐÑÐÒÐÓÐÔÐÕÐÖÐ×ÐØÐÙÐÚÐÛÐÜÐÝÐÞ
+0xd0e0: ÐàÐáÐâÐãÐäÐåÐæÐçÐèÐéÐêÐëÐìÐíÐîÐïÐðÐñÐòÐóÐôÐõÐöÐ÷ÐøÐùÐúÐûÐüÐýÐþ
+0xd1a0:   ѡѢѣѤѥѦѧѨѩѪѫѬѭѮѯѰѱѲѳѴѵѶѷѸѹѺѻѼѽѾ
+0xd1c0: ÑÀÑÁÑÂÑÃÑÄÑÅÑÆÑÇÑÈÑÉÑÊÑËÑÌÑÍÑÎÑÏÑÐÑÑÑÒÑÓÑÔÑÕÑÖÑ×ÑØÑÙÑÚÑÛÑÜÑÝÑÞ
+0xd1e0: ÑàÑáÑâÑãÑäÑåÑæÑçÑèÑéÑêÑëÑìÑíÑîÑïÑðÑñÑòÑóÑôÑõÑöÑ÷ÑøÑùÑúÑûÑüÑýÑþ
+0xd2a0:   ҡҢңҤҥҦҧҨҩҪҫҬҭҮүҰұҲҳҴҵҶҷҸҹҺһҼҽҾ
+0xd2c0: ÒÀÒÁÒÂÒÃÒÄÒÅÒÆÒÇÒÈÒÉÒÊÒËÒÌÒÍÒÎÒÏÒÐÒÑÒÒÒÓÒÔÒÕÒÖÒ×ÒØÒÙÒÚÒÛÒÜÒÝÒÞ
+0xd2e0: ÒàÒáÒâÒãÒäÒåÒæÒçÒèÒéÒêÒëÒìÒíÒîÒïÒðÒñÒòÒóÒôÒõÒöÒ÷ÒøÒùÒúÒûÒüÒýÒþ
+0xd3a0:   ӡӢӣӤӥӦӧӨөӪӫӬӭӮӯӰӱӲӳӴӵӶӷӸӹӺӻӼӽӾ
+0xd3c0: ÓÀÓÁÓÂÓÃÓÄÓÅÓÆÓÇÓÈÓÉÓÊÓËÓÌÓÍÓÎÓÏÓÐÓÑÓÒÓÓÓÔÓÕÓÖÓ×ÓØÓÙÓÚÓÛÓÜÓÝÓÞ
+0xd3e0: ÓàÓáÓâÓãÓäÓåÓæÓçÓèÓéÓêÓëÓìÓíÓîÓïÓðÓñÓòÓóÓôÓõÓöÓ÷ÓøÓùÓúÓûÓüÓýÓþ
+0xd4a0:   ԡԢԣԤԥԦԧԨԩԪԫԬԭԮԯ԰ԱԲԳԴԵԶԷԸԹԺԻԼԽԾ
+0xd4c0: ÔÀÔÁÔÂÔÃÔÄÔÅÔÆÔÇÔÈÔÉÔÊÔËÔÌÔÍÔÎÔÏÔÐÔÑÔÒÔÓÔÔÔÕÔÖÔ×ÔØÔÙÔÚÔÛÔÜÔÝÔÞ
+0xd4e0: ÔàÔáÔâÔãÔäÔåÔæÔçÔèÔéÔêÔëÔìÔíÔîÔïÔðÔñÔòÔóÔôÔõÔöÔ÷ÔøÔùÔúÔûÔüÔýÔþ
+0xd5a0:   աբգդեզէըթժիլխծկհձղճմյնշոչպջռսվ
+0xd5c0: ÕÀÕÁÕÂÕÃÕÄÕÅÕÆÕÇÕÈÕÉÕÊÕËÕÌÕÍÕÎÕÏÕÐÕÑÕÒÕÓÕÔÕÕÕÖÕ×ÕØÕÙÕÚÕÛÕÜÕÝÕÞ
+0xd5e0: ÕàÕáÕâÕãÕäÕåÕæÕçÕèÕéÕêÕëÕìÕíÕîÕïÕðÕñÕòÕóÕôÕõÕöÕ÷ÕøÕùÕúÕûÕüÕýÕþ
+0xd6a0:   ְֱֲֳִֵֶַָֹֺֻּֽ֢֣֤֥֦֧֪֭֮֡֨֩֫֬֯־
+0xd6c0: ÖÀÖÁÖÂÖÃÖÄÖÅÖÆÖÇÖÈÖÉÖÊÖËÖÌÖÍÖÎÖÏÖÐÖÑÖÒÖÓÖÔÖÕÖÖÖ×ÖØÖÙÖÚÖÛÖÜÖÝÖÞ
+0xd6e0: ÖàÖáÖâÖãÖäÖåÖæÖçÖèÖéÖêÖëÖìÖíÖîÖïÖðÖñÖòÖóÖôÖõÖöÖ÷ÖøÖùÖúÖûÖüÖýÖþ
+0xd7a0:   סעףפץצקרשת׫׬׭׮ׯװױײ׳״׵׶׷׸׹׺׻׼׽׾
+0xd7c0: ×À×Á×Â×Ã×Ä×Å×Æ×Ç×È×É×Ê×Ë×Ì×Í×Î×Ï×Ð×Ñ×Ò×Ó×Ô×Õ×Ö×××Ø×Ù×Ú×Û×Ü×Ý×Þ
+0xd7e0: ×à×á×â×ã×ä×å×æ×ç×è×é×ê×ë×ì×í×î×ï×ð×ñ×ò×ó×ô×õ×ö×÷×ø×ù×ú×û×ü×ý×þ
+0xd8a0:   ءآأؤإئابةتثجحخدذرزسشصضطظعغػؼؽؾ
+0xd8c0: ØÀØÁØÂØÃØÄØÅØÆØÇØÈØÉØÊØËØÌØÍØÎØÏØÐØÑØÒØÓØÔØÕØÖØ×ØØØÙØÚØÛØÜØÝØÞ
+0xd8e0: ØàØáØâØãØäØåØæØçØèØéØêØëØìØíØîØïØðØñØòØóØôØõØöØ÷ØøØùØúØûØüØýØþ
+0xd9a0:   ١٢٣٤٥٦٧٨٩٪٫٬٭ٮٯٰٱٲٳٴٵٶٷٸٹٺٻټٽپ
+0xd9c0: ÙÀÙÁÙÂÙÃÙÄÙÅÙÆÙÇÙÈÙÉÙÊÙËÙÌÙÍÙÎÙÏÙÐÙÑÙÒÙÓÙÔÙÕÙÖÙ×ÙØÙÙÙÚÙÛÙÜÙÝÙÞ
+0xd9e0: ÙàÙáÙâÙãÙäÙåÙæÙçÙèÙéÙêÙëÙìÙíÙîÙïÙðÙñÙòÙóÙôÙõÙöÙ÷ÙøÙùÙúÙûÙüÙýÙþ
+0xdaa0:   ڡڢڣڤڥڦڧڨکڪګڬڭڮگڰڱڲڳڴڵڶڷڸڹںڻڼڽھ
+0xdac0: ÚÀÚÁÚÂÚÃÚÄÚÅÚÆÚÇÚÈÚÉÚÊÚËÚÌÚÍÚÎÚÏÚÐÚÑÚÒÚÓÚÔÚÕÚÖÚ×ÚØÚÙÚÚÚÛÚÜÚÝÚÞ
+0xdae0: ÚàÚáÚâÚãÚäÚåÚæÚçÚèÚéÚêÚëÚìÚíÚîÚïÚðÚñÚòÚóÚôÚõÚöÚ÷ÚøÚùÚúÚûÚüÚýÚþ
+0xdba0:   ۣۡۢۤۥۦۧۨ۩۪ۭ۫۬ۮۯ۰۱۲۳۴۵۶۷۸۹ۺۻۼ۽۾
+0xdbc0: ÛÀÛÁÛÂÛÃÛÄÛÅÛÆÛÇÛÈÛÉÛÊÛËÛÌÛÍÛÎÛÏÛÐÛÑÛÒÛÓÛÔÛÕÛÖÛ×ÛØÛÙÛÚÛÛÛÜÛÝÛÞ
+0xdbe0: ÛàÛáÛâÛãÛäÛåÛæÛçÛèÛéÛêÛëÛìÛíÛîÛïÛðÛñÛòÛóÛôÛõÛöÛ÷ÛøÛùÛúÛûÛüÛýÛþ
+0xdca0:   ܡܢܣܤܥܦܧܨܩܪܫܬܭܮܯܱܴܷܸܹܻܼܾܰܲܳܵܶܺܽ
+0xdcc0: ÜÀÜÁÜÂÜÃÜÄÜÅÜÆÜÇÜÈÜÉÜÊÜËÜÌÜÍÜÎÜÏÜÐÜÑÜÒÜÓÜÔÜÕÜÖÜ×ÜØÜÙÜÚÜÛÜÜÜÝÜÞ
+0xdce0: ÜàÜáÜâÜãÜäÜåÜæÜçÜèÜéÜêÜëÜìÜíÜîÜïÜðÜñÜòÜóÜôÜõÜöÜ÷ÜøÜùÜúÜûÜüÜýÜþ
+0xdda0:   ݡݢݣݤݥݦݧݨݩݪݫݬݭݮݯݰݱݲݳݴݵݶݷݸݹݺݻݼݽݾ
+0xddc0: ÝÀÝÁÝÂÝÃÝÄÝÅÝÆÝÇÝÈÝÉÝÊÝËÝÌÝÍÝÎÝÏÝÐÝÑÝÒÝÓÝÔÝÕÝÖÝ×ÝØÝÙÝÚÝÛÝÜÝÝÝÞ
+0xdde0: ÝàÝáÝâÝãÝäÝåÝæÝçÝèÝéÝêÝëÝìÝíÝîÝïÝðÝñÝòÝóÝôÝõÝöÝ÷ÝøÝùÝúÝûÝüÝýÝþ
+0xdea0:   ޡޢޣޤޥަާިީުޫެޭޮޯްޱ޲޳޴޵޶޷޸޹޺޻޼޽޾
+0xdec0: ÞÀÞÁÞÂÞÃÞÄÞÅÞÆÞÇÞÈÞÉÞÊÞËÞÌÞÍÞÎÞÏÞÐÞÑÞÒÞÓÞÔÞÕÞÖÞ×ÞØÞÙÞÚÞÛÞÜÞÝÞÞ
+0xdee0: ÞàÞáÞâÞãÞäÞåÞæÞçÞèÞéÞêÞëÞìÞíÞîÞïÞðÞñÞòÞóÞôÞõÞöÞ÷ÞøÞùÞúÞûÞüÞýÞþ
+0xdfa0:   ߡߢߣߤߥߦߧߨߩߪ߲߫߬߭߮߯߰߱߳ߴߵ߶߷߸߹ߺ߻߼߽߾
+0xdfc0: ßÀßÁßÂßÃßÄßÅßÆßÇßÈßÉßÊßËßÌßÍßÎßÏßÐßÑßÒßÓßÔßÕßÖß×ßØßÙßÚßÛßÜßÝßÞ
+0xdfe0: ßàßáßâßãßäßåßæßçßèßéßêßëßìßíßîßïßðßñßòßóßôßõßöß÷ßøßùßúßûßüßýßþ
+0xe0a0:   à¡à¢à£à¤à¥à¦à§à¨à©àªà«à¬à­à®à¯à°à±à²à³à´àµà¶à·à¸à¹àºà»à¼à½à¾
+0xe0c0: àÀàÁàÂàÃàÄàÅàÆàÇàÈàÉàÊàËàÌàÍàÎàÏàÐàÑàÒàÓàÔàÕàÖà×àØàÙàÚàÛàÜàÝàÞ
+0xe0e0: àààáàâàãàäàåàæàçàèàéàêàëàìàíàîàïàðàñàòàóàôàõàöà÷àøàùàúàûàüàýàþ
+0xe1a0:   á¡á¢á£á¤á¥á¦á§á¨á©áªá«á¬á­á®á¯á°á±á²á³á´áµá¶á·á¸á¹áºá»á¼á½á¾
+0xe1c0: áÀáÁáÂáÃáÄáÅáÆáÇáÈáÉáÊáËáÌáÍáÎáÏáÐáÑáÒáÓáÔáÕáÖá×áØáÙáÚáÛáÜáÝáÞ
+0xe1e0: áàáááâáãáäáåáæáçáèáéáêáëáìáíáîáïáðáñáòáóáôáõáöá÷áøáùáúáûáüáýáþ
+0xe2a0:   â¡â¢â£â¤â¥â¦â§â¨â©âªâ«â¬â­â®â¯â°â±â²â³â´âµâ¶â·â¸â¹âºâ»â¼â½â¾
+0xe2c0: âÀâÁâÂâÃâÄâÅâÆâÇâÈâÉâÊâËâÌâÍâÎâÏâÐâÑâÒâÓâÔâÕâÖâ×âØâÙâÚâÛâÜâÝâÞ
+0xe2e0: âàâáâââãâäâåâæâçâèâéâêâëâìâíâîâïâðâñâòâóâôâõâöâ÷âøâùâúâûâüâýâþ
+0xe3a0:   ã¡ã¢ã£ã¤ã¥ã¦ã§ã¨ã©ãªã«ã¬ã­ã®ã¯ã°ã±ã²ã³ã´ãµã¶ã·ã¸ã¹ãºã»ã¼ã½ã¾
+0xe3c0: ãÀãÁãÂãÃãÄãÅãÆãÇãÈãÉãÊãËãÌãÍãÎãÏãÐãÑãÒãÓãÔãÕãÖã×ãØãÙãÚãÛãÜãÝãÞ
+0xe3e0: ãàãáãâãããäãåãæãçãèãéãêãëãìãíãîãïãðãñãòãóãôãõãöã÷ãøãùãúãûãüãýãþ
+0xe4a0:   ä¡ä¢ä£ä¤ä¥ä¦ä§ä¨ä©äªä«ä¬ä­ä®ä¯ä°ä±ä²ä³ä´äµä¶ä·ä¸ä¹äºä»ä¼ä½ä¾
+0xe4c0: äÀäÁäÂäÃäÄäÅäÆäÇäÈäÉäÊäËäÌäÍäÎäÏäÐäÑäÒäÓäÔäÕäÖä×äØäÙäÚäÛäÜäÝäÞ
+0xe4e0: äàäáäâäãäääåäæäçäèäéäêäëäìäíäîäïäðäñäòäóäôäõäöä÷äøäùäúäûäüäýäþ
+0xe5a0:   å¡å¢å£å¤å¥å¦å§å¨å©åªå«å¬å­å®å¯å°å±å²å³å´åµå¶å·å¸å¹åºå»å¼å½å¾
+0xe5c0: åÀåÁåÂåÃåÄåÅåÆåÇåÈåÉåÊåËåÌåÍåÎåÏåÐåÑåÒåÓåÔåÕåÖå×åØåÙåÚåÛåÜåÝåÞ
+0xe5e0: åàåáåâåãåäåååæåçåèåéåêåëåìåíåîåïåðåñåòåóåôåõåöå÷åøåùåúåûåüåýåþ
+0xe6a0:   æ¡æ¢æ£æ¤æ¥æ¦æ§æ¨æ©æªæ«æ¬æ­æ®æ¯æ°æ±æ²æ³æ´æµæ¶æ·æ¸æ¹æºæ»æ¼æ½æ¾
+0xe6c0: æÀæÁæÂæÃæÄæÅæÆæÇæÈæÉæÊæËæÌæÍæÎæÏæÐæÑæÒæÓæÔæÕæÖæ×æØæÙæÚæÛæÜæÝæÞ
+0xe6e0: æàæáæâæãæäæåæææçæèæéæêæëæìæíæîæïæðæñæòæóæôæõæöæ÷æøæùæúæûæüæýæþ
+0xe7a0:   ç¡ç¢ç£ç¤ç¥ç¦ç§ç¨ç©çªç«ç¬ç­ç®ç¯ç°ç±ç²ç³ç´çµç¶ç·ç¸ç¹çºç»ç¼ç½ç¾
+0xe7c0: çÀçÁçÂçÃçÄçÅçÆçÇçÈçÉçÊçËçÌçÍçÎçÏçÐçÑçÒçÓçÔçÕçÖç×çØçÙçÚçÛçÜçÝçÞ
+0xe7e0: çàçáçâçãçäçåçæçççèçéçêçëçìçíçîçïçðçñçòçóçôçõçöç÷çøçùçúçûçüçýçþ
+0xe8a0:   è¡è¢è£è¤è¥è¦è§è¨è©èªè«è¬è­è®è¯è°è±è²è³è´èµè¶è·è¸è¹èºè»è¼è½è¾
+0xe8c0: èÀèÁèÂèÃèÄèÅèÆèÇèÈèÉèÊèËèÌèÍèÎèÏèÐèÑèÒèÓèÔèÕèÖè×èØèÙèÚèÛèÜèÝèÞ
+0xe8e0: èàèáèâèãèäèåèæèçèèèéèêèëèìèíèîèïèðèñèòèóèôèõèöè÷èøèùèúèûèüèýèþ
+0xe9a0:   é¡é¢é£é¤é¥é¦é§é¨é©éªé«é¬é­é®é¯é°é±é²é³é´éµé¶é·é¸é¹éºé»é¼é½é¾
+0xe9c0: éÀéÁéÂéÃéÄéÅéÆéÇéÈéÉéÊéËéÌéÍéÎéÏéÐéÑéÒéÓéÔéÕéÖé×éØéÙéÚéÛéÜéÝéÞ
+0xe9e0: éàéáéâéãéäéåéæéçéèéééêéëéìéíéîéïéðéñéòéóéôéõéöé÷éøéùéúéûéüéýéþ
+0xeaa0:   ê¡ê¢ê£ê¤ê¥ê¦ê§ê¨ê©êªê«ê¬ê­ê®ê¯ê°ê±ê²ê³ê´êµê¶ê·ê¸ê¹êºê»ê¼ê½ê¾
+0xeac0: êÀêÁêÂêÃêÄêÅêÆêÇêÈêÉêÊêËêÌêÍêÎêÏêÐêÑêÒêÓêÔêÕêÖê×êØêÙêÚêÛêÜêÝêÞ
+0xeae0: êàêáêâêãêäêåêæêçêèêéêêêëêìêíêîêïêðêñêòêóêôêõêöê÷êøêùêúêûêüêýêþ
+0xeba0:   ë¡ë¢ë£ë¤ë¥ë¦ë§ë¨ë©ëªë«ë¬ë­ë®ë¯ë°ë±ë²ë³ë´ëµë¶ë·ë¸ë¹ëºë»ë¼ë½ë¾
+0xebc0: ëÀëÁëÂëÃëÄëÅëÆëÇëÈëÉëÊëËëÌëÍëÎëÏëÐëÑëÒëÓëÔëÕëÖë×ëØëÙëÚëÛëÜëÝëÞ
+0xebe0: ëàëáëâëãëäëåëæëçëèëéëêëëëìëíëîëïëðëñëòëóëôëõëöë÷ëøëùëúëûëüëýëþ
+0xeca0:   ì¡ì¢ì£ì¤ì¥ì¦ì§ì¨ì©ìªì«ì¬ì­ì®ì¯ì°ì±ì²ì³ì´ìµì¶ì·ì¸ì¹ìºì»ì¼ì½ì¾
+0xecc0: ìÀìÁìÂìÃìÄìÅìÆìÇìÈìÉìÊìËìÌìÍìÎìÏìÐìÑìÒìÓìÔìÕìÖì×ìØìÙìÚìÛìÜìÝìÞ
+0xece0: ìàìáìâìãìäìåìæìçìèìéìêìëìììíìîìïìðìñìòìóìôìõìöì÷ìøìùìúìûìüìýìþ
+0xeda0:   í¡í¢í£í¤í¥í¦í§í¨í©íªí«í¬í­í®í¯í°í±í²í³í´íµí¶í·í¸í¹íºí»í¼í½í¾
+0xedc0: íÀíÁíÂíÃíÄíÅíÆíÇíÈíÉíÊíËíÌíÍíÎíÏíÐíÑíÒíÓíÔíÕíÖí×íØíÙíÚíÛíÜíÝíÞ
+0xede0: íàíáíâíãíäíåíæíçíèíéíêíëíìíííîíïíðíñíòíóíôíõíöí÷íøíùíúíûíüíýíþ
+0xeea0:   î¡î¢î£î¤î¥î¦î§î¨î©îªî«î¬î­î®î¯î°î±î²î³î´îµî¶î·î¸î¹îºî»î¼î½î¾
+0xeec0: îÀîÁîÂîÃîÄîÅîÆîÇîÈîÉîÊîËîÌîÍîÎîÏîÐîÑîÒîÓîÔîÕîÖî×îØîÙîÚîÛîÜîÝîÞ
+0xeee0: îàîáîâîãîäîåîæîçîèîéîêîëîìîíîîîïîðîñîòîóîôîõîöî÷îøîùîúîûîüîýîþ
+0xefa0:   ï¡ï¢ï£ï¤ï¥ï¦ï§ï¨ï©ïªï«ï¬ï­ï®ï¯ï°ï±ï²ï³ï´ïµï¶ï·ï¸ï¹ïºï»ï¼ï½ï¾
+0xefc0: ïÀïÁïÂïÃïÄïÅïÆïÇïÈïÉïÊïËïÌïÍïÎïÏïÐïÑïÒïÓïÔïÕïÖï×ïØïÙïÚïÛïÜïÝïÞ
+0xefe0: ïàïáïâïãïäïåïæïçïèïéïêïëïìïíïîïïïðïñïòïóïôïõïöï÷ïøïùïúïûïüïýïþ
+0xf0a0:   ð¡ð¢ð£ð¤ð¥ð¦ð§ð¨ð©ðªð«ð¬ð­ð®ð¯ð°ð±ð²ð³ð´ðµð¶ð·ð¸ð¹ðºð»ð¼ð½ð¾
+0xf0c0: ðÀðÁðÂðÃðÄðÅðÆðÇðÈðÉðÊðËðÌðÍðÎðÏðÐðÑðÒðÓðÔðÕðÖð×ðØðÙðÚðÛðÜðÝðÞ
+0xf0e0: ðàðáðâðãðäðåðæðçðèðéðêðëðìðíðîðïðððñðòðóðôðõðöð÷ðøðùðúðûðüðýðþ
+0xf1a0:   ñ¡ñ¢ñ£ñ¤ñ¥ñ¦ñ§ñ¨ñ©ñªñ«ñ¬ñ­ñ®ñ¯ñ°ñ±ñ²ñ³ñ´ñµñ¶ñ·ñ¸ñ¹ñºñ»ñ¼ñ½ñ¾
+0xf1c0: ñÀñÁñÂñÃñÄñÅñÆñÇñÈñÉñÊñËñÌñÍñÎñÏñÐñÑñÒñÓñÔñÕñÖñ×ñØñÙñÚñÛñÜñÝñÞ
+0xf1e0: ñàñáñâñãñäñåñæñçñèñéñêñëñìñíñîñïñðñññòñóñôñõñöñ÷ñøñùñúñûñüñýñþ
+0xf2a0:   ò¡ò¢ò£ò¤ò¥ò¦ò§ò¨ò©òªò«ò¬ò­ò®ò¯ò°ò±ò²ò³ò´òµò¶ò·ò¸ò¹òºò»ò¼ò½ò¾
+0xf2c0: òÀòÁòÂòÃòÄòÅòÆòÇòÈòÉòÊòËòÌòÍòÎòÏòÐòÑòÒòÓòÔòÕòÖò×òØòÙòÚòÛòÜòÝòÞ
+0xf2e0: òàòáòâòãòäòåòæòçòèòéòêòëòìòíòîòïòðòñòòòóòôòõòöò÷òøòùòúòûòüòýòþ
+0xf3a0:   ó¡ó¢ó£ó¤ó¥ó¦ó§ó¨ó©óªó«ó¬ó­ó®ó¯ó°ó±ó²ó³ó´óµó¶ó·ó¸ó¹óºó»ó¼ó½ó¾
+0xf3c0: óÀóÁóÂóÃóÄóÅóÆóÇóÈóÉóÊóËóÌóÍóÎóÏóÐóÑóÒóÓóÔóÕóÖó×óØóÙóÚóÛóÜóÝóÞ
+0xf3e0: óàóáóâóãóäóåóæóçóèóéóêóëóìóíóîóïóðóñóòóóóôóõóöó÷óøóùóúóûóüóýóþ
+0xf4a0:   ô¡ô¢ô£ô¤ô¥ô¦                                                
+0xf4c0:                                                               
+0xf4e0:                                                               
+0xf5a0:                                                               
+0xf5c0:                                                               
+0xf5e0:                                                               
+0xf6a0:                                                               
+0xf6c0:                                                               
+0xf6e0:                                                               
+0xf7a0:                                                               
+0xf7c0:                                                               
+0xf7e0:                                                               
+0xf8a0:                                                               
+0xf8c0:                                                               
+0xf8e0:                                                               
+0xf9a0:                                                               
+0xf9c0:                                                               
+0xf9e0:                                                               
+0xfaa0:                                                               
+0xfac0:                                                               
+0xfae0:                                                               
+0xfba0:                                                               
+0xfbc0:                                                               
+0xfbe0:                                                               
+0xfca0:                                                               
+0xfcc0:                                                               
+0xfce0:                                                               
+0xfda0:                                                               
+0xfdc0:                                                               
+0xfde0:                                                               
+0xfea0:                                                               
+0xfec0:                                                               
+0xfee0:                                                               
+0xffa0:                                                               
+0xffc0:                                                               
+0xffe0:                                                               
diff --git a/ext/Encode/t/table.utf8 b/ext/Encode/t/table.utf8
new file mode 100644 (file)
index 0000000..1401b89
--- /dev/null
@@ -0,0 +1,294 @@
+0x0020:    ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = >
+0x0040:  @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^
+0x0060:  ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~
+0x8ea0:    。 「 」 、 ・ ヲ ァ ィ ゥ ェ ォ ャ ュ ョ ッ ー ア イ ウ エ オ カ キ ク ケ コ サ シ ス セ
+0x8ec0:  タ チ ツ テ ト ナ ニ ヌ ネ ノ ハ ヒ フ ヘ ホ マ ミ ム メ モ ヤ ユ ヨ ラ リ ル レ ロ ワ ン ゙
+0x8ee0:                                                               
+0xa0a0:                                                               
+0xa0c0:                                                               
+0xa0e0:                                                               
+0xa1a0:    、。,.・:;?!゛゜´`¨^ ̄_ヽヾゝゞ〃仝々〆〇ー―‐
+0xa1c0: \〜‖|…‥‘’“”()〔〕[]{}〈〉《》「」『』【】+−±
+0xa1e0: ÷=≠<>≦≧∞∴♂♀°′″℃¥$¢£%#&*@§☆★○●◎◇
+0xa2a0:   ◆□■△▲▽▼※〒→←↑↓〓                      ∈∋⊆⊇⊂
+0xa2c0: ∪∩                ∧∨¬⇒⇔∀∃                      ∠⊥⌒
+0xa2e0: ∇≡≒≪≫√∽∝∵∫∬              Å‰♯♭♪†‡¶        ◯
+0xa3a0:                                 0123456789          
+0xa3c0:   ABCDEFGHIJKLMNOPQRSTUVWXYZ        
+0xa3e0:   abcdefghijklmnopqrstuvwxyz        
+0xa4a0:   ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞ
+0xa4c0: だちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽま
+0xa4e0: むめもゃやゅゆょよらりるれろゎわゐゑをん                      
+0xa5a0:   ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾ
+0xa5c0: ダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマ
+0xa5e0: ムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ                
+0xa6a0:   ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ            
+0xa6c0:   αβγδεζηθικλμνξοπρστυφχψω            
+0xa6e0:                                                               
+0xa7a0:   АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬ
+0xa7c0: ЮЯ                              абвгдеёжзийклм
+0xa7e0: опрстуфхцчшщъыьэюя                          
+0xa8a0:   ─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥
+0xa8c0: ╂                                                            
+0xa8e0:                                                               
+0xa9a0:                                                               
+0xa9c0:                                                               
+0xa9e0:                                                               
+0xaaa0:                                                               
+0xaac0:                                                               
+0xaae0:                                                               
+0xaba0:                                                               
+0xabc0:                                                               
+0xabe0:                                                               
+0xaca0:                                                               
+0xacc0:                                                               
+0xace0:                                                               
+0xada0:                                                               
+0xadc0:                                                               
+0xade0:                                                               
+0xaea0:                                                               
+0xaec0:                                                               
+0xaee0:                                                               
+0xafa0:                                                               
+0xafc0:                                                               
+0xafe0:                                                               
+0xb0a0:   亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎
+0xb0c0: 粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯
+0xb0e0: 萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭
+0xb1a0:   院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云
+0xb1c0: 雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭
+0xb1e0: 園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応
+0xb2a0:   押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮
+0xb2c0: 伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩
+0xb2e0: 迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改
+0xb3a0:   魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨
+0xb3c0: 垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠
+0xb3e0: 橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱
+0xb4a0:   粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款
+0xb4c0: 汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含
+0xb4e0: 巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄
+0xb5a0:   機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠
+0xb5c0: 祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急
+0xb5e0: 朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京
+0xb6a0:   供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎
+0xb6c0: 鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿
+0xb6e0: 謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈
+0xb7a0:   掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪
+0xb7c0: 契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎
+0xb7e0: 劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲
+0xb8a0:   検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃
+0xb8c0: 言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五
+0xb8e0: 伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向
+0xb9a0:   后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江
+0xb9c0: 浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤
+0xb9e0: 項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込
+0xbaa0:   此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐
+0xbac0: 裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤
+0xbae0: 材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷
+0xbba0:   察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃
+0xbbc0: 酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝
+0xbbe0: 死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時
+0xbca0:   次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿
+0xbcc0: 疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼
+0xbce0: 酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周
+0xbda0:   宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従
+0xbdc0: 柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉
+0xbde0: 準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償
+0xbea0:   勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松
+0xbec0: 樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞
+0xbee0: 鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾
+0xbfa0:   拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹
+0xbfc0: 神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図
+0xbfe0: 逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾
+0xc0a0:   澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西
+0xc0c0: 誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折
+0xc0e0: 窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線
+0xc1a0:   繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽
+0xc1c0: 狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿
+0xc1e0: 操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎
+0xc2a0:   臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他
+0xc2c0: 太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋
+0xc2e0: 退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只
+0xc3a0:   叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻
+0xc3c0: 胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑
+0xc3e0: 逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵
+0xc4a0:   帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直
+0xc4c0: 沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪
+0xc4e0: 釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓
+0xc5a0:   邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転
+0xc5c0: 点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党
+0xc5e0: 凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到
+0xc6a0:   董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇
+0xc6c0: 得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇
+0xc6e0: 奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入
+0xc7a0:   如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳
+0xc7c0: 農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒
+0xc7e0: 楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦
+0xc8a0:   函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半
+0xc8c0: 叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃
+0xc8e0: 彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美
+0xc9a0:   鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評
+0xc9c0: 廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶
+0xc9e0: 斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服
+0xcaa0:   福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣
+0xcac0: 弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗
+0xcae0: 圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋
+0xcba0:   法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望
+0xcbc0: 棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡
+0xcbe0: 摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満
+0xcca0:   漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名
+0xccc0: 明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿
+0xcce0: 尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒
+0xcda0:   諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余
+0xcdc0: 誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑
+0xcde0: 沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃
+0xcea0:   痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両
+0xcec0: 寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙
+0xcee0: 類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯
+0xcfa0:   蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋
+0xcfc0: 論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕                      
+0xcfe0:                                                               
+0xd0a0:   弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂
+0xd0c0: 仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐
+0xd0e0: 俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲
+0xd1a0:   僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢
+0xd1c0: 兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩
+0xd1e0: 凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨
+0xd2a0:   辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸
+0xd2c0: 卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁
+0xd2e0: 呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨
+0xd3a0:   咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯
+0xd3c0: 喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲
+0xd3e0: 噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉
+0xd4a0:   圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔
+0xd4c0: 埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘
+0xd4e0: 壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩
+0xd5a0:   奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋
+0xd5c0: 媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺
+0xd5e0: 它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓
+0xd6a0:   屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗
+0xd6c0: 崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖
+0xd6e0: 巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏
+0xd7a0:   廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎
+0xd7c0: 彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡
+0xd7e0: 怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚
+0xd8a0:   悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍
+0xd8c0: 慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔
+0xd8e0: 憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛
+0xd9a0:   戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆
+0xd9c0: 拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵
+0xd9e0: 捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼
+0xdaa0:   據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵
+0xdac0: 收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲
+0xdae0: 昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼
+0xdba0:   曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉
+0xdbc0: 枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲
+0xdbe0: 梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍
+0xdca0:   棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙
+0xdcc0: 楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權
+0xdce0: 槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣
+0xdda0:   檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉
+0xddc0: 歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳
+0xdde0: 麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾
+0xdea0:   沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵
+0xdec0: 淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎
+0xdee0: 滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌
+0xdfa0:   漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔
+0xdfc0: 濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋
+0xdfe0: 烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼
+0xe0a0:   燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆
+0xe0c0: 狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳
+0xe0e0: 玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱
+0xe1a0:   瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩
+0xe1c0: 畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾
+0xe1e0: 痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰
+0xe2a0:   癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈
+0xe2c0: 眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇
+0xe2e0: 矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬
+0xe3a0:   磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕
+0xe3c0: 秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈
+0xe3e0: 窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐
+0xe4a0:   筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴
+0xe4c0: 篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤
+0xe4e0: 籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆
+0xe5a0:   紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇
+0xe5c0: 綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃
+0xe5e0: 縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺
+0xe6a0:   罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮
+0xe6c0: 羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢
+0xe6e0: 聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋
+0xe7a0:   隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂
+0xe7c0: 臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟
+0xe7e0: 艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙
+0xe8a0:   茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨
+0xe8c0: 萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆
+0xe8e0: 葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈
+0xe9a0:   蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊
+0xe9c0: 蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩
+0xe9e0: 蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙
+0xeaa0:   蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑
+0xeac0: 蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰
+0xeae0: 袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞
+0xeba0:   襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃
+0xebc0: 訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳
+0xebe0: 諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫
+0xeca0:   譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍
+0xecc0: 貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖
+0xece0: 赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊
+0xeda0:   蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱
+0xedc0: 軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗
+0xede0: 轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸
+0xeea0:   遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛
+0xeec0: 鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛
+0xeee0: 釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮
+0xefa0:   錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓
+0xefc0: 鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘
+0xefe0: 閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞
+0xf0a0:   陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈
+0xf0c0: 霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋
+0xf0e0: 鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰
+0xf1a0:   顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐
+0xf1c0: 饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀
+0xf1e0: 騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷
+0xf2a0:   髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠
+0xf2c0: 鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤
+0xf2e0: 鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈
+0xf3a0:   鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯
+0xf3c0: 鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨
+0xf3e0: 黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠
+0xf4a0:   堯槇遙瑤凜熙                                                
+0xf4c0:                                                               
+0xf4e0:                                                               
+0xf5a0:                                                               
+0xf5c0:                                                               
+0xf5e0:                                                               
+0xf6a0:                                                               
+0xf6c0:                                                               
+0xf6e0:                                                               
+0xf7a0:                                                               
+0xf7c0:                                                               
+0xf7e0:                                                               
+0xf8a0:                                                               
+0xf8c0:                                                               
+0xf8e0:                                                               
+0xf9a0:                                                               
+0xf9c0:                                                               
+0xf9e0:                                                               
+0xfaa0:                                                               
+0xfac0:                                                               
+0xfae0:                                                               
+0xfba0:                                                               
+0xfbc0:                                                               
+0xfbe0:                                                               
+0xfca0:                                                               
+0xfcc0:                                                               
+0xfce0:                                                               
+0xfda0:                                                               
+0xfdc0:                                                               
+0xfde0:                                                               
+0xfea0:                                                               
+0xfec0:                                                               
+0xfee0:                                                               
+0xffa0:                                                               
+0xffc0:                                                               
+0xffe0: