This is the mail archive of the libc-help@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH 1/2] gconv: add new module for ARIB-STD-B24


From: Akihiro Tsukada <tskd08@gmail.com>

ARIB-STD-B24 is a character encoding that is used in Japanese digital tv.
It is an ISO-2022 based one and defined in ARIB STD-B24,
 http://www.arib.or.jp/english/html/overview/doc/6-STD-B24v5_2-1p3-E1.pdf
The encoding module discards all control sequences except new lines.

Signed-off-by: Akihiro Tsukada <tskd08@gmail.com>
---
 ChangeLog                             |    9 +
 iconvdata/Makefile                    |    5 +-
 iconvdata/TESTS                       |    1 +
 iconvdata/arib-std-b24.c              | 1592 +++++++++++++++++++++++++++++++++
 iconvdata/gconv-modules               |    5 +
 iconvdata/testdata/ARIB-STD-B24       |  766 ++++++++++++++++
 iconvdata/testdata/ARIB-STD-B24..UTF8 |  766 ++++++++++++++++
 7 files changed, 3143 insertions(+), 1 deletion(-)
 create mode 100644 iconvdata/arib-std-b24.c
 create mode 100644 iconvdata/testdata/ARIB-STD-B24
 create mode 100644 iconvdata/testdata/ARIB-STD-B24..UTF8

diff --git a/ChangeLog b/ChangeLog
index 86dc991..07eadc8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2014-10-22  Akihiro Tsukada  <tskd08@gmail.com>
+
+	* iconvdata/arib-std-b24.c: New gconv module.
+	* iconvdata/Makefile: Likewise.
+	* iconvdata/gconv-modules: Likewise.
+	* iconvdata/TESTS: New test for arib-std-b24.
+	* iconvdata/testdat/ARIB-STD-B24: Likewise.
+	* iconvdata/testdat/ARIB-STD-B24..UTF8: Likewise.
+
 2014-10-10  Joseph Myers  <joseph@codesourcery.com>
 
 	[BZ #14132]
diff --git a/iconvdata/Makefile b/iconvdata/Makefile
index b6327d6..cff95b5 100644
--- a/iconvdata/Makefile
+++ b/iconvdata/Makefile
@@ -61,7 +61,8 @@ modules	:= ISO8859-1 ISO8859-2 ISO8859-3 ISO8859-4 ISO8859-5		 \
 	   IBM5347 IBM9030 IBM9066 IBM9448 IBM12712 IBM16804             \
 	   IBM1364 IBM1371 IBM1388 IBM1390 IBM1399 ISO_11548-1 MIK BRF	 \
 	   MAC-CENTRALEUROPE KOI8-RU ISO8859-9E				 \
-	   CP770 CP771 CP772 CP773 CP774
+	   CP770 CP771 CP772 CP773 CP774 \
+	   ARIB-STD-B24
 
 modules.so := $(addsuffix .so, $(modules))
 
@@ -116,6 +117,8 @@ $(objpfx)ISO-2022-CN.so: $(objpfx)libGB.so $(objpfx)libCNS.so
 LDFLAGS-ISO-2022-CN-EXT.so = $(LDFLAGS-rpath-ORIGIN)
 $(objpfx)ISO-2022-CN-EXT.so: $(objpfx)libGB.so $(objpfx)libCNS.so \
 			     $(objpfx)libISOIR165.so
+LDFLAGS-ARIB-STD-B24.so = $(LDFLAGS-rpath-ORIGIN)
+$(objpfx)ARIB-STD-B24.so: $(objpfx)libJIS.so $(objpfx)libJISX0213.so
 
 LDFLAGS-libJIS.so = $(LDFLAGS-soname-fname)
 LDFLAGS-libKSC.so = $(LDFLAGS-soname-fname)
diff --git a/iconvdata/TESTS b/iconvdata/TESTS
index 3e273ec..97e0e81 100644
--- a/iconvdata/TESTS
+++ b/iconvdata/TESTS
@@ -170,3 +170,4 @@ BRF			BRF			-	UTF8
 MAC-SAMI		MAC-SAMI		Y	UTF8
 MAC-CENTRALEUROPE	MAC-CENTRALEUROPE	Y	UTF8
 KOI8-RU			KOI8-RU			Y	UTF8
+ARIB-STD-B24		ARIB-STD-B24		N	UTF8
diff --git a/iconvdata/arib-std-b24.c b/iconvdata/arib-std-b24.c
new file mode 100644
index 0000000..29b72c7
--- /dev/null
+++ b/iconvdata/arib-std-b24.c
@@ -0,0 +1,1592 @@
+/* Conversion module for ARIB-STD-B24.
+   Copyright (C) 1998-2014 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+/*
+ * Conversion module for the character encoding
+ * defined in ARIB STD-B24 Volume 1, Part 2, Chapter 7.
+ *    http://www.arib.or.jp/english/html/overview/doc/6-STD-B24v5_2-1p3-E1.pdf
+ *    http://www.arib.or.jp/english/html/overview/sb_ej.html
+ *    https://sites.google.com/site/unicodesymbols/Home/japanese-tv-symbols/
+ * It is based on ISO-2022, and used in Japanese digital televsion.
+ *
+ * Note 1: "mosaic" characters are not supported in this module.
+ * Note 2: Control characters (for subtitles) are discarded.
+ */
+
+#include <assert.h>
+#include <dlfcn.h>
+#include <gconv.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "jis0201.h"
+#include "jis0208.h"
+#include "jisx0213.h"
+
+/* Definitions used in the body of the `gconv' function.  */
+#define CHARSET_NAME		"ARIB-STD-B24//"
+#define DEFINE_INIT		1
+#define DEFINE_FINI		1
+#define ONE_DIRECTION		0
+#define FROM_LOOP		from_aribb24_loop
+#define TO_LOOP			to_aribb24_loop
+#define FROM_LOOP_MIN_NEEDED_FROM 1
+#define FROM_LOOP_MAX_NEEDED_FROM 1
+#define FROM_LOOP_MIN_NEEDED_TO 4
+#define FROM_LOOP_MAX_NEEDED_TO (4 * 4)
+#define TO_LOOP_MIN_NEEDED_FROM 4
+#define TO_LOOP_MAX_NEEDED_FROM 4
+#define TO_LOOP_MIN_NEEDED_TO 1
+#define TO_LOOP_MAX_NEEDED_TO 7
+
+#define PREPARE_LOOP \
+  __mbstate_t saved_state;						      \
+  __mbstate_t *statep = data->__statep;					      \
+  status = __GCONV_OK;
+
+/* Since we might have to reset input pointer we must be able to save
+   and retore the state.  */
+#define SAVE_RESET_STATE(Save) \
+  {									      \
+    if (Save)								      \
+      saved_state = *statep;						      \
+    else								      \
+      *statep = saved_state;						      \
+  }
+
+/* During UCS-4 to ARIB-STD-B24 conversion, the state contains the last
+   two bytes to be output, in .prev member. */
+
+/* Since this is a stateful encoding we have to provide code which resets
+   the output state to the initial state.  This has to be done during the
+   flushing.  */
+#define EMIT_SHIFT_TO_INIT \
+  {									      \
+    if (!FROM_DIRECTION)						      \
+      status = out_buffered((struct state_to *) data->__statep,		      \
+			    &outbuf, outend);				      \
+    /* we don't have to emit anything, just reset the state.  */	      \
+    memset (data->__statep, '\0', sizeof (*data->__statep));		      \
+  }
+
+
+/* This makes obvious what everybody knows: 0x1b is the Esc character.  */
+#define ESC 0x1b
+/* other control characters */
+#define SS2 0x19
+#define SS3 0x1d
+#define LS0 0x0f
+#define LS1 0x0e
+
+#define LS2 0x6e
+#define LS3 0x6f
+#define LS1R 0x7e
+#define LS2R 0x7d
+#define LS3R 0x7c
+
+#define LF 0x0a
+#define CR 0x0d
+#define BEL 0x07
+#define BS 0x08
+#define COL 0x90
+#define CDC 0x92
+#define MACRO_CTRL 0x95
+#define CSI 0x9b
+#define TIME 0x9d
+
+/* code sets */
+enum g_set
+{
+  KANJI_set = '\x42',         /* 2Byte set */
+  ASCII_set = '\x40',
+  ASCII_x_set = '\x4a',
+  HIRAGANA_set = '\x30',
+  KATAKANA_set = '\x31',
+  MOSAIC_A_set = '\x32',
+  MOSAIC_B_set = '\x33',
+  MOSAIC_C_set = '\x34',
+  MOSAIC_D_set = '\x35',
+  PROP_ASCII_set = '\x36',
+  PROP_HIRA_set = '\x37',
+  PROP_KATA_set = '\x38',
+  JIS0201_KATA_set = '\x49',
+  JISX0213_1_set = '\x39',    /* 2Byte set */
+  JISX0213_2_set = '\x3a',    /* 2Byte set */
+  EXTRA_SYMBOLS_set = '\x3b', /* 2Byte set */
+
+  DRCS0_set = 0x40 | 0x80,    /* 2Byte set */
+  DRCS1_set = 0x41 | 0x80,
+  DRCS15_set = 0x4f | 0x80,
+  MACRO_set = 0x70 | 0x80,
+};
+
+
+/* First define the conversion function from ARIB-STD-B24 to UCS-4.  */
+
+enum mode_e
+{
+  NORMAL,
+  ESCAPE,
+  G_SEL_1B,
+  G_SEL_MB,
+  CTRL_SEQ,
+  DESIGNATE_MB,
+  DRCS_SEL_1B,
+  DRCS_SEL_MB,
+  MB_2ND,
+};
+
+/*
+ * __GCONV_INPUT_INCOMPLETE is never used in this conversion, thus
+ * we can re-use mbstate_t.__value and .__count:3 for the other purpose.
+ */
+struct state_from {
+  /* __count */
+  uint8_t cnt:3;	/* for use in skelton.c. always 0 */
+  uint8_t pad0:1;
+  uint8_t gl:2;		/* idx of the G-set invoked into GL */
+  uint8_t gr:2;		/*  ... to GR */
+  uint8_t ss:2;		/* SS state. 0: no shift, 2:SS2, 3:SS3 */
+  uint8_t gidx:2;	/* currently designated G-set */
+  uint8_t mode:4;	/* current input mode. see below. */
+  uint8_t skip;		/* [CTRL_SEQ] # of char to skip */
+  uint8_t prev;		/* previously input char [in MB_2ND] or,*/
+			/* input char to wait for. [CTRL_SEQ (.skip == 0)] */
+
+  /* __value */
+  uint8_t g[4];		/* code set for G0..G3 */
+} __attribute__((packed));
+
+static const struct state_from def_state_from = {
+  .cnt = 0,
+  .gl = 0,
+  .gr = 2,
+  .ss = 0,
+  .gidx = 0,
+  .mode = NORMAL,
+  .skip = 0,
+  .prev = '\0',
+  .g[0] = KANJI_set,
+  .g[1] = ASCII_set,
+  .g[2] = HIRAGANA_set,
+  .g[3] = KATAKANA_set,
+};
+
+#define EXTRA_LOOP_DECLS	, __mbstate_t *statep
+#define EXTRA_LOOP_ARGS		, statep
+
+#define INIT_PARAMS \
+  struct state_from st = *((struct state_from *)statep);		      \
+  if (st.g[0] == 0)							      \
+    st = def_state_from;
+
+#define UPDATE_PARAMS		*statep = *((__mbstate_t *)&st)
+
+#define LOOP_NEED_FLAGS
+
+#define MIN_NEEDED_INPUT	FROM_LOOP_MIN_NEEDED_FROM
+#define MAX_NEEDED_INPUT	FROM_LOOP_MAX_NEEDED_FROM
+#define MIN_NEEDED_OUTPUT	FROM_LOOP_MIN_NEEDED_TO
+#define MAX_NEEDED_OUTPUT	FROM_LOOP_MAX_NEEDED_TO
+#define LOOPFCT			FROM_LOOP
+
+/* tables and functions used in BODY */
+
+static const uint16_t kata_punc[] = {
+  0x30fd, 0x30fe, 0x30fc, 0x3002, 0x300c, 0x300d, 0x3001, 0x30fb
+};
+
+static const uint16_t hira_punc[] = {
+  0x309d, 0x309e
+};
+
+static const uint16_t nonspacing_symbol[] = {
+  0x0301, 0x0300, 0x0308, 0x0302, 0x0304, 0x0332
+};
+
+static const uint32_t extra_kanji[] = {
+  /* row 85 */
+  /* col 0..15 */
+  0, 0x3402, 0x20158, 0x4efd, 0x4eff, 0x4f9a, 0x4fc9, 0x509c,
+  0x511e, 0x51bc, 0x351f, 0x5307, 0x5361, 0x536c, 0x8a79, 0x20bb7,
+  /* col. 16..31 */
+  0x544d, 0x5496, 0x549c, 0x54a9, 0x550e, 0x554a, 0x5672, 0x56e4,
+  0x5733, 0x5734, 0xfa10, 0x5880, 0x59e4, 0x5a23, 0x5a55, 0x5bec,
+  /* col. 32..47 */
+  0xfa11, 0x37e2, 0x5eac, 0x5f34, 0x5f45, 0x5fb7, 0x6017, 0xfa6b,
+  0x6130, 0x6624, 0x66c8, 0x66d9, 0x66fa, 0x66fb, 0x6852, 0x9fc4,
+  /* col. 48..63 */
+  0x6911, 0x693b, 0x6a45, 0x6a91, 0x6adb, 0x233cc, 0x233fe, 0x235c4,
+  0x6bf1, 0x6ce0, 0x6d2e, 0xfa45, 0x6dbf, 0x6dca, 0x6df8, 0xfa46,
+  /* col. 64..79 */
+  0x6f5e, 0x6ff9, 0x7064, 0xfa6c, 0x242ee, 0x7147, 0x71c1, 0x7200,
+  0x739f, 0x73a8, 0x73c9, 0x73d6, 0x741b, 0x7421, 0xfa4a, 0x7426,
+  /* col. 80..96 */
+  0x742a, 0x742c, 0x7439, 0x744b, 0x3eda, 0x7575, 0x7581, 0x7772,
+  0x4093, 0x78c8, 0x78e0, 0x7947, 0x79ae, 0x9fc6, 0x4103, 0,
+
+  /* row 86 */
+  /* col 0..15 */
+  0, 0x9fc5, 0x79da, 0x7a1e, 0x7b7f, 0x7c31, 0x4264, 0x7d8b,
+  0x7fa1, 0x8118, 0x813a, 0xfa6d, 0x82ae, 0x845b, 0x84dc, 0x84ec,
+  /* col. 16..31 */
+  0x8559, 0x85ce, 0x8755, 0x87ec, 0x880b, 0x88f5, 0x89d2, 0x8af6,
+  0x8dce, 0x8fbb, 0x8ff6, 0x90dd, 0x9127, 0x912d, 0x91b2, 0x9233,
+  /* col. 32..43 */
+  0x9288, 0x9321, 0x9348, 0x9592, 0x96de, 0x9903, 0x9940, 0x9ad9,
+  0x9bd6, 0x9dd7, 0x9eb4, 0x9eb5
+};
+
+static const uint32_t extra_symbols[5][96] = {
+  /* row 90 */
+  {
+    /* col 0..15 */
+    0, 0x26cc, 0x26cd, 0x2762, 0x26cf, 0x26d0, 0x26d1, 0,
+    0x26d2, 0x26d5, 0x26d3, 0x26d4, 0, 0, 0, 0,
+    /* col 16..31 */
+    0x1f17f, 0x1f18a, 0, 0, 0x26d6, 0x26d7, 0x26d8, 0x26d9,
+    0x26da, 0x26db, 0x26dc, 0x26dd, 0x26de, 0x26df, 0x26e0, 0x26e1,
+    /* col 32..47 */
+    0x2b55, 0x3248, 0x3249, 0x324a, 0x324b, 0x324c, 0x324d, 0x324e,
+    0x324f, 0, 0, 0, 0, 0x2491, 0x2492, 0x2493,
+    /* col 48..63 */
+    0x1f14a, 0x1f14c, 0x1f13F, 0x1f146, 0x1f14b, 0x1f210, 0x1f211, 0x1f212,
+    0x1f213, 0x1f142, 0x1f214, 0x1f215, 0x1f216, 0x1f14d, 0x1f131, 0x1f13d,
+    /* col 64..79 */
+    0x2b1b, 0x2b24, 0x1f217, 0x1f218, 0x1f219, 0x1f21a, 0x1f21b, 0x26bf,
+    0x1f21c, 0x1f21d, 0x1f21e, 0x1f21f, 0x1f220, 0x1f221, 0x1f222, 0x1f223,
+    /* col 80..95 */
+    0x1f224, 0x1f225, 0x1f14e, 0x3299, 0x1f200, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0
+  },
+  /* row 91 */
+  {
+    /* col 0..15 */
+    0, 0x26e3, 0x2b56, 0x2b57, 0x2b58, 0x2b59, 0x2613, 0x328b,
+    0x3012, 0x26e8, 0x3246, 0x3245, 0x26e9, 0x0fd6, 0x26ea, 0x26eb,
+    /* col 16..31 */
+    0x26ec, 0x2668, 0x26ed, 0x26ee, 0x26ef, 0x2693, 0x1f6e7, 0x26f0,
+    0x26f1, 0x26f2, 0x26f3, 0x26f4, 0x26f5, 0x1f157, 0x24b9, 0x24c8,
+    /* col 32..47 */
+    0x26f6, 0x1f15f, 0x1f18b, 0x1f18d, 0x1f18c, 0x1f179, 0x26f7, 0x26f8,
+    0x26f9, 0x26fa, 0x1f17b, 0x260e, 0x26fb, 0x26fc, 0x26fd, 0x26fe,
+    /* col 48..63 */
+    0x1f17c, 0x26ff,
+  },
+  /* row 92 */
+  {
+    /* col 0..15 */
+    0, 0x27a1, 0x2b05, 0x2b06, 0x2b07, 0x2b2f, 0x2b2e, 0x5e74,
+    0x6708, 0x65e5, 0x5186, 0x33a1, 0x33a5, 0x339d, 0x33a0, 0x33a4,
+    /* col 16..31 */
+    0x1f100, 0x2488, 0x2489, 0x248a, 0x248b, 0x248c, 0x248d, 0x248e,
+    0x248f, 0x2490, 0, 0, 0, 0, 0, 0,
+    /* col 32..47 */
+    0x1f101, 0x1f102, 0x1f103, 0x1f104, 0x1f105, 0x1f106, 0x1f107, 0x1f108,
+    0x1f109, 0x1f10a, 0x3233, 0x3236, 0x3232, 0x3231, 0x3239, 0x3244,
+    /* col 48..63 */
+    0x25b6, 0x25c0, 0x3016, 0x3017, 0x27d0, 0x00b2, 0x00b3, 0x1f12d,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    /* col 64..79 */
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    /* col 80..95 */
+    0, 0, 0, 0, 0, 0, 0x1f12c, 0x1f12b,
+    0x3247, 0x1f190, 0x1f226, 0x213b, 0, 0, 0, 0
+  },
+  /* row 93 */
+  {
+    /* col 0..15 */
+    0, 0x322a, 0x322b, 0x322c, 0x322d, 0x322e, 0x322f, 0x3230,
+    0x3237, 0x337e, 0x337d, 0x337c, 0x337b, 0x2116, 0x2121, 0x3036,
+    /* col 16..31 */
+    0x26be, 0x1f240, 0x1f241, 0x1f242, 0x1f243, 0x1f244, 0x1f245, 0x1f246,
+    0x1f247, 0x1f248, 0x1f12a, 0x1f227, 0x1f228, 0x1f229, 0x1f214, 0x1f22a,
+    /* col 32..47 */
+    0x1f22b, 0x1f22c, 0x1f22d, 0x1f22e, 0x1f22f, 0x1f230, 0x1f231, 0x2113,
+    0x338f, 0x3390, 0x33ca, 0x339e, 0x33a2, 0x3371, 0, 0,
+    /* col 48..63 */
+    0x00bd, 0x2189, 0x2153, 0x2154, 0x00bc, 0x00be, 0x2155, 0x2156,
+    0x2157, 0x2158, 0x2159, 0x215a, 0x2150, 0x215b, 0x2151, 0x2152,
+    /* col 64..79 */
+    0x2600, 0x2601, 0x2602, 0x26c4, 0x2616, 0x2617, 0x26c9, 0x26ca,
+    0x2666, 0x2665, 0x2663, 0x2660, 0x26cb, 0x2a00, 0x203c, 0x2049,
+    /* col 80..95 */
+    0x26c5, 0x2614, 0x26c6, 0x2603, 0x26c7, 0x26a1, 0x26c8, 0,
+    0x269e, 0x269f, 0x266c, 0x260e, 0, 0, 0, 0
+  },
+  /* row 94 */
+  {
+    /* col 0..15 */
+    0, 0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166,
+    0x2167, 0x2168, 0x2169, 0x216a, 0x216b, 0x2470, 0x2471, 0x2472,
+    /* col 16..31 */
+    0x2473, 0x2474, 0x2475, 0x2476, 0x2477, 0x2478, 0x2479, 0x247a,
+    0x247b, 0x247c, 0x247d, 0x247e, 0x247f, 0x3251, 0x3252, 0x3253,
+    /* col 32..47 */
+    0x3254, 0x1f110, 0x1f111, 0x1f112, 0x1f113, 0x1f114, 0x1f115, 0x1f116,
+    0x1f117, 0x1f118, 0x1f119, 0x1f11a, 0x1f11b, 0x1f11c, 0x1f11d, 0x1f11e,
+    /* col 48..63 */
+    0x1f11f, 0x1f120, 0x1f121, 0x1f122, 0x1f123, 0x1f124, 0x1f125, 0x1f126,
+    0x1f127, 0x1f128, 0x1f129, 0x3255, 0x3256, 0x3257, 0x3258, 0x3259,
+    /* col 64..79 */
+    0x325a, 0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466,
+    0x2467, 0x2468, 0x2469, 0x246a, 0x246b, 0x246c, 0x246d, 0x246e,
+    /* col 80..95 */
+    0x246f, 0x2776, 0x2777, 0x2778, 0x2779, 0x277a, 0x277b, 0x277c,
+    0x277d, 0x277e, 0x277f, 0x24eb, 0x24ec, 0x325b, 0, 0
+  },
+};
+
+struct mchar_entry {
+  uint32_t len;
+  uint32_t to[4];
+};
+
+/* list of transliterations. */
+
+/* small/subscript-ish KANJI. map to the normal sized version */
+static const struct mchar_entry ext_sym_smallk[] = {
+  {.len = 1, .to = { 0x6c0f }},
+  {.len = 1, .to = { 0x526f }},
+  {.len = 1, .to = { 0x5143 }},
+  {.len = 1, .to = { 0x6545 }},
+  {.len = 1, .to = { 0x52ed }},
+  {.len = 1, .to = { 0x65b0 }},
+};
+
+/* symbols of music instruments */
+static const struct mchar_entry ext_sym_music[] = {
+  {.len = 4, .to = { 0x0028, 0x0076, 0x006e, 0x0029 }},
+  {.len = 4, .to = { 0x0028, 0x006f, 0x0062, 0x0029 }},
+  {.len = 4, .to = { 0x0028, 0x0063, 0x0062, 0x0029 }},
+  {.len = 3, .to = { 0x0028, 0x0063, 0x0065 }},
+  {.len = 3, .to = { 0x006d, 0x0062, 0x0029 }},
+  {.len = 4, .to = { 0x0028, 0x0068, 0x0070, 0x0029 }},
+  {.len = 4, .to = { 0x0028, 0x0062, 0x0072, 0x0029 }},
+  {.len = 3, .to = { 0x0028, 0x0070, 0x0029 }},
+
+  {.len = 3, .to = { 0x0028, 0x0073, 0x0029 }},
+  {.len = 4, .to = { 0x0028, 0x006d, 0x0073, 0x0029 }},
+  {.len = 3, .to = { 0x0028, 0x0074, 0x0029 }},
+  {.len = 4, .to = { 0x0028, 0x0062, 0x0073, 0x0029 }},
+  {.len = 3, .to = { 0x0028, 0x0062, 0x0029 }},
+  {.len = 4, .to = { 0x0028, 0x0074, 0x0062, 0x0029 }},
+  {.len = 4, .to = { 0x0028, 0x0076, 0x0070, 0x0029 }},
+  {.len = 4, .to = { 0x0028, 0x0064, 0x0073, 0x0029 }},
+
+  {.len = 4, .to = { 0x0028, 0x0061, 0x0067, 0x0029 }},
+  {.len = 4, .to = { 0x0028, 0x0065, 0x0067, 0x0029 }},
+  {.len = 4, .to = { 0x0028, 0x0076, 0x006f, 0x0029 }},
+  {.len = 4, .to = { 0x0028, 0x0066, 0x006c, 0x0029 }},
+  {.len = 3, .to = { 0x0028, 0x006b, 0x0065 }},
+  {.len = 2, .to = { 0x0079, 0x0029 }},
+  {.len = 3, .to = { 0x0028, 0x0073, 0x0061 }},
+  {.len = 2, .to = { 0x0078, 0x0029 }},
+
+  {.len = 3, .to = { 0x0028, 0x0073, 0x0079 }},
+  {.len = 2, .to = { 0x006e, 0x0029 }},
+  {.len = 3, .to = { 0x0028, 0x006f, 0x0072 }},
+  {.len = 2, .to = { 0x0067, 0x0029 }},
+  {.len = 3, .to = { 0x0028, 0x0070, 0x0065 }},
+  {.len = 2, .to = { 0x0072, 0x0029 }},
+};
+
+
+int
+b24_char_conv (int set, unsigned char c1, unsigned char c2, uint32_t *out)
+{
+  int len;
+  uint32_t ch;
+
+  if (set > DRCS0_set && set <= DRCS15_set)
+    set = DRCS0_set;
+
+  switch (set)
+    {
+      case ASCII_set:
+      case ASCII_x_set:
+      case PROP_ASCII_set:
+        if (c1 == 0x7e)
+          *out = 0x203e;
+        else if (c1 == 0x5c)
+          *out = 0xa5;
+        else
+          *out = c1;
+        return 1;
+
+      case KATAKANA_set:
+      case PROP_KATA_set:
+        if (c1 <= 0x76)
+          *out = 0x3080 + c1;
+        else
+          *out = kata_punc[c1 - 0x77];
+        return 1;
+
+      case HIRAGANA_set:
+      case PROP_HIRA_set:
+        if (c1 <= 0x73)
+          *out = 0x3020 + c1;
+        else if (c1 == 0x77 || c1 == 0x78)
+          *out = hira_punc[c1 - 0x77];
+        else if (c1 >= 0x79)
+          *out = kata_punc[c1 - 0x77];
+        else
+          return 0;
+        return 1;
+
+      case JIS0201_KATA_set:
+        if (c1 > 0x5f)
+          return 0;
+        *out = 0xff40 + c1;
+        return 1;
+
+      case EXTRA_SYMBOLS_set:
+        if (c1 == 0x75 || (c1 == 0x76 && (c2 - 0x20) <=43))
+          {
+            *out = extra_kanji[(c1 - 0x75) * 96 + (c2 - 0x20)];
+            return 1;
+          }
+        /* fall through */
+      case KANJI_set:
+        /* check extra symbols */
+        if (c1 >= 0x7a && c1 <= 0x7e)
+          {
+            const struct mchar_entry *entry;
+
+            c1 -= 0x20;
+            c2 -= 0x20;
+            if (c1 == 0x5c && c2 >= 0x1a && c2 <= 0x1f)
+              entry = &ext_sym_smallk[c2 - 0x1a];
+            else if (c1 == 0x5c && c2 >= 0x38 && c2 <= 0x55)
+              entry = &ext_sym_music[c2 - 0x38];
+            else
+              entry = NULL;
+
+            if (entry)
+              {
+                int i;
+
+                for (i = 0; i < entry->len; i++)
+                  out[i] = entry->to[i];
+                return i;
+              }
+
+            *out = extra_symbols[c1 - 0x5a][c2];
+            if (*out == 0)
+              return 0;
+
+            return 1;
+          }
+        if (set == EXTRA_SYMBOLS_set)
+          return 0;
+
+        /* non-JISX0213 modification. (combining chars) */
+        if (c1 == 0x22 && c2 == 0x7e)
+          {
+            *out = 0x20dd;
+            return 1;
+          }
+        else if (c1 == 0x21 && c2 >= 0x2d && c2 <= 0x32)
+          {
+            *out = nonspacing_symbol[c2 - 0x2d];
+            return 1;
+          }
+        /* fall through */
+      case JISX0213_1_set:
+      case JISX0213_2_set:
+        len = 1;
+        ch = jisx0213_to_ucs4(c1 | (set == JISX0213_2_set ? 0x0200 : 0x0100),
+                              c2);
+        if (ch == 0)
+          return 0;
+        if (ch < 0x80)
+          {
+            len = 2;
+            out[0] = __jisx0213_to_ucs_combining[ch - 1][0];
+            out[1] = __jisx0213_to_ucs_combining[ch - 1][1];
+          }
+        else
+          *out = ch;
+        return len;
+
+      case MOSAIC_A_set:
+      case MOSAIC_B_set:
+      case MOSAIC_C_set:
+      case MOSAIC_D_set:
+      case DRCS0_set:
+      case MACRO_set:
+        *out = __UNKNOWN_10646_CHAR;
+        return 1;
+
+      default:
+        break;
+    }
+
+  return 0;
+}
+
+#define BODY \
+  {									      \
+    uint32_t ch = *inptr;						      \
+									      \
+    if (ch == 0)							      \
+      {									      \
+	st.mode = NORMAL;						      \
+        ++ inptr;							      \
+        continue;							      \
+      }									      \
+    if (__glibc_unlikely (st.mode == CTRL_SEQ))				      \
+      {									      \
+	if (st.skip)							      \
+	  {								      \
+	    --st.skip;							      \
+	    if (st.skip == 0)						      \
+	      st.mode = NORMAL;						      \
+	    if (ch < 0x40 || ch > 0x7f)					      \
+	      STANDARD_FROM_LOOP_ERR_HANDLER (1);			      \
+	  }								      \
+	else if (st.prev == MACRO_CTRL)					      \
+	  {								      \
+	    if (ch == MACRO_CTRL)					      \
+	      st.skip = 1;						      \
+	    else if (ch == LF || ch == CR) {				      \
+	      st = def_state_from;					      \
+	      put32(outptr, ch);					      \
+	      outptr += 4;						      \
+	    }								      \
+	  }								      \
+	else if (st.prev == CSI && (ch == 0x5b || ch == 0x5c || ch == 0x6f))  \
+	  st.mode = NORMAL;						      \
+	else if (st.prev == TIME || st.prev == CSI)			      \
+	  {								      \
+	    if (ch == 0x20 || (st.prev == TIME && ch == 0x28))		      \
+	      st.skip = 1;						      \
+	    else if (!((st.prev == TIME && ch == 0x29)			      \
+		       || ch == 0x3b || (ch >= 0x30 && ch <= 0x39)))	      \
+	      {								      \
+		st.mode = NORMAL;					      \
+		STANDARD_FROM_LOOP_ERR_HANDLER (1);			      \
+	      }								      \
+	  }								      \
+	else if (st.prev == COL || st.prev == CDC)			      \
+	  {								      \
+	    if (ch == 0x20)						      \
+	      st.skip = 1;						      \
+	    else							      \
+	      {								      \
+		st.mode = NORMAL;					      \
+		if (ch < 0x40 || ch > 0x7f)				      \
+		  STANDARD_FROM_LOOP_ERR_HANDLER (1);			      \
+	      }								      \
+	  }								      \
+	++ inptr;							      \
+	continue;							      \
+      }									      \
+									      \
+    if (__glibc_unlikely (ch == LF))					      \
+      {									      \
+	st = def_state_from;						      \
+	put32 (outptr, ch);						      \
+	outptr += 4;							      \
+	++ inptr;							      \
+	continue;							      \
+      }									      \
+									      \
+    if (__glibc_unlikely (st.mode == ESCAPE))				      \
+      {									      \
+	if (ch == LS2 || ch == LS3)					      \
+	  {								      \
+	    st.mode = NORMAL;						      \
+	    st.gl = (ch == LS2) ? 2 : 3;				      \
+	    st.ss = 0;							      \
+	  }								      \
+	else if (ch == LS1R || ch == LS2R || ch == LS3R)		      \
+	  {								      \
+	    st.mode = NORMAL;						      \
+	    st.gr = (ch == LS1R) ? 1 : (ch == LS2R) ? 2 : 3;		      \
+	    st.ss = 0;							      \
+	  }								      \
+	else if (ch == 0x24) 						      \
+	  st.mode = DESIGNATE_MB;					      \
+	else if (ch >= 0x28 && ch <= 0x2b)				      \
+	  {								      \
+	    st.mode = G_SEL_1B;						      \
+	    st.gidx = ch - 0x28;					      \
+	  }								      \
+	else								      \
+	  {								      \
+	    st.mode = NORMAL;						      \
+	    STANDARD_FROM_LOOP_ERR_HANDLER (1);				      \
+	  }								      \
+	++ inptr;							      \
+	continue;							      \
+      }									      \
+									      \
+    if (__glibc_unlikely (st.mode == DESIGNATE_MB))			      \
+      {									      \
+	if (ch == KANJI_set || ch == JISX0213_1_set || ch == JISX0213_2_set   \
+	    || ch == EXTRA_SYMBOLS_set)					      \
+	  {								      \
+	    st.mode = NORMAL;						      \
+	    st.g[0] = ch;						      \
+	  }								      \
+	else if (ch >= 0x28 && ch <= 0x2b)				      \
+	  {								      \
+	  st.mode = G_SEL_MB;						      \
+	  st.gidx = ch - 0x28;						      \
+	  }								      \
+	else								      \
+	  {								      \
+	    st.mode = NORMAL;						      \
+	    STANDARD_FROM_LOOP_ERR_HANDLER (1);				      \
+	  }								      \
+	++ inptr;							      \
+	continue;							      \
+      }									      \
+									      \
+    if (__glibc_unlikely (st.mode == G_SEL_1B))				      \
+      {									      \
+	if (ch == ASCII_set || ch == ASCII_x_set || ch == JIS0201_KATA_set    \
+	    || (ch >= 0x30 && ch <= 0x38))				      \
+	  {								      \
+	    st.g[st.gidx] = ch;						      \
+	    st.mode = NORMAL;						      \
+	  }								      \
+	else if (ch == 0x20)						      \
+	    st.mode = DRCS_SEL_1B;					      \
+	else								      \
+	  {								      \
+	    st.mode = NORMAL;						      \
+	    STANDARD_FROM_LOOP_ERR_HANDLER (1);				      \
+	  }								      \
+	++ inptr;							      \
+	continue;							      \
+      }									      \
+									      \
+    if (__glibc_unlikely (st.mode == G_SEL_MB))				      \
+      {									      \
+	if (ch == KANJI_set || ch == JISX0213_1_set || ch == JISX0213_2_set   \
+	    || ch == EXTRA_SYMBOLS_set)					      \
+	  {								      \
+	    st.g[st.gidx] = ch;						      \
+	    st.mode = NORMAL;						      \
+	  }								      \
+	else if (ch == 0x20)						      \
+	  st.mode = DRCS_SEL_MB;					      \
+	else								      \
+	  {								      \
+	    st.mode = NORMAL;						      \
+	    STANDARD_FROM_LOOP_ERR_HANDLER (1);				      \
+	  }								      \
+	++ inptr;							      \
+	continue;							      \
+      }									      \
+									      \
+    if (__glibc_unlikely (st.mode == DRCS_SEL_1B))			      \
+      {									      \
+	st.mode = NORMAL;						      \
+	if (ch == 0x70 || (ch >= 0x41 && ch <= 0x4f))			      \
+	  st.g[st.gidx] = ch | 0x80;					      \
+	else								      \
+	  STANDARD_FROM_LOOP_ERR_HANDLER (1);				      \
+	++ inptr;							      \
+	continue;							      \
+      }									      \
+									      \
+    if (__glibc_unlikely (st.mode == DRCS_SEL_MB))			      \
+      {									      \
+	st.mode = NORMAL;						      \
+	if (ch == 0x40)							      \
+	  st.g[st.gidx] = ch | 0x80;					      \
+	else								      \
+	  STANDARD_FROM_LOOP_ERR_HANDLER (1);				      \
+	++ inptr;							      \
+	continue;							      \
+      }									      \
+									      \
+    if (st.mode == MB_2ND)						      \
+      {									      \
+	int gidx;							      \
+	int i, len;							      \
+	uint32_t out[MAX_NEEDED_OUTPUT];				      \
+									      \
+	gidx = (st.ss) ? st.ss : (ch & 0x80) ? st.gr : st.gl;		      \
+	st.mode = NORMAL;						      \
+	st.ss = 0;							      \
+	if (__glibc_unlikely (!(ch & 0x60))) /* C0/C1 */		      \
+	  STANDARD_FROM_LOOP_ERR_HANDLER (1);				      \
+	if (__glibc_unlikely (st.ss > 0 && (ch & 0x80)))		      \
+	  STANDARD_FROM_LOOP_ERR_HANDLER (1);				      \
+	if (__glibc_unlikely ((st.prev & 0x80) != (ch & 0x80)))		      \
+	  STANDARD_FROM_LOOP_ERR_HANDLER (1);				      \
+	len = b24_char_conv(st.g[gidx], (st.prev & 0x7f), (ch & 0x7f), out);  \
+	if (len == 0)							      \
+	  STANDARD_FROM_LOOP_ERR_HANDLER (1);				      \
+	if (outptr + 4 * len > outend)					      \
+	  {								      \
+	    result = __GCONV_FULL_OUTPUT;				      \
+	    break;							      \
+	  }								      \
+	for (i = 0; i < len; i++)					      \
+	  {								      \
+	    if (irreversible						      \
+		&& __builtin_expect (out[i] == __UNKNOWN_10646_CHAR, 0))      \
+	      ++ *irreversible;						      \
+	    put32 (outptr, out[i]);					      \
+	    outptr += 4;						      \
+	  }								      \
+	++ inptr;							      \
+	continue;							      \
+      }									      \
+									      \
+    if (st.mode == NORMAL)						      \
+      {									      \
+	int gidx, set;							      \
+									      \
+	if (__glibc_unlikely (!(ch & 0x60))) /* C0/C1 */		      \
+	  {								      \
+	    if (ch == ESC)						      \
+	      st.mode = ESCAPE;						      \
+	    else if (ch == SS2)						      \
+	      st.ss = 2;						      \
+	    else if (ch == SS3)						      \
+	      st.ss = 3;						      \
+	    else if (ch == LS0)						      \
+	      {								      \
+		st.ss = 0;						      \
+		st.gl = 0;						      \
+	      }								      \
+	    else if (ch == LS1)						      \
+	      {								      \
+		st.ss = 0;						      \
+		st.gl = 1;						      \
+	      }								      \
+	    else if (ch == BEL || ch == BS || ch == CR)			      \
+	      {								      \
+		st.ss = 0;						      \
+		put32 (outptr, ch);					      \
+		outptr += 4;						      \
+	      }								      \
+	    else if (ch == 0x09 || ch == 0x0b || ch == 0x0c || ch == 0x18     \
+		     || ch == 0x1e || ch == 0x1f || (ch >= 0x80 && ch <= 0x8a)\
+		     || ch == 0x99 || ch == 0x9a)			      \
+	      {								      \
+		/* do nothing. just skip */				      \
+	      }								      \
+	    else if (ch == 0x16 || ch == 0x8b || ch == 0x91 || ch == 0x93     \
+		     || ch == 0x94 || ch == 0x97 || ch == 0x98)		      \
+	      {								      \
+		st.mode = CTRL_SEQ;					      \
+		st.skip = 1;						      \
+	      }								      \
+	    else if (ch == 0x1c)					      \
+	      {								      \
+		st.mode = CTRL_SEQ;					      \
+		st.skip = 2;						      \
+	      }								      \
+	    else if (ch == COL || ch == CDC || ch == MACRO_CTRL		      \
+		     || ch == CSI ||ch == TIME)				      \
+	      {								      \
+		st.mode = CTRL_SEQ;					      \
+		st.skip = 0;						      \
+		st.prev = ch;						      \
+	      }								      \
+	    else							      \
+	      STANDARD_FROM_LOOP_ERR_HANDLER (1);			      \
+									      \
+	    ++ inptr;							      \
+	    continue;							      \
+	  }								      \
+									      \
+	if (__glibc_unlikely ((ch & 0x7f) == 0x20 || ch == 0x7f))	      \
+	  {								      \
+	    st.ss = 0;							      \
+	    put32 (outptr, ch);						      \
+	    outptr += 4;						      \
+	    ++ inptr;							      \
+	    continue;							      \
+	  }								      \
+	if (__glibc_unlikely (ch == 0xff))				      \
+	  {								      \
+	    st.ss = 0;							      \
+	    put32 (outptr, __UNKNOWN_10646_CHAR);			      \
+	    if (irreversible)						      \
+	      ++ *irreversible;						      \
+	    outptr += 4;						      \
+	    ++ inptr;							      \
+	    continue;							      \
+	  }								      \
+									      \
+	if (__glibc_unlikely (st.ss > 0 && (ch & 0x80)))		      \
+	  STANDARD_FROM_LOOP_ERR_HANDLER (1);				      \
+									      \
+	gidx = (st.ss) ? st.ss : (ch & 0x80) ? st.gr : st.gl;		      \
+	set = st.g[gidx];						      \
+	if (set == DRCS0_set || set == KANJI_set || set == JISX0213_1_set     \
+	    || set == JISX0213_2_set || set == EXTRA_SYMBOLS_set)	      \
+	  {								      \
+	    st.mode = MB_2ND;						      \
+	    st.prev = ch;						      \
+	  }								      \
+	else								      \
+	  {								      \
+	    uint32_t out;						      \
+									      \
+	    st.ss = 0;							      \
+	    if (b24_char_conv(set, (ch & 0x7f), 0, &out) == 0)		      \
+	      STANDARD_FROM_LOOP_ERR_HANDLER (1);			      \
+	    if (out == __UNKNOWN_10646_CHAR && irreversible)		      \
+	      ++ *irreversible;						      \
+	    put32 (outptr, out);					      \
+	    outptr += 4;						      \
+	  }								      \
+	++ inptr;							      \
+	continue;							      \
+      }									      \
+  }
+#include <iconv/loop.c>
+
+
+/* Next, define the other direction, from UCS-4 to ARIB-STD-B24.  */
+
+/* As MIN_INPUT is 4 (> 1), .cnt & .value must be put aside for skeleton.c.
+ * To reduce the size of the state and fit into mbstate_t,
+ * put constraints on G-set that can be locking-shift'ed to GL/GR.
+ * GL is limited to invoke G0/G1, GR to G2/G3. i.e. LS2,LS3, LS1R are not used.
+ * G0 is fixed to KANJI, G1 to ASCII.
+ * G2 can be either HIRAGANA/JISX0213_{1,2},
+ * G3 can be either KATAKANA/JISX0201_KATA/EXTRA_SYMBOLS.
+ * JISX0213_{1,2},EXTRA_SYMBOLS are invoked into GR by SS2/SS3
+ * if it is not already invoked to GR.
+ * plus, charset is referenced by an index instead of its designation char.
+ */
+enum gset_idx {
+  KANJI_idx,
+  ASCII_idx,
+  HIRAGANA_idx,
+  KATAKANA_idx,
+  JIS0201_KATA_idx,
+  JISX0213_1_idx,
+  JISX0213_2_idx,
+  EXTRA_SYMBOLS_idx,
+};
+
+struct state_to {
+  /* __count */
+  uint32_t cnt:3;	/* for use in skelton.c.*/
+  uint32_t gl:1;	/* 0: GL<-G0, 1: GL<-G1 */
+  uint32_t gr:1;	/* 0: GR<-G2, 1: GR<-G3 */
+  uint32_t g2:3;	/* Gset idx which is designated to G0 */
+  uint32_t g3:3;	/* same to G1 */
+  uint32_t prev:21;	/* previously input, combining char (for JISX0213) */
+
+  /* __value */
+  uint32_t __value;	/* used in skeleton.c */
+} __attribute__((packed));
+
+static const struct state_to def_state_to = {
+  .cnt = 0,
+  .gl = 0,
+  .gr = 0,
+  .g2 = HIRAGANA_idx,
+  .g3 = KATAKANA_idx,
+  .prev = 0,
+  .__value = 0
+};
+
+#define EXTRA_LOOP_DECLS	, __mbstate_t *statep
+#define EXTRA_LOOP_ARGS		, statep
+
+#define INIT_PARAMS \
+  struct state_to st = *((struct state_to *) statep);			      \
+  if (st.g2 == 0)							      \
+    st = def_state_to;							      \
+
+#define UPDATE_PARAMS		*statep = *((__mbstate_t * )&st)
+#define REINIT_PARAMS \
+  do									      \
+    {									      \
+      st = *((struct state_to *) statep);				      \
+      if (st.g2 == 0)							      \
+        st = def_state_to;						      \
+    }									      \
+  while (0)
+
+#define LOOP_NEED_FLAGS
+
+#define MIN_NEEDED_INPUT	TO_LOOP_MIN_NEEDED_FROM
+#define MAX_NEEDED_INPUT	TO_LOOP_MAX_NEEDED_FROM
+#define MIN_NEEDED_OUTPUT	TO_LOOP_MIN_NEEDED_TO
+#define MAX_NEEDED_OUTPUT	TO_LOOP_MAX_NEEDED_TO
+#define LOOPFCT			TO_LOOP
+
+/* tables and functions used in BODY */
+
+/* Composition tables for each of the relevant combining characters.  */
+static const struct
+{
+  uint16_t base;
+  uint16_t composed;
+} comp_table_data[] =
+{
+#define COMP_TABLE_IDX_02E5 0
+#define COMP_TABLE_LEN_02E5 1
+  { 0x2b64, 0x2b65 }, /* 0x12B65 = 0x12B64 U+02E5 */
+#define COMP_TABLE_IDX_02E9 (COMP_TABLE_IDX_02E5 + COMP_TABLE_LEN_02E5)
+#define COMP_TABLE_LEN_02E9 1
+  { 0x2b60, 0x2b66 }, /* 0x12B66 = 0x12B60 U+02E9 */
+#define COMP_TABLE_IDX_0300 (COMP_TABLE_IDX_02E9 + COMP_TABLE_LEN_02E9)
+#define COMP_TABLE_LEN_0300 5
+  { 0x295c, 0x2b44 }, /* 0x12B44 = 0x1295C U+0300 */
+  { 0x2b38, 0x2b48 }, /* 0x12B48 = 0x12B38 U+0300 */
+  { 0x2b37, 0x2b4a }, /* 0x12B4A = 0x12B37 U+0300 */
+  { 0x2b30, 0x2b4c }, /* 0x12B4C = 0x12B30 U+0300 */
+  { 0x2b43, 0x2b4e }, /* 0x12B4E = 0x12B43 U+0300 */
+#define COMP_TABLE_IDX_0301 (COMP_TABLE_IDX_0300 + COMP_TABLE_LEN_0300)
+#define COMP_TABLE_LEN_0301 4
+  { 0x2b38, 0x2b49 }, /* 0x12B49 = 0x12B38 U+0301 */
+  { 0x2b37, 0x2b4b }, /* 0x12B4B = 0x12B37 U+0301 */
+  { 0x2b30, 0x2b4d }, /* 0x12B4D = 0x12B30 U+0301 */
+  { 0x2b43, 0x2b4f }, /* 0x12B4F = 0x12B43 U+0301 */
+#define COMP_TABLE_IDX_309A (COMP_TABLE_IDX_0301 + COMP_TABLE_LEN_0301)
+#define COMP_TABLE_LEN_309A 14
+  { 0x242b, 0x2477 }, /* 0x12477 = 0x1242B U+309A */
+  { 0x242d, 0x2478 }, /* 0x12478 = 0x1242D U+309A */
+  { 0x242f, 0x2479 }, /* 0x12479 = 0x1242F U+309A */
+  { 0x2431, 0x247a }, /* 0x1247A = 0x12431 U+309A */
+  { 0x2433, 0x247b }, /* 0x1247B = 0x12433 U+309A */
+  { 0x252b, 0x2577 }, /* 0x12577 = 0x1252B U+309A */
+  { 0x252d, 0x2578 }, /* 0x12578 = 0x1252D U+309A */
+  { 0x252f, 0x2579 }, /* 0x12579 = 0x1252F U+309A */
+  { 0x2531, 0x257a }, /* 0x1257A = 0x12531 U+309A */
+  { 0x2533, 0x257b }, /* 0x1257B = 0x12533 U+309A */
+  { 0x253b, 0x257c }, /* 0x1257C = 0x1253B U+309A */
+  { 0x2544, 0x257d }, /* 0x1257D = 0x12544 U+309A */
+  { 0x2548, 0x257e }, /* 0x1257E = 0x12548 U+309A */
+  { 0x2675, 0x2678 }, /* 0x12678 = 0x12675 U+309A */
+};
+
+static const uint32_t ucs4_to_nonsp_kanji[][2] = {
+  {0x20dd, 0x227e}, {0x0300, 0x212e}, {0x0301, 0x212d}, {0x0302, 0x2130},
+  {0x0304, 0x2131}, {0x0308, 0x212f}, {0x0332, 0x2132}
+};
+
+static const uint32_t ucs4_to_extsym[][2] = {
+  {0x00b2, 0x7c55}, {0x00b3, 0x7c56}, {0x00bc, 0x7d54}, {0x00bd, 0x7d50},
+  {0x00be, 0x7d55}, {0x0fd6, 0x7b2d}, {0x203c, 0x7d6e}, {0x2049, 0x7d6f},
+  {0x2113, 0x7d47}, {0x2116, 0x7d2d}, {0x2121, 0x7d2e}, {0x213b, 0x7c7b},
+  {0x2150, 0x7d5c}, {0x2151, 0x7d5e}, {0x2152, 0x7d5f}, {0x2153, 0x7d52},
+  {0x2154, 0x7d53}, {0x2155, 0x7d56}, {0x2156, 0x7d57}, {0x2157, 0x7d58},
+  {0x2158, 0x7d59}, {0x2159, 0x7d5a}, {0x215a, 0x7d5b}, {0x215b, 0x7d5d},
+  {0x2160, 0x7e21}, {0x2161, 0x7e22}, {0x2162, 0x7e23}, {0x2163, 0x7e24},
+  {0x2164, 0x7e25}, {0x2165, 0x7e26}, {0x2166, 0x7e27}, {0x2167, 0x7e28},
+  {0x2168, 0x7e29}, {0x2169, 0x7e2a}, {0x216a, 0x7e2b}, {0x216b, 0x7e2c},
+  {0x2189, 0x7d51}, {0x2460, 0x7e61}, {0x2461, 0x7e62}, {0x2462, 0x7e63},
+  {0x2463, 0x7e64}, {0x2464, 0x7e65}, {0x2465, 0x7e66}, {0x2466, 0x7e67},
+  {0x2467, 0x7e68}, {0x2468, 0x7e69}, {0x2469, 0x7e6a}, {0x246a, 0x7e6b},
+  {0x246b, 0x7e6c}, {0x246c, 0x7e6d}, {0x246d, 0x7e6e}, {0x246e, 0x7e6f},
+  {0x246f, 0x7e70}, {0x2470, 0x7e2d}, {0x2471, 0x7e2e}, {0x2472, 0x7e2f},
+  {0x2473, 0x7e30}, {0x2474, 0x7e31}, {0x2475, 0x7e32}, {0x2476, 0x7e33},
+  {0x2477, 0x7e34}, {0x2478, 0x7e35}, {0x2479, 0x7e36}, {0x247a, 0x7e37},
+  {0x247b, 0x7e38}, {0x247c, 0x7e39}, {0x247d, 0x7e3a}, {0x247e, 0x7e3b},
+  {0x247f, 0x7e3c}, {0x2488, 0x7c31}, {0x2489, 0x7c32}, {0x248a, 0x7c33},
+  {0x248b, 0x7c34}, {0x248c, 0x7c35}, {0x248d, 0x7c36}, {0x248e, 0x7c37},
+  {0x248f, 0x7c38}, {0x2490, 0x7c39}, {0x2491, 0x7a4d}, {0x2492, 0x7a4e},
+  {0x2493, 0x7a4f}, {0x24b9, 0x7b3e}, {0x24c8, 0x7b3f}, {0x24eb, 0x7e7b},
+  {0x24ec, 0x7e7c}, {0x25b6, 0x7c50}, {0x25c0, 0x7c51}, {0x2600, 0x7d60},
+  {0x2601, 0x7d61}, {0x2602, 0x7d62}, {0x2603, 0x7d73}, {0x260e, 0x7b4b},
+  {0x260e, 0x7d7b}, {0x2613, 0x7b26}, {0x2614, 0x7d71}, {0x2616, 0x7d64},
+  {0x2617, 0x7d65}, {0x2660, 0x7d6b}, {0x2663, 0x7d6a}, {0x2665, 0x7d69},
+  {0x2666, 0x7d68}, {0x2668, 0x7b31}, {0x266c, 0x7d7a}, {0x2693, 0x7b35},
+  {0x269e, 0x7d78}, {0x269f, 0x7d79}, {0x26a1, 0x7d75}, {0x26be, 0x7d30},
+  {0x26bf, 0x7a67}, {0x26c4, 0x7d63}, {0x26c5, 0x7d70}, {0x26c6, 0x7d72},
+  {0x26c7, 0x7d74}, {0x26c8, 0x7d76}, {0x26c9, 0x7d66}, {0x26ca, 0x7d67},
+  {0x26cb, 0x7d6c}, {0x26cc, 0x7a21}, {0x26cd, 0x7a22}, {0x26cf, 0x7a24},
+  {0x26d0, 0x7a25}, {0x26d1, 0x7a26}, {0x26d2, 0x7a28}, {0x26d3, 0x7a2a},
+  {0x26d4, 0x7a2b}, {0x26d5, 0x7a29}, {0x26d6, 0x7a34}, {0x26d7, 0x7a35},
+  {0x26d8, 0x7a36}, {0x26d9, 0x7a37}, {0x26da, 0x7a38}, {0x26db, 0x7a39},
+  {0x26dc, 0x7a3a}, {0x26dd, 0x7a3b}, {0x26de, 0x7a3c}, {0x26df, 0x7a3d},
+  {0x26e0, 0x7a3e}, {0x26e1, 0x7a3f}, {0x26e3, 0x7b21}, {0x26e8, 0x7b29},
+  {0x26e9, 0x7b2c}, {0x26ea, 0x7b2e}, {0x26eb, 0x7b2f}, {0x26ec, 0x7b30},
+  {0x26ed, 0x7b32}, {0x26ee, 0x7b33}, {0x26ef, 0x7b34}, {0x26f0, 0x7b37},
+  {0x26f1, 0x7b38}, {0x26f2, 0x7b39}, {0x26f3, 0x7b3a}, {0x26f4, 0x7b3b},
+  {0x26f5, 0x7b3c}, {0x26f6, 0x7b40}, {0x26f7, 0x7b46}, {0x26f8, 0x7b47},
+  {0x26f9, 0x7b48}, {0x26fa, 0x7b49}, {0x26fb, 0x7b4c}, {0x26fc, 0x7b4d},
+  {0x26fd, 0x7b4e}, {0x26fe, 0x7b4f}, {0x26ff, 0x7b51}, {0x2762, 0x7a23},
+  {0x2776, 0x7e71}, {0x2777, 0x7e72}, {0x2778, 0x7e73}, {0x2779, 0x7e74},
+  {0x277a, 0x7e75}, {0x277b, 0x7e76}, {0x277c, 0x7e77}, {0x277d, 0x7e78},
+  {0x277e, 0x7e79}, {0x277f, 0x7e7a}, {0x27a1, 0x7c21}, {0x27d0, 0x7c54},
+  {0x2a00, 0x7d6d}, {0x2b05, 0x7c22}, {0x2b06, 0x7c23}, {0x2b07, 0x7c24},
+  {0x2b1b, 0x7a60}, {0x2b24, 0x7a61}, {0x2b2e, 0x7c26}, {0x2b2f, 0x7c25},
+  {0x2b55, 0x7a40}, {0x2b56, 0x7b22}, {0x2b57, 0x7b23}, {0x2b58, 0x7b24},
+  {0x2b59, 0x7b25}, {0x3012, 0x7b28}, {0x3016, 0x7c52}, {0x3017, 0x7c53},
+  {0x3036, 0x7d2f}, {0x322a, 0x7d21}, {0x322b, 0x7d22}, {0x322c, 0x7d23},
+  {0x322d, 0x7d24}, {0x322e, 0x7d25}, {0x322f, 0x7d26}, {0x3230, 0x7d27},
+  {0x3231, 0x7c4d}, {0x3232, 0x7c4c}, {0x3233, 0x7c4a}, {0x3236, 0x7c4b},
+  {0x3237, 0x7d28}, {0x3239, 0x7c4e}, {0x3244, 0x7c4f}, {0x3245, 0x7b2b},
+  {0x3246, 0x7b2a}, {0x3247, 0x7c78}, {0x3248, 0x7a41}, {0x3249, 0x7a42},
+  {0x324a, 0x7a43}, {0x324b, 0x7a44}, {0x324c, 0x7a45}, {0x324d, 0x7a46},
+  {0x324e, 0x7a47}, {0x324f, 0x7a48}, {0x3251, 0x7e3d}, {0x3252, 0x7e3e},
+  {0x3253, 0x7e3f}, {0x3254, 0x7e40}, {0x3255, 0x7e5b}, {0x3256, 0x7e5c},
+  {0x3257, 0x7e5d}, {0x3258, 0x7e5e}, {0x3259, 0x7e5f}, {0x325a, 0x7e60},
+  {0x325b, 0x7e7d}, {0x328b, 0x7b27}, {0x3299, 0x7a73}, {0x3371, 0x7d4d},
+  {0x337b, 0x7d2c}, {0x337c, 0x7d2b}, {0x337d, 0x7d2a}, {0x337e, 0x7d29},
+  {0x338f, 0x7d48}, {0x3390, 0x7d49}, {0x339d, 0x7c2d}, {0x339e, 0x7d4b},
+  {0x33a0, 0x7c2e}, {0x33a1, 0x7c2b}, {0x33a2, 0x7d4c}, {0x33a4, 0x7c2f},
+  {0x33a5, 0x7c2c}, {0x33ca, 0x7d4a}, {0x3402, 0x7521}, {0x351f, 0x752a},
+  {0x37e2, 0x7541}, {0x3eda, 0x7574}, {0x4093, 0x7578}, {0x4103, 0x757e},
+  {0x4264, 0x7626}, {0x4efd, 0x7523}, {0x4eff, 0x7524}, {0x4f9a, 0x7525},
+  {0x4fc9, 0x7526}, {0x509c, 0x7527}, {0x511e, 0x7528}, {0x5186, 0x7c2a},
+  {0x51bc, 0x7529}, {0x5307, 0x752b}, {0x5361, 0x752c}, {0x536c, 0x752d},
+  {0x544d, 0x7530}, {0x5496, 0x7531}, {0x549c, 0x7532}, {0x54a9, 0x7533},
+  {0x550e, 0x7534}, {0x554a, 0x7535}, {0x5672, 0x7536}, {0x56e4, 0x7537},
+  {0x5733, 0x7538}, {0x5734, 0x7539}, {0x5880, 0x753b}, {0x59e4, 0x753c},
+  {0x5a23, 0x753d}, {0x5a55, 0x753e}, {0x5bec, 0x753f}, {0x5e74, 0x7c27},
+  {0x5eac, 0x7542}, {0x5f34, 0x7543}, {0x5f45, 0x7544}, {0x5fb7, 0x7545},
+  {0x6017, 0x7546}, {0x6130, 0x7548}, {0x65e5, 0x7c29}, {0x6624, 0x7549},
+  {0x66c8, 0x754a}, {0x66d9, 0x754b}, {0x66fa, 0x754c}, {0x66fb, 0x754d},
+  {0x6708, 0x7c28}, {0x6852, 0x754e}, {0x6911, 0x7550}, {0x693b, 0x7551},
+  {0x6a45, 0x7552}, {0x6a91, 0x7553}, {0x6adb, 0x7554}, {0x6bf1, 0x7558},
+  {0x6ce0, 0x7559}, {0x6d2e, 0x755a}, {0x6dbf, 0x755c}, {0x6dca, 0x755d},
+  {0x6df8, 0x755e}, {0x6f5e, 0x7560}, {0x6ff9, 0x7561}, {0x7064, 0x7562},
+  {0x7147, 0x7565}, {0x71c1, 0x7566}, {0x7200, 0x7567}, {0x739f, 0x7568},
+  {0x73a8, 0x7569}, {0x73c9, 0x756a}, {0x73d6, 0x756b}, {0x741b, 0x756c},
+  {0x7421, 0x756d}, {0x7426, 0x756f}, {0x742a, 0x7570}, {0x742c, 0x7571},
+  {0x7439, 0x7572}, {0x744b, 0x7573}, {0x7575, 0x7575}, {0x7581, 0x7576},
+  {0x7772, 0x7577}, {0x78c8, 0x7579}, {0x78e0, 0x757a}, {0x7947, 0x757b},
+  {0x79ae, 0x757c}, {0x79da, 0x7622}, {0x7a1e, 0x7623}, {0x7b7f, 0x7624},
+  {0x7c31, 0x7625}, {0x7d8b, 0x7627}, {0x7fa1, 0x7628}, {0x8118, 0x7629},
+  {0x813a, 0x762a}, {0x82ae, 0x762c}, {0x845b, 0x762d}, {0x84dc, 0x762e},
+  {0x84ec, 0x762f}, {0x8559, 0x7630}, {0x85ce, 0x7631}, {0x8755, 0x7632},
+  {0x87ec, 0x7633}, {0x880b, 0x7634}, {0x88f5, 0x7635}, {0x89d2, 0x7636},
+  {0x8a79, 0x752e}, {0x8af6, 0x7637}, {0x8dce, 0x7638}, {0x8fbb, 0x7639},
+  {0x8ff6, 0x763a}, {0x90dd, 0x763b}, {0x9127, 0x763c}, {0x912d, 0x763d},
+  {0x91b2, 0x763e}, {0x9233, 0x763f}, {0x9288, 0x7640}, {0x9321, 0x7641},
+  {0x9348, 0x7642}, {0x9592, 0x7643}, {0x96de, 0x7644}, {0x9903, 0x7645},
+  {0x9940, 0x7646}, {0x9ad9, 0x7647}, {0x9bd6, 0x7648}, {0x9dd7, 0x7649},
+  {0x9eb4, 0x764a}, {0x9eb5, 0x764b}, {0x9fc4, 0x754f}, {0x9fc5, 0x7621},
+  {0x9fc6, 0x757d}, {0xfa10, 0x753a}, {0xfa11, 0x7540}, {0xfa45, 0x755b},
+  {0xfa46, 0x755f}, {0xfa4a, 0x756e}, {0xfa6b, 0x7547}, {0xfa6c, 0x7563},
+  {0xfa6d, 0x762b}, {0x1f100, 0x7c30}, {0x1f101, 0x7c40}, {0x1f102, 0x7c41},
+  {0x1f103, 0x7c42}, {0x1f104, 0x7c43}, {0x1f105, 0x7c44}, {0x1f106, 0x7c45},
+  {0x1f107, 0x7c46}, {0x1f108, 0x7c47}, {0x1f109, 0x7c48}, {0x1f10a, 0x7c49},
+  {0x1f110, 0x7e41}, {0x1f111, 0x7e42}, {0x1f112, 0x7e43}, {0x1f113, 0x7e44},
+  {0x1f114, 0x7e45}, {0x1f115, 0x7e46}, {0x1f116, 0x7e47}, {0x1f117, 0x7e48},
+  {0x1f118, 0x7e49}, {0x1f119, 0x7e4a}, {0x1f11a, 0x7e4b}, {0x1f11b, 0x7e4c},
+  {0x1f11c, 0x7e4d}, {0x1f11d, 0x7e4e}, {0x1f11e, 0x7e4f}, {0x1f11f, 0x7e50},
+  {0x1f120, 0x7e51}, {0x1f121, 0x7e52}, {0x1f122, 0x7e53}, {0x1f123, 0x7e54},
+  {0x1f124, 0x7e55}, {0x1f125, 0x7e56}, {0x1f126, 0x7e57}, {0x1f127, 0x7e58},
+  {0x1f128, 0x7e59}, {0x1f129, 0x7e5a}, {0x1f12a, 0x7d3a}, {0x1f12b, 0x7c77},
+  {0x1f12c, 0x7c76}, {0x1f12d, 0x7c57}, {0x1f131, 0x7a5e}, {0x1f13d, 0x7a5f},
+  {0x1f13f, 0x7a52}, {0x1f142, 0x7a59}, {0x1f146, 0x7a53}, {0x1f14a, 0x7a50},
+  {0x1f14b, 0x7a54}, {0x1f14c, 0x7a51}, {0x1f14d, 0x7a5d}, {0x1f14e, 0x7a72},
+  {0x1f157, 0x7b3d}, {0x1f15f, 0x7b41}, {0x1f179, 0x7b45}, {0x1f17b, 0x7b4a},
+  {0x1f17c, 0x7b50}, {0x1f17f, 0x7a30}, {0x1f18a, 0x7a31}, {0x1f18b, 0x7b42},
+  {0x1f18c, 0x7b44}, {0x1f18d, 0x7b43}, {0x1f190, 0x7c79}, {0x1f200, 0x7a74},
+  {0x1f210, 0x7a55}, {0x1f211, 0x7a56}, {0x1f212, 0x7a57}, {0x1f213, 0x7a58},
+  {0x1f214, 0x7a5a}, {0x1f214, 0x7d3e}, {0x1f215, 0x7a5b}, {0x1f216, 0x7a5c},
+  {0x1f217, 0x7a62}, {0x1f218, 0x7a63}, {0x1f219, 0x7a64}, {0x1f21a, 0x7a65},
+  {0x1f21b, 0x7a66}, {0x1f21c, 0x7a68}, {0x1f21d, 0x7a69}, {0x1f21e, 0x7a6a},
+  {0x1f21f, 0x7a6b}, {0x1f220, 0x7a6c}, {0x1f221, 0x7a6d}, {0x1f222, 0x7a6e},
+  {0x1f223, 0x7a6f}, {0x1f224, 0x7a70}, {0x1f225, 0x7a71}, {0x1f226, 0x7c7a},
+  {0x1f227, 0x7d3b}, {0x1f228, 0x7d3c}, {0x1f229, 0x7d3d}, {0x1f22a, 0x7d3f},
+  {0x1f22b, 0x7d40}, {0x1f22c, 0x7d41}, {0x1f22d, 0x7d42}, {0x1f22e, 0x7d43},
+  {0x1f22f, 0x7d44}, {0x1f230, 0x7d45}, {0x1f231, 0x7d46}, {0x1f240, 0x7d31},
+  {0x1f241, 0x7d32}, {0x1f242, 0x7d33}, {0x1f243, 0x7d34}, {0x1f244, 0x7d35},
+  {0x1f245, 0x7d36}, {0x1f246, 0x7d37}, {0x1f247, 0x7d38}, {0x1f248, 0x7d39},
+  {0x1f6e7, 0x7b36}, {0x20158, 0x7522}, {0x20bb7, 0x752f}, {0x233cc, 0x7555},
+  {0x233fe, 0x7556}, {0x235c4, 0x7557}, {0x242ee, 0x7564}
+};
+
+static int
+out_ascii (struct state_to *st, uint32_t ch,
+	   unsigned char **outptr, const unsigned char *outend)
+{
+  size_t esc_seqs;
+  unsigned char *op = *outptr;
+
+  esc_seqs = 0;
+  if ((ch & 0x60) && st->gl == 0 && ch != 0x20 && ch != 0x7f && ch != 0xa0)
+    ++ esc_seqs;
+
+  if (__glibc_unlikely (op + esc_seqs + 1 > outend))
+    return __GCONV_FULL_OUTPUT;
+
+  if (esc_seqs > 0)
+    {
+      *op++ = LS1;
+      st->gl = 1;
+    }
+  *op++ = ch & 0xff;
+  if (ch == 0 || ch == LF)
+    *st = def_state_to;
+  *outptr = op;
+  return __GCONV_OK;
+}
+
+static int
+out_jisx0201 (struct state_to *st, uint32_t ch,
+	      unsigned char **outptr, const unsigned char *outend)
+{
+  size_t esc_seqs;
+  unsigned char *op = *outptr;
+
+  esc_seqs = 0;
+  if (st->g3 != JIS0201_KATA_idx)
+    esc_seqs += 3;
+  if (st->gr == 0) /* need LS3R */
+    esc_seqs += 2;
+
+  if (__glibc_unlikely (op + esc_seqs + 1 > outend))
+    return __GCONV_FULL_OUTPUT;
+
+  if (esc_seqs >= 3)
+    {
+      /* need charset designation */
+      *op++ = ESC;
+      *op++ = '\x2b'; /* designate single byte charset to G3 */
+      *op++ = JIS0201_KATA_set;
+      st->g3 = JIS0201_KATA_idx;
+    }
+  if (esc_seqs == 2 || esc_seqs == 5)
+    {
+      *op++ = ESC;
+      *op++ = LS3R;
+      st->gr = 1;
+    }
+  *op++ = ch & 0xff;
+  *outptr = op;
+  return __GCONV_OK;
+}
+
+static int
+out_katakana (struct state_to *st, unsigned char ch,
+	      unsigned char **outptr, const unsigned char *outend)
+{
+  size_t esc_seqs;
+  unsigned char *op = *outptr;
+
+  esc_seqs = 0;
+  if (st->g3 != KATAKANA_idx)
+    esc_seqs += 3;
+  if (st->gr == 0) /* need LS3R */
+    esc_seqs += 2;
+
+  if (__glibc_unlikely (op + esc_seqs + 1 > outend))
+    return __GCONV_FULL_OUTPUT;
+
+  if (esc_seqs >= 3)
+    {
+      /* need charset designation */
+      *op++ = ESC;
+      *op++ = '\x2b'; /* designate single byte charset to G3 */
+      *op++ = KATAKANA_set;
+      st->g3 = KATAKANA_idx;
+    }
+  if (esc_seqs == 2 || esc_seqs == 5)
+    {
+      *op++ = ESC;
+      *op++ = LS3R;
+      st->gr = 1;
+    }
+  *op++ = ch | 0x80;
+  *outptr = op;
+  return __GCONV_OK;
+}
+
+static int
+out_hiragana (struct state_to *st, unsigned char ch,
+	      unsigned char **outptr, const unsigned char *outend)
+{
+  size_t esc_seqs;
+  unsigned char *op = *outptr;
+
+  esc_seqs = 0;
+  if (st->g2 != HIRAGANA_idx)
+    esc_seqs += 3;
+  if (st->gr == 1) /* need LS2R */
+    esc_seqs += 2;
+
+  if (__glibc_unlikely (op + esc_seqs + 1 > outend))
+    return __GCONV_FULL_OUTPUT;
+
+  if (esc_seqs >= 3)
+    {
+      /* need charset designation */
+      *op++ = ESC;
+      *op++ = '\x2a'; /* designate single byte charset to G2 */
+      *op++ = HIRAGANA_set;
+      st->g2 = HIRAGANA_idx;
+    }
+  if (esc_seqs == 2 || esc_seqs == 5)
+    {
+      *op++ = ESC;
+      *op++ = LS2R;
+      st->gr = 0;
+    }
+  *op++ = ch | 0x80;
+  *outptr = op;
+  return __GCONV_OK;
+}
+
+static int
+is_kana_punc (uint32_t ch)
+{
+  int i;
+  size_t len;
+
+  len = NELEMS (hira_punc);
+  for (i = 0; i < len; i++)
+    if (ch == hira_punc[i])
+      return i;
+
+  len = NELEMS (kata_punc);
+  for (i = 0; i < len; i++)
+    if (ch == kata_punc[i])
+      return i + NELEMS (hira_punc);
+  return -1;
+}
+
+static int
+out_kana_punc (struct state_to *st, int idx,
+	       unsigned char **outptr, const unsigned char *outend)
+{
+  size_t len = NELEMS (hira_punc);
+
+  if (idx < len)
+    return out_hiragana (st, 0x77 + idx, outptr, outend);
+  idx -= len;
+  if (idx >= 2)
+    {
+      /* common punc. symbols shared by katakana/hiragana */
+      /* guess which is used currently */
+      if (st->gr == 0 && st->g2 == HIRAGANA_idx)
+	return out_hiragana (st, 0x77 + idx, outptr, outend);
+      else if (st->gr == 1 && st->g3 == KATAKANA_idx)
+	return out_katakana (st, 0x77 + idx, outptr, outend);
+      else if (st->g2 == HIRAGANA_idx && st->g3 != KATAKANA_idx)
+	return out_hiragana (st, 0x77 + idx, outptr, outend);
+      /* fall through */
+    }
+  return out_katakana (st, 0x77 + idx, outptr, outend);
+}
+
+static int
+out_kanji (struct state_to *st, uint32_t ch,
+	   unsigned char **outptr, const unsigned char *outend)
+{
+  size_t esc_seqs;
+  unsigned char *op = *outptr;
+
+  esc_seqs = 0;
+  if (st->gl)
+    ++ esc_seqs;
+
+  if (__glibc_unlikely (op + esc_seqs + 2 > outend))
+    return __GCONV_FULL_OUTPUT;
+
+  if (st->gl)
+    {
+      *op++ = LS0;
+      st->gl = 0;
+    }
+  *op++ = (ch >> 8) & 0x7f;
+  *op++ = ch & 0x7f;
+  *outptr = op;
+  return __GCONV_OK;
+}
+
+/* convert JISX0213_{1,2} to ARIB-STD-B24 */
+/* assert(set_idx == JISX0213_1_idx || set_idx == JISX0213_2_idx); */
+static int
+out_jisx0213 (struct state_to *st, uint32_t ch, int set_idx,
+	      unsigned char **outptr, const unsigned char *outend)
+{
+  size_t esc_seqs;
+  unsigned char *op = *outptr;
+
+  esc_seqs = 0;
+  if (st->g2 != set_idx)
+    esc_seqs += 4; /* designate to G2 */
+  if (st->gr) /* if GR does not designate G2 */
+    esc_seqs ++; /* SS3 */
+
+  if (__glibc_unlikely (op + esc_seqs + 2 > outend))
+    return __GCONV_FULL_OUTPUT;
+
+  if (esc_seqs >= 4)
+    {
+      /* need charset designation */
+      *op++ = ESC;
+      *op++ = '\x24'; /* designate multibyte charset */
+      *op++ = '\x2a'; /* to G2 */
+      *op++ = (set_idx == JISX0213_1_idx) ? JISX0213_1_set : JISX0213_2_set;
+      st->g2 = JISX0213_1_idx;
+    }
+  if (st->gr)
+    *op++ = SS2; /* GR designates G3 now. insert SS2 */
+  else
+    ch |= 0x8080; /* use GR(G2) */
+  *op++ = (ch >> 8) & 0xff;
+  *op++ = ch & 0xff;
+  *outptr = op;
+  return __GCONV_OK;
+}
+
+static int
+out_extsym (struct state_to *st, uint32_t ch,
+	    unsigned char **outptr, const unsigned char *outend)
+{
+  size_t esc_seqs;
+  unsigned char *op = *outptr;
+
+  esc_seqs = 0;
+  if (st->g3 != EXTRA_SYMBOLS_idx)
+    esc_seqs += 4;
+  if (st->gr == 0) /* if GR designates G2, use SS3 */
+    ++ esc_seqs;
+
+  if (__glibc_unlikely (op + esc_seqs + 2 > outend))
+    return __GCONV_FULL_OUTPUT;
+
+  if (esc_seqs >= 4)
+    {
+      /* need charset designation */
+      *op++ = ESC;
+      *op++ = '\x24'; /* designate multibyte charset */
+      *op++ = '\x2b'; /* to G3 */
+      *op++ = EXTRA_SYMBOLS_set;
+      st->g3 = EXTRA_SYMBOLS_idx;
+    }
+  if (st->gr == 0)
+    *op++ = SS3;
+  else
+    ch |= 0x8080;
+  *op++ = (ch >> 8) & 0xff;
+  *op++ = ch & 0xff;
+  *outptr = op;
+  return __GCONV_OK;
+}
+
+static int
+out_buffered (struct state_to *st,
+	      unsigned char **outptr, const unsigned char *outend)
+{
+  int r;
+
+  if (st->prev == 0)
+    return __GCONV_OK;
+
+  if (st->prev >> 16)
+    r = out_jisx0213 (st, st->prev & 0x7f7f, JISX0213_1_idx, outptr, outend);
+  else if ((st->prev & 0x7f00) == 0x2400)
+    r = out_hiragana (st, st->prev, outptr, outend);
+  else if ((st->prev & 0x7f00) == 0x2500)
+    r = out_katakana (st, st->prev, outptr, outend);
+  else /* should not be reached */
+    r = out_kanji (st, st->prev, outptr, outend);
+
+  st->prev = 0;
+  return r;
+}
+
+static int
+cmp_u32 (const void *a, const void *b)
+{
+  return *(const uint32_t *)a - *(const uint32_t *)b;
+}
+
+static int
+find_extsym_idx (uint32_t ch)
+{
+  const uint32_t (*p)[2];
+
+  p = bsearch (&ch, ucs4_to_extsym,
+	       NELEMS (ucs4_to_extsym), sizeof (ucs4_to_extsym[0]), cmp_u32);
+  return p ? (p - ucs4_to_extsym) : -1;
+}
+
+#define BODY \
+  {									      \
+    uint32_t ch, jch;							      \
+    unsigned char buf[2];						      \
+    int r;								      \
+									      \
+    ch = get32 (inptr);							      \
+    if (st.prev != 0)							      \
+      {									      \
+	/* Attempt to combine the last character with this one.  */	      \
+	unsigned int idx;						      \
+	unsigned int len;						      \
+									      \
+	if (ch == 0x02e5)						      \
+	  idx = COMP_TABLE_IDX_02E5, len = COMP_TABLE_LEN_02E5;		      \
+	else if (ch == 0x02e9)						      \
+	  idx = COMP_TABLE_IDX_02E9, len = COMP_TABLE_LEN_02E9;		      \
+	else if (ch == 0x0300)						      \
+	  idx = COMP_TABLE_IDX_0300, len = COMP_TABLE_LEN_0300;		      \
+	else if (ch == 0x0301)						      \
+	  idx = COMP_TABLE_IDX_0301, len = COMP_TABLE_LEN_0301;		      \
+	else if (ch == 0x309a)						      \
+	  idx = COMP_TABLE_IDX_309A, len = COMP_TABLE_LEN_309A;		      \
+	else								      \
+	  idx = 0, len = 0;						      \
+									      \
+	for (;len > 0; ++idx, --len)					      \
+	  if (comp_table_data[idx].base == (st.prev & 0x7f7f))		      \
+	    break;							      \
+									      \
+	if (len > 0)							      \
+	  {								      \
+	    /* Output the combined character.  */			      \
+	    /* We know the combined character is in JISX0213 plane 1 */	      \
+	    r = out_jisx0213 (&st, comp_table_data[idx].composed,	      \
+				JISX0213_1_idx, &outptr, outend);	      \
+	    st.prev = 0;						      \
+	    goto next;							      \
+	  }								      \
+									      \
+	/* not a combining character */					      \
+	/* Output the buffered character. */				      \
+	/* We know it is in JISX0208(HIRA/KATA) or in JISX0213 plane 1. */    \
+	r = out_buffered (&st, &outptr, outend);			      \
+	if (r != __GCONV_OK)						      \
+	  {								      \
+	    result = r;							      \
+	    break;							      \
+	  }								      \
+	/* fall through & output the current character (ch). */		      \
+     }									      \
+									      \
+    /* ASCII or C0/C1 or NBSP */					      \
+    if (ch <= 0xa0)							      \
+      {									      \
+	if ((ch & 0x60) || ch == 0 || ch == LF || ch == CR || ch == BS)	      \
+          r = out_ascii (&st, ch, &outptr, outend);			      \
+	else								      \
+	  STANDARD_TO_LOOP_ERR_HANDLER (4);				      \
+	goto next;							      \
+      }									      \
+									      \
+    /* half-width KATAKANA */						      \
+    if (ucs4_to_jisx0201 (ch, buf) != __UNKNOWN_10646_CHAR)		      \
+      {									      \
+	if (__glibc_unlikely (buf[0] < 0x80)) /* yen sign or overline */      \
+	  r = out_ascii (&st, buf[0], &outptr, outend);			      \
+	else								      \
+	  r = out_jisx0201 (&st, buf[0], &outptr, outend);		      \
+	goto next;							      \
+      }									      \
+									      \
+    /* check kana punct. symbols (prefer 1-Byte charset over KANJI_set) */    \
+    r = is_kana_punc (ch);						      \
+    if (r >= 0)								      \
+      {									      \
+	r = out_kana_punc (&st, r, &outptr, outend);			      \
+	goto next;							      \
+      }									      \
+									      \
+    if (ch >= ucs4_to_nonsp_kanji[0][0] &&				      \
+	ch <= ucs4_to_nonsp_kanji[NELEMS (ucs4_to_nonsp_kanji) - 1][0])	      \
+      {									      \
+	int i;								      \
+									      \
+	for (i = 0; i < NELEMS (ucs4_to_nonsp_kanji); i++)		      \
+	  {								      \
+	    if (ch < ucs4_to_nonsp_kanji[i][0])				      \
+	      break;							      \
+	    else if (ch == ucs4_to_nonsp_kanji[i][0])			      \
+	      {								      \
+	        r = out_kanji (&st, ucs4_to_nonsp_kanji[i][1],		      \
+			       &outptr, outend);			      \
+	        goto next;						      \
+	      }								      \
+	  }								      \
+      }									      \
+									      \
+    jch = ucs4_to_jisx0213 (ch);					      \
+									      \
+    if (ucs4_to_jisx0208 (ch, buf, 2) != __UNKNOWN_10646_CHAR)		      \
+      {									      \
+	if (jch & 0x0080)						      \
+	  {								      \
+	    /* A possible match in comp_table_data.  Buffer it.  */	      \
+									      \
+	    /* We know it's a JISX 0213 plane 1 character.  */		      \
+	    assert ((jch & 0x8000) == 0);				      \
+									      \
+	    st.prev = jch & 0x7f7f;					      \
+	    r = __GCONV_OK;						      \
+	    goto next;							      \
+	  }								      \
+	/* check HIRAGANA/KATAKANA (prefer 1-Byte charset over KANJI_set) */  \
+	if (buf[0] == 0x24)						      \
+	  r = out_hiragana (&st, buf[1], &outptr, outend);		      \
+	else if (buf[0] == 0x25)					      \
+	  r = out_katakana (&st, buf[1], &outptr, outend);		      \
+	else if (jch == 0x227e || (jch >= 0x212d && jch <= 0x2132))	      \
+	  r = out_jisx0213 (&st, jch, JISX0213_1_idx, &outptr, outend);	      \
+	else								      \
+	  r = out_kanji (&st, jch, &outptr, outend);			      \
+	goto next;							      \
+      }									      \
+									      \
+    if (jch & 0x0080)							      \
+      {									      \
+	st.prev = (jch & 0x7f7f) | 0x10000;				      \
+	r = __GCONV_OK;							      \
+	goto next;							      \
+      }									      \
+									      \
+    /* prefer KANJI(>= 0x7521) or EXTRA_SYMBOLS over JISX0213_{1,2} */	      \
+    r = find_extsym_idx (ch);						      \
+    if (r >= 0)								      \
+      {									      \
+	ch = ucs4_to_extsym[r][1];					      \
+	if ((ch & 0xff00) >= 0x7a00)					      \
+	  r = out_kanji (&st, ch, &outptr, outend);			      \
+	else								      \
+	  r = out_extsym (&st, ch, &outptr, outend);			      \
+	goto next;							      \
+      }									      \
+									      \
+    if (jch != 0)							      \
+      {									      \
+	r = out_jisx0213 (&st, jch & 0x7f7f,				      \
+			  (jch & 0x8000) ? JISX0213_2_idx : JISX0213_1_idx,   \
+			  &outptr, outend);				      \
+	goto next;							      \
+      }									      \
+									      \
+    UNICODE_TAG_HANDLER (ch, 4);					      \
+    STANDARD_TO_LOOP_ERR_HANDLER (4);					      \
+									      \
+next:									      \
+    if (r != __GCONV_OK)						      \
+      {									      \
+	result = r;							      \
+	break;								      \
+      }									      \
+    inptr += 4;								      \
+  }
+#include <iconv/loop.c>
+
+/* Now define the toplevel functions.  */
+#include <iconv/skeleton.c>
diff --git a/iconvdata/gconv-modules b/iconvdata/gconv-modules
index d3631c0..45b44b9 100644
--- a/iconvdata/gconv-modules
+++ b/iconvdata/gconv-modules
@@ -1968,3 +1968,8 @@ alias	HPGREEK8//		HP-GREEK8//
 alias	OSF10010004//		HP-GREEK8//
 module	HP-GREEK8//		INTERNAL		HP-GREEK8	1
 module	INTERNAL		HP-GREEK8//		HP-GREEK8	1
+
+#	from			to			module		cost
+alias	ARIB-B24//		ARIB-STD-B24//
+module	ARIB-STD-B24//		INTERNAL		ARIB-STD-B24	1
+module	INTERNAL		ARIB-STD-B24//		ARIB-STD-B24	1
diff --git a/iconvdata/testdata/ARIB-STD-B24 b/iconvdata/testdata/ARIB-STD-B24
new file mode 100644
index 0000000..c9c18e0
--- /dev/null
+++ b/iconvdata/testdata/ARIB-STD-B24
@@ -0,0 +1,766 @@
+  ! " # $ % & ' ( ) * + , - . /
+0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+@ 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 [ \ ] ^ _
+` 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 { | } ~
+   +I|¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ­ ® ¯
++I|° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿
++I|ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏ++I|ÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞß+   !! ý !% þ !' !( !) !* !+ !, $*9¡­ ¡® ¡¯
+$*9¡° ¡± ¡² |÷*0}÷!7 !8 !9 !: !; ù9¡½ !> !?
+!@ !A !B !C !D !E !F !G !H !I !J !K !L !M !N !O
+!P !Q !R !S !T !U ûX !Y !Z ![ !\ !] !^ !_
+!` !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 !{ !| !} !~
+   "! "" "# "$ "% "& "' "( ") "* "+ ", "- ". $*9¢¯
+$*9¢° ¢± ¢² ¢³ ¢´ ¢µ ¢¶ ¢· ¢¸ ¢¹ ": "; "< "= "> "?
+"@ "A $*9¢Â¢Ã¢Ä¢Å¢Æ¢Ç¢È¢É"J "K "L "M "N "O
+"P $*9¢Ñ¢Ò¢Ó¢Ô¢Õ¢Ö¢×¢Ø¢Ù|R |S "\ "] "^ "_
+"` "a "b "c "d "e "f "g "h "i "j $*9¢ëìíîï$*9¢ð "r "s "t "u "v "w "x "y ¢ú}z ¢ý   $*9£¡ |P ££ |Q £¥ £¦ £§ £¨ £© £ª £« £¬ £­ £® £¯
+#0 #1 #2 #3 #4 #5 #6 #7 #8 #9 $*9£º £» £¼ £½ £¾ £¿
+$*9£À#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 $*9£Û£Ü£Ý£Þ}G
+$*9£à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 $*9£û£ý   ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ­ ® ¯
+° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿
+ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏ+ÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞß+à â ä æ è ê ì î
+ðò$*9¤ô ¤ö ¤ø¤ú+   |¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ­ ® ¯
+|° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿
+|ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏ+|ÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞß+|à â ä æ è ê ì î
+|ðòôö*9%w %x %y %z %{ %| %} %~
+   &! &" &# &$ &% && &' &( &) &* &+ &, &- &. &/
+&0 &1 &2 &3 &4 &5 &6 &7 &8 $*9¦¹ }k ¦» }h ¦½ }i ¦¿
+}j &A &B &C &D &E &F &G &H &I &J &K &L &M &N &O
+&P &Q &R &S &T &U &V &W &X $*9¦Ù¦Ú¦Û¦Ü¦Ý¦Þ¦ß+$*9¦àáâãd }e ¦æ{ }` }a }b }s {1 ¦íîï$*9¦ð ¦ò ¦ô ¦ö ¦ø¦ú¦üþ
+   '! '" '# '$ '% '& '' '( ') '* '+ ', '- '. '/
+'0 '1 '2 '3 '4 '5 '6 '7 '8 '9 ': '; '< '= '> '?
+'@ 'A $*9§Â§Ã§Ä§Å§Æ§Ç§È§É§Ê§Ë§Ì§Í§Î§Ï+$*9§Ð'Q 'R 'S 'T 'U 'V 'W 'X 'Y 'Z '[ '\ '] '^ '_
+'` 'a 'b 'c 'd 'e 'f 'g 'h 'i 'j 'k 'l 'm 'n 'o
+'p 'q $*9§ò §ô §ö }R }S }V §û§ý   (! (" (# ($ (% (& (' (( () (* (+ (, (- (. (/
+(0 (1 (2 (3 (4 (5 (6 (7 (8 (9 (: (; (< (= (> (?
+(@ ~= ~> ~? ~@ ~[ ~\ ~] ~^ ~_ ~` ~} $*9¨Ì¨Í¨Î¨Ï+$*9¨Ð¨Ñ¨Ò¨Ó¨Ô¨Õ¨Ö¨×¨Ø¨Ù¨Ú¨Û¨Ü¨Ý¨Þ+                     $*9¨çèéên ¨ìío ¨ï$*9¨ð ¨ò ¨ô ¨ö ¨ø¨ú¨ü$*9©¡   ©£ ©¤ ©¥ ©¦ ©§ ©¨ ©© ©ª ©« |U |V ©® ©¯
+$*9©° ©± ©² }T }P }U ©¶ ©· ©¸ ©¹ ©º ©» ©¼ ©½ ©¾ ©¿
+$*9©À©Á©Â©Ã©Ä©Å©Æ©Ç©È©É©Ê©Ë©Ì©Í©Î©Ï+$*9©Ð©Ñ©Ò©Ó©Ô©Õ©Ö©×©Ø©Ù©Ú©Û©Ü©Ý©Þ©ß+$*9©àáâãäåæçèéêëìíîï$*9©ð ©ò ©ô ©ö ©ø©ú©üþ
+   $*9ª¡ ª¢ ª£ ª¤ ª¥ ª¦ ª§ ª¨ ª© ªª ª« ª¬ ª­ ª® ª¯
+$*9ª° ª± ª² ª³ ª´ ªµ ª¶ ª· ª¸ ª¹ ªº ª» ª¼ ª½ ª¾ ª¿
+$*9ªÀªÁªÂªÃªÄªÅªÆªÇªÈªÉªÊªËªÌªÍªÎªÏ+$*9ªÐªÑªÒªÓªÔªÕªÖª×ªØªÙªÚªÛªÜªÝªÞªß+$*9ªàáâãäåæçèéêëìíîï$*9ªð ªò ªô ªö ªøªúªüþ
+   $*9«¡ «¢ «£ «¤ «¥ «¦ «§ «¨ «© «ª «« «¬ «­ «® «¯
+$*9«° «± «² «³ «´ «µ «¶ «· «¸ «¹ «º «» «¼ «½ «¾ «¿
+$*9«À«Á«Â«Ã«Ä«Å«Æ«Ç«È«É«Ê«Ë«Ì«Í«Î«Ï+$*9«Ð«Ñ«Ò«Ó«Ô«Õ«Ö«×«Ø«Ù«Ú«Û«Ü«Ý«Þ«ß+$*9«àáâãäåæçèéêëìíîï$*9«ð «ò «ô «ö «ø«ú«üþ
+   ~q ~r ~s ~t ~u ~v ~w ~x ~y ~z ~{ ~| $*9¬­ ¬® ¬¯
+$*9¬° ¬± ¬² ¬³ ¬´ ¬µ ¬¶ ¬· ¬¸ ¬¹ ¬º ¬» ¬¼ ¬½ ¬¾ ¬¿
+$*9¬À¬Á¬Â¬Ã¬Ä¬Å¬Æ¬Ç¬È¬É¬Ê¬Ë¬Ì¬Í¬Î¬Ï+$*9¬Ð¬Ñ¬Ò¬Ó¬Ô¬Õ¬Ö¬×¬Ø¬Ù¬Ú¬Û¬Ü¬Ý¬Þ¬ß+$*9¬àáâãäåæçèéêëìíîï$*9¬ð ¬ò                            ¬ý   ~a ~b ~c ~d ~e ~f ~g ~h ~i ~j ~k ~l ~m ~n ~o
+~p ~- ~. ~/ ~0 ~! ~" ~# ~$ ~% ~& ~' ~( ~) ~* ~+
+$*9­À­Á­Â­Ã­Ä­Å­Æ­Ç­È­É­Ê­Ë­Ì­Í­Î­Ï+$*9­Ð|- }K ­Ó}H ­Õ|+ ~,                      },
+$*9­àá- ­ã. ­åæçèéM |L |N }) }* }+
+         $*9­ó          ­ø         ­ý   $*9®¡ ®¢ $+;u! ®¤ ®¥ ®¦ ®§ ®¨ u# u$ ®« ®¬ ®­ ®® ®¯
+$*9®° ®± ®² ®³ ®´ ®µ ®¶ ®· ®¸ $+;u& ®º ®» ®¼ ®½ ®¾ ®¿
+$*9®À®Á®Â®Ã®Ä®Å®Æ®Ç®È®É®Ê®Ë®Ì$+;u( ®Î®Ï+$*9®Ð®Ñ®Ò®Ó®Ô®Õ®Ö®×®Ø®Ù®Ú®Û®Ü®Ý®Þ®ß+$*9®àáâãäåæçèéêë$+;u+ ®íîu,
+$*9®ð ®ò ®ô ®ö+;u0 u2 ®ù®ûu1 ®þ
+   $+;u3 $*9¯¢ ¯£ u4 ¯¥ ¯¦ ¯§ ¯¨ ¯© ¯ª ¯« ¯¬ ¯­ ¯® ¯¯
+$*9¯° ¯± ¯² ¯³ ¯´ ¯µ ¯¶ ¯· ¯¸ $+;u6 ¯º ¯» ¯¼ ¯½ ¯¾ ¯¿
+$*9¯À¯Á¯Â¯Ã¯Ä$+;u8 u9 ¯Ç¯È¯É¯Ê¯Ë¯Ì¯Í¯Î¯Ï+$*9¯Ð¯Ñ¯Ò¯Ó¯Ô¯Õ¯Ö$+;u: ¯Ø¯Ù¯Ú¯Û¯Ü¯Ý¯Þ¯ß+$*9¯àáâãäåæçèéêëìíîï$*9¯ð $+;u= ¯ó ¯õ ¯÷ ¯ù¯û¯ý   0! 0" 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/
+00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0?
+0@ 0A 0B 0C 0D 0E 0F 0G 0H 0I 0J 0K 0L 0M 0N 0O
+0P 0Q 0R 0S 0T 0U 0V 0W 0X 0Y 0Z 0[ 0\ 0] 0^ 0_
+0` 0a 0b 0c 0d 0e 0f 0g 0h 0i 0j 0k 0l 0m 0n 0o
+0p 0q 0r 0s 0t 0u 0v 0w 0x 0y 0z 0{ 0| 0} 0~
+   1! 1" 1# 1$ 1% 1& 1' 1( 1) 1* 1+ 1, 1- 1. 1/
+10 11 12 13 14 15 16 17 18 19 1: 1; 1< 1= 1> 1?
+1@ 1A 1B 1C 1D 1E 1F 1G 1H 1I 1J 1K 1L 1M 1N 1O
+1P 1Q 1R 1S 1T 1U 1V 1W 1X 1Y 1Z 1[ 1\ 1] 1^ 1_
+1` 1a 1b 1c 1d 1e 1f 1g 1h 1i 1j 1k 1l 1m 1n 1o
+1p 1q 1r 1s 1t 1u 1v 1w 1x 1y 1z 1{ 1| 1} 1~
+   2! 2" 2# 2$ 2% 2& 2' 2( 2) 2* 2+ 2, 2- 2. 2/
+20 21 22 23 24 25 26 27 28 29 2: 2; 2< 2= 2> 2?
+2@ 2A 2B 2C 2D 2E 2F 2G 2H 2I 2J 2K 2L 2M 2N 2O
+2P 2Q 2R 2S 2T 2U 2V 2W 2X 2Y 2Z 2[ 2\ 2] 2^ 2_
+2` 2a 2b 2c 2d 2e 2f 2g 2h 2i 2j 2k 2l 2m 2n 2o
+2p 2q 2r 2s 2t 2u 2v 2w 2x 2y 2z 2{ 2| 2} 2~
+   3! 3" 3# 3$ 3% 3& 3' 3( 3) 3* 3+ 3, 3- 3. 3/
+30 31 32 33 34 35 36 37 38 39 3: 3; 3< 3= 3> 3?
+3@ 3A 3B 3C 3D 3E 3F 3G 3H 3I 3J 3K 3L 3M 3N 3O
+3P 3Q 3R 3S 3T 3U 3V 3W 3X 3Y 3Z 3[ 3\ 3] 3^ 3_
+3` 3a 3b 3c 3d 3e 3f 3g 3h 3i 3j 3k 3l 3m 3n 3o
+3p 3q 3r 3s 3t 3u 3v 3w 3x 3y 3z 3{ 3| 3} 3~
+   4! 4" 4# 4$ 4% 4& 4' 4( 4) 4* 4+ 4, 4- 4. 4/
+40 41 42 43 44 45 46 47 48 49 4: 4; 4< 4= 4> 4?
+4@ 4A 4B 4C 4D 4E 4F 4G 4H 4I 4J 4K 4L 4M 4N 4O
+4P 4Q 4R 4S 4T 4U 4V 4W 4X 4Y 4Z 4[ 4\ 4] 4^ 4_
+4` 4a 4b 4c 4d 4e 4f 4g 4h 4i 4j 4k 4l 4m 4n 4o
+4p 4q 4r 4s 4t 4u 4v 4w 4x 4y 4z 4{ 4| 4} 4~
+   5! 5" 5# 5$ 5% 5& 5' 5( 5) 5* 5+ 5, 5- 5. 5/
+50 51 52 53 54 55 56 57 58 59 5: 5; 5< 5= 5> 5?
+5@ 5A 5B 5C 5D 5E 5F 5G 5H 5I 5J 5K 5L 5M 5N 5O
+5P 5Q 5R 5S 5T 5U 5V 5W 5X 5Y 5Z 5[ 5\ 5] 5^ 5_
+5` 5a 5b 5c 5d 5e 5f 5g 5h 5i 5j 5k 5l 5m 5n 5o
+5p 5q 5r 5s 5t 5u 5v 5w 5x 5y 5z 5{ 5| 5} 5~
+   6! 6" 6# 6$ 6% 6& 6' 6( 6) 6* 6+ 6, 6- 6. 6/
+60 61 62 63 64 65 66 67 68 69 6: 6; 6< 6= 6> 6?
+6@ 6A 6B 6C 6D 6E 6F 6G 6H 6I 6J 6K 6L 6M 6N 6O
+6P 6Q 6R 6S 6T 6U 6V 6W 6X 6Y 6Z 6[ 6\ 6] 6^ 6_
+6` 6a 6b 6c 6d 6e 6f 6g 6h 6i 6j 6k 6l 6m 6n 6o
+6p 6q 6r 6s 6t 6u 6v 6w 6x 6y 6z 6{ 6| 6} 6~
+   7! 7" 7# 7$ 7% 7& 7' 7( 7) 7* 7+ 7, 7- 7. 7/
+70 71 72 73 74 75 76 77 78 79 7: 7; 7< 7= 7> 7?
+7@ 7A 7B 7C 7D 7E 7F 7G 7H 7I 7J 7K 7L 7M 7N 7O
+7P 7Q 7R 7S 7T 7U 7V 7W 7X 7Y 7Z 7[ 7\ 7] 7^ 7_
+7` 7a 7b 7c 7d 7e 7f 7g 7h 7i 7j 7k 7l 7m 7n 7o
+7p 7q 7r 7s 7t 7u 7v 7w 7x 7y 7z 7{ 7| 7} 7~
+   8! 8" 8# 8$ 8% 8& 8' 8( 8) 8* 8+ 8, 8- 8. 8/
+80 81 82 83 84 85 86 87 88 89 8: 8; 8< 8= 8> 8?
+8@ 8A 8B 8C 8D 8E 8F 8G 8H 8I 8J 8K 8L 8M 8N 8O
+8P 8Q 8R 8S 8T 8U 8V 8W 8X 8Y 8Z 8[ 8\ 8] 8^ 8_
+8` 8a 8b 8c 8d 8e 8f 8g 8h 8i 8j 8k 8l 8m 8n 8o
+8p 8q 8r 8s 8t 8u 8v 8w 8x 8y 8z 8{ 8| 8} 8~
+   9! 9" 9# 9$ 9% 9& 9' 9( 9) 9* 9+ 9, 9- 9. 9/
+90 91 92 93 94 95 96 97 98 99 9: 9; 9< 9= 9> 9?
+9@ 9A 9B 9C 9D 9E 9F 9G 9H 9I 9J 9K 9L 9M 9N 9O
+9P 9Q 9R 9S 9T 9U 9V 9W 9X 9Y 9Z 9[ 9\ 9] 9^ 9_
+9` 9a 9b 9c 9d 9e 9f 9g 9h 9i 9j 9k 9l 9m 9n 9o
+9p 9q 9r 9s 9t 9u 9v 9w 9x 9y 9z 9{ 9| 9} 9~
+   :! :" :# :$ :% :& :' :( :) :* :+ :, :- :. :/
+:0 :1 :2 :3 :4 :5 :6 :7 :8 :9 :: :; :< := :> :?
+:@ :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 :[ :\ :] :^ :_
+:` :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 :{ :| :} :~
+   ;! ;" ;# ;$ ;% ;& ;' ;( ;) ;* ;+ ;, ;- ;. ;/
+;0 ;1 ;2 ;3 ;4 ;5 ;6 ;7 ;8 ;9 ;: ;; ;< ;= ;> ;?
+;@ ;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 ;[ ;\ ;] ;^ ;_
+;` ;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 ;{ ;| ;} ;~
+   <! <" <# <$ <% <& <' <( <) <* <+ <, <- <. </
+<0 <1 <2 <3 <4 <5 <6 <7 <8 <9 <: <; << <= <> <?
+<@ <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 <[ <\ <] <^ <_
+<` <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 <{ <| <} <~
+   =! =" =# =$ =% =& =' =( =) =* =+ =, =- =. =/
+=0 =1 =2 =3 =4 =5 =6 =7 =8 =9 =: =; =< == => =?
+=@ =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 =[ =\ =] =^ =_
+=` =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 ={ =| =} =~
+   >! >" ># >$ >% >& >' >( >) >* >+ >, >- >. >/
+>0 >1 >2 >3 >4 >5 >6 >7 >8 >9 >: >; >< >= >> >?
+>@ >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 >[ >\ >] >^ >_
+>` >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 >{ >| >} >~
+   ?! ?" ?# ?$ ?% ?& ?' ?( ?) ?* ?+ ?, ?- ?. ?/
+?0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9 ?: ?; ?< ?= ?> ??
+?@ ?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 ?[ ?\ ?] ?^ ?_
+?` ?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 ?{ ?| ?} ?~
+   @! @" @# @$ @% @& @' @( @) @* @+ @, @- @. @/
+@0 @1 @2 @3 @4 @5 @6 @7 @8 @9 @: @; @< @= @> @?
+@@ @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 @[ @\ @] @^ @_
+@` @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 @{ @| @} @~
+   A! A" A# A$ A% A& A' A( A) A* A+ A, A- A. A/
+A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A: A; A< A= A> A?
+A@ AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO
+AP AQ AR AS AT AU AV AW AX AY AZ A[ A\ A] A^ A_
+A` Aa Ab Ac Ad Ae Af Ag Ah Ai Aj Ak Al Am An Ao
+Ap Aq Ar As At Au Av Aw Ax Ay Az A{ A| A} A~
+   B! B" B# B$ B% B& B' B( B) B* B+ B, B- B. B/
+B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 B: B; B< B= B> B?
+B@ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO
+BP BQ BR BS BT BU BV BW BX BY BZ B[ B\ B] B^ B_
+B` Ba Bb Bc Bd Be Bf Bg Bh Bi Bj Bk Bl Bm Bn Bo
+Bp Bq Br Bs Bt Bu Bv Bw Bx By Bz B{ B| B} B~
+   C! C" C# C$ C% C& C' C( C) C* C+ C, C- C. C/
+C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C: C; C< C= C> C?
+C@ CA CB CC CD CE CF CG CH CI CJ CK CL CM CN CO
+CP CQ CR CS CT CU CV CW CX CY CZ C[ C\ C] C^ C_
+C` Ca Cb Cc Cd Ce Cf Cg Ch Ci Cj Ck Cl Cm Cn Co
+Cp Cq Cr Cs Ct Cu Cv Cw Cx Cy Cz C{ C| C} C~
+   D! D" D# D$ D% D& D' D( D) D* D+ D, D- D. D/
+D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 D: D; D< D= D> D?
+D@ DA DB DC DD DE DF DG DH DI DJ DK DL DM DN DO
+DP DQ DR DS DT DU DV DW DX DY DZ D[ D\ D] D^ D_
+D` Da Db Dc Dd De Df Dg Dh Di Dj Dk Dl Dm Dn Do
+Dp Dq Dr Ds Dt Du Dv Dw Dx Dy Dz D{ D| D} D~
+   E! E" E# E$ E% E& E' E( E) E* E+ E, E- E. E/
+E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 E: E; E< E= E> E?
+E@ EA EB EC ED EE EF EG EH EI EJ EK EL EM EN EO
+EP EQ ER ES ET EU EV EW EX EY EZ E[ E\ E] E^ E_
+E` Ea Eb Ec Ed Ee Ef Eg Eh Ei Ej Ek El Em En Eo
+Ep Eq Er Es Et Eu Ev Ew Ex Ey Ez E{ E| E} E~
+   F! F" F# F$ F% F& F' F( F) F* F+ F, F- F. F/
+F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F: F; F< F= F> F?
+F@ FA FB FC FD FE FF FG FH FI FJ FK FL FM FN FO
+FP FQ FR FS FT FU FV FW FX FY FZ F[ F\ F] F^ F_
+F` Fa Fb Fc Fd Fe Ff Fg Fh Fi Fj Fk Fl Fm Fn Fo
+Fp Fq Fr Fs Ft Fu Fv Fw Fx Fy Fz F{ F| F} F~
+   G! G" G# G$ G% G& G' G( G) G* G+ G, G- G. G/
+G0 G1 G2 G3 G4 G5 G6 G7 G8 G9 G: G; G< G= G> G?
+G@ GA GB GC GD GE GF GG GH GI GJ GK GL GM GN GO
+GP GQ GR GS GT GU GV GW GX GY GZ G[ G\ G] G^ G_
+G` Ga Gb Gc Gd Ge Gf Gg Gh Gi Gj Gk Gl Gm Gn Go
+Gp Gq Gr Gs Gt Gu Gv Gw Gx Gy Gz G{ G| G} G~
+   H! H" H# H$ H% H& H' H( H) H* H+ H, H- H. H/
+H0 H1 H2 H3 H4 H5 H6 H7 H8 H9 H: H; H< H= H> H?
+H@ HA HB HC HD HE HF HG HH HI HJ HK HL HM HN HO
+HP HQ HR HS HT HU HV HW HX HY HZ H[ H\ H] H^ H_
+H` Ha Hb Hc Hd He Hf Hg Hh Hi Hj Hk Hl Hm Hn Ho
+Hp Hq Hr Hs Ht Hu Hv Hw Hx Hy Hz H{ H| H} H~
+   I! I" I# I$ I% I& I' I( I) I* I+ I, I- I. I/
+I0 I1 I2 I3 I4 I5 I6 I7 I8 I9 I: I; I< I= I> I?
+I@ IA IB IC ID IE IF IG IH II IJ IK IL IM IN IO
+IP IQ IR IS IT IU IV IW IX IY IZ I[ I\ I] I^ I_
+I` Ia Ib Ic Id Ie If Ig Ih Ii Ij Ik Il Im In Io
+Ip Iq Ir Is It Iu Iv Iw Ix Iy Iz I{ I| I} I~
+   J! J" J# J$ J% J& J' J( J) J* J+ J, J- J. J/
+J0 J1 J2 J3 J4 J5 J6 J7 J8 J9 J: J; J< J= J> J?
+J@ JA JB JC JD JE JF JG JH JI JJ JK JL JM JN JO
+JP JQ JR JS JT JU JV JW JX JY JZ J[ J\ J] J^ J_
+J` Ja Jb Jc Jd Je Jf Jg Jh Ji Jj Jk Jl Jm Jn Jo
+Jp Jq Jr Js Jt Ju Jv Jw Jx Jy Jz J{ J| J} J~
+   K! K" K# K$ K% K& K' K( K) K* K+ K, K- K. K/
+K0 K1 K2 K3 K4 K5 K6 K7 K8 K9 K: K; K< K= K> K?
+K@ KA KB KC KD KE KF KG KH KI KJ KK KL KM KN KO
+KP KQ KR KS KT KU KV KW KX KY KZ K[ K\ K] K^ K_
+K` Ka Kb Kc Kd Ke Kf Kg Kh Ki Kj Kk Kl Km Kn Ko
+Kp Kq Kr Ks Kt Ku Kv Kw Kx Ky Kz K{ K| K} K~
+   L! L" L# L$ L% L& L' L( L) L* L+ L, L- L. L/
+L0 L1 L2 L3 L4 L5 L6 L7 L8 L9 L: L; L< L= L> L?
+L@ LA LB LC LD LE LF LG LH LI LJ LK LL LM LN LO
+LP LQ LR LS LT LU LV LW LX LY LZ L[ L\ L] L^ L_
+L` La Lb Lc Ld Le Lf Lg Lh Li Lj Lk Ll Lm Ln Lo
+Lp Lq Lr Ls Lt Lu Lv Lw Lx Ly Lz L{ L| L} L~
+   M! M" M# M$ M% M& M' M( M) M* M+ M, M- M. M/
+M0 M1 M2 M3 M4 M5 M6 M7 M8 M9 M: M; M< M= M> M?
+M@ MA MB MC MD ME MF MG MH MI MJ MK ML MM MN MO
+MP MQ MR MS MT MU MV MW MX MY MZ M[ M\ M] M^ M_
+M` Ma Mb Mc Md Me Mf Mg Mh Mi Mj Mk Ml Mm Mn Mo
+Mp Mq Mr Ms Mt Mu Mv Mw Mx My Mz M{ M| M} M~
+   N! N" N# N$ N% N& N' N( N) N* N+ N, N- N. N/
+N0 N1 N2 N3 N4 N5 N6 N7 N8 N9 N: N; N< N= N> N?
+N@ NA NB NC ND NE NF NG NH NI NJ NK NL NM NN NO
+NP NQ NR NS NT NU NV NW NX NY NZ N[ N\ N] N^ N_
+N` Na Nb Nc Nd Ne Nf Ng Nh Ni Nj Nk Nl Nm Nn No
+Np Nq Nr Ns Nt Nu Nv Nw Nx Ny Nz N{ N| N} N~
+   O! O" O# O$ O% O& O' O( O) O* O+ O, O- O. O/
+O0 O1 O2 O3 O4 O5 O6 O7 O8 O9 O: O; O< O= O> O?
+O@ OA OB OC OD OE OF OG OH OI OJ OK OL OM ON OO
+OP OQ OR OS $*9Ï Ï Ï Ï Ï Ï $+;u? Ï Ï Ï Ï Ï
+$*9Ï Ï Ï Ï Ï Ï Ï Ï Ï Ï Ï Ï Ï Ï Ï $+;uA
+$*9Ï Ï $+;u@ Ï Ï Ï Ï Ï Ï Ï Ï Ï Ï Ï Ï
+   P! P" P# P$ P% P& P' P( P) P* P+ P, P- P. P/
+P0 P1 P2 P3 P4 P5 P6 P7 P8 P9 P: P; P< P= P> P?
+P@ PA PB PC PD PE PF PG PH PI PJ PK PL PM PN PO
+PP PQ PR PS PT PU PV PW PX PY PZ P[ P\ P] P^ P_
+P` Pa Pb Pc Pd Pe Pf Pg Ph Pi Pj Pk Pl Pm Pn Po
+Pp Pq Pr Ps Pt Pu Pv Pw Px Py Pz P{ P| P} P~
+   Q! Q" Q# Q$ Q% Q& Q' Q( Q) Q* Q+ Q, Q- Q. Q/
+Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q: Q; Q< Q= Q> Q?
+Q@ QA QB QC QD QE QF QG QH QI QJ QK QL QM QN QO
+QP QQ QR QS QT QU QV QW QX QY QZ Q[ Q\ Q] Q^ Q_
+Q` Qa Qb Qc Qd Qe Qf Qg Qh Qi Qj Qk Ql Qm Qn Qo
+Qp Qq Qr Qs Qt Qu Qv Qw Qx Qy Qz Q{ Q| Q} Q~
+   R! R" R# R$ R% R& R' R( R) R* R+ R, R- R. R/
+R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R: R; R< R= R> R?
+R@ RA RB RC RD RE RF RG RH RI RJ RK RL RM RN RO
+RP RQ RR RS RT RU RV RW RX RY RZ R[ R\ R] R^ R_
+R` Ra Rb Rc Rd Re Rf Rg Rh Ri Rj Rk Rl Rm Rn Ro
+Rp Rq Rr Rs Rt Ru Rv Rw Rx Ry Rz R{ R| R} R~
+   S! S" S# S$ S% S& S' S( S) S* S+ S, S- S. S/
+S0 S1 S2 S3 S4 S5 S6 S7 S8 S9 S: S; S< S= S> S?
+S@ SA SB SC SD SE SF SG SH SI SJ SK SL SM SN SO
+SP SQ SR SS ST SU SV SW SX SY SZ S[ S\ S] S^ S_
+S` Sa Sb Sc Sd Se Sf Sg Sh Si Sj Sk Sl Sm Sn So
+Sp Sq Sr Ss St Su Sv Sw Sx Sy Sz S{ S| S} S~
+   T! T" T# T$ T% T& T' T( T) T* T+ T, T- T. T/
+T0 T1 T2 T3 T4 T5 T6 T7 T8 T9 T: T; T< T= T> T?
+T@ TA TB TC TD TE TF TG TH TI TJ TK TL TM TN TO
+TP TQ TR TS TT TU TV TW TX TY TZ T[ T\ T] T^ T_
+T` Ta Tb Tc Td Te Tf Tg Th Ti Tj Tk Tl Tm Tn To
+Tp Tq Tr Ts Tt Tu Tv Tw Tx Ty Tz T{ T| T} T~
+   U! U" U# U$ U% U& U' U( U) U* U+ U, U- U. U/
+U0 U1 U2 U3 U4 U5 U6 U7 U8 U9 U: U; U< U= U> U?
+U@ UA UB UC UD UE UF UG UH UI UJ UK UL UM UN UO
+UP UQ UR US UT UU UV UW UX UY UZ U[ U\ U] U^ U_
+U` Ua Ub Uc Ud Ue Uf Ug Uh Ui Uj Uk Ul Um Un Uo
+Up Uq Ur Us Ut Uu Uv Uw Ux Uy Uz U{ U| U} U~
+   V! V" V# V$ V% V& V' V( V) V* V+ V, V- V. V/
+V0 V1 V2 V3 V4 V5 V6 V7 V8 V9 V: V; V< V= V> V?
+V@ VA VB VC VD VE VF VG VH VI VJ VK VL VM VN VO
+VP VQ VR VS VT VU VV VW VX VY VZ V[ V\ V] V^ V_
+V` Va Vb Vc Vd Ve Vf Vg Vh Vi Vj Vk Vl Vm Vn Vo
+Vp Vq Vr Vs Vt Vu Vv Vw Vx Vy Vz V{ V| V} V~
+   W! W" W# W$ W% W& W' W( W) W* W+ W, W- W. W/
+W0 W1 W2 W3 W4 W5 W6 W7 W8 W9 W: W; W< W= W> W?
+W@ WA WB WC WD WE WF WG WH WI WJ WK WL WM WN WO
+WP WQ WR WS WT WU WV WW WX WY WZ W[ W\ W] W^ W_
+W` Wa Wb Wc Wd We Wf Wg Wh Wi Wj Wk Wl Wm Wn Wo
+Wp Wq Wr Ws Wt Wu Wv Ww Wx Wy Wz W{ W| W} W~
+   X! X" X# X$ X% X& X' X( X) X* X+ X, X- X. X/
+X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X: X; X< X= X> X?
+X@ XA XB XC XD XE XF XG XH XI XJ XK XL XM XN XO
+XP XQ XR XS XT XU XV XW XX XY XZ X[ X\ X] X^ X_
+X` Xa Xb Xc Xd Xe Xf Xg Xh Xi Xj Xk Xl Xm Xn Xo
+Xp Xq Xr Xs Xt Xu Xv Xw Xx Xy Xz X{ X| X} X~
+   Y! Y" Y# Y$ Y% Y& Y' Y( Y) Y* Y+ Y, Y- Y. Y/
+Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Y9 Y: Y; Y< Y= Y> Y?
+Y@ YA YB YC YD YE YF YG YH YI YJ YK YL YM YN YO
+YP YQ YR YS YT YU YV YW YX YY YZ Y[ Y\ Y] Y^ Y_
+Y` Ya Yb Yc Yd Ye Yf Yg Yh Yi Yj Yk Yl Ym Yn Yo
+Yp Yq Yr Ys Yt Yu Yv Yw Yx Yy Yz Y{ Y| Y} Y~
+   Z! Z" Z# Z$ Z% Z& Z' Z( Z) Z* Z+ Z, Z- Z. Z/
+Z0 Z1 Z2 Z3 Z4 Z5 Z6 Z7 Z8 Z9 Z: Z; Z< Z= Z> Z?
+Z@ ZA ZB ZC ZD ZE ZF ZG ZH ZI ZJ ZK ZL ZM ZN ZO
+ZP ZQ ZR ZS ZT ZU ZV ZW ZX ZY ZZ Z[ Z\ Z] Z^ Z_
+Z` Za Zb Zc Zd Ze Zf Zg Zh Zi Zj Zk Zl Zm Zn Zo
+Zp Zq Zr Zs Zt Zu Zv Zw Zx Zy Zz Z{ Z| Z} Z~
+   [! [" [# [$ [% [& [' [( [) [* [+ [, [- [. [/
+[0 [1 [2 [3 [4 [5 [6 [7 [8 [9 [: [; [< [= [> [?
+[@ [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 [[ [\ [] [^ [_
+[` [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 [{ [| [} [~
+   \! \" \# \$ \% \& \' \( \) \* \+ \, \- \. \/
+\0 \1 \2 \3 \4 \5 \6 \7 \8 \9 \: \; \< \= \> \?
+\@ \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 \[ \\ \] \^ \_
+\` \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 \{ \| \} \~
+   ]! ]" ]# ]$ ]% ]& ]' ]( ]) ]* ]+ ], ]- ]. ]/
+]0 ]1 ]2 ]3 ]4 ]5 ]6 ]7 ]8 ]9 ]: ]; ]< ]= ]> ]?
+]@ ]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 ][ ]\ ]] ]^ ]_
+]` ]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 ]{ ]| ]} ]~
+   ^! ^" ^# ^$ ^% ^& ^' ^( ^) ^* ^+ ^, ^- ^. ^/
+^0 ^1 ^2 ^3 ^4 ^5 ^6 ^7 ^8 ^9 ^: ^; ^< ^= ^> ^?
+^@ ^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 ^[ ^\ ^] ^^ ^_
+^` ^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 ^{ ^| ^} ^~
+   _! _" _# _$ _% _& _' _( _) _* _+ _, _- _. _/
+_0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _: _; _< _= _> _?
+_@ _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 _[ _\ _] _^ __
+_` _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 _{ _| _} _~
+   `! `" `# `$ `% `& `' `( `) `* `+ `, `- `. `/
+`0 `1 `2 `3 `4 `5 `6 `7 `8 `9 `: `; `< `= `> `?
+`@ `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 `[ `\ `] `^ `_
+`` `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 `{ `| `} `~
+   a! a" a# a$ a% a& a' a( a) a* a+ a, a- a. a/
+a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a: a; a< a= a> a?
+a@ aA aB aC aD aE aF aG aH aI aJ aK aL aM aN aO
+aP aQ aR aS aT aU aV aW aX aY aZ a[ a\ a] a^ a_
+a` aa ab ac ad ae af ag ah ai aj ak al am an ao
+ap aq ar as at au av aw ax ay az a{ a| a} a~
+   b! b" b# b$ b% b& b' b( b) b* b+ b, b- b. b/
+b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 b: b; b< b= b> b?
+b@ bA bB bC bD bE bF bG bH bI bJ bK bL bM bN bO
+bP bQ bR bS bT bU bV bW bX bY bZ b[ b\ b] b^ b_
+b` ba bb bc bd be bf bg bh bi bj bk bl bm bn bo
+bp bq br bs bt bu bv bw bx by bz b{ b| b} b~
+   c! c" c# c$ c% c& c' c( c) c* c+ c, c- c. c/
+c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c: c; c< c= c> c?
+c@ cA cB cC cD cE cF cG cH cI cJ cK cL cM cN cO
+cP cQ cR cS cT cU cV cW cX cY cZ c[ c\ c] c^ c_
+c` ca cb cc cd ce cf cg ch ci cj ck cl cm cn co
+cp cq cr cs ct cu cv cw cx cy cz c{ c| c} c~
+   d! d" d# d$ d% d& d' d( d) d* d+ d, d- d. d/
+d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d: d; d< d= d> d?
+d@ dA dB dC dD dE dF dG dH dI dJ dK dL dM dN dO
+dP dQ dR dS dT dU dV dW dX dY dZ d[ d\ d] d^ d_
+d` da db dc dd de df dg dh di dj dk dl dm dn do
+dp dq dr ds dt du dv dw dx dy dz d{ d| d} d~
+   e! e" e# e$ e% e& e' e( e) e* e+ e, e- e. e/
+e0 e1 e2 e3 e4 e5 e6 e7 e8 e9 e: e; e< e= e> e?
+e@ eA eB eC eD eE eF eG eH eI eJ eK eL eM eN eO
+eP eQ eR eS eT eU eV eW eX eY eZ e[ e\ e] e^ e_
+e` ea eb ec ed ee ef eg eh ei ej ek el em en eo
+ep eq er es et eu ev ew ex ey ez e{ e| e} e~
+   f! f" f# f$ f% f& f' f( f) f* f+ f, f- f. f/
+f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 f: f; f< f= f> f?
+f@ fA fB fC fD fE fF fG fH fI fJ fK fL fM fN fO
+fP fQ fR fS fT fU fV fW fX fY fZ f[ f\ f] f^ f_
+f` fa fb fc fd fe ff fg fh fi fj fk fl fm fn fo
+fp fq fr fs ft fu fv fw fx fy fz f{ f| f} f~
+   g! g" g# g$ g% g& g' g( g) g* g+ g, g- g. g/
+g0 g1 g2 g3 g4 g5 g6 g7 g8 g9 g: g; g< g= g> g?
+g@ gA gB gC gD gE gF gG gH gI gJ gK gL gM gN gO
+gP gQ gR gS gT gU gV gW gX gY gZ g[ g\ g] g^ g_
+g` ga gb gc gd ge gf gg gh gi gj gk gl gm gn go
+gp gq gr gs gt gu gv gw gx gy gz g{ g| g} g~
+   h! h" h# h$ h% h& h' h( h) h* h+ h, h- h. h/
+h0 h1 h2 h3 h4 h5 h6 h7 h8 h9 h: h; h< h= h> h?
+h@ hA hB hC hD hE hF hG hH hI hJ hK hL hM hN hO
+hP hQ hR hS hT hU hV hW hX hY hZ h[ h\ h] h^ h_
+h` ha hb hc hd he hf hg hh hi hj hk hl hm hn ho
+hp hq hr hs ht hu hv hw hx hy hz h{ h| h} h~
+   i! i" i# i$ i% i& i' i( i) i* i+ i, i- i. i/
+i0 i1 i2 i3 i4 i5 i6 i7 i8 i9 i: i; i< i= i> i?
+i@ iA iB iC iD iE iF iG iH iI iJ iK iL iM iN iO
+iP iQ iR iS iT iU iV iW iX iY iZ i[ i\ i] i^ i_
+i` ia ib ic id ie if ig ih ii ij ik il im in io
+ip iq ir is it iu iv iw ix iy iz i{ i| i} i~
+   j! j" j# j$ j% j& j' j( j) j* j+ j, j- j. j/
+j0 j1 j2 j3 j4 j5 j6 j7 j8 j9 j: j; j< j= j> j?
+j@ jA jB jC jD jE jF jG jH jI jJ jK jL jM jN jO
+jP jQ jR jS jT jU jV jW jX jY jZ j[ j\ j] j^ j_
+j` ja jb jc jd je jf jg jh ji jj jk jl jm jn jo
+jp jq jr js jt ju jv jw jx jy jz j{ j| j} j~
+   k! k" k# k$ k% k& k' k( k) k* k+ k, k- k. k/
+k0 k1 k2 k3 k4 k5 k6 k7 k8 k9 k: k; k< k= k> k?
+k@ kA kB kC kD kE kF kG kH kI kJ kK kL kM kN kO
+kP kQ kR kS kT kU kV kW kX kY kZ k[ k\ k] k^ k_
+k` ka kb kc kd ke kf kg kh ki kj kk kl km kn ko
+kp kq kr ks kt ku kv kw kx ky kz k{ k| k} k~
+   l! l" l# l$ l% l& l' l( l) l* l+ l, l- l. l/
+l0 l1 l2 l3 l4 l5 l6 l7 l8 l9 l: l; l< l= l> l?
+l@ lA lB lC lD lE lF lG lH lI lJ lK lL lM lN lO
+lP lQ lR lS lT lU lV lW lX lY lZ l[ l\ l] l^ l_
+l` la lb lc ld le lf lg lh li lj lk ll lm ln lo
+lp lq lr ls lt lu lv lw lx ly lz l{ l| l} l~
+   m! m" m# m$ m% m& m' m( m) m* m+ m, m- m. m/
+m0 m1 m2 m3 m4 m5 m6 m7 m8 m9 m: m; m< m= m> m?
+m@ mA mB mC mD mE mF mG mH mI mJ mK mL mM mN mO
+mP mQ mR mS mT mU mV mW mX mY mZ m[ m\ m] m^ m_
+m` ma mb mc md me mf mg mh mi mj mk ml mm mn mo
+mp mq mr ms mt mu mv mw mx my mz m{ m| m} m~
+   n! n" n# n$ n% n& n' n( n) n* n+ n, n- n. n/
+n0 n1 n2 n3 n4 n5 n6 n7 n8 n9 n: n; n< n= n> n?
+n@ nA nB nC nD nE nF nG nH nI nJ nK nL nM nN nO
+nP nQ nR nS nT nU nV nW nX nY nZ n[ n\ n] n^ n_
+n` na nb nc nd ne nf ng nh ni nj nk nl nm nn no
+np nq nr ns nt nu nv nw nx ny nz n{ n| n} n~
+   o! o" o# o$ o% o& o' o( o) o* o+ o, o- o. o/
+o0 o1 o2 o3 o4 o5 o6 o7 o8 o9 o: o; o< o= o> o?
+o@ oA oB oC oD oE oF oG oH oI oJ oK oL oM oN oO
+oP oQ oR oS oT oU oV oW oX oY oZ o[ o\ o] o^ o_
+o` oa ob oc od oe of og oh oi oj ok ol om on oo
+op oq or os ot ou ov ow ox oy oz o{ o| o} o~
+   p! p" p# p$ p% p& p' p( p) p* p+ p, p- p. p/
+p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p: p; p< p= p> p?
+p@ pA pB pC pD pE pF pG pH pI pJ pK pL pM pN pO
+pP pQ pR pS pT pU pV pW pX pY pZ p[ p\ p] p^ p_
+p` pa pb pc pd pe pf pg ph pi pj pk pl pm pn po
+pp pq pr ps pt pu pv pw px py pz p{ p| p} p~
+   q! q" q# q$ q% q& q' q( q) q* q+ q, q- q. q/
+q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q: q; q< q= q> q?
+q@ qA qB qC qD qE qF qG qH qI qJ qK qL qM qN qO
+qP qQ qR qS qT qU qV qW qX qY qZ q[ q\ q] q^ q_
+q` qa qb qc qd qe qf qg qh qi qj qk ql qm qn qo
+qp qq qr qs qt qu qv qw qx qy qz q{ q| q} q~
+   r! r" r# r$ r% r& r' r( r) r* r+ r, r- r. r/
+r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r: r; r< r= r> r?
+r@ rA rB rC rD rE rF rG rH rI rJ rK rL rM rN rO
+rP rQ rR rS rT rU rV rW rX rY rZ r[ r\ r] r^ r_
+r` ra rb rc rd re rf rg rh ri rj rk rl rm rn ro
+rp rq rr rs rt ru rv rw rx ry rz r{ r| r} r~
+   s! s" s# s$ s% s& s' s( s) s* s+ s, s- s. s/
+s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s: s; s< s= s> s?
+s@ sA sB sC sD sE sF sG sH sI sJ sK sL sM sN sO
+sP sQ sR sS sT sU sV sW sX sY sZ s[ s\ s] s^ s_
+s` sa sb sc sd se sf sg sh si sj sk sl sm sn so
+sp sq sr ss st su sv sw sx sy sz s{ s| s} s~
+   t! t" t# t$ t% t& $*9ô¨ ôª ô¬ ô® ô$*9ô± ô³ ôµ $+;uC ô¸ ôuD ô¼ ô¾ ô$*9ôÁôÃô$+;uE ôÇôÉôËôÍôÏ+$*9ôÑôÓôÕô×ôÙ$+;uH ôÜôÞô$*9ôáâãäåæçèéêëìíîï$*9ôñ ôô ô÷ ôúôý   $*9õ¢ õ¤ õ¦ õ¨ õª õ¬ õ® õ$*9õ± $+;uI õ´ õ¶ uM õ¹ õ» õ½ õ¿
+$*9õÁõÃõÅõÇ$+;uJ õÊõuL õÎõ$*9õÑõÓõÕõ×õÙõÛõÝ$+;uN õ$*9õáâãäåæçèéêëìíîï$*9õñ+;uW õô õ÷ õúõý   $*9ö¢ ö¤ ö¦ ö¨ öª ö$+;uR ö® ö$*9ö± ö³ öµ ö· ö¹ ö» ö½ ö¿
+$*9öÁöÃöÅöÇöÉöËöÍöÏ+$*9öÑöÓöÕö×öÙöÛö$+;uY öß+$*9öáâ$+;uZ öåæçèu[ öëìíîï$+;u\ $*9öò öõ u_ öùöüþ
+   $*9÷¢ ÷¤ ÷¦ ÷¨ ÷ª $+;u` ÷­ ÷¯
+$*9÷± ÷³ ÷µ ÷· ÷$+;ua ÷» ÷½ ÷¿
+$*9÷Á÷$+;ub ÷Å÷Ç÷É÷Ë÷Í÷Ï+$*9÷Ñ÷$+;ue ÷Õ÷×÷Ù÷Û÷Ýuf ÷$*9÷á$+;ug ÷äåæçèéêëìíîï$*9÷ñ ÷$+;uh ÷ö ÷uj ÷uk ÷ý   $*9ø ø+;ul un uo øp øq ø ø ø$*9ø+;us ø ø ø ø ø ø ø
+$*9ø ø ø ø ø ø ø ø
+$*9ø ø ø ø ø ø ø ø
+$*9ø ø ø ø ø ø ø ø
+$*9ø ø ø ø ø ø ø ø  $*9ù ù ù ù ù ù ù ù$*9ù ù ù ù ù ù ù ù
+$*9ù ù ù ù ù ù ù ù
+$*9ù ù ù ù ù ù ù ù
+$*9ù ù ù ù $+;v% ù ù v& ù
+$*9ù ù ù ù ù ù ù ù  $*9ú ú ú $+;v' ú ú ú ú
+$*9ú ú ú ú ú ú ú ú
+$*9ú ú ú ú ú ú ú $+;v) ú$*9ú ú ú ú ú ú ú ú
+$*9ú ú+;v, ú ú ú ú ú ú
+$*9ú ú ú ú ú ú ú ú  $*9û û û û û û û û$*9û û û û $+;v0 û û û û$*9û $+;v1 û û û û û û û$*9û û û û û û û û
+$*9û $+;v3 û û û û û v5 û
+$*9û û û û û û û û  $*9üüüü;u. üüv7 ü+$*9üüüüüüüü+$*9ü;v8 üüüüüüü+$*9üüüüüüüü+$*9üüü$+;v; üüüüü+;v< $*9üüüüüüü+   $*9ýýýýýýý;v@ ý*9ýýýý;vA ý ýýý+$*9ýýýýýýýý+$*9ýýýýýýýý+$*9ý$+;vD ýýýýýýý*9ýýýýýýýý $*9þ¡ þ¢ þ£ þ¤ þ¥ þ¦ þ§ þ¨ þ© þª þ« þ¬ þ­ þ® þ¯
+$*9þ° þ± þ² þ³ þ´ þµ þ¶ þ· þ¸ þ¹ þº þ» þ¼ þ½ þ¾ þ¿
+$*9þÀþÁþÂþÃþÄþÅþÆþÇþÈþÉþÊþËþÌþÍþÎþÏ+$*9þÐþÑþÒþÓþÔþÕþÖþ×þØþÙþÚþÛþÜþÝþÞþß+$*9þàáâãä$+;vI þæçèéêëìíîvJ
+$+;vK $*9þñ þó þõ þ÷ þùþûþý   $*:¡¡ $*:¡¢ $*:¡£ $*:¡¤ $*:¡¥ $*:¡¦ $*:¡§ $*:¡¨ $*:¡© $*:¡ª $*:¡« $*:¡¬ $*:¡­ $*:¡® $*:¡¯
+$*:¡° $*:¡± $*:¡² $*:¡³ $*:¡´ $*:¡µ $*:¡¶ $*:¡· $*:¡¸ $*:¡¹ $*:¡º $*:¡» $*:¡¼ $*:¡½ $*:¡¾ $*:¡¿
+$*:¡À$*:¡Á$*:¡Â$*:¡Ã$*:¡Ä$*:¡Å$*:¡Æ$*:¡Ç$*:¡È$*:¡É$*:¡Ê$*:¡Ë$*:¡Ì$*:¡Í$+;u% $*:¡Ï+$*:¡Ð$*:¡Ñ$*:¡Ò$*:¡Ó$*:¡Ô$*:¡Õ$*:¡Ö$*:¡×$*:¡Ø$*:¡Ù$*:¡Ú$*:¡Û$*:¡Ü$*:¡Ý$*:¡Þ$*:¡ß+$*:¡à$*:¡á$*:¡â$*:¡ã$*:¡ä$*:¡å$*:¡æ$*:¡ç$*:¡è$*:¡é$*:¡ê$*:¡ë$*:¡ì$*:¡í$+;u' $*:¡ï$*:¡ð*:¡ñ*:¡ò*:¡ó*:¡ô*:¡õ*:¡ö*:¡÷*:¡ø:¡ù:¡ú:¡û:¡ü¡ý¡þ
+   $*:£¡ $*:£¢ $*:££ $*:£¤ $*:£¥ $*:£¦ $*:£§ $*:£¨ $*:£© $*:£ª $*:£« $*:£¬ $*:£­ $*:£® $*:£¯
+$+;u) $*:£± $*:£² $*:£³ $*:£´ $*:£µ $*:£¶ $*:£· $*:£¸ $*:£¹ $*:£º $*:£» $*:£¼ $*:£½ $*:£¾ $*:£¿
+$*:£À$*:£Á$*:£Â$*:£Ã$*:£Ä$*:£Å$*:£Æ$*:£Ç$+;u* $*:£É$*:£Ê$*:£Ë$*:£Ì$*:£Í$*:£Î$*:£Ï+$*:£Ð$*:£Ñ$*:£Ò$*:£Ó$*:£Ô$+;u- $*:£Ö$*:£×$*:£Ø$*:£Ù$*:£Ú$*:£Û$*:£Ü$*:£Ý$*:£Þ$*:£ß+$*:£à$*:£á$*:£â$*:£ã$*:£ä$*:£å$*:£æ$*:£ç$*:£è$*:£é$*:£ê$*:£ë$*:£ì$*:£í$*:£î$*:£ï$*:£ð*:£ñ*:£ò*:£ó*:£ô*:£õ*:£ö*:£÷*:£ø:£ù:£ú:£û:£ü£ý£þ
+   $*:¤¡ $*:¤¢ $*:¤£ $*:¤¤ $+;u5 $*:¤¦ $*:¤§ $*:¤¨ $*:¤© $*:¤ª $*:¤« $*:¤¬ $*:¤­ $*:¤® $*:¤¯
+$*:¤° $*:¤± $*:¤² $*:¤³ $*:¤´ $*:¤µ $*:¤¶ $*:¤· $*:¤¸ $*:¤¹ $*:¤º $*:¤» $*:¤¼ $*:¤½ $*:¤¾ $*:¤¿
+$*:¤À$*:¤Á$*:¤Â$*:¤Ã$*:¤Ä$*:¤Å$*:¤Æ$*:¤Ç$*:¤È$*:¤É$*:¤Ê$*:¤Ë$*:¤Ì$*:¤Í$*:¤Î$*:¤Ï+$*:¤Ð$*:¤Ñ$*:¤Ò$*:¤Ó$*:¤Ô$*:¤Õ$*:¤Ö$*:¤×$*:¤Ø$*:¤Ù$*:¤Ú$*:¤Û$*:¤Ü$*:¤Ý$*:¤Þ$*:¤ß+$*:¤à$*:¤á$*:¤â$*:¤ã$*:¤ä$*:¤å$*:¤æ$*:¤ç$*:¤è$*:¤é$*:¤ê$*:¤ë$*:¤ì$*:¤í$*:¤î$*:¤ï$*:¤ð*:¤ñ*:¤ò*:¤ó*:¤ô*:¤õ*:¤ö*:¤÷*:¤ø:¤ù:¤ú:¤û:¤ü¤ý¤þ
+   $*:¥¡ $*:¥¢ $*:¥£ $*:¥¤ $*:¥¥ $*:¥¦ $*:¥§ $*:¥¨ $*:¥© $*:¥ª $*:¥« $*:¥¬ $*:¥­ $*:¥® $*:¥¯
+$*:¥° $*:¥± $*:¥² $*:¥³ $*:¥´ $*:¥µ $*:¥¶ $*:¥· $*:¥¸ $*:¥¹ $*:¥º $*:¥» $*:¥¼ $*:¥½ $*:¥¾ $*:¥¿
+$*:¥À$*:¥Á$*:¥Â$*:¥Ã$*:¥Ä$*:¥Å$*:¥Æ$*:¥Ç$*:¥È$*:¥É$*:¥Ê$*:¥Ë$*:¥Ì$*:¥Í$*:¥Î$*:¥Ï+$*:¥Ð$*:¥Ñ$+;u< $*:¥Ó$*:¥Ô$*:¥Õ$*:¥Ö$*:¥×$*:¥Ø$*:¥Ù$*:¥Ú$*:¥Û$*:¥Üu> $*:¥Þ$*:¥ß+$*:¥à$*:¥á$*:¥â$*:¥ã$*:¥ä$*:¥å$*:¥æ$*:¥ç$*:¥è$*:¥é$*:¥ê$*:¥ë$*:¥ì$*:¥í$*:¥î$*:¥ï$*:¥ð*:¥ñ*:¥ò*:¥ó*:¥ô*:¥õ*:¥ö*:¥÷*:¥ø:¥ù:¥ú:¥û:¥ü¥ý¥þ
+   $*:¨¡ $*:¨¢ $*:¨£ $*:¨¤ $*:¨¥ $*:¨¦ $*:¨§ $*:¨¨ $*:¨© $*:¨ª $*:¨« $*:¨¬ $*:¨­ $*:¨® $*:¨¯
+$*:¨° $*:¨± $*:¨² $*:¨³ $*:¨´ $*:¨µ $*:¨¶ $*:¨· $*:¨¸ $*:¨¹ $*:¨º $*:¨» $*:¨¼ $*:¨½ $*:¨¾ $*:¨¿
+$*:¨À$*:¨Á$*:¨Â$*:¨Ã$*:¨Ä$*:¨Å$*:¨Æ$*:¨Ç$*:¨È$*:¨É$*:¨Ê$*:¨Ë$*:¨Ì$*:¨Í$*:¨Î$*:¨Ï+$*:¨Ð$*:¨Ñ$*:¨Ò$*:¨Ó$*:¨Ô$*:¨Õ$*:¨Ö$*:¨×$*:¨Ø$*:¨Ù$*:¨Ú$*:¨Û$*:¨Ü$*:¨Ý$*:¨Þ$*:¨ß+$*:¨à$*:¨á$*:¨â$*:¨ã$*:¨ä$*:¨å$*:¨æ$*:¨ç$*:¨è$*:¨é$*:¨ê$*:¨ë$*:¨ì$*:¨í$*:¨î$*:¨ï$*:¨ð*:¨ñ*:¨ò*:¨ó*:¨ô*:¨õ*:¨ö*:¨÷*:¨ø:¨ù:¨ú:¨û:¨ü¨ý¨þ
+   $*:¬¡ $*:¬¢ $*:¬£ $*:¬¤ $+;uB $*:¬¦ $*:¬§ $*:¬¨ $*:¬© $*:¬ª $*:¬« $*:¬¬ $*:¬­ $*:¬® $*:¬¯
+$*:¬° $*:¬± $*:¬² $*:¬³ $*:¬´ $*:¬µ $*:¬¶ $*:¬· $*:¬¸ $*:¬¹ $*:¬º $*:¬» $*:¬¼ $*:¬½ $*:¬¾ $*:¬¿
+$*:¬À$*:¬Á$*:¬Â$*:¬Ã$*:¬Ä$*:¬Å$*:¬Æ$+;uF $*:¬È$*:¬É$*:¬Ê$*:¬Ë$*:¬Ì$*:¬Í$*:¬Î$*:¬Ï+$*:¬Ð$*:¬Ñ$*:¬Ò$*:¬Ó$*:¬Ô$*:¬Õ$*:¬Ö$*:¬×$*:¬Ø$*:¬Ù$*:¬Ú$*:¬Û$*:¬Ü$*:¬Ý$*:¬Þ$*:¬ß+$*:¬à$*:¬á$*:¬â$*:¬ã$*:¬ä$*:¬å$*:¬æ$*:¬ç$*:¬è$*:¬é$*:¬ê$*:¬ë$*:¬ì$*:¬í$*:¬î$*:¬ï$*:¬ð*:¬ñ*:¬ò*:¬ó*:¬ô*:¬õ*:¬ö*:¬÷*:¬ø:¬ù:¬ú:¬û:¬ü¬ý¬þ
+   $*:­¡ $*:­¢ $*:­£ $*:­¤ $*:­¥ $*:­¦ $*:­§ $*:­¨ $*:­© $*:­ª $*:­« $*:­¬ $*:­­ $*:­® $*:­¯
+$*:­° $*:­± $*:­² $*:­³ $*:­´ $*:­µ $*:­¶ $*:­· $*:­¸ $*:­¹ $*:­º $*:­» $*:­¼ $*:­½ $*:­¾ $*:­¿
+$*:­À$*:­Á$*:­Â$*:­Ã$*:­Ä$*:­Å$*:­Æ$*:­Ç$*:­È$*:­É$*:­Ê$*:­Ë$*:­Ì$*:­Í$*:­Î$*:­Ï+$*:­Ð$*:­Ñ$*:­Ò$*:­Ó$*:­Ô$*:­Õ$*:­Ö$*:­×$*:­Ø$*:­Ù$*:­Ú$*:­Û$*:­Ü$*:­Ý$*:­Þ$*:­ß+$*:­à$*:­á$*:­â$*:­ã$*:­ä$*:­å$*:­æ$*:­ç$*:­è$*:­é$*:­ê$*:­ë$*:­ì$*:­í$*:­î$*:­ï$*:­ð*:­ñ*:­ò*:­ó*:­ô*:­õ*:­ö*:­÷*:­ø:­ù:­ú:­û:­ü­ý­þ
+   $*:®¡ $*:®¢ $*:®£ $*:®¤ $*:®¥ $*:®¦ $*:®§ $*:®¨ $*:®© $*:®ª $*:®« $*:®¬ $*:®­ $*:®® $*:®¯
+$*:®° $*:®± $*:®² $*:®³ $*:®´ $*:®µ $*:®¶ $*:®· $*:®¸ $*:®¹ $*:®º $*:®» $*:®¼ $*:®½ $*:®¾ $*:®¿
+$*:®À$*:®Á$*:®Â$*:®Ã$*:®Ä$*:®Å$*:®Æ$*:®Ç$*:®È$*:®É$*:®Ê$*:®Ë$*:®Ì$*:®Í$*:®Î$*:®Ï+$*:®Ð$*:®Ñ$*:®Ò$*:®Ó$*:®Ô$*:®Õ$*:®Ö$*:®×$*:®Ø$*:®Ù$*:®Ú$*:®Û$*:®Ü$*:®Ý$*:®Þ$*:®ß+$*:®à$*:®á$*:®â$*:®ã$*:®ä$*:®å$*:®æ$*:®ç$*:®è$*:®é$*:®ê$*:®ë$*:®ì$*:®í$*:®î$*:®ï$*:®ð*:®ñ*:®ò*:®ó*:®ô*:®õ*:®ö*:®÷*:®ø:®ù:®ú:®û:®ü®ý®þ
+   $*:¯¡ $*:¯¢ $*:¯£ $*:¯¤ $*:¯¥ $*:¯¦ $*:¯§ $*:¯¨ $*:¯© $*:¯ª $+;uQ $*:¯¬ $*:¯­ $*:¯® $*:¯¯
+$*:¯° $*:¯± $*:¯² $*:¯³ $*:¯´ $*:¯µ $*:¯¶ $*:¯· $*:¯¸ $*:¯¹ $*:¯º $*:¯» $*:¯¼ $*:¯½ $*:¯¾ $*:¯¿
+$*:¯À$*:¯Á$*:¯Â$*:¯Ã$*:¯Ä$*:¯Å$*:¯Æ$*:¯Ç$*:¯È$*:¯É$*:¯Ê$*:¯Ë$*:¯Ì$*:¯Í$*:¯Î$*:¯Ï+$*:¯Ð$*:¯Ñ$*:¯Ò$*:¯Ó$*:¯Ô$*:¯Õ$*:¯Ö$*:¯×$*:¯Ø$*:¯Ù$*:¯Ú$*:¯Û$*:¯Ü$*:¯Ý$+;uS $*:¯ß+$*:¯à$*:¯á$*:¯â$*:¯ã$*:¯ä$*:¯å$*:¯æ$*:¯ç$*:¯è$*:¯é$*:¯ê$*:¯ë$*:¯ì$*:¯í$*:¯î$*:¯ï$*:¯ð*:¯ñ*:¯ò*:¯ó*:¯ô*:¯õ*:¯ö*:¯÷*:¯ø:¯ù:¯ú:¯û:¯ü¯ý¯þ
+   $*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$+;uX $*:î$*:î+$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î+$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î+$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î+$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î+$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î$*:î+   $*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï+$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï+$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï+$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï+$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï+$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï$*:ï+   $*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$+;ui $*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$+;ur $*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð$*:ð   $*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$+;uv $*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ$*:ñ   $*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$+;uw $*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$+;ux $*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$+;uy $*:ò$*:ò$*:òuz $*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$*:ò$+;v# $*:ò$*:ò   $*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$+;v$ $*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó$*:ó   $*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô$*:ô   $*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ$*:õ   $*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$+;v. $*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö$*:ö   $*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$*:÷$+;v4 $*:÷$*:÷   $*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø$*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø$*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø$*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø$*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø$*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø*:ø  $*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù$*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù$*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù$*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù$*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù$*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù*:ù  $*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú$*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú$*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú$*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú+;v? $*:ú*:ú*:ú*:ú*:ú*:ú*:ú$*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú$*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú*:ú  $*:û*:û*:û*:û*:û*:û*:û*:û*:û*:û*:û*:û*:û*:û*:û$*:û*:û*:û*:û*:û*:û*:û*:û*:û*:û*:û*:û*:û*:û*:û*:û$*:û*:û*:û*:û*:û*:û*:û*:û*:û*:û*:û*:û*:û*:û*:û*:û$*:û*:û*:û*:û*:û*:û*:û*:û*:û*:û*:û*:û*:û*:û*:û*:û$*:û*:û*:û*:û*:û*:û*:û*:û*:û*:û*:û*:û*:û*:û*:û*:û$*:û*:û*:û*:û*:û*:û*:û*:û*:û*:û*:û*:û*:û*:û*:û  $*:ü:ü:ü:ü:ü:ü:ü:ü:ü:ü:ü:ü:ü:ü:ü*:ü:ü:ü:ü:ü:ü:ü:ü:ü:ü:ü:ü:ü:ü:ü:ü*:ü:ü:ü:ü:ü:ü:ü:ü:ü:ü:ü:ü:ü:ü:ü:ü*:ü:ü:ü:ü:ü:ü:ü:ü:ü:ü:ü:ü:ü:ü:ü:ü*:ü:ü:ü:ü;vF $*:ü:ü:ü:ü:ü:ü:ü:ü:ü:ü:ü*:ü:ü:ü:ü:ü:ü:ü:ü:ü:ü:ü:ü:ü:ü:ü $*:ý:ý:ý:ý:ý:ý:ý:ý:ý:ý:ý:ý:ý:ý:ý*:ý:ý:ý:ý:ý:ý:ý:ý:ý:ý:ý:ý:ý:ý:ý:ý*:ý:ý:ý:ý:ý:ý:ý:ý:ý:ý:ý:ý:ý:ý:ý:ý*:ý:ý:ý:ý:ý:ý:ý:ý:ý:ý:ý:ý:ý:ý:ý:ý*:ý:ý:ý:ý:ý:ý:ý:ý:ý:ý:ý:ý:ý:ý:ý:ý*:ý:ý:ý:ý:ý:ý:ý:ý:ý:ý:ý:ý:ý:ý:ý $*:þ¡ $*:þ¢ $*:þ£ $*:þ¤ $*:þ¥ $*:þ¦ $*:þ§ $*:þ¨ $*:þ© $*:þª $*:þ« $*:þ¬ $*:þ­ $*:þ® $*:þ¯
+$*:þ° $*:þ± $*:þ² $*:þ³ $*:þ´ $*:þµ $*:þ¶ $*:þ· $*:þ¸ $*:þ¹ $*:þº $*:þ» $*:þ¼ $*:þ½ $*:þ¾ $*:þ¿
+$*:þÀ$*:þÁ$*:þÂ$*:þÃ$*:þÄ$*:þÅ$*:þÆ$*:þÇ$*:þÈ$*:þÉ$*:þÊ$*:þË$*:þÌ$*:þÍ$*:þÎ$*:þÏ+$*:þÐ$*:þÑ$*:þÒ$*:þÓ$*:þÔ$*:þÕ$*:þÖ$*:þ×$*:þØ$*:þÙ$*:þÚ$*:þÛ$*:þÜ$*:þÝ$*:þÞ$*:þß+$*:þà$*:þá$*:þâ$*:þã$*:þä$*:þå$*:þæ$*:þç$*:þè$*:þé$*:þê$*:þë$*:þì$*:þí$*:þî$*:þï$*:þð*:þñ*:þò*:þó*:þô*:þõ*:þö  $+;u! u" u# u$ u% u& u' u( u) u* u+ u, u- u. u/
+$+;u0 u1 u2 u3 u4 u5 u6 u7 u8 u9 u: u; u< u= u> u?
+$+;u@ uA uB uC uD uE uF uG uH uI uJ =l uL uM uN uO
+$+;uP uQ uR uS 6{ uU uV uW uX uY uZ u[ u\ u] u^ u_
+$+;u` ua ub uc ud ue uf ug uh ui uj uk ul um un uo
+$+;up uq ur us ut uu uv uw ux uy uz 5@ c9 u} u~
+   $+;v! v" v# v$ v% v& v' v( v) v* v+ v, 3k v. K)
+$+;v0 v1 ?* v3 v4 v5 3Q v7 v8 DT v: v; v< E" v> v?
+$+;v@ vA vB vC vD q- vF vG ;* vI vJ vK
+   z! z" z# z$ z% z&   z( z) z* z+
+z0 z1     z4 z5 z6 z7 z8 z9 z: z; z< z= z> z?
+z@ zA zB zC zD zE zF zG zH         zM zN zO
+zP zQ zR zS zT zU zV zW zX zY }> z[ z\ z] z^ z_
+z` za zb zc zd ze zf zg zh zi zj zk zl zm zn zo
+zp zq zr zs zt
+   {! {" {# {$ {% {& {' ") {) {* {+ {, {- {. {/
+{0 {1 {2 {3 {4 {5 {6 {7 {8 {9 {: {; {< {= {> {?
+{@ {A {B {C {D {E {F {G {H {I {J }{ {L {M {N {O
+{P {Q
+   |! |" |# |$ |% |& G/ 7n F| 1_ |+ |, |- |. |/
+|0 |1 |2 |3 |4 |5 |6 |7 |8 |9
+|@ |A |B |C |D |E |F |G |H |I |J |K |L |M |N |O
+|P |Q |R |S |T |U |V |W
+            |v |w |x |y |z |{
+   }! }" }# }$ }% }& }' }( }) }* }+ }, }- }. }/
+}0 }1 }2 }3 }4 }5 }6 }7 }8 }9 }: }; }< }= }> }?
+}@ }A }B }C }D }E }F }G }H }I }J }K }L }M
+}P }Q }R }S }T }U }V }W }X }Y }Z }[ }\ }] }^ }_
+}` }a }b }c }d }e }f }g }h }i }j }k }l }m }n }o
+}p }q }r }s }t }u }v   }x }y }z }{
+   ~! ~" ~# ~$ ~% ~& ~' ~( ~) ~* ~+ ~, ~- ~. ~/
+~0 ~1 ~2 ~3 ~4 ~5 ~6 ~7 ~8 ~9 ~: ~; ~< ~= ~> ~?
+~@ ~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 ~[ ~\ ~] ~^ ~_
+~` ~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 ~{ ~| ~}
diff --git a/iconvdata/testdata/ARIB-STD-B24..UTF8 b/iconvdata/testdata/ARIB-STD-B24..UTF8
new file mode 100644
index 0000000..60ad4b0
--- /dev/null
+++ b/iconvdata/testdata/ARIB-STD-B24..UTF8
@@ -0,0 +1,766 @@
+  ! " # $ % & ' ( ) * + , - . /
+0 1 2 3 4 5 6 7 8 9 : ; < = > ?
+@ 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 [ Â ] ^ _
+` 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 { | } â
+   ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï
+ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï
+ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï
+ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï
+   ã ã ã ï ï ã ï ï ï ï ã ã Â ï Â
+ï ï ï ã ã ã ã ã ä ã ã ã ã â â ï
+ï ã â ï â â â â â â ï ï ã ã ï ï
+ï ï ã ã ã ã ã ã ã ã ã ã ï â Â Ã
+Ã ï â ï ï â â â â â â Â â â â ï
+ï Â Â ï ï ï ï ï Â â â â â â â
+   â â â â â â â â ã â â â â ã ï
+ï ï ï ã ã ã ã ã ã ã â â â â â â
+â â â â â â â â â â â â Â â â â
+â â â â â â ï ï ã ã ã ã â â â â
+â â â â â â â â â â â â â â â â
+â â â â â â â â â Â â â â â â
+   â â â â â â â â â â â â â â â
+ï ï ï ï ï ï ï ï ï ï â â ã ï ï â
+â ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï
+ï ï ï ï ï ï ï ï ï ï ï â â â ã â
+â ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï
+ï ï ï ï ï ï ï ï ï ï ï ã â â â
+   ã ã ã ã ã ã ã ã ã ã ã ã ã ã ã
+ã ã ã ã ã ã ã ã ã ã ã ã ã ã ã ã
+ã ã ã ã ã ã ã ã ã ã ã ã ã ã ã ã
+ã ã ã ã ã ã ã ã ã ã ã ã ã ã ã ã
+ã ã ã ã ã ã ã ã ã ã ã ã ã ã ã ã
+ã ã ã ã ã ã ã ãã ãã ãã ãã ãã
+   ã ã ã ã ã ã ã ã ã ã ã ã ã ã ã
+ã ã ã ã ã ã ã ã ã ã ã ã ã ã ã ã
+ã ã ã ã ã ã ã ã ã ã ã ã ã ã ã ã
+ã ã ã ã ã ã ã ã ã ã ã ã ã ã ã ã
+ã ã ã ã ã ã ã ã ã ã ã ã ã ã ã ã
+ã ã ã ã ã ã ã ãã ãã ãã ãã ãã ãã ãã ãã
+   Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î
+Î Î Î Î Î Î Î Î Î â â â â â â â
+â Î Î Î Î Î Î Î Î Î Î Î Î Î Î Î
+Ï Ï Ï Ï Ï Ï Ï Ï Ï Ï â â â â â â
+â â â â â â ã â â â â â â â ã ã
+ã ã ã ã ã ã ã ã ãã ã ã ã ã ã ã
+   Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð
+Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð
+Ð Ð â â â â â â â â â â â â â â
+â Ð Ð Ð Ð Ð Ð Ñ Ð Ð Ð Ð Ð Ð Ð Ð
+Ð Ð Ñ Ñ Ñ Ñ Ñ Ñ Ñ Ñ Ñ Ñ Ñ Ñ Ñ Ñ
+Ñ Ñ ã ã ã ã â â â â â â â â â
+   â â â â â â â â â â â â â â â
+â â â â â â â â â â â â â â â â
+â ã ã ã ã ã ã ã ã ã ã ã ã ã ã ã
+ã ã ã ã ã ã ã ã ã ã ã ã ã ã ã
+                     â â â â â â â â Ç
+Ç Ç á á Ç Ç Ç Ç Ç Ç Ç Ç Ç
+   â Â Â Â Â Â Â Â Â Â Â Â Â Â Â
+Â Â Â Â Â Â Â Ã Ã Ã Ã Ã Ã Ã Ã Ã
+Ã Ã Ã Ã Ã Ã Ã Ã Ã Ã Ã Ã Ã Ã Ã Ã
+Ã Ã Ã Ã Ã Ã Ã Ã Ã Ã Ã Ã Ã Ã Ã Ã
+Ã Ã Ã Ã Ã Ã Ã Ã Ã Ã Ã Ã Ã Ã Ã Ã
+Ã Ã Ã Ã Ã Ä Ä Å Ä Å Ä Ä Å Ä Å
+   Ä Ë Å Ä Å Å Å Å Å Å Å Ä Ë Å Ä
+Å Ë Å Å Å Å Ë Å Å Å Ä Ä Ä Ä Ä Ä
+Ä Å Å Å Å Å Å Å Å Ä Ä Ä Ä Ä Ä Ä
+Ä Å Å Å Å Å Å Å Ë Ä Ä Ä Ä Å Å Ä
+Ä Ä Ä Å Å É Ê É Ê Ê É É É Ê É É
+É Ê Ê É É É É Ê Ê É Å É Ê Ä Ê
+   Ê É Ê Ç É É Ê É Æ Å Å É Ê É É
+É É É É É Ê É Ê É É É Ê É Ê Ê É
+Ê É É É ÃÌ Ç á á ÉÌ ÉÌ ÊÌ ÊÌ ÉÌ ÉÌ ÉÌ ÉÌ
+á á Í Ë Ë Ë Ë Ì â Ì Ì Ì Ì Ì Ì Ì
+Ë Ë Ë Ë Ë ËË ËË Ì Ì Ì Ì Ì Ì Ì Ì Ì
+Ì Ë Ì Ì Ì Ì Ì Ì Ì Ì Ì Ì Ì Ì Ì
+   â â â â â â â â â â â â â â â
+â â â â â â â â â â â â â â â â
+â â â â â â â â â â â â â â â â
+â â â â â â â â â â â ã ã ã ã ã
+ã ã ã ã ã ã ã ã ã ã ã ã ã ã ã ã
+ã ã ã ã                            â â
+   â â â â â â â â â â â â â â â
+â â â â â â â â â â â â â â â â
+ã ã ã ã ã ã ã ã ã ã ã ã ã ã ã ã
+ã ã ã ã ã ã ã â                      ã
+ã ã â ã â ã ã ã ã ã ã ã ã ã ã ã
+         â             â â          â â
+   ä ð ã ä ä ä ä ä ä ä ä ä ä ä ä
+ä ä ä ä ä ä ä ä ï ä ä å å å å å
+å å å å å å å å å ï å å å å å å
+ï å å ã å å å å å å å ã å å å å
+å å å ï å å å å ï å å å å å ï å
+å å å å å å å å å å å å å å å
+   å å å å å å å å å å å ï å å ï
+å å å å å å ï å å å å å å å å å
+å å ð å å å å å å å å ï ð å å å
+å å å å å å å ï å å ï å å å ï å
+ð å å å å å å å è å å å å å å å
+å å å å å å å å å å å ð å å å
+   ä å å é å æ æ å é è è ç æ æ æ
+æ è è é æ å æ æ å å è é ç ç é æ
+ç è å å æ æ æ é é æ ä ä ä ä å å
+å å å å æ æ æ æ æ ç ç ç ç ç ç è
+è è è é é å ä ä å è é ç ä å æ é
+ç è è é å å å å å å å é æ è è
+   é é é é å å å ç ç è é å é ç ä
+ç è æ å å æ è é å å æ ç é å ä é
+é è é å å å å æ æ æ æ æ æ ç ç ç
+é è è è é æ ç ç é æ è è é æ å å
+å å å å å æ æ æ æ æ ç ç ç ç ç ç
+è è è é é é å æ æ ç å å å å å
+   æ æ æ æ æ ç ç è é é é å æ è å
+å æ è æ ç ä ä å æ æ ç é ä å ä ä
+ä ä ä å å å å å å å ç æ æ æ æ æ
+ç ç ç ç ç ç è è è è è è è è å è
+è é é è ä å æ ç ç è è è è é é é
+ä ä è å å å å å æ æ æ æ æ æ æ
+   é æ æ æ ç ç ç ç è è é é è å å
+å å å å æ æ æ ç è è è é é æ é è
+å æ è é å å å å æ æ æ æ æ ç ç ç
+è è è è é é é é å å æ é é æ ç æ
+æ æ é æ å å æ æ æ æ æ è è è ä é
+å æ æ é æ å ç è é é å é æ è è
+   ç å è ç ä ä å å å å å å å å å
+å å å å å æ æ æ æ æ æ æ æ æ æ æ
+æ æ æ æ ç ç ç ç ç ç ç ç ç ç è è
+è è è è é é é é é é é é è ä å å
+å ç ç ç å ç è é é é é ä ä å å å
+å å å å å å å å æ æ æ æ æ æ æ
+   æ å æ æ æ ç ç å ç ç å è è è è
+è è é é é ä å å å å æ æ æ æ ç ç
+ç ç è è è æ è é å å å æ æ è ç æ
+é å å è è é ä ä ä ä å å å å æ æ
+æ æ æ æ ç ç ç ç ç ç ç ç æ ç å å
+å æ æ æ æ è è è é æ ç é ä ä ä
+   ä ä å å ç å å å å å å å å å å
+å æ æ æ æ æ æ æ ç ç ç è è è è é
+é é é é ä å å æ æ å æ æ ç æ ç å
+å å å é æ æ æ ç ç ç ç ç è è è è
+è è é å é ä å å å ç ç ç è è é é
+é å æ è å ç å å é é ä æ é å å
+   æ ç æ é è ç ç é ç æ ç æ é å å
+è è ç è é å è ç ä å å å å å ç å
+å å å æ æ æ æ æ æ æ æ æ æ ç ç ç
+ç ç ç ç è è è è è è è é é è è é
+å æ æ æ é æ å æ æ æ ç ç è è æ ä
+å å å å å å å å å å å æ æ æ æ
+   æ æ ç ç ç ç ç ç ç è è è è è é
+é é é é é å å å å å æ æ ç ç ç è
+è è é ä å å å å å å å å å æ æ æ
+æ ç ç è è è è è è è é é é é ä ä
+ä å å å å å å æ æ æ ç ç è è è é
+ä é ä ä ä å å å å å å å å å å
+   å å å å å å å å å å å å å å å
+å æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+æ æ æ ç ç ç ç ç ç ç ç ç è è è è
+è è è è è è è è è é é é ç é é é
+é é é é å å å å å æ æ è è é å å
+å å ç é é é ç æ è ç å æ é ç è
+   æ é ä å å å å æ æ æ æ æ æ æ ç
+ç è é ä ä å å å å å æ æ ç ç è é
+è å å æ å å å æ å å å å å æ æ æ
+æ æ ç é ç ç ç ç æ ç è è è é å å
+æ ç è å å é å æ è å å å ç é ä å
+å æ æ æ æ ç ç ç é æ é ç å å å
+   å æ æ æ æ æ è é ç é æ é é ç æ
+ä å å å æ æ æ æ ç ç ç ç ç è è è
+é é æ æ æ ä ä ä ä å å å å å å å
+å å å å å å å æ æ æ å æ æ æ æ æ
+æ æ ç ç ç ç ç ç è è è è è è è è
+è è è é é æ ä ä ä å å å æ æ æ
+   æ æ æ ç ç ç ç ç è è è è è æ é
+å è é ç è å é ä å å å å å æ æ æ
+ç è å è ç å æ è å è ç è å å æ è
+æ ç ç ç è è è é è é å å å æ ç ç
+é é é è å å æ ä å å æ æ æ ç ç ç
+è è é é å å å å æ æ ç é å å å
+   å å å ä æ æ æ ç ç ç ç ç è è è
+è è è è è é é é é é ä ä å å å æ
+æ æ æ ç ç é é å å å æ ç ç ç å ç
+å è è ä å æ ç ç è é å å æ æ æ æ
+æ æ ç ç å é é é å å æ æ æ æ å ç
+ç æ è è è å å å å å æ é é å å
+   å å å å å å å å å å å å å å å
+å å å å å æ æ æ æ æ æ æ æ æ æ æ
+æ æ æ æ æ æ ç ç ç ç ç ç ç ç ç ç
+ç ç ç è è è è è è è è è è è è é
+é é é é é ä ä ä ä å å å å å å å
+æ æ æ æ æ ç ç ç è è é é å å é
+   æ æ æ ç ç è è è é è è å ä ä ä
+å å å å å æ æ æ æ æ æ æ æ ç ç ç
+ç ç ç è è è è è è è é é é ä ä å
+å å å ç å è è è é é ç è é é å å
+é å å å æ æ ç ç ç ç è é é é é é
+ç é å å æ æ è é æ æ æ è é é è
+   æ æ å ä ç ç æ å å å å å æ æ æ
+æ æ æ æ æ æ æ ç ç ç ç è å è è è
+è è é é é é æ ç è é å æ æ æ æ æ
+ç ç ç ç è è è è è ç å æ æ æ æ è
+ç ç è é ç è è ä å å å å å å å æ
+æ æ æ æ æ æ æ æ æ ç ç æ ç ç ç
+   ç ç è è è è è è è é é é é é é
+å å æ ç å ç ç è ç å å å æ æ æ æ
+ç ç ç ç ç ç ç ç ç è è é é é å å
+å å å å å å ç å å å æ æ æ æ æ æ
+æ æ æ å æ æ æ ç ä ç ç ç ç ç ç è
+è è è è è è è é é é é é å å æ
+   è è è é ä å å å æ æ æ æ è é ä
+å è æ ç å è å æ å å å æ æ é ä å
+å æ è å å å æ æ æ è æ é é é ä å
+å è å å å æ æ æ æ æ æ è è è è è
+é é é é é ä å å ç é é é æ ç å å
+å æ æ æ æ æ ç è é æ è è å è å
+   å ä é è å è å ç è æ è ç é æ è
+ä å å å æ æ æ æ æ æ ç ç ç ç ç è
+è è è é å å å æ æ æ æ ç è å ç å
+å æ æ æ ç ç ç è è é é ç ç ç ç è
+é ç ç è å ç ä ä å å æ æ æ æ è è
+è é é é æ ç ç è è è ä å å å å
+   å å å å å å å æ æ æ æ æ ç ç ç
+è è è è è è è è é é é é å æ ç æ
+æ ç è é é æ å æ æ è é ç é å æ æ
+æ ä æ æ è è ç é æ æ å å å ç ç å
+é é ä ä å å å è å å å å å å å å
+æ æ æ æ æ æ ç ç ç ç è è è è é
+   é é é é æ æ æ æ æ ç ç é é æ å
+å æ è è é å å å å å æ ç ç è è é
+ç ä æ æ ç é å å å å å å å æ æ æ
+ç è è é é é ç ç å å å å æ å å å
+å å å å å å å å å æ æ æ æ æ æ æ
+ç æ æ æ ç ç å ç ç ç ç ç ç ç å
+   è è è è è è è é é é é é é é å
+å å å å æ æ æ ç ç è è é é å é å
+å å æ ç ç ç ç æ ç è æ æ å ç æ å
+é è å é ç å å æ æ æ è é é å æ é
+å é å ä å è è ç æ é æ é ç ç å æ
+è é æ ä å å è å è è è å æ ä å
+   å å é ä å å è æ ç ç å è ç ç å
+å æ æ ç ç ä å ä å å æ æ ç è è è
+è è è å æ æ è æ æ æ ç ç å ç è é
+ä å æ æ æ æ ç ç è è è é å å å æ
+æ ç ç è å è é é è ç ç è ä å å æ
+æ æ ç ç ç è è è æ æ ç ç è é é
+   å ç ç ç è ç æ å è ç ç å é æ ç
+é é ä ç æ ç é é å å è é ä å å å
+å å æ æ æ æ æ ç ç ç ç ç è è è ç
+é ç é é æ æ ç ç ç è è å å å å å
+å æ æ æ æ æ æ æ ç ç ç ç ç ç è è
+è è é é é æ ç å å å æ æ ç ç ç
+   é æ ç å ç é å è è è å å ç ç é
+æ å å ç ç è ä å æ æ æ ç ç è è è
+å æ ç ç è é é è è é å å æ æ ç è
+è é æ ç ä ä å å å å å å å æ æ æ
+æ æ æ ç ç è è è è è è è é é ä æ
+æ è è è é å æ é è è ä å å å æ
+   ç è è è æ å æ æ ä ç é å å å å
+æ æ ç å ç ç ç é æ è ä ä å å å å
+å æ ä è é é ç é å å ç ç å ç è ç
+å å ç ç ç è è é ä å å å é ä è é
+å æ æ ç è è ç å å æ æ æ æ ç è å
+ä å å å å å å å å å æ æ æ æ æ
+   æ æ ç ç ç è è è è è è è è é é
+é é é ä ä å å å å å å å æ æ æ æ
+æ å ç è è è è è é é å é å å å å
+æ æ ç ç ç é å æ æ å å å æ ç å ç
+æ ç é é å å æ æ æ å æ å è æ é æ
+é æ ä ä å æ æ æ è ä ç é ä æ æ
+   æ è å æ é å ç å å è æ è ç è å
+ç æ ç å å ç ç ç é é æ å å å å å
+æ ç è é é å ç æ å æ ç ç é é æ æ
+è å å æ ç ç ç è è å æ é ç æ å é
+å æ ç è å æ ç é å ä å å ç è é å
+ç å å ç è è è é æ è é æ æ æ ç
+   è è å ä å å å å å æ æ æ æ æ æ
+æ ç ç ç ç è è é é é é è å ä ä ä
+è è é å å å å å æ æ æ æ æ æ æ æ
+ç ç ç ç è è è è è è é é é æ æ æ
+æ æ ç ç æ ç è è æ è é é æ ç è é
+ä å å æ æ è è è å å å æ æ ç ç
+   ç è è é é é å ç ç è æ ç å æ æ
+ç ç ç ç é ç é ä æ æ è ä ä å ä å
+å æ æ æ ç ç ç ç ç è è é é é é å
+ç å å æ æ ç ç è è é é é ç å æ ç
+é ä ä ä å å å æ ç ç è é é é é é
+é æ æ å å ç è å æ æ æ ç ç ç è
+   è é é å é æ ç è è é å å å å æ
+æ æ æ æ ç ç ç è è è é å é ç è é
+è å å è æ è è æ æ é ä ä é è è è
+æ æ ç è ð å å å å å å å å å å ã
+å ï ï ð å å å å å å å å å å ð ã
+å å ï å å å å å å å å å å å å
+   å ä ä ä ä ä ä ä ä ä ä ä ä è ä
+è å ä ä ä ä ä ä ä ä ä ä ä ä ä ä
+ä ä ä ä ä ä ä ä ä ä ä ä ä ä ä ä
+ä ä ä ä ä ä å ä ä ä ä ä ä ä ä ä
+ä å å å å å å ä ä å å å ä ä å å
+å å æ å å å å å å å å å å å å
+   å å å å å å å å å å å å å å å
+å å å å å å å å å å å å å å å ç
+å å å å å å å å å å å å å å å å
+å å å å å å å å å å å å å è å å
+å å å å å å å å å å å å å å å å
+å å å å å å å å å å å å å å è
+   è å å å å å å å å å å é å å å
+å å å å ç å å å å å å å å å å å
+å å ä å å å å å å å å å å å å å
+å å å å å ç é å æ ç å å å å å å
+å å å å å å å å å å å å å å å å
+å å å å å å å å å å å å å å å
+   å å å å å å å å å å å å å å å
+å å å å å å å å å å å å å å å å
+å å å å å å å å å å å å å å å å
+å å å å å å å å å å å ç å å å å
+å å å å å å å å å å å å å å å å
+å å å å å å å å å å å å å å å
+   å å å å å å å å å å å å å å å
+å å å å å å å å å å å å å å å å
+å å å å å å å å å å å å æ å å å
+å å å å å å å å å å å å å å å å
+å å å å å å å å å å å å å æ å å
+å å å å ç å å å å å å å å å å
+   å å å ä ä å å å å å å å å å å
+å å å å å å å å å å å å å å å å
+å å å å å å å å å å å å å å å å
+å å å å å å å å å å å å å æ å å
+å å å å å å å å å å å å å å å å
+å å å å å å å å å å å å å å å
+   å å å å å ä å å å å å å å å å
+å å å å å å å å å å å å å å å å
+å å å å å å å å å å å å å å å å
+å å å å å å å å å å å å å å å å
+å å å å å å å å å å å å å å å å
+å å å å å å å é å å å å å å å
+   å å å å å å å å å å å å å å å
+å å å å å å å å å å å å å å å å
+å å å å å å å å å å å å å å å å
+å å å å å å å å å å å å æ å æ æ
+æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+   æ æ æ æ æ æ æ æ æ æ æ æ å æ æ
+æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+æ æ æ æ æ æ æ æ æ æ æ æ æ ç æ æ
+æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+   æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+   æ æ æ æ æ æ æ æ æ è æ æ æ æ æ
+æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+æ æ ç æ æ æ æ æ æ æ æ æ æ æ è æ
+æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+   æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+æ é æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+   æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+æ æ æ æ æ æ æ æ æ æ æ æ æ å æ æ
+æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+   æ è æ æ æ æ æ æ æ æ æ æ æ æ æ
+æ è æ æ æ é æ æ æ ç æ é æ æ æ æ
+æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+é æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+   æ æ æ æ æ æ è æ æ æ æ æ æ æ æ
+æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+æ æ æ æ æ ç æ æ æ æ æ æ æ æ æ
+   æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+æ æ æ ç ç æ ç ç ç æ ç ç æ ç ç ç
+ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç
+ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç
+ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç
+   ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç
+ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç
+ç ç ç ç ç ç ç å ç ç ç ç ç ç ç ç
+ç ç ç ç é ç ç ç ç ç ç ç ç ç ç ç
+ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç
+ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç
+   ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç
+ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç
+ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç
+ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç
+ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç
+ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç
+   ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç
+ç ç ç ç ç ç ç ç ç ç ç ç è ç ç ç
+ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç
+ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç
+ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç
+ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç
+   ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç
+ç ç ç ç ç ç ç é ç ç ç ç ç ç ç ç
+ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç
+ç ç ç ç é ç ç ç ç ç ç ç ç ç ç ç
+ç ç ç ç é ç ç ç ç ç ç ç ç ç ç ç
+ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç
+   ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç
+ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç
+ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç
+ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç
+ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç
+ç ç ç ç ç ç ç ç é ç ç ç ç ç ç
+   ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç
+ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç
+ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç
+ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç
+ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç
+è ç ç ç ç ç ç ç ç ç ç ç ç ç ç
+   ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç
+ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç
+ç è ç ç ç ç ç ç ç ç ç ç é è è è
+è è è è è è è è è è è è è è è è
+è è è è è è è è è è è è è è å è
+è è è è è è è è è è è è è è è
+   é è è è è è è è è è è è è è è
+è è è è è è è è è è è è è è è è
+è è è è è è è è è è è è è è è è
+è è è è è è è è è è è è è è è è
+è è è è è è è è è è è è è è è è
+è è è è è è è è è è è è è è è
+   è è è è è è è è è è è è è è è
+è è è è è è è è è è è è è è è è
+è è è è è è è è è è è è è è è è
+è è è è è è è è è è è è è è è è
+è è è è è è è è è è è è è è è è
+è è è è è è è è è è è è è è è
+   è è è è è è è è è è è è è è è
+è è è è è è è è è è è è è è è è
+è è è è è è è è è ä è è è è è è
+è è è è è è è è è è è è è è è è
+è è è è è è è è è è è è è è è è
+è è è è è è è è è è è è è è è
+   è è è è è è è è è è è è é è è
+è è è è è è è è è è è è è è è è
+è è è è è è è è è è è è è è è è
+è è è è è è è è è è è è è è è è
+è è è è è è è è è è è è è è è è
+è è è è è è è è è è è è è è è
+   è è è è è è è è è è è è è è è
+è è è è è è è è è è è è è è è è
+è è è è è è è è è è è è è è è è
+è è è è è è è è è è è è è è è è
+è è è è è è è è è è è è è è è è
+è é è è è è è è è è è è è è è
+   è è è è è è è è è è è è è è è
+è è è è è è è è è è è è è è è è
+è è è æ è è è è è è è è è è è è
+è è è è è è è è è è é è è è è è
+è è è è è è è è è è è è è è è è
+è è è è è è è è è è è è è è è
+   è è è è è è è è è è è è è è è
+è è è è è è è è è è è è è è è è
+è è è è è è è è è è è è è è è è
+è è è è è è è è è è è è è è è è
+è è è è è è è è è è è è è è é è
+é è è é é é é é é é é é é é è
+   é é é é é é é é é é é é é é é
+é é é é é é é é é é é é é æ é é
+é é é é é é é é é é é é é é é é
+é é é é é é é é é é é é é é é é
+é é é é é é é é é é é é é é é é
+é é é é é é é é é é é é é é é
+   é é é é é é é é é é é é é é é
+é é é é é é é é é é é é é é é é
+é é é é é é é é é é é é é é é é
+é é é é é é é é é é é é é é é é
+é é é é é é é é é æ é é é é é é
+é é é é é é é é é é é é é é é
+   é é é é é é é é é é é é é é é
+é é é é é é é è é é é é é é é é
+é é é é é é é é é é é é é é é é
+é é é é é å é é é é é é é é é é
+é é é é é é é é é é é é é é é ç
+é é é é é é é é é é é é é é é
+   é é é é é é é é é é é é é é é
+é é é é é é é é é é é é é é é é
+é é é é é é é é é é é é é é é é
+é é é é é é é é é é é é é é é é
+é é é é é é é é é é é é é é é é
+é é é é é é é é é é é é é é é
+   é é é é é é é é é é é é é é é
+é é é é é é é é é é é é é é é é
+é é é é é é é é é é é é é é é é
+é é é é é é é é é é é é é é é é
+é é é é é é é é é é é é é é é é
+é é é é é é é é é é é é é é é
+   é é é é é é é é é é é é é é é
+é é é é é é é é é é é é é é é é
+é é é é é é é é é é é é é é é é
+é é é é é é é é é é é é é é é é
+é é é é é é é é é ç é é é é é é
+é é é é é é é é é é é é é é é
+   å æ é ç å ç å å å å å å å ï å
+å å å å å å å å å å å å å å å å
+å å å å å å å å å å æ æ æ æ æ æ
+ï æ æ æ æ æ æ æ æ æ æ æ ï æ ï æ
+æ ï æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+   æ æ æ æ æ æ æ ï æ æ ï æ æ æ æ
+æ æ æ æ æ æ æ æ æ æ ð æ æ æ æ æ
+æ æ æ ï æ æ æ æ æ ã æ æ æ æ ï æ
+æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+æ æ æ æ æ ï æ æ æ æ æ æ æ æ æ æ
+æ æ ð æ æ æ æ æ æ æ ï æ æ æ ã
+   ã æ æ æ æ æ æ æ ð æ æ æ æ æ æ
+æ æ ð æ æ æ æ æ æ æ ã ï æ æ æ æ
+æ æ æ æ æ æ æ æ æ ï æ æ æ æ æ æ
+æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+ð æ æ æ æ æ æ æ æ ï æ æ æ æ æ æ
+æ æ æ æ æ æ æ ï æ æ æ æ æ æ æ
+   æ æ æ æ ï æ æ æ æ æ æ æ æ æ æ
+æ æ æ æ æ æ æ æ æ æ æ æ ç ç ç ç
+ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç
+ç ç ç ç ç ï ç ç ç ç ï ç ç ç ç ç
+ç ç ç ç ç ç ã ç ç ç ç ç ð ç ç ï
+ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç
+   ç ç ç ç ï ç ç ç ç ç ç ç ç ç ç
+ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç
+ç ç ç ç ç ç ç ç ç ç ç ç ç ã ç ç
+ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç
+ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç
+ç ç ç ç ç ç ç ç ç ç ç ç ç ç ð
+   ç ç ç ç ç ç ï ç ð ç ç ç ç ç ç
+ç ç ç ï ï ç ç ï ï ï ç ï ï ï ç ï
+ï ï ç ç ç ç ç ð ç ç ç ç ç ï ç ç
+ç ï ç ç ð ç ç ç ç ç ç ç ç ç ç ç
+ç ç ç ç ï ç ç ç ç ç ç ç ç ä ð ç
+ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç
+   ç ç ç ç ç ç ç ç ç ç ç ç ç ï ç
+ç ç ç ï ç ç ç ç ç ç ï ç ç ç ç ç
+ç ç ç ç ï è è è è è è è è è è è
+è è è è è è è è ï ä ä è è ð è è
+è è è è è è è è è è è è è è è è
+è è è è è è è è è è è è è è è
+   è è è è è è ï è è è è è è è è
+è è è ð è è è è è è ï è è è è è
+è è è è è è è è è ð è è è è è ï
+è ä è è è è è è è è è è è è è è
+ä è è è è è è è è è è è ð è è ï
+è è è è è è è è è ï è è è è è
+   è è è è è è è è è è è è è ï ï
+ï è è è è è è è ï è è è è ï è è
+è è è è è è è è è ð è ä è è è è
+è ð è è è è è é é ï é é é é é é
+é é é é é é é é é é ï é é é é é
+é é é é é é é é é é é é é é é
+   é é é é é é é é é é é é é é é
+é é é é é é é é é é é é é é é é
+é é é é é é é é é é é é é é é é
+é é é é é é é é ä é é é é ï é é
+é é é ï é é é é é é é é é é é é
+é é é é é é ï é é é é ï é é é
+   é é é ï é é é é é é é é é é é
+é é é é é é é é é é é é é é ä é
+é é é é é é é é é é é é é é é é
+é é é é é é é é é é é é é é é é
+é é é é é é ð é é é é é é é é é
+é é é é é é é é é é å å å ç ç
+   ð ä ä ä ä ä ä ä ä ä ð ä ã ð ä
+ä ä ã ã ä ä ð ä ä ä ä ä ä ä ä ä
+ä ä ä ä ä ä ð ä ä ä ä ä ä ä ä ä
+ä ä ä ä ä ä ã ä å å å å å å ã å
+å å å å å å å å å å å å å å å å
+ð å å å å å å ð å ð å å å å ã
+   å ð å å ð å ð å å å ã å å å ã
+å ð ð å å å å å ð å å å å å å ð
+å ð å å å å å å ã å ð å å å å å
+å å ð ð å å å å å ð å å ð ã ã å
+å ã å å å å å ã å å å å å å å å
+å å å å å å å ð å å å å å å å
+   å å ã å å ã å å å ð å å å å ã
+å ð ð å å å å å ã å ð å å ð å å
+å å ã å å å å å å å ã å å å å å
+å å å å å å å å å ð å å ð å ð å
+å å å ð å å å å å å ð ð å å å å
+å å ð å ð ð å å å ã å å å å å
+   å å å å ð å å å å å å å å å å
+å å ð å å å å å å å å å å å ð ã
+å ã å ã ð å å ð å å å å å å å å
+å å å å å ð ð ã å å å å å å å å
+å å å å å å å å å å å å å å å å
+å å å å å å å å å å å å å å ð
+   å å ã å ã å å ã ã å å ã å å å
+ð å å å å å å ð ð å ð ð å å ã ð
+ð å å å å ð å å ð å ð ð å å å å
+å å å å å å ã å å ã å ð ã å ã å
+å å å å å å ð å å å å å ð å å ã
+å ã å å ã å å å å ã å ã å å å
+   å ð å å å å å å å å ð å å å å
+ð å å å å å å å å å å ã å å å å
+å å å å å å ã æ æ æ ã æ æ æ æ æ
+ð æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+ã æ æ æ æ ð æ æ æ æ æ æ æ ð æ æ
+æ æ ð æ æ æ æ æ æ æ æ æ æ æ æ
+   æ æ æ ð æ æ æ æ ð ð æ æ æ æ æ
+æ æ ð æ ð ð æ æ æ ð æ æ æ æ æ æ
+æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+æ æ æ æ æ æ ð æ æ æ æ ã æ æ æ ã
+æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+æ ã æ æ æ æ æ æ æ æ æ æ ã ð æ
+   æ æ ð ð æ æ æ æ æ æ æ æ æ ã æ
+æ æ ã æ ã æ ã æ æ æ ð æ ð ð æ æ
+æ æ ð ð ð æ æ ð æ ð è æ æ æ æ æ
+æ æ æ æ æ ð ð ð æ æ æ ð æ æ æ æ
+æ æ æ æ æ ã æ æ æ æ æ æ æ ã æ æ
+æ æ æ æ æ æ æ ð ð ï æ æ æ æ æ
+   æ æ æ æ æ æ æ ã ã ð æ ã æ æ æ
+æ æ æ æ ã æ æ æ æ æ æ æ æ æ æ ð
+ð æ ð ð æ æ æ æ ã æ æ æ æ æ ð æ
+æ æ æ æ æ æ æ æ æ ð æ æ æ ã æ æ
+æ ð æ æ æ æ æ æ æ ð ð æ æ æ æ æ
+ð æ æ æ æ ð æ ã æ æ æ æ æ æ æ
+   æ æ ð æ æ æ æ æ æ æ æ æ æ æ æ
+æ æ æ æ ð æ æ æ æ æ æ ã æ æ æ æ
+æ æ ã æ æ æ æ æ æ ð æ æ æ æ æ æ
+æ æ æ æ æ æ æ æ æ æ æ æ ð æ ð ð
+ð æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+æ ã æ æ æ æ æ æ æ æ æ æ æ æ ã
+   æ æ æ æ æ æ æ æ æ æ æ æ æ æ æ
+æ æ ð æ æ æ æ æ æ æ æ æ æ æ æ æ
+ã æ æ æ æ æ æ ð æ ç ç ç ç ð ç ç
+ç ç ç ç ã ç ç ç ç ç ç ç ç ç ç ç
+ç ð ç ç ð ç ç ç ç ç ç ç ç ç ç ç
+ã ç ç ç ç ç ç ã ç ç ç ç ç ç ç
+   ç ð ç ç ç ç ç ã ï ç ç ç ç ä ç
+ç ç ç ð ç ç ç ç ç ð ç ç ç ç ç ã
+ç ã ã ç ç ç ç ç ç ã ç ç ç ç ç ç
+ã ç ç ð ç ç ç ç ç ç ç ç ç ç ç ç
+ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç
+ç ç ç ç ç ç ç ç ç ç ç ð ç ç ç
+   ç ç ç ç ç ç ç ç ç ç ç ç ç ð ç
+ð ç ç ç ã ð ç ç ç ç ç ç ç ç ç ç
+ç ç ç ç ð ç ã ç ã ç ç ç ç ç ç ç
+ç ç ç ç ç ç ç ç ç ç ç ç ã ð ç ç
+ç ð ç ç ç ç ð ã ç ð ç ç ã ç ç ç
+ç ç ç ç ç ð ç ð ç ç ð ç ç ç ç
+   ð ä ð ð ç ç ç ð ç ç ç ð ä ç ç
+ç ç ç ç ç ç ç ç ç ä ç ç ç ð ç ç
+ç ç ç ç ç ç ç ç ð ç ç ç ç ç ç ç
+ç ç ç ç ç ç ç ç ç ç ç ð ç ç ç ç
+ç ç ç ç ä ç ç ç ç ç ç ç ç ç ç ç
+ç ç ç ç ä ð ð ä ç ç ç ç ç ä ç
+   ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç
+ç ç ð ä ç ç ç ä ç ç ç ç ç ð ð ç
+ð ç ç ç ç ç ç ä ä ç ç ä ç ç ç ç
+ç ç ð ä ç ç ç ä ç ç ç ç ç ð ð ç
+ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç ç
+ç ç ç ð ð ð ç ð ç ç ç ð ç ð ç
+   ç ð ç ð ç ç ð ç ç ç ä ç ç ð ð
+ç ç ç ç ð ð ä ç ç ç ç ä ç ð ç ç
+ç ç ð ç ç ç ç ç ç ç ç ç ç ç ä ð
+ï ç ç ç ç ç ç ç ç ç ç ç ç ä ç ç
+ç ä ç ç ç ç ç ç ã ð ç ð ç ç ç ç
+ç ç ð ç å ð ç ç ç ð ç ç ç ç ç
+   ç è è è è è è è è è è è è è è
+è è è è è ð è è è è ð è è è ä è
+è è ä è è è ð è ä è ä è ä è è ä
+è è è è è è ð è ð è ð è è ð è ð
+è è è ð è è è è è è ð è ä è ä è
+ð è è ð ï ï è ä è è è è è è è
+   è è è è è è è è è è è è è è è
+è è ä è ä ä è è è è è è è è è è
+è è è è ð è è è è è è è è è ð è
+è è è è ä è è è è ä è è è ð è è
+è è è è è è è è è è è è è ä ä è
+è è è è è ð è è è è è è è è ð
+   ð ð è è è è è è è è è è è è è
+è è è ð è è ð è ï è è è è è è è
+è è è è è ï è è è è è è è è è ä
+è è è è è è è è è è è è è è è è
+è è è è ð ð è è è è è ð ä è ð è
+è è è ð è è è è è è è è è è è
+   è è è ä è è è è ð ð è ð è è è
+è è è è ð è è è è è ä è ð è ð è
+è è ð ä è è è è è è è è è è ä è
+è è è ä è è ð è è è è è è è è è
+è è è ð è è è è è è è ä è è è è
+è è è è è è è ð è ð ð è è è è
+   è è è è ð è è è ä è è è è è ð
+è è ð è è è è è è ð è è è è è ä
+è è ð è è è è è ð ä è è è è è è
+è è è è è è è è è ð è è ä è ð è
+è è è è è è ð è è ï è ð è è ï è
+è è è è è è è é é é ð é é é ð
+   ð é é é é é ä é é é é ð é é ð
+é é é é é é é é é é é é é é é é
+é é é é é é é é é é é é é é é ð
+ð é é é é é é ð é é é é é é é é
+é é é é é ð ð é é é é é é é é é
+é ð ð é é é é é é é é é é é ð
+   ð é é é é é é é é é é ð ð é é
+é é é é é é ð ð é é é é é ð ð é
+é é é é é é é é é é é é é é ð ð
+é é é é é é é ð é é ð é ð ð é é
+é ð é é é ð é ð é ð ä é é é é é
+ä ð é é é ä é é ä é é é é é é
+   é ð ð é é é é é é é é é é é é
+é é é é é é é ä ð é é é é é é é
+é é ð é é é é é é é é é ð é é é
+é é é é é ä ð é é ð é é é ð é é
+é é é é é é é é é é é é é é é é
+é é é é é é ð é é é é é é é é
+   é é é é é ä é ä é ä é ð é é é
+é ä é é é é é é é é é é é é é ä
+é é é é é é é é é é é ð ð é é é
+é é é é é é é é é ð é ð é ð é é
+é é é é é é é ð é é é é é ð é é
+ð é é é é é é é é é é é é é é
+   é é é é ð é é é ð ä ð é ä é é
+é é ð é é ð é é é é é é é é é é
+é é é é é é é é é é é ä é é é é
+é é é ð é é é é ð é ð é é é é é
+ä é é é é é é é é é é é é é ð é
+ð é ð é é é ð
+   ã ð ä ä ä ä å å å ã å å å è ð
+å å å å å å å å å å ï å å å å å
+ï ã å å å å æ ï æ æ æ æ æ æ æ é
+æ æ æ æ æ ð ð ð æ æ æ ï æ æ æ ï
+æ æ ç ï ð ç ç ç ç ç ç ç ç ç ï ç
+ç ç ç ç ã ç ç ç ä ç ç ç ç é ä
+   é ç ç ç ç ä ç ç è è ï è è è è
+è è è è è è è è è è è é é é é é
+é é é é é é é é é é é é
+   â â â â â â   â â â â
+ð ð     â â â â â â â â â â â â
+â ã ã ã ã ã ã ã ã         â â â
+ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð
+â â ð ð ð ð ð â ð ð ð ð ð ð ð ð
+ð ð ð ã ð
+   â â â â â â ã ã â ã ã â à â â
+â â â â â â ð â â â â â â ð â â
+â ð ð ð ð ð â â â â ð â â â â â
+ð â
+   â â â â â â å æ æ å ã ã ã ã ã
+ð â â â â â â â â â
+ð ð ð ð ð ð ð ð ð ð ã ã ã ã ã ã
+â â ã ã â Â Â ð
+            ð ð ã ð ð â
+   ã ã ã ã ã ã ã ã ã ã ã ã â â ã
+â ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð
+ð ð ð ð ð ð ð â ã ã ã ã ã ã
+Â â â â Â Â â â â â â â â â â â
+â â â â â â â â â â â â â â â â
+â â â â â â â   â â â â
+   â â â â â â â â â â â â â â â
+â â â â â â â â â â â â â ã ã ã
+ã ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð
+ð ð ð ð ð ð ð ð ð ð ð ã ã ã ã ã
+ã â â â â â â â â â â â â â â â
+â â â â â â â â â â â â â ã
-- 
2.3.1


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]